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 [Topics 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
  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 May 13
2, 3 May 15
2 Lab 1 4 May 20
5, 6 May 22
3 Lab 2 7 May 27
8, 9 May 29
4 Lab 3 10 Jun 3
11, 12 Jun 5
5 Lab 4 13 Jun 10
14, 15 Jun 12
6 Lab 5 16 Jun 17
17, 18 Jun 19
7 Lab 6, Quiz 1 19 Jun 24
20, 21 Jun 26
8 Lab 7 22 Jul 1
23, 24 Jul 3
9 Lab 8 25 Jul 8
36, 27 Jul 10
10 Lab 9 28 Jul 15
29, 30 Jul 17
11 Lab 10, Quiz 2 31 Jul 22
32, 33 Jul 24
12 Lab 11 34 Jul 29
35, 36 Jul 31
13 Lab 12 37 Aug 5
38, 39 Aug 7
14+ Mini-Project, Final Exam

* Check CourSys for the actual due dates and times.