CMPT 383 Lecture Notes

  1. Course Introduction [“Course Introduction” slides]
    1. This Course [This Course slides]
    2. Online Offering Strategy [Online Offering Strategy slides]
    3. Topics (1) [Topics (1) slides]
    4. Overall Goals [Overall Goals slides]
    5. Grades [Grades slides]
    6. Weekly Exercises [Weekly Exercises slides]
    7. Assignments [Assignments slides]
    8. Quizzes [Quizzes slides]
    9. Project [Project slides]
    10. References [References slides]
    11. Expectations [Expectations slides]
    12. What is a program? [What is a program? slides]
    13. Imperative Programming [Imperative Programming slides]
    14. Declarative Programming [Declarative Programming slides]
  2. Functional Programming & Haskell [“Functional Programming & Haskell” slides]
    1. Haskell [Haskell slides]
    2. Haskell Basics [Haskell Basics slides]
    3. Haskell Functions [Haskell Functions slides]
    4. Pattern Matching [Pattern Matching slides]
    5. Conditionals [Conditionals slides]
    6. Repetition [Repetition slides]
    7. List Comprehensions [List Comprehensions slides]
    8. Let and Where [Let and Where slides]
    9. Recursion [Recursion slides]
    10. Isn't Recursion Slow? [Isn't Recursion Slow? slides]
    11. Tail Recursion [Tail Recursion slides]
    12. Creating Tail Recursion [Creating Tail Recursion slides]
    13. Aside: C and Tail Recursion [Aside: C and Tail Recursion slides]
  3. Haskell: Types & Functions [“Haskell: Types & Functions” slides]
    1. Functions and Operators [Functions and Operators slides]
    2. Parts of Lists [Parts of Lists slides]
    3. More List Processing [More List Processing slides]
    4. Haskell Types [Haskell Types slides]
    5. Type Classes [Type Classes slides]
    6. Partially-Applied Functions [Partially-Applied Functions slides]
    7. Curried Functions [Curried Functions slides]
    8. Manipulating Functions [Manipulating Functions slides]
    9. Lambda Expressions [Lambda Expressions slides]
  4. Haskell: Expression Evaluation
  5. What Do Processors Do?
  6. Language Implementations
  7. Languages: Types & Memory
  8. Languages & Concurrency
  9. Language Productivity
  10. Languages: Mixing Languages
  11. Concurrent Programming & Go
  12. Goroutines & Channels
  13. Go Structs
  14. Go Concurrency Patterns
  15. Logic Programming & Prolog
  16. Languages Matter

Course home page.

Schedule, Fall 2020

Week Deliverables (*) Lecture Hour Lecture Date First Slide Video Link
1 1 Sep 10
2 Exer 1 2 Sep 15
3 Sep 15
4 Sep 17
3 Exer 2 5 Sep 22
6 Sep 22
7 Sep 24
4 Exer 3 8 Sep 29
9 Sep 29
10 Oct 1
5 Exer 4 11 Oct 6
12 Oct 6
13 Oct 8
6 Exer 5, Assign 1 14 Oct 13
15 Oct 13
16 Oct 15
7 Quiz 1, Exer 6 17 Oct 20
18 Oct 20
19 Oct 22
8 Exer 7 20 Oct 27
21 Oct 27
22 Oct 29
9 Assign 2 23 Nov 3
24 Nov 3
25 Nov 5
10 Quiz 2, Exer 8 26 Nov 10
27 Nov 10
28 Nov 12
11 Exer 9 29 Nov 17
30 Nov 17
31 Nov 19
12 Exer 10, Assign 3 32 Nov 24
33 Nov 24
34 Nov 26
13 Quiz 3 35 Dec 1
36 Dec 1
37 Dec 3
14 Project 38 Dec 8
39 Dec 8

* Check CourSys for the actual due dates and times.