CS QA Manual

QUALITY ASSURANCE
Programming Language Translation (CSc301)
2003


1. Introduction

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.


2. Outcomes

2.1. Critical Outcomes

Students will be expected to:

  1. identify and solve problems
  2. work in a team
  3. collect, analyse and evaluate information
  4. use science and technology
  5. recognise problem solving contexts


2.2. Specific Outcomes

At the conclusion of the course, students should be able to:

  1. understand the role played by compilers and the internal structure of this type of software
  2. understand and apply elements of formal language theory to the description of programming languages
  3. understand and be able to implement interpreters for simple virtual computing machines
  4. use compiler generating tools to develop a compiler for a simple, yet non-trivial, imperative programming language

3. Teaching Methods

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.


4. Course Content

The course is divided into six main sections. These are detailed here, together with estimates of the number of lectures devoted to each section.


5. Prescribed Textbooks

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.


6. Student Assessment

6.1. Assessment Criteria

Students must be able to demonstrate:

  1. an ability to understand and apply the elements of formal language theory to the description and analysis of imperative programming languages.
  2. an understanding of the structure and construction of interpreters for virtual computing machines.
  3. an ability to develop the scanners, parsers and code generators that form components of modern compilers.

6.2. Assessment Methods

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.

6.3. Weighting Factors:

The class mark for this module is calculated by weighting the large tests at 20%, the smaller practical tests at 2% each, and each practical assignment at 8%. The formal examination component is made of 180 marks (out of 270 for the semester's formal examination components). Approximately 45%-50% of the formal examination component is allocated to the single large question which is revealed to students 24 hours before the start of the examination A student's mark for the semester credit course CSC 301 (of which this module forms part) is obtained by weighting the total formal examination components at 67% and the class mark components at 33%.

7. Course Evaluation

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.


Pat Terry - August 2003