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
- Understand data representations as they are interpreted by the machine
- Link high-level programming understanding to low-level logic
- Understanding of the different levels of the memory hierarchy and how they influence the machine
RELATIONSHIP BETWEEN COURSE OUTCOMES AND STUDENT ENABLED CHARACTERISTICS
CSE 202 substantially supports the following student enabled characteristics
A. An ability to apply knowledge of computing and mathematics appropriate to the discipline.
J. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
Prerequisites by Topic
- Top-down design
- Primitive data types
- Repetition and selection
- Recursion
- Object-oriented programming
- Fluency with Java
Major Topics Covered in the Course
- Data Representations: Bits/Bytes
- Data Representations: Integers/Floating Point
- Data Manipulation: Integers/Floating Point
- Machine Programming: Control Flow
- Machine Programming: Procedures and the Stack
- Machine Programming: Alignment and Memory
- Selected Machine Optimization Topics
- The Memory Hierarchy
- Linking
- Exceptions and Processes
- Signals and Nonlocal Jumps
- Virtual Memory
- Dynamic Memory Allocations
- System I/O
- Network Programming