CSCI 310, Spring 2005 Syllabus

Course webpage:http://www.cs.xu.edu/csci310/05s/
Time:MWF: 12:30 - 1:20 pm
Location:Alter 223
Instructor:Gary Lewandowski
Phone:513-745-2836
Office:Hinkle 129
email:lewandow@cs.xu.edu
Office hours:M: 3:30-5 pm, W: 3:00-4:00 pm, R: 5:30 - 7:00 pm, F: 3:30-5:00 pm
Also by appointment, see my schedule at http://www.cs.xu.edu/~lewandow/schedule05s.html
Textbook:Modern Compiler Implmementation in Java, 2nd Edition, by Andrew Appel. (ISBN 052182060X)

Course Objectives

The goal of this course is to give you both a theoretical and hands-on understanding of the compilation process and the implementation of compilers.

Our specific objectives include your ability to do the following:

Grading

Assessment will be based on three tools: Projects (65%), homework (10%), and exams (midterm 10%, final 15%).

The project portion of the course will consist of seven pieces. The first project is intellectually but not integrally related to the later pieces. Project 1 will be worth 7%, Projects 2-7 will be worth 9% each. The final 4% will come from an extension to the basics of the compiler (and will be discussed during the course).
Generally, greater success is achieved when students work in a team of two on the project. This is not required, but it will be allowed.

Homework will be approximately weekly, intended to guide and amplify your reading.

The Mathematics and Computer Science Department has a uniform Grading Standard

Late Policy

This course is a time-hog. You will need to deal with that. Do not fall behind in the early stages because that will kill you. (Students late on the early projects last year generally achieved final grades one or two letter grades below those who did not!)

Projects will be demonstrated on either Monday or Friday afternoons throughout the semester (depending on the project and course schedule). You and your partner will sign up for a timeslot of about 15 minutes to demonstrate your code and test cases. You are allowed three demonstration slips during the semester, where a slip moves the demonstration back 1 week -- until the end of the semester when each is one day of finals week. (Nothing may slip past Wednesday afternoon of finals week.)

Homework is due at the beginning of the class for which it was assigned.

Tentative Schedule

Caveat: Life happens. Expect change.
DatestopicBook ChaptersProject info
Days 1-3 (January 10-14)Lexical Analysis1,2
Days 4-10 (January 19 - Feb 2)Parsing3Day 5 (Jan 21): Project 1 demo
Days 11-13 (February 4 - 9)Abstract Syntax Trees4Day 12 (Feb 7): Project 2 demo
February 10-11 Winter Holiday, no class
Days 14-18 (February 11 - 23)Type Checking/semantic analysis5Day 17 (Feb 21): Project 3 demo
Day 19 (February 25)midterm (through parsing)Gary at SIGCSE
Days 20-23 (Feb 28 - March 7)Activation Records / Frames 6Day 23 (March 7): Project 4 demo
Days 24-28 (March 9 - 18)Intermediate Representation Tree7
March 19- March 28: Spring/Easter Break. No class
Days 29-31 (March 30 - April 1)Canonicalization8
Days 32 - 37 (April 4 - 18)Instruction Selection9Day 32 (April 4): Project 5 demo, Day 37 (April 18): Project 6 demo
Days 38 - 42 (April 27 - 29)ExtrasDay 42 (April 29): Project 7 demo
Monday May 2Final Exam, 1:00 - 2:50 pm
Wednesday May 4Demos of final extensions

Gary Lewandowski
Last modified: Tue Jan 11 12:40:37 EST 2005