CSC326 Lecture Notes

Lecture 1: Introduction (Chapter 1 of Sethi)

Lectures 2-3: Language Description: Syntactic Structure (Chapter 2 of Sethi, Sections 2.4 - 2.6)

Lectures 4-5: Imperative Languages - A C Refresher (Statements) (Chapter 3 of Sethi, Sections 3.1-3.4)

Lectures 6-7: Imperative Languages - Datatypes and Functions (Chapter 4 and parts of Chapter 5 of Sethi, Sections 4.1-4.5, 4.7, 4.9, 5.1-5.4, 5.6)

Lecture 7: Imperative Languages - Functions: Activation Records (Part of Chapter 5 of Sethi, Section 5.5) -- Note: This material will be covered later in the course.

Lectures 8-9: Object-Oriented Languages - Introduction; Classes (Chapter 6 of Sethi, Sections 6.4-6.6, 6.8)

Lecture 10: Object-Oriented Languages - Overloading; Input/Output (Chapter 6 of Sethi, Section 6.5; Chapter 5 of Lippman, Sections 5.1-5.8; Appendix A of Lippman, Sections A.1-A.6)

Lectures 11-12: Object-Oriented Languages - Inheritance; Virtual Functions (Chapter 7 of Sethi, Sections 7.2-7.6; Lippman, Sections 8.1-8.5; 9.1)

Lecture 12: Object-Oriented Languages - Classes, Inheritance, Virtual Functions: Case Study.

Lecture 13: Object-Oriented Languages - OO Design; Function and Class Templates (Chapter 6 of Sethi, Section 6.7; Lippman, Sections 4.2; Chapter 7)

Lecture 14: Functional Programming in Scheme - History; Primitive and Compound Expressions; Definitions (Chapter 10 and 15 of Sethi, Sections 10.1; 15.6)

Lecture 15: Functional Programming in Scheme - Lambda Expressions; Local Bindings (Chapter 10 and 15 of Sethi, Sections 10.1; 15.6)

Lectures 16-18: Functional Programming in Scheme - Lists and their Manipulation; Recursion; Higher-order programming; Association lists; Unrestricted Lambda Expressions (Chapter 10 and 15 of Sethi, Sections 10.2-10.5)

Lecture 19: Logic Programming in Prolog - First-Order Logic; Horn Rules; Logic Transformations; Skolemization

Lecture 20: Logic Programming in Prolog - Substitution; Unification (Chapter 11 of Sethi, Sections 11.1-11.3) --- Using XSB Prolog.

Lecture 21-22: Logic Programming in Prolog - Prolog Summary