UMBC CMSC 331-2 Spring 2010
Principles of Programming Languages

Tentative Schedule, subject to change

#
day
date
topic
notes
out
due
to do, comments
1
Wed
1/27
Introduction
 
read: The 100 Year Language
view: how language fans see each other
2
Mon
2/1
Introduction
 
 
read: sammet, Steele essay, WP article, programming paradigms
view: Steele interview
seeAlso: Teach yourself...
3
Wed
2/3
History
 
 

read: compilers, IDE, virtual machine, bytecode, PL Timeline, APL
seeAlso: Worse is Better

4
Mon
2/8
UMBC closed
 
 
seeAlso: snow
note: Last day to add class 2/9
5
Wed
2/10
UMBC closed
 

read: operator precedence, BNF, BNF examples, EBNF, ebnf.pdf
seeAlso: BNF and EBNF: What are they and how do they work?

6
Mon
2/15
Syntax
 03a
HW2 
 

read: CFG, parsing, Chomsky hierarchy,
seeAlso:

7
Wed
2/17
Syntax, Semantics
 
 
read: semantics, attribute grammar, operational semantics, denotational semantics, axiomatic semantics, Verification, proofs.pdf,
8
Mon
2/22
Semantics, Lexical scanning
  
HW2
read: Regular expressions, regular grammars
note: 2/23 is last Day to drop w/o 'W'
9
Wed
2/24
Lexical scanning,
04b,
 
try: flex example
10
Mon
3/1
Parsing
HW3 

read: compact guide to lex and yacc

11
Wed
3/3
Pasing
 

read: parsing, top-down, recursive descent, bottom-up, ll(k), lr(k)
12
Mon
3/8
scheme  
HW3 

do: download PLT scheme, and/or try mzscheme on gl
read: PLT Scheme, FP, What made Lisp different, Lisp FAQ, Scheme
seeAlso: Teach yourself scheme

13
Wed
3/10
scheme
 
 

read: Guide:1, Guide:2,
read: on using DrScheme
view: xkcd
watch: growing a language

-- Mon 3/15 spring break       spring break
-- Wed 3/17 spring break       spring break
14
Mon
3/22
scheme
 
 

read: Casting spels in Lisp,
view: xkcd
read: Guide:3, Guide:4,

15
Wed
3/23
scheme
hw4 
read: variable, scope, closure,
16
Mon
3/29
scheme closures

read: tail recursion, lazy evaluation, delay, currying, Haskell
view: DrScheme v4 tour
run: cfg1.ss, cfg2.ss, cfg.ss, fib.ss

17
Wed
3/31 scheme contol
 
 hw5  
read: crontol, continuation, call/cc, call/cc2,
18
Mon
4/5
mid term exam
 
 
19
Wed
4/7
Scheme closures
 
 
20
Mon
4/12
Scheme
continuations
 
 

read: Python,
explore: python.org
view: Python for Programmers (+ slides)
read: Python for Lisp programmers, Python idioms, PEP8,
view: xkcd,

21
Wed
4/14
Python

Python 1

Python 2

  hw6
 
note: last day to withdraw
read: Python datastructures, control,
view: Advanced Python (+ slides), xkcd
ex: wf?.py
22
Mon
4/19
Python
 
read: comprehensions, PEP202, classes, modules, stdlib
23
Wed
4/21
Python
 
hw6 
read: Python regular expressions, regular expressions, piglatin, tfidf
study: pig.py
24
Mon
4/26
Python OOP


 notes

  guest lecture, Google Python Style Guide
--
Wed
4/28 Scheme in Scheme

scheme in scheme

hw7 
 
read: SICP 4.1, MCE, spelling,
study: mce2.ss, jmc-lisp.ss,
25
Mon
5/3
Scheme in Scheme
 
read:
study: mcscheme
26
Wed
5/5
SIP
read: recursive descent parser, CPS, lexical analysis, intern, weak reference,
try: mycons.ss, fact.py, pyscheme1.6, pyscheme1.7,
27
Mon
5/10
SIP
 
 
read: ltu, clojure, tramp
28
Wed
5/12
types, the rest
 
read: GVR, type system,
view: 50 by 50 , py3k ,
--
Mon
5/17
final exam 3:30-5:30       study: old exams, answers, 2010 final, 2010 answers