General Info
Assessment
Materials
  Textbooks
  Files
Assignments
Timetable
      

CPSC 449: Principles of Programming Languages - Materials


Textbooks and Sources on the Internet

There are a lot of text books dealing with principles of programming languages but none of them (as usual) covers exactly what we will be looking at in this course. Therefore I have decided not to use any text book. This does not mean that you cannot use any text books. I suggest that you take a look at different text books in our library and if you think that you need additional information on a subject (or want to read a second opinion regarding what I am telling you in the lectures) you can buy the book you like best (or just read the appropriate section).

I assume that all of you already know Java and have found your prefered book describing the syntax and semantics of this language.

In the following I will provide you with links to web resources that contain introductions to the other languages you will have to learn in order to do the assignments to the course:

The above list is not intended to be complete. Be aware that we will have Haskell 98 and SWI-Prolog installed on our machines and these are also the language versions in which we expect the assignments to be performed.


Files to the course

The slides containing the general information on a particular topic that I use in the lectures will be available before the respective lectures here as Acrobat pdf-files (in two formats: one slide per page and the 6 slides per page handout). It is recommended that students take a look at the slides before I go over them in lecture so that they can ask questions.

Date handout format one slide per page
Sep. 9 Organization Organization
Sep. 9 Introduction Introduction
Sep. 12 Java: Representing Data Java: Representing Data
Sep. 18 Java: Control Structures Java: Control Structures
Sep. 19 Java: Manipulating Data Java: Manipulating Data
Sep. 22 Java: Structuring Programs Java: Structuring Programs
Sep. 24 Java: Executing Programs Java: Executing Programs
Sep. 26 Java: Error Handling Java: Error Handling
Sep. 30 Java: I/O Handling Java: I/O Handling
Oct. 1 Java: Language specific constructs Java: Language specific constructs
Oct. 3 The Lambda calculus The Lambda calculus
Oct. 10 Haskell: Data types and control structures Haskell: Data types and control structures
Oct. 16 Haskell: Manipulating data and structuring programs Haskell: Manipulating data and structuring programs
Oct. 23 Haskell: Executing programs and error handling Haskell: Executing programs and error handling
Oct. 25 Haskell: IO-Handling Haskell: IO-Handling
Oct. 28 SLD-resolution SLD-resolution
Nov. 4 PROLOG: Data types and control structures PROLOG: Data types and control structures
Nov. 7 PROLOG: Manipulating data and structuring programs PROLOG: Manipulating data and structuring programs
Nov. 13 PROLOG: Executing programs and error/exception handling PROLOG: Executing programs and error/exception handling
Nov. 18 PROLOG: IO handling PROLOG: IO handling
Nov. 20 Special purpose languages: overview Special purpose languages: overview
Nov. 24 Special purpose languages Special purpose languages
Nov. 28 Special purpose languages: the huddle Special purpose languages: the huddle
Dec. 2 Conclusion Conclusion

to the assignments of the course.

Last Change: 2/12/2013