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 [“Assembly Introduction” slides]
    1. Our First Assembly [Our First Assembly slides]
    2. Calling Convention [Calling Convention slides]
    3. The Registers [The Registers slides]
    4. Another Example [Another Example slides]
  4. The Processor
  5. More Assembly
  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. Leftovers
  17. Conclusion

Course home page. x86-64 Cheat Sheet.

Schedule

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

* Check CourSys for the actual due dates and times.

Quiz instruction slide