CSC161 2011S Imperative Problem Solving : Handouts

Course Schedule

This handout is also available in PDF.

This is an abbreviated course schedule. Like everything else in this course, it is likely to change.

Weeks: 1, 2, 3, 4, 5, 6, 7, 8, break, 9, 10, 11, 12, 13, 14.

  Date Topic Reading Lab Work Due
Week 1
01 Monday, 24 January 2011 An Introduction to the Course   GNU/Linux I  
02 Tuesday, 25 January 2011 Linux Basics   GNU/Linux II Assignment 0: Introductory Survey  
03 Wednesday, 26 January 2011 Linux Files and Permissions Raymond 1 GNU/Linux III  
04 Friday, 28 January 2011 Linux, Continued   GNU/Linux III Assignment 1: Fun with Linux  
Week 2
05 Monday, 31 January 2011 An Introduction to C K&R 1 Compiling C  
06 Tuesday, 1 February 2011 Getting Started with Emacs and Compiling C Programs Wikipedia on Emacs Emacs and Beyond  
07 Wednesday, 2 February 2011 Snow Day     Assignment 2: C Basics  
08 Friday, 4 February 2011 Types and Operators K&R 2.1-2.6 and GNU Coding Standards, 5.1-5.4 C Types  
Week 3
09 Monday, 7 February 2011 Types and Operators, Continued K&R 2.7-2.8, 2.10-2.12 More Types  
10 Tuesday, 8 February 2011 Basic Input and Output in C K&R 7.1-7.2, 7.4 Input and Output  
11 Wednesday, 9 February 2011 Input and Output, Continued   Input and Output Assignment 3: Explaining Types and Assignment  
12 Friday, 11 February 2011 The Command Line K&R 5.10 The Command Line in C  
Week 4
13 Monday, 14 February 2011 The Command Line, Continued   The Command Line in C  
14 Tuesday, 15 February 2011 Binary Representation and Bitwise Operators K&R 2.9, 6.9 ; Wright: Tutorial on Binary Numbers C's Bitwise Operations  
15 Wednesday, 16 February 2011 Binary Representation, Continued   C's Bitwise Operations Exam 1: Linux and C Basics  
16 Friday, 18 February 2011 IEEE Floating-Point Representation Stone & Rebelsky: IEEE Floating-Point Representation of Real Numbers    
Week 5
17 Monday, 21 February 2011 Discussion of Exam 1      
18 Tuesday, 22 February 2011 Operators and Precedence Review K&R 2 Operators and Precedence  
19 Wednesday, 23 February 2011 Control Flow: Conditionals (1) K&R 3.1-3.3 Conditionals in C Assignment 4: Fun with Bits, Bytes, and Beyond  
20 Friday, 25 February 2011 Control Flow: Conditionals (2) K&R 3.4    
Week 6
21 Monday, 28 February 2011 Control Flow: Loops K&R 3.5-3.6    
22 Tuesday, 1 March 2011 Control Flow: Miscellaneous K&R 3.7-3.8 Loops in C  
23 Wednesday, 2 March 2011 Functions and Parameters K&R 4.1-4.3 Basic Functions in C Assignment 5  
24 Friday, 4 March 2011 Building Libraries K&R 4.3-4.6 Simple Libraries in C  
Week 7
25 Monday, 7 March 2011 Unit Testing Unit Testing    
26 Tuesday, 8 March 2011 Interactive Testing   Testing in C  
27 Wednesday, 9 March 2011 Program Correctness and assert Design by Contract C's assert Macro Assignment 6  
28 Friday, 11 March 2011 Macros K&R 4.11 Macros and the C Preprocessor  
Week 8
29 Monday, 14 March 2011 Pause for Breath      
30 Tuesday, 15 March 2011 Pointers K&R 5.1-5.2 Pointers  
31 Wednesday, 16 March 2011 Pointers and Arrays K&R 5.3-5.4 Pointers, Revisited Exam 2  
32 Friday, 18 March 2011 Early Break      
Spring Break!
Week 9
33 Monday, 4 April 2011 Discussion of Exam 2      
34 Tuesday, 5 April 2011 Make, Revisited Managing Projects with GNU Make, Chapters 1 and 2    
35 Wednesday, 6 April 2011 Strings K&R 5.5, B3 Strings  
36 Friday, 8 April 2011 Strings, Continued   Strings  
Week 10
37 Monday, 11 April 2011 Debugging with DDD Debugging with DDD, Summary and Sample Session Debugging with DDD  
38 Tuesday, 12 April 2011 Multi-dimensional arrays K&R 5.6-5.9 Multi-Dimensional Arrays  
39 Wednesday, 13 April 2011 Multi-dimensional arrays, revisited   Multi-Dimensional Arrays  
40 Friday, 15 April 2011 Sorting      
Week 11
41 Monday, 18 April 2011 Pointers to Functions K&R 5.10-5.11 Function Pointers  
42 Tuesday, 19 April 2011 Files K&R 7.5-7.7 Files  
43 Wednesday, 20 April 2011 Structures K&R 6.1-6.5, 6.7 Structures in C Assignment 7  
44 Friday, 22 April 2011 Linked Lists (1)   Linked Lists.  
Week 12
45 Monday, 25 April 2011 Linked Lists (2) Linked List Code (Examples/LinkedLists Linked Lists.  
46 Tuesday, 26 April 2011 Linked Lists (3)      
47 Wednesday, 27 April 2011 Linked Lists (4)     Assignment 8  
48 Friday, 29 April 2011 Linked Lists (5) Lists (Examples/list.h, Examples/list.c) Lists, Revisited  
Week 13
49 Monday, 2 May 2011 Hash Tables K&R 6.5 and 6.6 Hash Tables.  
50 Tuesday, 3 May 2011 Designing More ADTs: Stacks and Queues Wikipedia on Stacks and Queues    
51 Wednesday, 4 May 2011 Building Stacks and Queues from Arrays     Exam 3  
52 Friday, 6 May 2011 Linked Stacks and Queues      
Week 14
53 Monday, 9 May 2011 Discussion of Exam 3      
54 Tuesday, 10 May 2011 Shell Programming (1) Bash Scripts (Henry Walker on Bash Scripts) Marge Coahran and Henry Walker's Lab on Bash Scripts  
55 Wednesday, 11 May 2011 Shell Programming (2)   Marge Coahran and Henry Walker's Lab on Bash Scripts Assignment 9  
56 Friday, 13 May 2011 Wrapup      

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Tue May 10 10:34:20 2011.
The source to the document was last modified on Wed Mar 9 01:43:05 2011.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2011S/Handouts/schedule.html.

Samuel A. Rebelsky, rebelsky@grinnell.edu