Programming Language Concepts
CS 360-001 Tuesday/Thursday 15:30-16:50 (Rush 014)
CS 360-002 Tuesday/Thursday 14:00-15:20 (Rush 014)
CS 360-003 Tuesday 18:30-21:20 (University Crossings 153)
Office: University Crossings 106
Office hours: Mondays 3pm–5pm; Thursdays 5pm–6pm.
The midterm will cover the material through the first lecture of week 5 of the course—Prolog will not be included on the midterm.
You may be asked to write some small functions in Scheme—you will not lose points for minor syntactic errors.
You may bring a single, hand-written, two-sided, 8.5” x 11” sheet of notes to the exam. This sheet must have your name on it, and it will be collected with your exam.
I suggest you focus on the following topics:
Lambda calculus. Do not worry about the evaluation rules—we will see those again in the second half of the course.
Recursive functions in Scheme. Understand base and inductive/recursive cases.
Streams. Understand how they are implemented using
understand how to construct and use streams.
Higher-order functions. Understand
filter, and the various
fold. How can folds be used to implement other functions?
The environment model of evaluation. You should be able to explain how an expression will be evaluated without asking an interpreter to evaluate it for you.
The metacircular interpreter.
Implementing search. Understand how the
amb interpreter implements search.