Home

Announcements

  • Assignment 12: Type Inference has been posted and is due Wednesday, December 2 at 11:59 p.m. Note the unusual due date. Have a great break! — Lindsey Kuper 2009/11/24 14:13
  • Assignment 11: Introduction to Logic Programming has been posted and is due Monday, November 23 at 11:59 p.m. — Lindsey Kuper 2009/11/17 13:43
  • To cut down on confusion, we've taken down the previous versions of the lecture notes on monads and posted one version that subsumes them all. (We may continue updating it, but the link will stay the same.) Enjoy! — Lindsey Kuper 2009/11/17 10:23
  • Adam's office hours are also cancelled today. He will be online to answer emails and is happy to do so, but the Health Center ordered him to stay home. — Adam Foltzer 2009/11/16 14:17
  • Lindsey's office hours are cancelled today due to illness. If you have homework questions, I'm available by email. — Lindsey Kuper 2009/11/16 08:55
  • The Assignment 10 Optional Brainteasers are posted at the bottom of the assignment page. We strongly recommend that all of you try them. — Adam Foltzer 2009/11/14 10:27
  • Assignment 10: Introduction to Monads has been posted and is due Monday, November 16 at 11:59 p.m. — Lindsey Kuper 2009/11/11 08:49
  • As Dan mentioned in lecture: if you have not done so already, you should make an appointment with one of the AIs to demo your Assignment 9. The demo is a required part of the assignment. We suggest emailing all of the AIs so that you have the best chance of finding someone who is available to meet with you. You should make the appointment for sometime in the next two weeks (that is, before Thanksgiving break). (This also implies that if you haven't completed Assignment 9 yet for some reason, you should make every effort to finish it before Thanksgiving break so that you can do your demo by the deadline!) — Lindsey Kuper 2009/11/10 13:22

Older announcements are archived on the Old Announcements page.

About this course

Welcome to C311! The official course description:

C311 Programming Languages (4 cr.) Systematic approach to programming languages. Relationships among languages, properties and features of languages, and the computer environment necessary to use languages. Lecture and laboratory.

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. That is the goal of this course. Although we use the Scheme language as our medium for learning, the concepts covered in the course apply to programming languages in general.

We will study the principles of programming languages from an operational perspective – that is, by writing working programs. The weekly programming assignments are therefore a crucial part of the course. Assignments will be posted early in the week, usually on Tuesday, and due on the following Monday. Assignments are due at 11:59 p.m. on the posted due date unless otherwise stated. Homework assignments should be submitted via Vincent, our online submission system.

Lecture and lab meeting times

  • Lecture (with your host, Dan Friedman): Tuesday/Thursday, 1:00-2:15 p.m. Ballantine Hall, Room 215
  • Lab (with Melanie Dybvig): Thursday, 2:30-3:20 p.m., Informatics West, Room 107
  • Lab (with Adam Foltzer): 4:40-5:30 p.m., Informatics West, Room 105
  • Lab (with Lindsey Kuper): Friday, 9:05-9:55 a.m., Informatics West, Room 107

Course materials

  • See the Resources page for links to essential software and reference materials.
  • Optional textbook: Essentials of Programming Languages, third edition, Daniel P. Friedman and Mitchell Wand, MIT Press, 2008.
  • Recommended textbook: The Scheme Programming Language, third edition, R. Kent Dybvig, Prentice-Hall, 2003. Also available online.
  • Recommended for the novice: The Little Schemer, fourth edition, Daniel P. Friedman and Matthias Felleisen, MIT Press, 1995.
  • Recommended for the seasoned: The Seasoned Schemer, Daniel P. Friedman and Matthias Felleisen, MIT Press, 1996.
  • Recommended for the reasoned: The Reasoned Schemer, Daniel P. Friedman, William E. Byrd, and Oleg Kiselyov, MIT Press, 2005.
 

home.txt · Last modified: 2009/11/24 14:15 by lkuper