
COMP1100: Introduction to
Programming and Algorithms
Semester 2, 2006
Lecture Material and
Schedule
Slides from lectures, associated handouts and sample code will be
posted here as the semester progresses.
All being well, lecture recordings will be available through the
COMP1100 WebCT site.
To help you organise and prioritise this material, I have indicated
the relative importance of the lecture material with a star rating:
| (***)
|
Essential concepts. |
| (**)
|
Important concepts, but not essential for a basic
understanding of the course. |
| (*)
|
Advanced material, interesting
applications of other concepts. |
- Organisation and Introduction
- Computers, Programs, Programming
Languages
- Week 1: Thursday
- Reading: Thompson Chapter 1
- Slides: [pdf] [pdf × 4]
- Introducing GHCi
- Values, Types, Functions (***)
- Conditionals and Tuples (***)
- Week 2: Friday
- Reading: Thompson Chapter 3
- Slides: [pdf] [pdf × 4]
- Lists and Polymorphism (***)
- Week 3: Tuesday
- Reading: Thompson Chapter 5
- Slides [pdf] [pdf × 4]
- Repetition, Recursion and Induction (***)
- Algebraic Data Types (***)
- Week 3: Friday
- Reading: Thompson Chapter 14
- Slides [pdf] [pdf × 4]
- ADT Case Study: A Graphics Package (**)
- Graphics Package Application:
Fractals (*)
- Search Trees and Sorting (**)
- Patterns of Recursion: Higher Order
Functions. (**)
- Data Directed Design (***)
- Input and Output (**)
- Files and Networking (*)
- Type Inference and Unification (*)
- Odds and Ends (**)
- Reasoning about Programs (***)
- Important Lessons So Far - Review
- Introduction to Java
- Classes and Objects (***)
- Lists in Java (***)
- Points and Paths (**)
- Public, Private and all that (*)
- Algebraic Data Types in Java (**)
- Summary: Core Themes and Unifying
Principles.