*** Schedule subject to changes announced in class. ***
Lecture notes are provided as Microsoft PowerPoint (PPT) files.
Printing the slides before class as
"Handouts", 3 per page, with "comment pages" makes it easy to follow along and take notes at the same time.
Readings: Read this material before class.
KR means The C Programming Language
by Kernighan and Ritche
EC means
Essential C by Nick Parlante from Stanford (used with permission)
BO means Computer Systems: A Programmer's Perspective by Bryant and O'Hallaron
Problems:
These are suggested practice problems for you to try. They are not required and will not
be graded. Some are "Practice Problems" in the text for which solutions are given.
Some are "Homework Problems" for which no solution is given. Feel free to work on these together and ask your instructor or TA for assistance. Here again
KR means The C Programming Language
by Kernighan and Ritche
BO means Computer Systems: A Programmer's Perspective by Bryant and O'Hallaron
In the BO text, "Homework Problems" are rated by difficulty.
= quick problem to try out an idea
= 5 - 15 minutes to complete and may involve writing/running a program
= substantial problems that may require hours to complete
= lab assignment that may take 1-2 weeks to complete
Class # | Date | Title | Topics | Reading | Problems | Assign |
---|---|---|---|---|---|---|
1 | W 9/2 | Overview | Course Organization, syllabus | |||
2 | M 9/7 | Labor Day | No Class | |||
3 | W 9/9 | C Programming 1 | Vars, Ops, Control, Functions | KR 1,2,3 or EC 1,2, 4 |
KR 1-11, 1-12, 1-15, 2-2, 2-4, 2-6, 3-5 |
|
4 | M 9/14 | C Programming 2 | Console and File I/O | KR 7.1 - 7.7 App B1 |
KR 7-1, 7-6, | P1 out |
5 | W 9/16 | C Programming 3 | Arrays, Structs, Strings | KR 1.6, 5.1-5.3 or EC 3 |
KR 1-13 | |
6 | M 9/21 | C Programming 4 | Pointer basics | KR 5.4, 5.5 or EC 6 |
KR 5-3, 5-4 | |
7 | W 9/23 | C Programming 5 | Pointers and Arrays malloc |
KR 5.6 - 5.10 or EC 6 |
KR 5-5, 5-9 | P1 due P2 out |
8 | M 9/28 | C Programming 6 | Code Organization | KR 4.3 - 4.6, 4.11 or EC 5 |
KR 4-14 | |
9 | W 9/30 | Intro to assembly | BO 1 | |||
10 | M 10/5 | Bits and Bytes | Bit Operations | BO 2.1 | BO 2.45, 2.46 | P2 due |
11 | W 10/7 | Integers | 2's Complement | BO 2.2 - 2.3 | BO 2.51, 2,54 | P3 out |
12 | M 10/12 | MIDTERM 1 | ||||
13; | W 10/14 | Assembly 1 | Registers and Memory | BO 3.1 - 3.5 | BO 3.1 - 3.6 | |
14 | M 10/19 | Assembly 2 | Conditions, Loops | BO 3.6 | BO 3.32 | P3 due |
15 | W 10/21 | Assembly 3 | Switches and Jump Tables | BO 3.6 | BO 3.33, 3.34 | P4 out |
16 | M 10/26 | Assembly 4 | Procedures | BO 3.7 | BO 3.31 | |
17 | W 10/28 | Assembly 5 | Arrays | BO 3.8 | ||
18 | M 11/2 | Assembly 6 | Structs, Unions | BO 3.9 | BO 3.36 | |
19 | W 11/4 | Assembly 7 | Advanced Topics | BO 3.10, 3.11, 3.13 | ||
20 | M 11/9 | TBD | P4 due P5 out |
|||
21 | W 11/11 | MIDTERM 2 | ||||
22 | M 11/16 | Memory Heirarchy | Memory, Cache, Disk | BO 6.1 - 6.3 | BO 6.2 - 6.5 | |
23 | W 11/18 | Intro to VM | Virtual Memory | BO 10.1 - 10.5 | BO 10.1, 10.2 | |
24 | M 11/23 | Dynamic Memory 1 | Dynamic Memory allocation | BO 10.9 | BO 10.6 - 10.7 | P5 due P6 out |
25 | W 11/25 | Dynamic Memory 2 | Dynamic Memory allocation | BO 10.10 - 10.13 | BO 10.16 | |
26 | M 11/30 | Linking | Compiling, Linking, Symbols | BO 7.1 - 7.9 | ||
27 | W 12/2 | Control Flow 1 | Processes, fork( ) | BO 8.1 - 8.4 | BO 8.1 - 8.3 | |
28 | M 12/7 | Control Flow 2 | Signals | BO 8.5 - 8.8 | BO 8.5 - 8.7 | |
29 | W 12/9 | Control Flow 3 | Signals | BO 8.5 - 8.8 | BO 8.5 - 8.7 | |
30 | M 12/14 | Final Exam Review | P6 due | |||
F 12/18 3:30 - 5:30pm LH 3 |
FINAL EXAM |