Computer Science 441
|This advanced course is for
graduate students and advanced undergraduates with a keen interest in
how to design, describe and reason about programming languages. The only
requirement for the course is some mathematical maturity including, for
instance, familiarity with proof techniques such as induction.
Topics include: Theory and design of programming languages. How languages support abstraction, modularity and concurrency through functional programming, object-oriented programming, and other mechanisms. Operational semantics of programming languages. Denotational semantics of programming languages. Type systems including polymorphism and subtyping. The relation between programming languages and logic.
As the term proceeds, you will be able to find course notes, assignments and the general schedule here.
Professor: David Walker
Undergraduate Coordinator: Donna O'Leary - 410 CS Building - 258-1746 doleary at cs.princeton.edu
Teaching Assistant: Rob Dockins
All students in COS 441 are required to sign up for the class mailing list. If you have questions about assignments or other information you can send email to cos441 "atsign" lists.cs.princeton.edu.
To subscribe to the list go to https://lists.cs.princeton.edu/mailman/listinfo/cos441.
Most of the assignments will be programmed in SML, which has often been called "a domain specific programming language for building compilers." If you have a PC running Linux, then you should also be able to install ML there. You can grab a copy of the compiler from the official server at Bell Labs.
You can begin to use SML by following these directions:
If you want to use tab completion and the up-arrow key to get command history while working in the SML interpreter, try using rlwrap:
There will be approximately one homework every week. Homeworks should be attempted individually. If you cannot come up with an answer after trying for a while then you may discuss the material or the problem with a friend. If you talk about how to solve a problem with someone then acknowledge them at the top of your homework (name and which parts you worked on together). Any programs, proofs, or written explanations should be written up by the homework author themselves.
Take-home midterm and final must be done completely independently.
20% per day will be deducted from late homeworks (without a doctor's note).
Testing & Evaluation
There will be a take-home mid-term and a take-home final exam.
Grades will be determined by weighting homeworks, tests and exams as follows: