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 25% of the grade.
- Course Project
- The value of learning by first hand implementation cannot be overemphasized. A significant part of the grade (about 40%) 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 no tests in this course.
- Presentation
- About 15% of the grade will be based on a presentation in class on a topic selected from a given list, or one of your choice in consultation with the instructor.
- Blog Questions
- About 4-5 questions will be given to you as homework, which you will answer on the course blog. About 10% of the grade will be based on your answer to these questions.
- 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.