Current Catalog Description:

Interaction between low-level computer architectural properties and high-level program behaviors: instruction set design; digital logics and assembly language; processor organization; the memory hierarchy; multicore and GPU architectures; and processor interrupt/exception models.  Credit will not be given for both CSE 201 and CSE 202.  Prerequisite: CSE 17 or CSE 18.

Instructor: Mark Erle, Houria Oudghiri (Spring 2022)

Textbook:

Randal E. Bryant and David R. O'Hallaron, "Computer Systems: A Programmer's Perspective", 3rd Edition, Pearson, 2016, ISBN 978-0134092669

COURSE OUTCOMES

Student will have

  1. Understand data representations as they are interpreted by the machine
  2. Link high-level programming understanding to low-level logic
  3. Understanding of the different levels of the memory hierarchy and how they influence the machine

Prerequisites by Topic

  1. Top-down design
  2. Primitive data types
  3. Repetition and selection
  4. Recursion
  5. Object-oriented programming
  6. Fluency with Java

Major Topics Covered in the Course

  1. Data Representations: Bits/Bytes
  2. Data Representations: Integers/Floating Point
  3. Data Manipulation: Integers/Floating Point
  4. Machine Programming: Control Flow
  5. Machine Programming: Procedures and the Stack
  6. Machine Programming: Alignment and Memory
  7. Selected Machine Optimization Topics
  8. The Memory Hierarchy
  9. Linking
  10. Exceptions and Processes
  11. Signals and Nonlocal Jumps
  12. Virtual Memory
  13. Dynamic Memory Allocations
  14. System I/O
  15. Network Programming