Note: Problem classes / practicals may not be used, depending on the availability of teaching support this term. This will be discussed in the lectures.
Lecture 1 | ........ | 1. INTRODUCTION, HAIKU OR KARATE |
Lecture 2 | ........ | 2. Lambda Calculus - a simple introduction |
Lecture 3 | ........ | 3. Lambda Calculus - a (slightly) deeper look |
Lecture 4 | ........ | 4. Miranda (and her friend Amanda) |
Lecture 5 | ........ | 5. Miranda - patterns, functions, recursion and lists |
Lecture 6 | ........ | 5a. previous lecture continued |
Lecture 7 | ........ | 6. Recursion and the Lambda Calculus |
Lecture 8 | ........ | 7. Designing Functional Programs |
Lecture 9 | ........ | 7a previous lecture continued |
Lecture 10 | ........ | 8. Designing Functional Programs (2) - structural induction, modes of recursion, lazy evaluation |
Lecture 11 | ........ | 9. Higher Order Functions |
Lecture 12 | ........ | 10. Higher Order Functions (2) - capturing common forms of recursion over lists |
Lecture 13 | ........ | 11. Algebraic Types |
Lecture 14 | ........ | 12. Recursive Algebraic Types (RATs!) |
Lecture 15 | ........ | 13. Example Program - evaluating arithmetic expressions and lists as functions |
Lecture 16 | ........ | 14. Lists as Functions (2) - reversed lists |
Lecture 17 | ........ | 15. Lists, trees and graphs (links programming with implementation) |
Lecture 18 | ........ | 16. Introduction to Implementation Issues |
Lecture 19 | ........ | 17. Graph Reduction |
Lecture 20 | ........ | 17a. previous lecture continued |
Lecture 21 | ........ | 18. Automatic Memory Management |
Lecture 22 | ........ | 19. Memory Allocation Techniques |
Lecture 23 | ........ | 19a. previous lecture continued |
Lecture 24 | ........ | 20. Garbage Collection Techniques |
Lecture 25 | ........ | 20a. previous lecture continued |
Lecture 26 | ........ | 21. Parallel Graph Reduction |
Lecture 27 | ........ | 21a. previous lecture continued |