CSE 583 Tentative Syllabus
Fall 1997
Functional Programming (~2-3 weeks)
- Issues addressed:
- first-class functions; lexical scoping
- programming without side-effects
- polymorphic type systems; type inference; static vs. dynamic typing
- module systems
- lazy evaluation
- continuations
- Languages studied:
- Course work:
- simple programming assignments and homework in each language
- moderate programming project in one language of student's choosing
- test
Object-Oriented Programming (~2-3 weeks)
- Issues addressed:
- ADTs; inheritance; subclass polymorphism & dynamic binding
- static type systems; subclassing vs. subtyping
- polymorphic type systems
- other issues:
- single vs. multiple dispatching
- classes vs. prototypes
- Languages studied:
- Smalltalk
- C++, Java
- Cecil, Dylan
- Course work:
- simple programming assignments and homework in 2-3 languages
- moderate programming project in one language of student's choosing
- test
Logic and Constraint-Based Programming (~1 week)
- Issues addressed:
- Languages studied:
- Prolog, CLP(R)
- Kaleidoscope
- Course work:
- one simple programming assignment and homework
Formal Semantics (~2 weeks)
- Issues addressed:
- operational semantics; natural semantics
- denotational semantics
- type deduction rules; soundness
- Languages studied:
- Course work:
- one simple homework assignment
Additional Course Work
- course project
- 10-15 page paper on a language issue of student's choosing, topic negotiated
with instructor
- final exam