CMPT 295 Lecture Notes

  1. Course Introduction [“Course Introduction” slides]
    1. This Course [This Course slides]
    2. Grading [Grading slides]
    3. Lectures and Labs [Lectures and Labs slides]
    4. Mini-Project [Mini-Project slides]
    5. Quizzes/Exams [Quizzes/Exams slides]
    6. References [References slides]
    7. Assumptions [Assumptions slides]
    8. Expectations [Expectations slides]
    9. Computer Systems [Computer Systems slides]
    10. Hardware [Hardware slides]
    11. Topics (1) [Topics (1) slides]
  2. Revisiting C [“Revisiting C” slides]
    1. Command Line C [Command Line C slides]
    2. The Heap [The Heap slides]
    3. Multi-file C [Multi-file C slides]
    4. Compiling C [Compiling C slides]
    5. Aside: Integers in C [Aside: Integers in C slides]
  3. Assembly Introduction
  4. The Processor
  5. Assembly: Conditions and the Stack
  6. Binary Representations
  7. Bit Tricks
  8. Assembly: Using Memory
  9. Memory & Storage
  10. Processor Tricks
  11. Tools
  12. Floating Point
  13. Data Parallelism
  14. Returning to C
  15. Threads
  16. Conclusion

Course home page. x86-64 Cheat Sheet.

Schedule

Week Deliverables (*) Lecture Hour Lecture Date First Slide
1 1 May 6
2 May 8
3 May 10
2 Lab 1 4 May 13
5 May 15
6 May 17
3 Lab 2 7 May 20
8 May 22
9 May 24
4 Lab 3 10 May 27
11 May 29
12 May 31
5 Lab 4 13 Jun 3
14 Jun 5
15 Jun 7
6 Lab 5, Quiz 1 16 Jun 10
17 Jun 12
18 Jun 14
7 Lab 6 19 Jun 17
20 Jun 19
21 Jun 21
8 Lab 7 22 Jun 24
23 Jun 26
24 Jun 28
9 Lab 8 25 Jul 1
26 Jul 3
27 Jul 5
10 Lab 9, Quiz 2 28 Jul 8
29 Jul 10
30 Jul 12
11 Lab 10 31 Jul 15
32 Jul 17
33 Jul 19
12 Lab 11 34 Jul 22
35 Jul 24
36 Jul 26
13 Lab 12 37 Jul 29
38 Jul 31
39 Aug 2
14+

* Check CourSys for the actual due dates and times.

Quiz instruction slide