Pre-requisites
CSCI.2400 Models of Computation.
Course Themes
Programming Language Essentials. Logic, Functional, Concurrent Object-Oriented Programming Paradigms.
Learning Outcomes
When the students have successfully completed this course, they will be able to:
Date | Topic | Handouts | Grade |
---|---|---|---|
09/01 | Introduction to programming languages: history,
syntax, semantics, essentials, paradigms. Logic programming: introduction, Horn clauses |
Intro,PLP11A.pdf
rainy.pl |
|
09/04 |
Logic programming: predicate calculus--Programming Assignment 1 Due 09/21 |
PLP11B.pdf
Assignment-1 |
20% |
09/08 |
Prolog: resolution, unification, search, backtracking, cut, lists |
PLP11C.pdf
cut.pl  cut2.pl  cut3.pl  cut4.pl  cut5.pl  loop.pl  not2.pl  append.pl |
|
09/11 |
Prolog: arithmetic, equalities, I/O, meta-interpreters, natural language parsing |
PLP11D.pdf
SourceCodes_PLP11D |
|
09/15 |
Logic programming: accumulators, difference lists |
PLP11E,Sections3.4.3-3.4.4.pdf
accumulators.oz accumulators.pl dlists.oz |
|
09/18 | Lambda calculus: alpha-renaming, beta conversion,
applicative and normal evaluation orders, Church-Rosser theorem,
combinators |
combinators |
|
09/22 | Introduction to programming concepts: lists, pattern matching, Oz -- Programming Assignment 2 Due 10/13 |
Sections1.1-1.8.pdf
scope.oz comb.oz lists.oz pascal.oz rainy.oz |
20% |
09/25 | Introduction to programming concepts: correctness, complexity |
Sections1.9-1.17.pdf concepts.oz store.oz | |
09/29 | Higher order programming |
eta.oz
hop.oz
lambda-booleans.oz
lambda-numbers.oz rec.oz seq.oz |
|
10/02 | Declarative programming, grammars, syntax and semantics. | Section2.1.pdf scope2.oz | |
10/06 | Single-assignment store, kernel language syntax |
Sections2.2-2.3.pdf
single-assignment.oz recursion.oz |
|
10/09 | Kernel language semantics: concepts, abstract machine |
Sections2.4.1-2.4.2
Kernel |
|
10/16 | Kernel language semantics: non-suspendable,suspendable statements, closures |
Sections2.4.3-2.4.4
dataflow.oz |
|
10/20 | From kernel to practical language, exceptions |
Sections2.4.5,2.6,2.7.pdf
semantics.oz |
|
10/23 |
Exam I review | ||
10/27 |
Exam I | 20% | |
10/30 | Memory management, tail-form optimization, garbage collection. |
Section2.5.pdf
memleak.oz |
|
11/03 | Iterative computation, higher order programming, abstract data types |
Sections3.1-3.2,3.6-3.7.pdf
sqrt.oz fold.oz stackADT.oz |
|
11/06 | Exam I Solutions |
||
11/10 | Dynamic and static typing, state, parameter passing mechanisms |
Sections2.8.3,6.1-6.4.4.pdf
types.oz parameterpassing.oz |
|
11/13 |
Concurrent OO programming in SALSA: actor creation, message passing, internal state, token-passing continuations, join blocks, first-class continuations |
SALSA-Concurrency Salsa_Examples |
20% |
11/17 |
Distributed programming in SALSA: universal naming, remote communication, actor migration |
SALSA-Distributed.pdf
dist_examples.zip |
|
11/20 |
Concurrent and Distributed Programming Patterns in SALSA |
SALSA-Patterns
|
|
11/24 |
No Lecture |