Evaluation

Your performance in the course will be evaluated as a combination of a written/programming assignments, and a course project. The final grade is calculated as follows:

Assignments       -  3 x 10%                             - 30% 
Special Topic Lecture                                    - 10%

Course Project -  Project Proposal                       - 10%
                  Project Status Reports and
                  Meeting project deadlines/milestones   -  5%
                  Class Presentation                     - 10%
                  Presentation Evaluations               - 5%
                  Project Report and Implementation      - 30%
                                                      ----------- 
                                                          100% 

Written and Programming Assignments:
There will be three assignments. Assignments are a combination of written and programming questions. The purpose of the written questions is to allow you to master concepts that are not directly integrated with the project.

The purpose of the programming questions is to introduce you to the software platforms we will be using and to to demonstrate some practical applications of the theoretical techniques in the framework of a real compiler.

Special Topic Lecture

The purpose of the special topic lecture is to introduce a variety of current research topics into the class. Ideally the topics illustrate the use of program analysis and compiler techniques to a wide variety of application areas. Students will be expected to give a 40 minute lecture, followed by 5 minutes of questions to the class about the content. Students will evaluate the lectures and feedback from this evaluation will be used by the presenter to help improve their final project presentations. The 45-minute special topic lectures will be combined with 45-minute regular lectures within one class lecture slot.

Course Project Outline and Progress Reports:

The course project outline and progress report will consist of a written document and, if necessary, a meeting with the instructor and/or the project leader. Your progress report should be clearly written and it should show that you have a clear understanding of your chosen project and a reasonable plan for the completion of the project with well defined milestones.

Course Project:

The purpose of the project is to allow the student to do some more concentrated work on a specific advanced topic in compilers. The project will involve choosing a topic related to the course, researching this topic, and then implementing a component of a compiler that illustrates or experiments with this topic. A list of potential topics will be suggested by the instructor. Students should also feel free to suggest topics related to their specific interests. A written project report will be required.

Class Presentation:
As part of the project, each student will give a class presentationh. Each student will also evaluate all other presentations, and the quality of the evaluation will count for 5% of the mark.

Homework Assignment Policy:

Assignments should be handed in at the beginning of class on the day they are due. Work must be done individually, all material used in preparation of assignments and the project must be attributed to the appropriate sources. Late assignments, project proposals or project milestones will result in a lower mark for the meeting of deadlines/milestones. Lateness of more than one week is not normally allowed and no credit will be given for work submitted more than one week late, unless special arrangements have been made in advance of the deadline.

Academic Integrity at McGill University:

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures
(see http://www.mcgill.ca/students/srr/honest/ for more information).

In terms of this course, part of your responsibility is to ensure that you put the name of the author on all code that is submitted. By putting your name on the code you are indicating that it is completely your own work. If you use some third-party code you must have permission to use it and you must clearly indicate the source of the code.

Other required statements:

In accord with McGill's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

Laurie HENDREN 2016-09-05