Grading

Grades will be based on the following metrics:

Programming Assignments
A small number (3-4) of programming assignments will be given to experience certain compiler algorithms closely. The assignments will be collectively worth about 30% of the grade.
Course Project
The value of learning by first hand implementation cannot be overemphasized. A significant part of the grade (about 30%) will be based on a course project that will involve a combination of theoretical and programming work. It will also be an opportunity for you to get exposed to research work in the area of compilers and parallel computing.
Tests
There will be one mid-term and one final test. Together they will be worth about 30% of the grade.
Blogging and Class Participation
In keeping with the spirits of an advanced graduate course, you will be encouraged to continue discussions on topics outside the classroom. A class blog will be set up for this purpose. In an advanced graduate-level course such discussions can dramatically improve learning for everyone (including the instructor!). In order to provide you an incentive to be active in class and on the course blog, these will be worth 10% of the grade.

Course Project

You may propose any project of your liking as the course project, as long as it is in consonance with the focus of this course. Alternatively, the instructor can suggest some projects based on your interest and background. Depending on the project you may also be put in touch with an advanced PhD student in the compilers research group to assist and direct you in the details.

Several milestones will be defined for the project. You are responsible for making sure that you are on track, but milestones will assist you in assessing your progress.

The project will be graded based on you reaching your milestones on time, and a formal technical report that you will submit on the due date. If a project produces interesting results your report could be enhanced into a paper that we will consider submitting to a peer reviewed conference or workshop.

Collaboration

You are free, indeed encouraged, to discuss your assignments and project with others. The project might be individual or in groups, based on the class size and the project. If a project is collaborative you may choose your partner. You will also be required to submit a confidential statement of contribution with each milestone, which will state your opinion of the relative contributions to the project of each team member.