Cornell University Computer Science Department
Course Description
Web Page
The course web page is located at http://www.cs.cornell.edu/cs412-sp99/.
All course materials will be available at this site.
Prerequisites
Computer Science 314, 381, 410. The practicum (CS413) is required.
Course Meetings
Lectures are MWF 10:10-11:00am in Phillips 219. Attendance at lecture is expected. The
lectures will complement rather than replicate material in the textbook.
Teaching Staff
The best way to reach the course staff is by sending mail to cs412@cs.cornell.edu. Please include cs412
in the Subject line.
Name | Title | Office | Office hours | |
---|---|---|---|---|
Andrew Myers | Asst. Professor | myers@cs.cornell.edu | 4124 Upson | W 4-5pm |
Vincent Ng | TA | yung@cs.cornell.edu | 490 Rhodes | WF 11:15am-12:15pm |
Robert Tsai | TA | tsai@cs.cornell.edu | 455 Rhodes* | TTh 11:30am-12:30pm |
*Send email to let me know of your intent to visit; no confirmation from me is necessary.
Required Reading
Modern Compiler Implementation in Java. Andrew Appel. Cambridge University Press,
1997. ISBN 0-521-58388-8.
Other Reading
Compilers -- Principles, Techniques and Tools. Aho, Sethi and Ullman.
Addison-Wesley, 1988. ISBN 0-201-10088-6. (The Dragon Book)
Advanced Compiler Design and Implementation. Steve Muchnick. Morgan Kaufmann Publishers. ISBN 1-558-60320-4.
The Java Language Specification. James Gosling, Bill Joy, and Guy Steele. Addison-Wesley, 1996. ISBN 0-201-63451-1
Copies of these books will be on reserve in the Engineering library.
Assignments and Grading
There are three written homeworks. You may discuss homeworks with other students, but the
work must be done on an individual basis. The names of any students you discussed the
homeworks with must be recorded on the homeworks. The compiler project is divided up into
six programming assignments that are due at various points throughout the term. Compiler
projects will be performed by groups of three or four students. Groups will be created by
the course staff, but taking into account student preferences. The same groups will be
maintained throughout the semester.
Homework and programming assignments will be accepted up to 3 days late, but at a penalty. The penalty is 10% for one day late, 20% for two days late, and 40% for 3 days late. Any extensions must be approved at least two days before the due date -- last-minute extensions will not be granted. Homeworks are due at the beginning of class on that day. Homeworks arriving at the end of class will be treated as an additional day late. Programming assignments will be treated similarly; you will turn in the report for that assignment in class, and make the associated files available in a standard place so that we can test your compiler.
Except in unusual circumstances, you will receive the same grade in CS412 and CS413. The breakdown of points per assignment is as follows:
Homework 1 | 6 |
Homework 2 | 6 |
Programming assignment 1 | 8 |
Programming assignment 2 | 8 |
Programming assignment 3 | 12 |
Programming assignment 4 | 12 |
Programming assignment 5 | 12 |
Project demo | 6 |
Prelim 1 | 15 |
Prelim 2 | 15 |
Total | 100 |
Exams
The prelims will cover material from the textbook, lectures, and homework assignments. The
first prelim will be on March 1, in class. The second prelim will be on April 21, also in
class. There will be no final exam, but a final report will be due on the first day of
finals.