Principles of Programming Languages
CSCI 3155, Spring 2002

Table of contents


Administrivia

Instructor: Amer Diwan (diwan%40cs.colorado.edu)
Office: ECOT 743
Office hours: TuTh 2:00 to 3:30 and by appointment
Class times: TuTh 9:30 to 10:45
Class location: ECCR 1B40
Class web page:  www.cs.colorado.edu/~diwan/3155-02
TAs: Susan Hendrix and Han Lee
TA office hours in CSEL:   Sue (MWF 9:00-10:00, M 3:00), Han (MF 1:00-3:30)
Recitations: See University schedule for times and locations

Course goals

This course will cover important concepts behind modern programming languages such as Java and ML.  After taking this course, you will be able to:

Texts

The main text for this course is Programming Language Concepts 3rd Edition by Carlo GhezziYou may find Programming Language Pragmatics by Michael Scott to be a useful reference.

Course requirements

Assignments 30%
Midterm exams (1 and 2) 40%
Final exam 30%

There will be weekly assignments and several of the assignments will involve programming.  All assignments will be due at 9:30 a.m. on Tuesday (i.e., immediately before class) unless the assignment specifies otherwise.  No extensions will be granted except in the case of emergency, in which case the student must provide appropriate documentation.

There will be two in-class midterm exams.  All exams are closed-book.

Students are responsible for the material covered in the readings, the material covered in the assignments, and the material covered in the lectures.  To get the most out of lectures, I strongly recommend that you do the reading for the class before coming to the lecture.   


Grading

For non-code parts of an assignment/exam, we will consider the following:

For code parts of an assignment/exam, we will consider the following:

All your grades will be available electronically.  Watch this space for instructions on how to get your grades.


Plagiarism policy

We strongly encourage you to work together in learning the material.  For example, when starting on an assignment, it is perfectly reasonable and encouraged to sit down with other students and discuss the assignment and help each other understand the material needed for the assignment.  You should, however, write up (or code up) the assignment separately.  In your submission you should clearly indicate which students helped you in the assignment and on what questions.  Similarly, if you include any text, code, or figure from any source in your submitted work you should cite the original source at the point of the quotation..


Mailing list

Most students should already be signed up for the class mailing list.  If you registered late,  please fill out this form. To avoid duplicate messages, please make sure you are not already on the list.  Feel free to post any relevant question/opinions to this mailing list by sending mail to: 3155disc@cs.colorado.edu.  I often post important and time-critical announcements to this list so please make sure you get on it as soon as possible.  You can get to the archives of this mailing list by clicking on the "archives" link on http://www.cs.colorado.edu/mailman/listinfo/3155disc


Calendar

The following table gives the topics we will cover in the class and the approximate number of lectures to be spent on each topic.  The "Reading" column lists the reading material for the class. You should do the reading for a class before attending the class

How to submit assignments

All assignments, whether text or code should be submitted electronically.   Following are directions for submitting text assignments.  The instructions for programming assignments will be provided with the assignments themselves.

Some useful things to know about online submission

 


Interesting links

Course page for Spring 2001 (You may find the assignments and exams particularly useful)
C++ language definition

 Modula-3 language definition
 Using opaque types for Modula-3 I/O library
 Java language definition
 Full SML tutorial
 Ada reference manual
Eiffel
C# language definition