Instructor:
Amer Diwan (diwan at cs dot colorado dot edu)
Office: ECOT 520
Office hours: M 1-2:30, F 4-5:30, and by appointment
Class times and location: MWF 3:00 to 3:50 p.m. in
DUAN G131
Class web page: www.cs.colorado.edu/~diwan/5535-07
This course will cover semantic foundations of advanced features found in modern programming languages such as Java, C#, and SML. This course will give students a detailed and in-depth understanding of modern programming languages: motivation behind language designs, strengths and weaknesses of different language designs, and implementation issues. Studying these issues will give you a greater understanding of
We will use case studies from a wide variety of languages, including both languages in common use and languages that are research prototypes. This course will assume that you have already taken CSCI-3155 or equivalent.
Sitting in a room listening to somebody talk is not the best way to learn (and much research backs this up). This course will de-emphasize listening to me talk and emphasize your learning ideas from resources out of class, and discussing problems and questions in class. We’ll try to make our classroom a place of active conversation, rather than passive listening. You can find out more about the conversational classroom by reading this article.
We will be using Kim Bruce's text Foundations of Object-Oriented Languages, recent research papers, and language specifications in this course. The bookstore has copies of the text. This page gives errata for the Kim Bruce books; to avoid unnecessary confusion, I recommend that you incorporate these errata in your book before reading it. The research papers will be available for download on the schedule web page in pdf format.
The readings for a class are compulsory and I will expect you to read them before you come to class.
| Bi-weekly homework assignments | 30% |
| Midterm exams | 40% |
| Final exam | 30% |
There will be weekly assignments. All assignments are due at 3:00 on Fridays. No late assignments (even by a few minutes) will be accepted unless in the case of emergency, in which case the student must provide appropriate documentation.
We will have two midterms and one final exam.
Students are responsible for the material covered in the readings, the material covered in the assignments, and the material covered in the classes.
We will consider the following criteria in our grading:
We strongly encourage you to work together in learning the material. Most of the assignments will involve group work. If a student outside your group helps you in your assignment, you should note it in your submission. We encourage you to talk both to your group members and other students when learning the material or doing the assignments. If your submission includes quotes from a book, paper, or web site, you should clearly cite the original source at the point of the quotation. Bottom line: feel free to use whatever resources that are available to you as long as you acknowledge them in your submission.
You will use Moodle to submit assignments. I will also use Moodle's forum to make time-sensitive announcements so please be sure to check it regularly. You can access moodle at moodle.cs.colorado.edu; if you do not already have an account then please create one.
You can access slides and other materials from this course in 1999, 2000, 2001, and 2002. I recommend using the exams and assignments in the previous years to prepare for your exams.
Ada reference manual