Topic | Reading (See "Required Textbooks" and "Other References" above) |
---|---|
An introduction to programming paradigms | Required: Chapter 13, Gabbrielli and Martini Optional: "Programming Paradigms for Dummies" article |
Prolog: Introduction | Required: Programming in Prolog Chapter 1 |
Prolog: Syntax and Lists | Required: Programming in Prolog Chapter 2, Sections 2.1, 2.2, 2.3, 2.4 Chapter 3, Sections 3.2, 3.3 |
Prolog: Satisfying Goals and Backtracking | Required: Programming in Prolog Chapter 2, Section 2.6 |
Prolog: Arithmetic, More on Lists | Required: Programming in Prolog Chapter 2, Section 2.5 |
Prolog: More on Lists, Structures, and Recursion | Required: Programming in Prolog Chapter 3, Sections 3.4, 3.5, 3.6 |
Prolog: Input/Output | Required: Programming in Prolog Chapter 5, Section 5.1 |
Prolog: Trees and Databases | |
Prolog: The cut operator | Required: Programming in Prolog Chapter 4, Sections 4.1, 4.2, 4.4 |
Prolog: More on Built-Ins | Required: Programming in Prolog Chapter 6, Sections 6.1, 6.2, 6.3, 6.4, 6.5 |
Prolog: Grammars and Parsing | Required: Programming in Prolog Chapter 9, Sections 9.1, 9.2, 9.3, 9.4, 9.5, 9.6 |
Paradigms Again | Optional: Chapter 1, Tucker and Noonan |
Scheme: Getting Started | Required: The Scheme Programming Language Chapter 1 |
Scheme: Simple Expressions, Evaluation, Arithmetic, Lists, Conditional Expressions, Simple Recursion | Required: The Scheme Programming Language Chapter 2, Sections 2.1 through 2.8 |
Scheme: I/O, Assignment, Vectors, Trees | Required: The Scheme Programming Language Chapter 2, Sections 2.9 (up to page 53) Chapter 3, Sections 3.2 Chapter 4, Sections 4.1, 4.2, 4.4, 4.7 Chapter 6, Sections 6.9 Chapter 7, pages 284-285 |
Scheme: Functions as First-Class Data Values | |
Python | Required: Python Tutorial Chapters 1 and 3 Chapter 4, Sections 4.1, 4.2, 4.3, 4.6 Chapter 6, Sections 6.1, 6.2 Chapter 7, Section 7.2 Optional: Chapter 13, Section 13.5, Tucker and Noonan |
Other Paradigms: Imperative Revisited (Pascal), Constraint Programming | Optional: Gabbrielli and Martini, Chapter 12, Section 12.5.3 |
Other Paradigms: Concurrent Programming | Optional: Tucker and Noonan, Chapter 17, Section 17.1 |