The organization and behavior of real computer systems at the
assembly-language level. The mapping of statements and
constructs in a high-level language into sequences of machine
instructions is studied, as well as the internal representation of
simple data types and structures. Numerical computation is
examined, noting the various data representation errors and
potential procedural errors. May not be repeated. SC
The quizzes are multiple-choice, online, and open-book. However, you may not ask other people to help you during the quizzes. You will need to study the textbook chapter
before the lecture covering it, and take the quiz before that class.
Each quiz is due 30 min. before class. Each quiz has 5 questions, you have ten minutes to take it, and you can make two attempts. If you take the quiz twice, the higher score counts.
Final Exam available online throughout the week.
It covers chapter 0-12, except Ch 5 and 6. It will be worth 80 pts.
You can only take it once.
All Quizzes due 30 min. before class
Lecture Slides
0. Introduction ·
PDF ·
Keynote
1. By the C, by the C, by the Beautiful C ·
PDF ·
Keynote
2. A Deeper Dive into C Programming ·
PDF ·
Keynote
3. C Debugging Tools ·
PDF ·
Keynote
4. Binary and Data Representation ·
PDF ·
Keynote
8. 32-bit x86 Assembly (IA32) ·
PDF ·
Keynote
7. 64-bit x86 Assembly (x86-64) ·
PDF ·
Keynote
9. ARM Assembly ·
PDF ·
Keynote
11. Storage and the Memory Hierarchy ·
PDF ·
Keynote
12. Code Optimization ·
PDF ·
Keynote
13. The Operating System ·
PDF ·
Keynote
14. Leveraging Shared Memory in the Multicore Era (Part 1) ·
PDF ·
Keynote
14. Leveraging Shared Memory in the Multicore Era (Part 2) ·
PDF ·
Keynote
15. Looking Ahead: Other Parallel Systems and Parallel Programming Models ·
PDF ·
Keynote