Description

A study of programming languages, including their syntax, semantics, and implementation. Several different models of languages are discussed, including procedural (Ruby), functional (OCaml), logical (Prolog) and object-oriented (Java). Language features such as formal syntax, scoping and binding of variables, higher-order programming, typing and type polymorphism, and object inheritance are explored.

General Information


Announcements

Final grades
7/27/14 11:49 PM

Final grades have been posted to the grade server with a generous grading curve applied.

Quiz and exam solutions
7/01/14 8:50 AM

Solutions to the quizzes and midterm will be posted to the resources page under the course page tab.

Office hour extension for today
7/01/14 8:23 AM

Yi will be extending his office hours today from 10am to 1pm.

Hash.new with array as default value
6/10/14 5:41 PM

Hi, I told several people in office hours something incorrect, so I am clarifying that now. I had said that you could use

Hash.new([0,0])

to create a hash table where missing keys would have a default value of [0,0]. This does not work as you might think. It just creates exactly one instance of an array, and returns it every time you index into the hash with a nonexistent key. The correct way to do this is to not use the shortcut. Instead, you would need to do it the regular, manual way, where when indexing into a hash, you first check if the key exists, and if not set it equal to [0,0].

Staff Office Hours
NameOffice Hours
Richard Johnson
When?
Where?
Yi Qian
When?
Where?
Tommy Pensyl
When?
Where?