Schedule / Notes

*** 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

CMSC 313 Schedule of Classes
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