CSC324 Lecture Notes

Lecture 1: Introduction (Chapter 1 of Sethi)

Lectures 2-3: Language Description - Syntactic Structure (Chapter 2 of Sethi)

Lectures 4-5: Imperative Languages - Some Basic Principles Illustrated in C or Pascal (Chapter 3 of Sethi, Sections 3.1-3.4; Chapter 4, Sections 4.1-4.5, 4.7, 4.9)

Lecture 6: Imperative Languages - Some Basic Principles Illustrated in C or Pascal (Chapter 5 of Sethi, Sections 5.1-5.4

Lectures 7-8: Object-Oriented Languages - Introduction; Classes; Overloading (Chapter 6 of Sethi, Sections 6.4-6.6, 6.8; Chapter 5 of Lippman, 2nd ed., Sections 5.1-5.8)
Note: don't be afraid of C++ ! Concepts are more important than the actual syntax, though this should also be known !

Lecture 8: Object-Oriented Languages - Input/Output (Appendix A of Lippman, 2nd ed., Sections A.1-A.6). Note: similar locations in the 3rd edition should be easy to find, but I will post them soon; material on this set of slides is not relevant for the exams, but only for doing your assignment 1B.

Lecture 9-10: Object-Oriented Languages - Inheritance; Virtual Functions (Chapter 7 of Sethi, Sections 7.2-7.6; Lippman, 2nd ed., Sections 8.1-8.5; 9.1)

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

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

Lecture 12: Functional Programming in Scheme - Lambda Expressions; Local Bindings; Lists and their Manipulation; Recursion (Chapter 10 and 15 of Sethi, Sections 10.2-10.5; 15.6)

Lecture 13: Functional Programming in Scheme - Higher-order programming; Association lists; Unrestricted Lambda Expressions (Chapter 10 and 15 of Sethi, Sections 10.2-10.5) NOTE: Please read this slides in advance to be able to do Assignment 2: You may need the notion of unrestricted lambda expressions to program some of the functions in the assignment. See also Tutorial 7..

The Prolog slides are taken from the well-known "Mylopoulos" notes. These notes contain a few advanced notions that I will just mention and skip.

I have a 4-to-1 version of the notes in hard copy. If there is anyone who can't print the 2-to-1 version for any reason, please email me to make an arrangement for photocopying the 4-to-1 version.

Using XSB Prolog.

Lecture 14: Logic Programming in Prolog - Foundations: Introduction; Logical Foundation; Unification and Proof Trees; Prolog Search Mechanism.

Lecture 15: Logic Programming in Prolog - List Processing.

Lecture 15: Logic Programming in Prolog - Further Prolog Examples Illustrating Accumulators.

Lecture 16: Logic Programming in Prolog - Control.