Overview of CS 330 Programming Languages
George Tzanetakis
gtzan@cs.uvic.ca
Course
Outline
Webboard
(CSC330Spring2004 not CSC330)
Anonymous comment submission form
Online Submission
system
Instructions for running/installing sml
Office hours: TW 10:00-11:00 (send email if you want to meet
another time)
- Bird's eye view of the course (Jan 6,7,9)
- Introduction & History
(Louden ch.
1,2,3)
- First stab at syntax & semantics
(Louden ch. 4)
- More semantics & Introduction to
functional programming (Louden ch. 5,11)
- Programming in SML I (Jan 13,14,16)
- Why SML ? Basic values and operators
(Notes)
- Tuples and Records
(Notes)
- Lists
(Notes)
- Programming in SML II (Jan 20,21,23)
- DataTypes, Tagged values, partial
functions (Notes)
- Finite trees and abstract datatypes
(Notes)
- Higher-order functions
(Notes)
- Programming in SML III (Jan 27, 28, 30)
- Modules I Signatures and
Structures (Notes)
- Modules II Functors
- Input/Output, Interactive programs
(Notes)
- Other functional languages and revision (Feb 3,4,6)
- Iteration and imperative features of
SML (Notes)
- Lazy evaluation and infinite lists in
SML (Louden chapter 11 + notes)
- Haskell (Notes)
- Putting it all together (Feb 10,11,13,17)
- Revision for the midterm + scheme
- Revision for the midterm
- Revision for the midterm + assignment II discussion
- Midterm (15% only
functional programming weeks 1-6, Open book) (February 17)
- Imperative programming (Feb 24, 25, 27)
- Assignment III - Scanning and Parsing in SML (Notes)
- C
(Notes)
- Symbol table
(Louden Chapter 5 - Notes)
- More on imperative programming (March 2,3,5)
- C pointers + dynamic memory allocation
- DataTypes (Louden Chapter 6,9)
- Control + Procedures and Environments
(Louden Chapter 7,8)
- Object-oriented programming (March 9,10,12)
- Intro to Object-oriented programming,
Smalltalk (Louden Chapter
10
- C++
(notes)
- More C++
(notes)
- Object-oriented prorgamming
(March 16, 17,19)
- Constructors, destructors, class
hierachies and smart pointers
- Standard Template Library and Streams
(notes)
- Lambda calculus
(notes + Louden
chapter 11)
- Other paradigms (March 23,24,26)
- More Lambda Calculus + Prolog
- Prolog
(Louden chapter 12)
- Scripting Languages Python
(notes)
- Misc (March 30,31, April 2)
- Review of object-oriented
- Review + morphing programming
languages
- Wrapping up + discussion + final exam preparation