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. Example: call preserving [Example: call preserving slides]
  4. The Processor [“The Processor” slides]
    1. Digital Circuits [Digital Circuits slides]
    2. The Processor [The Processor slides]
    3. Instructions [Instructions slides]
    4. Memory [Memory slides]
    5. Instruction Cycle [Instruction Cycle slides]
    6. Reality [Reality slides]
    7. The Point [The Point slides]
  5. Assembly: Conditions and the Stack [“Assembly: Conditions and the Stack” slides]
    1. Revisiting Commands [Revisiting Commands slides]
    2. Control Flow [Control Flow slides]
    3. Control Example: max [Control Example: max slides]
    4. Conditional Jumps [Conditional Jumps slides]
    5. Control Structures [Control Structures slides]
    6. Status Flags [Status Flags slides]
    7. Aside: Stacks [Aside: Stacks slides]
    8. The Stack [The Stack slides]
    9. Preserving on the Stack [Preserving on the Stack slides]
    10. Local Stack Variables [Local Stack Variables slides]
    11. Recursion [Recursion slides]
    12. Operand Size [Operand Size slides]
  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