Com S 541 units -*- Outline -*- What was done (more or less) in 1994-1995 * Introductory ** introduction what the course is about in '93 and '94 was replaced by student discussion and presentations * paradigms a tour of the major paradigms ** object-oriented *** smalltalk *** object-oriented-design larger design issues, pragmatics *** multi-methods an interesting research topic used in '95 only ** functional might also want lambda calculus or type checking here *** standard-ML as intro to functional programming includes concrete data *** functional-advanced functional programming techniques not covered above: streams and lazy data structures, reasoning ** declarative overview of various forms of declarative languages, *** lambda-prolog * Semantics ** syntax for students who haven't had syntax in 531 (not used in this edition of the course, but included here for completeness of Watt's book) ** types basics, data abstraction, polymorphism, type reconstruction sml-type-inference.txt only used in '94-'95 ** Dynamic semantics *** operational-semantics relation to compilers, rewrite rules, terminal transition systems *** denotational-semantics fundamentals, domains, small examples **** state mutation in objects and the store omitted in 1994-95, as covered by mini-Cecil in denotational-semantics **** lambda-calculus simply typed lambda calculus, untyped lambda calculus, mostly covered in discussions of SML and \Prolog in 1994-95 **** fixed-points semantics of recursive definitions, continuity, fixed points revised in 1994-95, but not used * review * course-evaluations