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

Tentative Class Schedule

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