This course introduces students to the theory and practice of writing compilers for imperative programming languages. It also exposes them to elements of formal language theory as it relates to the specification of the syntax and semantics of such languages.
Students will be expected to:
At the conclusion of the course, students should be able to:
Daily lectures are given to present and explain the course content. The lectures follow the comprehensive textbook, developed by the lecturer.
There are weekly practical sessions, which are designed to reinforce the lecture material. There are also voluntary tutorial and workshop sessions for students who need extra assistance in mastering the material.
Detailed solutions to practical and tutorial exercises are provided to students after they have attempted these for themselves.
The course is divided into six main sections. These are detailed here, together with estimates of the number of lectures devoted to each section.
Students are expected to obtain a copy of the comprehensive textbook, developed by the lecturer. This textbook is also provided on an intranet website for the use of students. As is typical of published textbooks, the bibliography includes an extensive optional reading list. The course website provides links to further on-line resources (such as textbooks) for background reading and support.
Students must be able to demonstrate:
The weekly practicals provide students with frequent formative assessment of their progress and understanding. Completed practical assignments are submitted on a group basis for formal assessment. These are marked by the lecturer.
At least one formal test is given towards the end of the course. This is marked by the lecturer. Care is take to ensure that the questions are similar in style and difficulty to those that can be expected in the final examination.
A short test is given on the material of each practical, immediately after it has been submitted. This is marked by the lecturer.
All tests and practicals are submitted on Thursday and are normally marked and returned to the students by the following Monday.
The final examination in the course is held during the normal set of semester end examinations written by all students at the University. The examination for this course is set and marked in the first instance by the lecturer. The exam paper is, firstly, moderated ("shredded") internally by a panel of lecturing staff, and, secondly, moderated by the Department's External Examiner. The students' scripts are also sampled by the External Examiner.
The final examination lasts three hours. Approximately half the paper consists of an extended, practically oriented, challenging and hitherto unseen question, which is released to the students 24 hours before the start of the examination to allow them to prepare a high-quality solution. During the 24 hour period, students may consult references and even other students, but not the demonstrators or staff in the Department. They may not, however, take any material into the final examination session.
Although this form of examination may seem to favour syndication, and even be unreliable because of this, experience has repeatedly shown that a student's own capabilities are readily discernible in the quality of the answers submitted, and the fact that the setting of a challenging question means that the students learn "from" the examination rather then simply "for" the examination means that it achieves far more than is possible with a conventional examination. Great care is taken to prepare an exercise with graded components, so that all students are able to demonstrate their fundamental understanding of the material with confidence, but only the very best can demonstrate that they have appreciated and solved the subtlest aspects of the problem. Lastly, it is worth commenting that the fact that half of the examination is set in the traditional "unseen" form means that students cannot rely entirely on memorising a solution to the "seen" question which they might not have devised for themselves.
A summative course evaluation is run during the final week of the course.
The evaluation covers a number of topics, including the lectures, the lecturer, practicals, demonstrators and equipment and facilities. Provision is also made for students to give free-format comments on any aspect of the course.