Home

Announcements

  • The fall 2009 rendition of B521 has ended, and the assignment descriptions are no longer publicly available. However, all of the other course resources are available for your perusal. Enjoy! — Lindsey Kuper 2009/12/18 14:36

Announcements from Fall 2009 are archived on the Old Announcements page.

About this course

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. (Not only is this approach effective, we believe it's also a lot of fun! But you don't have to take our word for it – see the testimonials page.) The weekly programming assignments are therefore an essential part of the course. Assignments will be posted early in the week, usually on Tuesday, and are due at 11:59 p.m. the following Monday unless otherwise stated. Assignments should be submitted via Vincent, our online submission system.

Lecture meeting times

Watch this space for meeting times when B521 is next offered.

Course materials

See the Resources page for links to essential software and reference materials. There is no required textbook for this course; for the most part, your reading material for the course will be the notes you take yourself, plus the occasional handout during lecture. If you are intent on learning from a book, though, here are a few you may find worthwhile.

  • Essentials of Programming Languages, third edition, Daniel P. Friedman and Mitchell Wand, MIT Press, 2008.
  • The Scheme Programming Language, third edition, R. Kent Dybvig, Prentice-Hall, 2003. Also available online.
  • The Little Schemer, fourth edition, Daniel P. Friedman and Matthias Felleisen, MIT Press, 1995.
  • The Seasoned Schemer, Daniel P. Friedman and Matthias Felleisen, MIT Press, 1996.
  • The Reasoned Schemer, Daniel P. Friedman, William E. Byrd, and Oleg Kiselyov, MIT Press, 2005.

Grading

Grades are assigned according to the course grading policy.

 

home.txt · Last modified: 2009/12/18 16:44 by lkuper