198:314 Principles of Programming Languages
Fall 2007 -- Ryder's Lecture
Syllabus



Topics Approximately by Lecture

Relevant required readings in our Scott textboook are indicated below next to course topics. Note: additional readings and/or relevant websites may be listed on the lecture notes page.

All assignment dates listed in this syllabus are TENTATIVE, dependent on the progress of the course and subject to change. The dates of the exams, however, are fixed; you should begin NOW to make arrangments to be available for these exam dates.

Lecture 1(week of 9/3/07): Introduction
History of programming languages, what is interpretation? what is compilation?.
Scott Ch 1; extra readings: ACM Digital Library, History of Programming Languages conferences

Lectures 2-4(wk 9/10-9/17): Formal Languages
Regular expressions, Grammars, Backus-Naur form, Context-free grammars, derivation, parse, parse trees, ambiguity
Scott Ch 2.1, 2.2, 2.2.1, 2.3, 2.3.1, 2.4-2.5 (plus some material on FSAs and REs on the textbook CD);

Lectures 5-8(wk 9/24-10/1): Logic Programming
Prolog, goal-oriented semantics, database computations, unification, negation by failure, execution model, generate-and-test paradigm.
Scott Ch 11
Tuesday, Septmber 25, 2007, Prolog project posted

Lectures 9-12(wk 10/8-10/15): Basic Semantics
Names, locations, symbol table, memory management, lifetimes, scoping (lexical and dynamic), activation records, runtime stack, memory management, garbage collection
Scott Ch 3.1-3.3, 3.5-3.8, 8.1-8.2
Tuesday, October 16, 2007 Prolog project due at midnight

MIDTERM Tuesday, October 23, 2007.

Lectures 13-15(wk 10/22-10/31):Functional Programming Languages
function abstraction, function application, into to lambda calculus, Scheme, referential transparency, higher order functions, lambda calculus
Scott Ch 6.6, 10.1-10.5, 10.6.1
Tuesday, October 30, 2007, Scheme project posted

Lectures 16-17(wk 11/5): Parameter Passing
parameter passing semantics, implementations
Scott Ch 8.3

Lectures 18-20(wk 11/12-11/26) Scripting Languages - Python
uses of scripting, dynamic binding, multiparadigm languages
Scott Ch 13
Tuesday, November 20, 2007, Scheme project due at midnight; Python project posted


Lectures 21-23(wk 11/15-12/3) Types
primitive types, type constructors, type checking, type equivalence, conversion, polymorphism, unions, generics in C++
Scott Ch 7.1-7.8, 7.10

Lectures 24-25(wk 12/10): Parallel Programming, Monitors, Threads
Tuesday, December 11, 2007, Python project due at midnight
Scott, Ch 12

Wednesday, December 19, 2007, 8am-11am, FINAL EXAM


Important Dates

  • Tuesday, Septmber 25, 2007, Prolog project posted
  • Tuesday, October 16, 2007 Prolog project due at midnight
  • Tuesday, October 23, 2007: in class MIDTERM EXAM
  • Friday, November 2, Scheme project posted
  • Tuesday, November 20, 2007, Scheme project due at midnight; Python project posted
  • Tuesday, December 11, 2007, Python project due at midnight
  • Wednesday, December 19, 2007, 8am-11am, FINAL EXAM


Last updated at 5:00pm on November 2, 2007 by BGR