Rationale
As a future professional computer scientist, you should be comfortable
with all programming languages even those that haven't been
invented yet. The way to do this is to understand the
principles of programming languages. It helps to realize that
programming languages are just notations to express computations, and
that the abstract notion of computation can be concisely described
using a few primitives. Commercial programming languages just add
lots of bells and whistles that are convenient (and essential from a
software engineering point of view) but not fundamental from a
computational of view.
Distribution
Your grade will be computed as follows:
- Assignments 30%
- Midterm 30% (Thursday October 17 in class)
- Final 40% (Tuesday December 17 at 12:30)
- Up to 5% for extra credit work