Max Willsey and Luis Ceze
{mwillsey,luisceze}@cs.uw.edu

Announcements

  • The midterm will be takehome. See Piazza for details.
  • Make sure you are in the Piazza, that's where course communication will take place.

Welcome to CSE 351! We have put the most important links at the top, categorized by what they're for. Please check them out!


Events


Asking Questions, Getting Assistance, Giving Feedback

It is very important to us that you succeed in CSE 351! Outside of lectures and sections, there are different ways to ask questions or discuss course issues:
  1. Visit office hours (see Events above)! In addition, if you need extra time or need to discuss something in private, feel free to email and make an appointment.
  2. Make a public post about course content on the , where they benefit the whole class. If other students can answer your question, you may receive a response more quickly than you would by emailing the course staff. This is the best way of asking questions about homework, labs, and other class-related topics. Before posting, please search through the questions that have already been posted in case someone has already asked the same question.
  3. Make a private post to just the course staff on the with any questions or issues you would prefer to discuss privately. While you can email staff members individually when that makes sense, contacting the whole staff is generally preferred to get a faster response and to let the whole staff see what issues students are having.
  4. Send to the course staff. The instructor will try to address the issue and share it with others only as appropriate, but will not have a way to reply to you without addressing the whole class. Note: the instructor will have no way to reply directly to the individual providing feedback.

Course Staff

Instructors

Teaching Assistants

Britt Henderson
hendeb96
AD/BD
Lukas Joswiak
ljoswiak
AC/BC
Josie Lee
jlee98
AB/BB
Wei Lin
veilam
AE
Daniel Snitkovskiy
snitkdan
AC/BC
Luis Vega
vegaluis
AE
Kory Watson
korywat
AA/BA
Ivy Yu
yuey26
AB/BB

Schedule

  • Binary
  • Memory & Data
  • Integers
  • Floating Point
  • x86 Programming
  • The Stack & Procedures
  • Executables
  • Arrays
  • Structs
  • Buffer Overflows
  • Caches
  • Processes
  • Virtual Memory
  • Memory Allocation
  • Java and C
 
#
Day
Topic
Labs
Homework
Introduction, Binary
CSPP: § 1.0-1.10, 2.0-2.1.1 (p. 1-28, 31-39)
Memory & Data I
CSPP: § 2.1.2-2.1.3 (p.39-48)
Binary, Programming in C
Memory & Data II
CSPP: § 2.1.4-2.1.9 (p. 49-59)
Data III & Integers I
CSPP: § 2.2-2.2.3 (p. 59-70)
Integers II
CSPP: § 2.2.4-2.3 (p. 70-108)
Pointers, Bitwise Operators
Floating Point
CSPP: § 2.4-2.5 (p. 108-128)
x86-64 Intro
CSPP: § 3.0-3.4 (p. 164-191)
Integers, Floating Point
x86-64 Programming I
CSPP: § 3.5 (p. 191-199)
x86-64 Programming II
CSPP: § 3.6.0-3.6.6 (p. 200-220)
x86-64 Programming III & The Stack
CSPP: § 3.6.7-3.6.8 (p. 220-238)
x86 Assembly, GDB
The Stack & Procedures
CSPP: § 3.7.0-3.7.3 (p. 238-248)
Procedures II
CSPP: § 3.7.4-3.7.6, 3.2 (p. 248-255, 169-177)
Midterm Review
Procedures & Arrays
CSPP: § 3.8 (p. 255-265)
Structs
CSPP: § 3.9 (p. 265-276)
Buffer Overflow, Memory & Caches Intro
CSPP: § 3.10, 3.12 (p. 276-293, 309-311)
TAKEHOME MIDTERM EXAM
Array and Structs, Buffer Overflow
Memory & Caches I
CSPP: § 6.0-6.3 (p. 579-614) (skim 6.1)
Memory & Caches II
CSPP: § 6.4 (p. 614-633)
Caches
Memory & Caches III
CSPP: § 6.5-6.7 (p. 633-649)
System Control Flow & Processes
CSPP: § 8.0-8.4 (p. 732-756)
Virtual Memory I
CSPP: § 9.0-9.3 (p. 802-810)
Caches & Processes
Virtual Memory II
CSPP: § 9.4-9.6 (p. 811-825)
Virtual Memory III
CSPP: § 9.7-9.8 (p. 825-833) (skim 9.8)
Memory Allocation I
CSPP: § 9.9-9.9.11 (p. 839-853)
Memory Allocation
Memory Allocation II
CSPP: § 9.9.12-9.10 (p. 854-870)
Memory Allocation III
CSPP: § 9.11-9.12 (p. 870-876)
Memory Bugs, Java and C
Final Review
Parallelism & Course Wrap-up