Spring Term 2005
Course instructors
|
|
Name |
Office |
Email |
Office
Hours |
|
Professor |
Markus U. Mock |
6407 SENSQ |
mock@cs.pitt.edu |
Mon 4-5pm arrangement |
|
T.A. |
Rupa Natarajan |
6406 SENSQ |
rnataraj@cs.pitt.edu |
Wed 1:00pm-4:00pm, |
Time and Place:
|
Lectures |
TTH |
9:30-10:45 |
5129 SENSQ |
CS 1622 is designed to acquaint students with the implementation of high level programming languages. The course consists of a theoretical component, which stresses general underlying concepts, and a practical component, which consists of a significant course project in Java (you will write a simple compiler for a simple language). This course will be a very rewarding course that will teach you a lot, however, only if you put in the required time. If you don’t, you’ll be struggling and will not enjoy it. If you are looking for an easy course, you are in the wrong class. Typically, you can expect several hours of reading per week, 5-10 hours for the project, and of course, you will have to attend class.
|
Required |
Modern Compiler Implementation in Java by
Andrew Appel , January, 1998, Cambridge University Press |
|
References |
A. Aho, R. Sethi, and J. D. Ullman,
"Compilers: Principles, Techniques, and Tools", 2nd edition,
Addison-Wesley, 1986 Charles
N. Fischer, Richard J. Jr. Leblanc, "Crafting a Compiler With C",
January 1991, Addison-Wesley Pub Co; ISBN: 0805321667 |
For those unfamiliar with Java, you should try to buy/borrow a Java
text and
read it. I cannot lend you a Java text
Policies:
There will be a number of written assignments. The purpose of the assignments is to reinforce theoretical material of the course. Spending time on the written assignments will pay off on the exams. Assignments will be turned in, in hard copy, to the TA's mailbox.
Start
the programming assignments early!
Completing the course project is a large, complex, and rewarding task,
which is
made much easier by giving adequate forethought to design. The course
schedule
allows ample time to complete the assignments---take advantage of it.
The
project components are assigned in roughly increasing order of size and
difficulty; proportionately more time is allotted for the later
assignments.
Later assignments will be weighted more heavily in the final grade. Programs
will be evaluated for correctness, organization, and documentation.
Documentation
and structuring should be incorporated into programs from the
beginning.
Neither the instructor nor the teaching assistant will help with
incomprehensible programs.
Except
for the first programming assignment, the project should be done in
teams of
two. Though we do not encourage it, if you like, you can do the project
on your
own. Note, however, that you will be he to the same standards as the
two-person
teams. Teamwork imposes burdens of communication and coordination, but
has the
potential benefits of more thoughtful designs and cleaner programs.
Team
programming is also the norm in the professional world. Every
team
(including teams of one) must be registered. To register a team, send email to the TA
listing the
names and complete email addresses of team members. Only one email
message per
team is needed.
Students on a team are expected to participate equally in the effort and to be thoroughly familiar with all aspects of the joint work. Both members bear full responsibility for the completion of assignments. Each team turns in one solution for each programming assignment; each member receives the same grade for the assignment. If a partnership is not going well, the teaching assistant will help negotiate new partnerships. Teams may not be dissolved in the middle of an assignment.
Examinations & Quizzes
There
will be two midterm examinations and a final. Students are expected to
be
present for all exams.
Make-up exams will only be given in the event of an emergency,
and only
if I am informed in advance.
If
you cannot contact me directly, send me email or call the CS department (624-8490) and leave me a message. Failure to notify me prior to missing an exam will result in a zero for
the
exam. We will have
several
quizzes throughout the semester to help you stay on track with your
reading and
the course material in general. They will be 10-15 minutes each, at the
start
of class. There will be no make-up quizzes , but we will count only the
best
N-1 of the N quizzes, (so that you can miss one without penalty).
Quizzes
may not be announced. If everybody
does their reading and actively participates in class, N will be small.
Tentative dates are (subject to change):
January 20, February 3, March 1, March 31, April 14
Your grade will depend on your performance in the course---there is no predetermined curve. It is impossible to pass the course without doing the programming assignments.
To help you stay
on
track during the course, there will be several quizzes testing the
material of
the previous lectures and readings. The relative weight of the
components of
your grade will be:
|
Class participation, quizzes & written assignments |
20% |
|
Course project (5 parts) |
40% |
|
Two Midterms, each 10% |
20% |
|
Final |
20% |
In addition to being passed out in class, handouts will be available on-line on the class home page. Lecture notes will also be available on the web page on the day before the class. If you want hard copies of the notes for class, you must print the copies yourself.
The material presented in class will correspond roughly but not exactly to the material covered in the readings. The assigned readings will be updated as the term progresses..
The class home page for the course is http://www.cs.pitt.edu/~mock/cs1622/. All course handouts, answers to frequently asked questions, lecture notes, and updates on assignments will be posted.. Please check the home page and mailing list regularly for important course information. Students are responsible for changes to assignments posted on the home page.
Please sign up with your email address AND name (so we can match names with addresses). We will use the email list for announcements, clarifications, and answers to questions. If you have questions, please email the instructor or the TA directly, or better still, come to office hours.
Important Dates:
|
Event |
Date
|
|
First class meeting |
January 6 |
|
Last day to add/drop |
January 18 |
|
Midterm 1 |
February 15 |
|
Midterm 2 |
March 22 |
|
Spring Recess - no class |
March 6 - March 13 |
|
Last day for monitored
withdraw |
March 16 |
|
Last Day of Class |
April 21 |
|
Final |
Monday, April 25th,
4 – 5:50pm |