CSCI 485: Metaprogramming, Spring 2018

Course Outline

csci.viu.ca/~wesselsd/courses/csci485/outline.html

CSCI 485 (3) Topics in Systems: Metaprogramming
In this course we will investigate metaprogramming - i.e. programs that read, transform, or generate code. Metaprogramming is used in a wide range of applications: from compilers, assemblers, interpretters, debuggers, and IDES, to tools for language and architecture migration, to code obfuscation and viruses, to self modifying programs. In this course we will attempt to examine both the theory and application of metaprogramming, and the support provided for it in a variety of languages. (3:0:1)

Pre-requisite: CSCI 330 (may be taken as a co-requisite)

Contact information

Resources

Timetable

Assessment will consist of a mix of exams, labs, and assignments, each of which may have both theoretical and applied components.

The Course Topics planned are shown below, although both the content and the order will likely vary considerably as the semester progresses.

Research project/presentation:
Each student will be required to complete a short (1500-2500 word) individual research project and presentation on a metaprogramming topic. Details and project ideas will be discussed in class.

Appeals of Grades:
Any exercise or examination grade may be appealed. However, the appeal must be made to the instructor, in writing and attached to the work in question, and within 7 days of the grade being made available to the class. The instructor reserves the right to re-grade the entire piece of work submitted on appeal, not necessarily just the component that the student believes is in error.

Grade Conversion: will be based on the standard VIU grading scale:
90-100 85-<90 80-<85 76-<80 72-<76 68-<72 64-<68 60-<64 55-<60 50-<55 < 50
A+ A A- B+ B B- C+ C C- D F

Lab and Computer Usage Rules:
See http://www.viu.ca/computerscience/resources.asp#Lab_and_Computer_Usage_Rules

Student Academic Code of Conduct (VIU policy 96.01)
All VIU students are required to familiarize themselves with, and adhere to, the Student Academic Code of Conduct.