![]()
Princeton University
|
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 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
Teaching Assistant: Chris Monsanto
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.
Some of the assignments will be programmed in Haskell, a very cool modern functional programming language.
Downloading and installing Haskell on your machine is easy. We are using the latest stable release of the Haskell Platform. Follow directions here.
The Haskell home page is teaming with resources for learning Haskell and communicating with other Haskell lovers. See here. To get started, I recommend taking a look at the online book "Learn You a Haskell for Great Good". In particular, for assignment #2, you should read through the Introduction and the Starting Out Chapter. You can read online or order a book.
AssignmentsThere will be one assignment every one or two weeks. Lateness policy. Programming assignments are due at 1pm on the date specified, with a 3-hour grace period. Late assignments are assessed a 20% penalty per day or partial day: 0–3 hours late (no penalty), 3–24 hours late (20%), 24–48 hours late (40%), and so forth. Your penalties for the first 2 late days during the course are automatically waived. No additional lateness points will be waived without the recommendation of a Dean or a letter from McCosh Health Center. Collaboration policy. Some assignments will be individual assignments. If you cannot come up with an answer after trying an individual assignment 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). After any discussions with friends, you should write up the assignment on your own. In particular, any programs, proofs, or written explanations should be written up by the homework author themselves. Other assignments will be done in pairs. Again, it is ok for multiple pairs to discuss solutions. The members of each individual pair should The midterm and final must be done completely independently. Testing & EvaluationThere 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:
|