CSC161 2010F Imperative Problem Solving : Handouts

Course Syllabus

This handout is also available in PDF.

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

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

  Date Topic Reading Lab Work Due
Week 1
01 Friday, 27 August 2010 An Introduction to the Course   GNU/Linux I  
02 Monday, 30 August 2010 Linux Basics   GNU/Linux II  
03 Tuesday, 31 August 2010 Linux Files and Permissions   GNU/Linux III  
04 Wednesday, 1 September 2010 An Introduction to C K&R 1   Assignment 1: Fun with Linux  
05 Friday, 3 September 2010 Getting Started with Emacs and Compiling C Programs Raymond 1 ; Wikipedia on Emacs Emacs and Beyond  
Week 2
06 Monday, 6 September 2010 Types and Operators K&R 2 ; GNU Coding Standards, 5.1-5.4    
07 Tuesday, 7 September 2010 Basic Input and Output in C K&R 7.1-7.4 Input and Output  
08 Wednesday, 8 September 2010 Input and Output, Continued   Input and Output Assignment 2: Basic C  
09 Friday, 10 September 2010 Input and Output, Continued2   Input and Output  
Week 3
10 Monday, 13 September 2010 The Command Line K&R 5.10 The Command Line in C  
11 Tuesday, 14 September 2010 The Command Line, Continued   The Command Line in C  
12 Wednesday, 15 September 2010 Binary Representation and Bitwise Operators K&R 2.9, 6.9 ; Wright: A Tutorial on Binary Numbers. C's Bitwise Operations Assignment 3: Explaining Assignments and I/O  
13 Friday, 17 September 2010 IEEE Floating Point Representation Stone & Rebelsky: IEEE Floating Point Representation of Real Numbers.    
Week 4
14 Monday, 20 September 2010 Operators and Precedence Review K&R 2    
15 Tuesday, 21 September 2010 Pause for Breath      
16 Wednesday, 22 September 2010 Control Flow: Conditionals (1) K&R 3.1-3.3 Conditionals in C Assignment 4: Fun with Bits and Beyond  
17 Friday, 24 September 2010 Review Session      
Week 5
18 Monday, 27 September 2010 Control Flow: Conditionals (2) K&R 3.4    
19 Tuesday, 28 September 2010 Control Flow: Loops K&R 3.5-3.6    
20 Wednesday, 29 September 2010 Control Flow: Miscellaneous K&R 3.7-3.8 Loops in C Exam 1  
21 Friday, 1 October 2010 Functions and Parameters K&R 4.1-4.3 Basic Functions in C  
Week 6
22 Monday, 4 October 2010 Discussion of Exam 1      
23 Tuesday, 5 October 2010 Building Libraries K&R 4.3-4.6 Simple Libraries in C  
24 Wednesday, 6 October 2010 Unit Testing Unit Testing 101 for Non-Programmers    
25 Friday, 8 October 2010 Interactive Testing   Testing in C  
Week 7
26 Monday, 11 October 2010 Program Correctness and assert Meyer: Applying Design by Contract    
27 Tuesday, 12 October 2010 Debugging with DDD Debugging with DDD: Summary and Sample Session Debugging with DDD  
28 Wednesday, 13 October 2010 More Debugging with DDD   Debugging with DDD Assignment 5: Sorting Out Sorting  
29 Friday, 15 October 2010 Macros K&R 4.11 Macros and the C Preprocessor  
Fall Break!
Week 8
30 Monday, 25 October 2010 Make, Revisited Managing Projects with GNU Make, Chapters 1 and 2.    
31 Tuesday, 26 October 2010 Pointers K&R 5.1-5.2 Pointers  
32 Wednesday, 27 October 2010 Pause for Breath     Assignment 6: A Testing Library  
33 Friday, 29 October 2010 Pointers and Arrays K&R 5.3-5.4 Pointers, Revisited  
Week 9
34 Monday, 1 November 2010 Strings K&R 5.5, B3 Strings  
35 Tuesday, 2 November 2010 Pause for Breath      
36 Wednesday, 3 November 2010 Multi-dimensional arrays K&R 5.6-5.9 Multi-Dimensional Arrays Exam 2  
37 Friday, 5 November 2010 Sorting      
Week 10
38 Monday, 8 November 2010 Discussion of Exam 2      
39 Tuesday, 9 November 2010 Pointers to Functions K&R 5.10-5.11 Function Pointers  
40 Wednesday, 10 November 2010 Sorting, Revisited     Assignment 7: Sorting Out Sorting, Again  
41 Friday, 12 November 2010 Pause for Breath      
Week 11
42 Monday, 15 November 2010 Files K&R 7.5-7.7 Files  
43 Tuesday, 16 November 2010 Structures K&R 6.1-6.5, 6.7 Structures in C  
44 Wednesday, 17 November 2010 Hash Tables K&R 6.5 and 6.6   Assignment 8  
45 Friday, 19 November 2010 Hash Tables, Continued K&R 6.6    
Week 12
46 Monday, 22 November 2010 Hash Tables Lab   Hash Tables.  
47 Tuesday, 23 November 2010 Linked Lists (1)      
48 Wednesday, 24 November 2010 Linked Lists (2)     Assignment 9  
Week 13
49 Monday, 29 November 2010 Alterative Linked Structures: Doubly-Linked and Circularly Linked Lists      
50 Tuesday, 30 November 2010 Designing a List ADT      
51 Wednesday, 1 December 2010 Designing More ADTs: Stacks and Queus      
52 Friday, 3 December 2010 Building Stacks and Queues from Arrays      
Week 14
53 Monday, 6 December 2010 Linked Stacks     Exam 3  
54 Tuesday, 7 December 2010 Linked Queues      
55 Wednesday, 8 December 2010 Shell Programming (1)      
56 Friday, 10 December 2010 Discussion of Exam 3      

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 Mon Nov 22 21:18:05 2010.
The source to the document was last modified on Sun Sep 12 20:07:12 2010.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CSC161/2010F/Handouts/schedule.html.

Samuel A. Rebelsky, rebelsky@grinnell.edu