-
-
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
-
-
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.
Welcome to B521! The official course description:
B521 Programming Language Principles (3 cr.) Systematic approach to programming languages. Relationships among languages, properties and features of languages, the computer environment necessary to support language execution.
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 (with your host, Dan Friedman): Tuesday/Thursday, 11:15 a.m.-12:30 p.m., Kirkwood Hall, Room 203
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.