The next assignment, due July 23rd, has been sent out on the mailing list.
This class will provide an introduction to a broad variety of programming languages, including examples from object-oriented languages, functional languages, logic languages, procedural languages, and scripting languages. Each language will be placed in context, both historical and practical, showing what problems it was meant to address, what it ended up addressing, and how it has come to influence the state of the art in programming.
We will use ANSI C as a "portable assembly language," letting implementation issues get suitably "bare metal" without being particularly hardware dependent.
Within each major language group, we will first examine a canonical and minimal example programming language. Additional languages from that group will build up additional functionality by applying design patterns - idioms that were considered sufficiently useful to add to the syntactic and semantic structure of a particular language.
The required textbook for this class is Programming Language Pragmatics, by Michael Scott. Morgan Kaufman 2000.
There are several recommended texts. Which ones you will find most useful will depend on your own background. These include the following books:
Expect one brief assignment each week, due in class the following week. Each assignment will consist of approximately three to five problems. Some of these will be brief essay answers, while some will be short programming problems.