Week |
Lecture Topic |
Lab |
Project |
Homework |
Quizzes |
Reading |
Week 1 1/20 |
Mon: MLK Day |
  |
  |
  |
Mon: no quiz. |
K&R sections 1.1-1.5, 1.7, 1.8, chapter 2 except material on arrays, sections 3.1-3.7 except material on arrays, and 4.1 and 4.2. |
Wed: Course Introduction |
Running gcc and gdb; studying character and number representations |
  |
hw1.pdf (solutions and grading standards) |
Wed: no quiz. |
Fri: Brief survey of "elementary" C |
Fri: No quiz. |
Week 2 1/20 |
Mon: Introduction to C pointers and arrays; variables allocated on the system stack |
Mon: quiz (solutions) |
K&R sections on arrays in chapters 1-4, and sections 4.10, 5.1-5.10 and 6.1-6.5. |
Wed: more on pointers vs. arrays; strings; structs; malloc |
Using malloc |
hw2.pdf(solutions and grading standards) |
Wed: quiz (solutions) |
Fri: Review; double indirection; command-line arguments |
Fri: no quiz |
Week 3 2/3 |
Mon: Storage regions; implementation of mallocand free |
Mon: quiz (solutions) |
K&R sections 6.6-6.9, 7.8.5, and 8.7; "Storage management" in "CS 61C Readings" |
Wed: The "boundary tags" method of storage allocation; alternative methods |
Working with gcc's storage allocator |
Project 1: Lisp Interpreter (due Wed 2/19)
(solution,
grading standards) |
hw3.pdf(solutions and grading standards) |
Wed: quiz (solutions) |
Fri: Memory management with automatic freeing |
Fri: no quiz |
Week 4 2/10 |
Mon: Introduction to assembly language (handout: C vs. assembly language) |
Mon: quiz (solutions) |
P&H sections 3.1-3.3, 3.5-3.7, 3.10-3.11 |
Wed: More on load; running programs; functions in assembly language; register names |
Practice running assembly language programs |
hw4.pdf
(grading standards,
solution to #1,
solution to #2) |
Wed: quiz (solutions) |
Fri: More assembly language examples |
Fri: no quiz |
Week 5 2/17 |
Mon: Presidents Day |
Mon: no quiz since no lecture. |
P&H sections 3.4, 3.8, and 4.1-4.3. |
Wed: Machine language and instruction representation MIPS ISA |
Practice with pointers in assembly language |
Project 2: sprintf
(due Wed 3/12)
(solution,
grading standards) |
No homework this week because of exam on 2/26 |
Wed: quiz.
|
Fri: Integer representation and operations(ppt) |
Fri: no quiz |
Week 6 2/24 |
Mon: Floating point representation and operations Mon: Midterm 1 review session (6:30pm, 0050 Birge Hall) Slides: ppt (part [1] [2] [3]), pdf (part [1] [2] [3]), [3 solutions] |
Mon: quiz. |
P&H sections 4.8-4.10 |
Wed: exam 1 |
Experimenting with integer and floating point representations |
hw6.pdf (solutions and grading standards) |
Wed: no quiz |
Fri: More on floating point; information
about the midterm |
Fri: no quiz |
Week 7 3/3 |
Mon: Assemblers and linkers |
Mon: quiz |
P&H sections 3.9 and A.2-A.4; K&R sections 4.3-4.6 |
Wed: exam 1b |
Working with .o and a.out files |
hw7.pdf (solutions and grading standards) |
Wed: No quiz
|
Fri: More on linkers; compilers vs. interpreters |
Fri: no quiz |
Week 8 3/10 |
Mon: Input and output |
Mon: quiz |
P&H sections 8.3, 8.5, 8.9, A.7, and A.8 |
Wed: The big picture of interrupt handling; the role of buffers |
Input and output by polling |
Project 3: Interrupt Handler in MIPS (due Wed 4/2)
(solution,
grading standards) |
  |
Wed: quiz. |
Fri: Exceptions; details of interrupt-driven i/o |
Fri: no quiz |
Week 9 3/17 |
Mon: More interrupt handling; C and MIPS logical and bit-level operations |
Mon: quiz |
P&H sections 4.4, 4.5, and B.1-B.3 |
Wed: Introduction to logic design |
Practice with interrupt handing code |
hw9.pdf (solutions and grading standards) |
Wed: quiz. |
Fri: More combinational logic examples; PLAs; finite state machines |
Fri: no quiz |
3/24 |
Spring Recess
|
  |
Week 10 3/31 |
Mon: Introduction to Verilog |
  |
Mon: quiz |
P&H sections B.4-B.6; "Verilog tutorial" sections 1-5 |
Wed: More Verilog; CPU organization |
Introduction to Verilog |
Project 4: MIPS hardware simulator (due Wed 4/23) (solution) |
  |
Wed: quiz |
Fri: Verilog and CPU organization |
Fri: no quiz |
Week 11 4/7 |
Sun: Midterm 2 review session (6:30pm, 10 Evans Hall) Slides: ppt (part [1] [2] [3]), pdf (part [1] [2] [3])
Mon: Single CPU control; sequential logic
|
Mon: quiz |
P&H sections 4.5, 5.1-5.3, and B.4-B.6; "Verilog tutorial" sections 6-9 |
Wed: exam 2. |
A Verilog adder |
Wed: no quiz |
Fri: More on CPU organization |
Fri: no quiz |
Week 12 4/14 |
Mon: Pipelining |
Mon: quiz |
P&H sections 6.1 and 6.9 (6.2-6.6 are good background but not required) |
Wed: Pipelining (continued) |
Sequential machines in Verilog |
  |
Wed: quiz.
|
Fri: Pipeline-related optimizations; modern instruction execution |
Fri: no quiz |
Week 13 4/21 |
Mon: Caches |
Mon: quiz |
P&H sections 7.1-7.3 |
Wed: Associative caches (examples) |
Inferring cache parameters |
Project 5: ISA and cache simulator(due Mon 5/12) |
  |
Wed: quiz. |
Fri: More on caches |
Fri: no quiz |
Week 14 4/28 |
Mon: Virtual Memory [ppt][pdf]
Mon: Midterm 3 review session (6:30pm, 100 Lewis Hall) Slides: ppt (part [1] [2]), pdf (part [1] [2] [3])
|
Mon: quiz |
P&H sections 7.4-7.8 |
Wed: exam 3 |
course survey
|
  |
Wed: no quiz |
Fri: Virtual Memory (continued) |
Fri: no quiz |
Week 15 5/5 |
Mon: Performance |
Mon: quiz |
P&H chapter 2 |
Wed: Networks |
Experimenting with the Internet |
  |
Wed: quiz (deadline is 5/13 at 12:15pm). |
Fri: Networks (continued) |
Fri: no quiz |
Week 16 5/12 |
Mon: Review |
Mon: quiz
(deadline is 5/13 at 12:15pm) |
  |
Wed: no class |
  |
  |
  |
Fri: no class |
Week 17 5/19 |
Sunday 5/18: Review Session #1 (100 Lewis, 2:00-5:00pm)
   c/malloc/pointers
[PPT]
[PDF]
[PPT - ex]
[PDF - ex]
   heap management
[PDF]
[PDF - 2spp]
[PDF - ex]
   assembly/machine language
[PDF]
[PDF - 2spp]
[PDF - ex]
|
Monday 5/19: Review Session #2 (10 Evans, 8:00-11:00pm)
   caches/virtual memory
[PPT]
[PDF]
[PPT - ex]
[PDF - ex]
   number representation
[HTML]
[Solutions]
   interrupts/IO/linkers/loaders
[HTML]
[Solutions]
|
Thursday 5/22: FINAL EXAM (12:30-3:30pm) |