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
-
Fri 9 May Monday's lecture is canceled, with apologies for the short notice.
Wed 7 May The midterm exam is available. Take it in the
24-hour period of your choice finishing no later than 10:30 a.m. next
Wednesday, May 14. You may read the instructions on the first page
only before starting your 24 hours.
[pdf]
[midterm-code.tgz]
-
Sun 4 May Lab 5 is postponed until after the midterm. The
midterm exam will be made available this Wednesday evening; you will
have until one week later to do it; you must finish no more than 24
hours after you start.
-
Tue 29 Apr Some notes on lab
4 have been posted and will be updated with the most frequently
asked questions from office hours.
-
Fri 25 Apr All of lab 4 is now available. It is due one week from yesterday at the usual time.
-
Fri 25 Apr Part 1 of Lab 4 is done. I'll have Part 2
ready by the end of Friday, but just in case anyone wants to start
before then, I'm posting Part 1 now.
-
Fri 18 Apr Lab 3 is available, due one week from yesterday. To make up for the delay in getting it ready, it has only a VM24 part and no IA-32 part.
-
Tue 15 Apr If you are getting error messages about
-lgc or libgc, it is because you did not set up your
environment for working on VM24 by typing
". /cs/courses/cs24/cs24-setup.sh" before trying to
compile or run. See slide 39 of lecture 4.
-
Mon 14 Apr Your TAs have written a short tutorial on GDB, the GNU debugger. In addition,
they will give a mini-lecture on GDB in the lab on Wednesday at 8:30
p.m.
GDB is a powerful tool that can save you a lot of trouble
debugging both C and assembly programs, and you are strongly
encouraged to take this opportunity to learn how to use it.
-
Wed 9 Apr
-
Dr. Vanderwaart's office hours are canceled for
tomorrow, Thursday 10 April.
-
Lab 2 is available, due in one week.
-
Fri 4 Apr Dr. Vanderwaart's office hours are on his home page.
-
Wed 2 Apr Lab 1 is now available and is due at 4
a.m. next Thursday, April 10. Scroll down to find it, and to read the
collaboration policy.
-
Mon 31 Mar Welcome!
Schedule, Lectures & Readings
| Week |
Monday | Wednesday |
| 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
|
| 12 May |
13. Introduction to Concurrency
|
14.
|
| 19 May |
15.
|
16.
|
| 26 May |
16.
|
17.
|
Assignments
Unless specified otherwise, all labs are due at 4 a.m. on a Thursday.
Links
Assembly Programming
- Intel IA-32 Software Developer's
Manuals
- GNU Debugger (gdb) tutorial from your TAs, with links to further information.
VM24
- The VM24 Virtual Machine Specification (current draft)
[pdf]
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.
-
Q: Can I start a portion of the set, finish implementing
that portion, and then collaborate again on a different portion of the
set? For example, on the first set, the 4-bit adder and multiplier
portions seem independent.
A: Yes you can.