Herbert J. Bernstein
Professor of Computer Science
Dept. of Mathematics and Computer Science, 150 Idle Hour Blvd., KSC 121, Oakdale, NY 11769-1999
CSC 3149A -- Compilers -- Spring 2009
This web page is http://www.bernstein-plus-sons.com/.dowling/CSC3149S09/CSC3149_Syllabus.html
Copyright © 2009 Herbert J. Bernstein and other parties. All rights reserved.
This is the syllabus for CSC 3149 for Spring 2009. As the course moves forward, students should return to this page frequently for updated material.
CSC 3149A. Compilers 3 credits
Principles of design and implementation of modern compilers. Topics include lexical analysis, parsing, code generation, error detection and recovery and optimization. Prerequisite: CSC 2025A. Offered: 2008 -- 2010.
The Spring 2009 section is:
|Jan 24, 2009||May 14, 2009||R||05:30 pm - 8:11 pm||KSC||102A|
|Instructor(s): Herbert J. Bernstein|
Note that, in general, Dr. Bernstein will be at the Oakdale campus on Tuesday, Wednesday and Thursday afternoons and at the Brookhaven Campus on Tuesday and Wednesday evenings. Meetings at the Brookhaven campus are by appointment only. If no students are scheduled by 8:20 pm on any given Tuesday evening or by 10:20 pm on any given Wednesday evening, those hours will be cancelled. If at all possible, please use email to schedule meetings in advance to avoid conflicts with other students and other obligations of the instructor.
For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.
Students are responsible for all assigned readings even if the material is not discussed in class. Students are advised to bring the required texts to every meeting of the class to help them in classroom discussions and in answering the daily quiz questions.
Keeping clear written records is an important part of working in any scientific field.
Students are expected to have their text books no later than the second week of class.
This class meets only once per week. Absence from any class meeting may cause the student to miss a significant portion of the material of the course. Therefore:
Attendance will be taken at all class meetings. All absences must be explained in writing (or via email). Students who miss one or more lectures must meet with the instructor to review their progress in the course. A midterm warning will be issued for any student who misses one or more lectures before the midterm, and such students will be advised to withdraw. Grades will be reduced for unexcused absences (see grading policy, below).
Arriving late disrupts the class for other students. To encourage and reward timely arrival, there will be a short quiz at the start of each class meeting. There will be no makeups for these quizzes.
This course will run as a seminar. All students will be required to participate actively in classroom discussions and to lead discussions related to the assignments. One or more students will have to prepare and present a section of the Compilers text, and then lead discussion on how that section applies to the class project (see below) starting with the second lecture and then every lecture therefafter.
All students will be required to communicate with the instructor via email, and many assignments will require work to be submitted via email.
As noted above students will be given daily brief quizzes. Quizzes will often be based on the assigned readings, asking material that has not yet been discussed in class. This is intended to encourage students to do the assigned readings. Even though the quizzes are open-book quizzes, you are more likely to be able to find the answers if you have done the readings before coming to class. There will be no makeups for these quizzes.
Every student will be required to maintain a contemporaneous hardbound notebook recording all significant activities related to this course. The notebook should record the major topics discussed, questions about the subject matter of the course and the answers when they are found, and all activites related to the course project (see below). The instructor will borrow the notebooks several times during the semester and grade them for thoroughness, clarity and relevance to the course. Only the portions of the notebook that are dated, written in the student's own hand and on the permanent pages of the notebook will be considered in the grading.
The only way to learn technical material for use on computers well is to work with it. Students must do the assignments steadily throughout the semester, not just to show that they know the material, but to give them the practice they need to learn the material well. Therefore, students are encouraged to submit all assignments on time. If an assignment is submitted one week late there will be a 50% penalty for that assignment. No more than three late assignments will be accepted during the semester. No assignments will be accepted that are two or more weeks late. There will not be an in-class midterm exam. The mid-term evaluation will be based on classroom attendance and participation, the notebook, assignments and quizzes.
Students will be required to complete a group project consisting of the design of a molecular graphics scripting language and a compiler for that language.
An open-book, open computer final will be given. In general, except as noted above, no assignments will be accepted late and no makeups will be given for missed quizzes or examinations. Requests for exceptions to this policy will be considered only for the most pressing reasons (illness requiring hospitalization, death in the family, reserve call-up, etc.), must be submitted in writing in a timely manner, and will be granted only if the instructor has sound reason to believe that the student is highly likely to master the material of the course within the current semester.
There will be an ungraded diagnostic quiz given during the first lecture to help students understand how well prepared they are for the work in this course.
Please consult the course assignments page frequently.
If you're interested in joining with your fellow students in developing and maintaining a web site, or pursuing your exploration of computer hardware or software, you might want to consider joining the Dowling Computer Club. Just follow the link for further details: