Charlie's office hours: M/Tu 4-5, W/F 10:30-11:30.


  • 20% pop quizzes
  • 20% short homework exercises including some short programming assignments
  • 30% mid term
  • 30% final project


Reading list

Types and programming languages  by Pierce, Benjamin C. (available in electronic form from the UCSC library)

Programming in Scala (2nd Edition) by Odersky, Spoon, and Venners

A Tour of Go

Go Language Specification


Lambda Expressions in Java


Optional background reading

Hoare "Hints on Programming Language Design"

Wegner, "Programming Languages - The First 25 Years"

Wirth, "On The Design of Programming Languages"

Nauer, "Report on the algorithmic language Algol60"

Hudak, "Conception, evolution, and application of functional programming languages"