CSU660 Overview




What?

This is a course on the study, design, and implementation of programming languages.

The course works at two simultaneous levels: first, we will use a programming language that can demonstrate a wide variety of programming paradigms. Second, using this language, we will learn about the mechanics behind programming languages by implementing our own language(s). The two level approach usually means that we will often see how to use a certain feature, and continue by implementing it.

Note: The course is actually both CSU660 and CSG111 — “CSU660” is used as the label in these pages only for brevity.



Who?



When? Where?

Tuesdays and Fridays, 11:45AM–1:25PM,
WVH 110.



Office Hours

Eli  Tuesday/Friday, 1:30-3:30pm  WVH 320
John  Tuesday, 7pm  WVH 102
(Hours subject to change)


Textbook

The course will roughly follow Programming Languages: Application and Interpretation, but will often diverge. This book is available in PDF format, courtesy of the author.
In addition, Essentials of Programming Languages is a recommended textbook for this course, and can be used as a “second opinion” alternative, usually a more formal one. Copies of this book should be available in the campus store.



Grades



Policies

Joint Work

Some of the homework assignments will be for individual work, and some for pairs. For assignments that are assigned to individuals, no collaboration is allowed. For pair-assignments, it is okay for a pair to discuss the problems with others, but code should never be shared (outside of each pair).

Under no circumstances may you hand in work done with (or by) someone else under your own name. If in doubt, credit the person(s) who helped you and/or ask us for advice, or better: ask. Your code should never be shared with anyone other than your partner. (The nature of this course makes it very easy to find shared work.)

In addition, you should not submit your work as a pair if your partner did not work with you. You are expected to know all homeworks, so do not let your partner do everything.

Class

Most class material is made available on the course web pages, in the Class Notes Section. It is therefore best if you focus on the material instead of just copying everything.

More specifically: Laptops are not allowed in class!

Web page, Mailing List & Email

Important updates will appear on the course front page, and often in the mailing list. You are therefore are expected to read mailing list messages frequently. See the Mailing List Section for details.

Also, read through the Mailing List Policies page to learn how to use email and the mailing list in this course.