CSC 161 Grinnell College Spring, 2014
Imperative Problem Solving and Data Structures

Tentative Class Schedule

Monday Tuesday Wednesday Friday
January 20
   Problem-Solving Process
   Module 000: Linux Intro.
   Linux Examples
January 21
Module 000: Linux Basics
   Laboratory Exercise:
   Terminal window, emacs
   Setting up .bashrc
      mkdir, cd, ls, mv, cp
   Help, printing
January 22
Module 000: Intro. to C
   Overview of C
      Syntax, compiling, running
   Laboratory Exercise:
   Getting Started with C
January 24
Module 000: More Intro. C
   Laboratory Exercise
   C Examples
   More Linux Capabilities
January 27
Module 000: Programming the Scribbler 2
   Laboratory Exercise
   Scribbler 2: connect, disconnect, sound
January 28
Module 000: Project [Required]
   Program a Song
   (class devoted to collaboration)
January 29
Module 001: Examples
January 31
Module 001: Types, variables
   Laboratory Exercise
Due: Module 000 Project
February 3
Module 001: Conditionals
   Laboratory Exercise
   Scribbler 2:    Motion, Sensors
February 4
Module 001: Loops [Extra Credit]
   Laboratory Exercise
   Scribbler 2 Movement
February 5
Module 001: Project [Required]
   Song and Dance
February 7
Module 010: Examples
   Functions with parameters
   Value, reference parameters
   Use of Scribbler 2 sensors
Due: Supp. Problem 1
February 10
Module 010: functions
   Laboratory Exercise
   Functions with, w/o parameters
   Value parameters
   void functions
February 11
Module 010: functions with value parameters, continued
   More examples
Introduction to reference parameters
Start Laboratory Exercise
   More functions
Due: Module 001 Project
February 12
Module 010: more functions
   Laboratory Exercise
   Value and reference parameters
February 14
Hour Test 1
February 17
Module 010: one-dim. arrays
   Laboratory Exercise
    1-dimensional arrays
    Functions with arrays
February 18
Module 010: functions, testing
   Laboratory Exercise
   Function pointers
   More value, reference parameters
February 19
Module 010: Project [Required]
   Follow a moving object
Due: Supp. Problem 2
February 21
Representation of Numbers
   binary integers
       ones complement
       twos complement
February 24
Data Representation [Extra Credit]
   Laboratory Exercise
   Integer representation
       Sign-magnitude notation
       Ones- and twos-complement
   bitwise operations
February 25
Data Representation [required]
   Laboratory Exercise
   Floating-point numbers
   Roundoff errors
   Numerical errors
Due: Module 010 Project
February 26
Module 011: Examples
February 28
Module 011: characters & strings
   Laboratory Exercise
Due: Floating-Point Lab
March 3
Module 011: Input with scanf
   Laboratory Exercise
   Formatted input: scanf
March 4
Module 011: Character-by-chatater input and output
   Laboratory Exercise
   Character-by-character input/output: getchar, putchar
   Formatted output: printf
March 5
Hour Test 2
March 7
Module 011: Project [required], Continued
   Robot follows interactive commands
March 10
Module 100: Examples
March 11
Module 100: Transform a Pixel
   Laboratory Exercise
Due: Module 011 Project
March 12
Module 100: Two-Dim. Arrays [required]
   Laboratory Exercise
   Processing pixels in a picture
March 14
Module 100: Insertion Sort
   Laboratory Exercise
Due: Supp. Problem 3
March 17
Spring Break
March 18
Spring Break
March 19
Spring Break
March 21
Spring Break
March 24
Spring Break
March 25
Spring Break
March 26
Spring Break
March 28
Spring Break
March 31
Module 100: Machine-level operations
   Bitwise operations
April 1
Module 100: Project [required]
   Picture Transformation
Due: 2-D Array Lab
April 2
Module 101: Examples
April 4
Module 101: Pointers
   Laboratory Exercise
Due: Module 100 Project
April 7
Module 101: Scheme-like Lists
Getting started
April 8
Module 101: Linked Lists [required]
   Laboratory Exercise
April 9
Module 101: Linked Lists [Extra Credit]
   Laboratory Exercise
Due: Supp. Problem 4.
April 11
Pause for Breath
April 14
Module 101: Program Mgmt. [Extra Credit]
   Laboratory Exercise
April 15
Module 101: Project [extra creedit]
   Insert theme into song
Due: Linked Lists
April 16
Module 110: Examples
April 18
Module 110: Stacks - lists
   Laboratory Exercise
April 21
Module 110: Queues - arrays [required]
   Laboratory Exercise
April 22
Module 110: Queues - lists [required]
   Laboratory Exercise
Lab continued
April 23
Module 110: Bash scripts [Extra Credit]
   Laboratory Exercise
   use with testing
April 25
Module 110: Project [required]
   Stack implementations
April 28
Module 111: Examples
   bitwise operations
Due: Queues' Lab
April 29
Module 111: Comm.-line Args
   Laboratory Exercise
April 30
Module 111: Files
   Laboratory Exercise
read and write to files
Due: Module 110 Project
May 2
Hour Test 3
(Revised Date)
May 5
Module 111: Files
   Laboratory Exercise
    separate compilation, separate linking
May 6
Module 111: Project [required]
   robot motion with logging
Due: Supp. Problem 5
May 7
Module 111: Project [required]
   robot motion with logging
May 9
Semester Wrap-Up
   Questions, Review
   End-of-course evaluations
Due: Module 111 Project