Home

Announcements

Announcements and class correspondence will be conducted via OnCourse.

About this course

Welcome to C311/H311! The official course description:

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. (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 on Thursday evening, and are due at 11:59 p.m. the following Wednesday unless otherwise stated.

C311 lecture and lab schedule

  • Lecture (with Dan Friedman & co.): Tuesday & Thursday, 1:00pm-2:15pm, Wylie Hall (WY) 115
  • Lab (with Jason) : Friday, 1:25pm-2:15pm, Informatics West (I) 107
  • Lab (with Jason & Erik) : Friday, 2:30pm-3:20pm, Informatics West (I) 107

H311 lecture and lab schedule

  • Lecture (with Dan Friedman & co.): Tuesday & Thursday, 1:00pm-2:15pm, Wylie Hall (WY) 115
  • Lab (with Jason) : Friday, 1:25pm-2:15pm, Informatics West (I) 107

Course materials

See the Resources page for links to essential software and reference materials. There is no required textbook for this course. The best reading material for the course will be the notes you take yourself, plus the occasional handout during lecture. If you prefer to supplement your learning with the printed page, though, here are a few good resources:

  • Essentials of Programming Languages, third edition, Daniel P. Friedman and Mitchell Wand, MIT Press, 2008.
  • Scheme and the Art of Programming, George Springer and Daniel P. Friedman, The McGraw-Hill Companies, 1999.
  • The Scheme Programming Language, Fourth Edition, R. Kent Dybvig, MIT Press, 2009. 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.

Course policies

Please read the course policies carefully, and contact an instructor if you're unsure about their content.

 

home.txt · Last modified: 2014/01/16 15:03 by jhemann