CS 24: Introduction to Computer Systems

Instructor: Joe Vanderwaart

TAs: Keegan McAllister (keegan) and Sami Zerrade (szerrade at g mail)
Lab Hours: Tuesdays 8-10 p.m., Wednesdays 9-11 p.m.

Announcements

Schedule, Lectures & Readings

Week   MondayWednesday
31 Mar 1. What is this about? [pdf]
Digital Logic [No Slides]
2. Computing with Electrons [No Slides]
7 Apr 3. Computer Arithmetic; IA-32 Assembly Language [pdf] 4. Introducing the VM24 Virtual Machine [pdf]
14 Apr 5. Subroutines [pdf] 6. Data Representation [pdf]
21 Apr 7. Advanced Control [pdf] 8. Memory Management [pdf]
28 Apr 9. Automatic Memory Management [pdf] 10. Object-Oriented Programming [pdf]
5 May 11. Compiler, Assembler, Linker [pdf] 12. VM24 Linking; Virtual Memory [pdf]
12 May 13. Introduction to Concurrency
19 May
26 May
2 Jun 15. Final Project Ideas and Hints [pdf]

Assignments

Unless specified otherwise, all labs are due at 4 a.m. on a Thursday.

Links

Assembly Programming

Boehm GC Library

VM24

Collaboration Policy

Unlimited collaboration between classmates is allowed only until you start implementing your own solution. Once you have started implementing your solution, you may discuss programming language issues, you may offer or receive advice on specific bugs in your programs or others', and you may share test cases (if applicable), but you may not examine others' work directly (and should not show your work to others). Online research on the subject matter of the course is allowed, but obtaining working solutions from any source is prohibited.

Clarification

Paraphrased from a student's question and the official answer.