Instructor: Tony Nowatzki (cs-page)
Please put [cs33] in the subect line when you send emails.
Instructor/TA | Office Hours & Room | Piazza Day | Lab Lead | |
---|---|---|---|---|
Tony Nowatzki | Eng.VI 472: M4-5pm, Th9-10am | tjn cs.ucla.edu | ||
Victor Zhang | Boelter 3256: Tues 10:45am-12:45pm | vzhang cs.ucla.edu | Tuesday | 1. Data Lab |
Fred Chu | Boelter 3256: Mon 1-2pm, Wed 6-7pm | fchu[at]cs.ucla.edu | Thursday | 5. Thread Lab |
Dylan Kupsh | Boelter 3256: Thurs 4:30-6:30pm | dkupsh@ucla.edu | Monday | 2. Bomb Lab |
Salekh Parkhati | Boelter 3256: T/Th 12:45-1:45pm | salekh cs.ucla.edu | Friday | 4. Performance Lab |
Aditya Mishra | Boelter 3256: Monday 3-3:50 PM; Boelter 3256: Friday 4-5 PM; Discord (Ask for CS33 Role):https://discord.gg/zAqm8r4s89 | admish@g.ucla.edu | Wednesday | 3. Attack Lab |
In this course our aim is to introduce the key concepts of computer systems. We will learn the basics of many topics, including computer architecture, computer organization, operating systems and concurrency. First we build from the bottom up with detailed explanations of number systems, how they are employed in the instruction set architecture. Then, using x86 as an example, we explain how programs are represented to the hardware, how to view and manipulate these abstractions (eg. procedure calls, stacks, interrupts, and traps) directly in assembly language, and how operating systems provide virtualization and process management. We finally demonstrate how this knowledge applies to improving system security and performance of a real system.
CS31 and CS32 are official prereqs. It is possible to take CS32 and CS33 together, but it will significantly increase the difficulty of the course.