Schedule / Notes

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

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

CMSC 313 Schedule of Classes *** Schedule subject to changes announced in class. ***
Class # Day Date Title Reading Problems Assign
1 Th Jan 26 Overview      
2 Mon/Tue Jan 30/31 / Overview / C Basics KR 1,2,3
EC 1,2,4
KR 1-11, 1-12, 1-15, 2-2, 2-4, 2-6, 3-5 P0 Out
3 Wed/Th Feb 1/2 Input / Output KR 7.1 - 7.7, App B1 KR 7-1, 7-6,  
4 Mon/Tue Feb 6/7 Chars and Strings KR 1.5, B2, B3
EC 3
KR 1-8, 1-9, 1-10 P1 Out
5 Wed/Th Feb 8/9 Chars and Strings KR 1.5, B2, B3
EC 3
KR 1-8, 1-9, 1-10  
6 Mon/Tue Feb 13/14 Structs / Unions KR 6.1 - 6.3
6.7 - 6.9
  P1 Due
7 Wed/Th Feb 15/16 Functions KR 4
EC 7
KR 4-1, 4-12 P2 Out
8 Mon/Tue Feb 20/21 Separate Compilation KR 4
EC 7
KR 4-1, 4-12  
9 Wed/Th Feb 22/23 Program Debugging      
10 Mon/Tue Feb 27/28 Pointer Basics KR 5.1, 5.2
or EC 3
KR 5-3, 5-4 P2 Due
P3 Out
11 Wed/Th Feb 29/Mar 1 Pointers and Arrays KR 5.3 - 5.4
or EC 6
KR 5-9  
12 Mon/Tue Mar 5/6 Advanced Pointers KR 5.6, 5.10    
13 Wed/Th Mar 7/8 Advanced Pointers KR 5.6, 5.10    
14 Mon/Tue Mar 12/13 Pointer Case Study / Exam Review     P3 Due
P4 Out
15 Wed/Th Mar 14/15 Exam 1   Exam 1 Study Guide  
  Mon/Tue Mar 19/20 SPRING BREAK      
  Wed/Th Mar 21/22 SPRING BREAK      
16 Mon/Tue Mar 26/27 Bits and Bytes BO 2.1 BO 2.3, 2.4, 2.5
2.8, 2.10, 2.14, 2.16
 
17 Wed/Thurs Mar 28/29 Bits and Bytes BO 2.1 BO 2.3, 2.4, 2.5
2.8, 2.10, 2.14, 2.16
 
18 Mon/Tues April 2/3 Integers BO 2.2 - 2.3 BO 2.23, 2.26, 2.31
2.38, 2.40, 2.43, 2.44
 
19 Wed/Th Apr 4/5 Registers and Memory BO 3.1 - 3.5 BO 3.1 - 3.12 P4 Due
P5 Out
20 Mon/Tues Apr 9/10 Registers and Memory BO 3.1 - 3.5 BO 3.1 - 3.12  
21 Wed/Th Apr 11/12 Conditions and Loops BO 3.6.1 - 3.6.5 BO 3.13, 3.14, 3.16 - 3.18, 3.20 - 3.23  
22 Mon/Tues Apr 16/17 Switches BO 3.6.7 BO 3.28. 3.29  
23 Wed/Th Apr 18/19 Functions BO 3.7 BO 3.30 - 3.34  
24 Mon/Tue Apr 23/24 Functions BO 3.7 BO 3.30 - 3.34 P5 Due
P6 Out
25 Wed/Tu Apr 25/26 Arrays BO 3.8 BO 3.35 - 3.37  
26 Mon/Tue Apr 30/May 1 Structs and Unions BO 3.9, 3.10 BO 3.39 - 3.42  
27 Wed/Th May 2/3 Buffer Overflow BO 3.12 BO 3.43  
28 Mon/Tu May 7/8 Memory Hierarchy BO 6.1 - 6.3 BO 6.1 - 6.4  
29 Wed/Th May 9/10 Memory Hierarchy BO 6.1 - 6.3 BO 6.1 - 6.4  
  Sun May 13       P6 Due
  Mon May 14 Section 2 Final Exam (3:30pm)      
  Tues May 15 Section 1 Final Exam (1:00pm)