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

Tentative Class Schedule

Monday Tuesday Wednesday Friday
January 19
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, Makefile
   commands: mkdir, cd, ls, mv, cp
   Help, printing
January 23
Module 000: Intro. to C
   Overview of C
      Syntax, compiling, running
   Laboratory Exercise:
   Getting Started with C
January 26
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
January 30
Module 001: Examples
February 2
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 6
Module 001: Project [Required]
   Song and Dance
Due: Supp. Problem 1
February 9
Module 010: Examples
   Functions with parameters
   Passing values and addresses as parameters
   Use of Scribbler 2 sensors
February 10
C Basics Quiz

Module 010: functions
   Laboratory Exercise
   Functions with, w/o parameters
   Passing value as parameters
   void functions
February 11
Module 010: functions with value parameters, continued
   More examples
Introduction to passing address as parameters
Start Laboratory Exercise
   More functions
February 13
Module 010: more functions
   Laboratory Exercise
   Values and addresses as parameters
Due: Module 001 Project
February 16
Module 010: one-dim. arrays
   Laboratory Exercise
    1-dimensional arrays
    Functions with arrays
February 17
Module 010: functions, testing
   Laboratory Exercise
   Function pointers
   More values and addresses as parameters
Due: Supp. Problem 2
February 18
Module 010: Project [Required]
   Follow a moving object
[Deadline: Ex. Cr. Lab on Loops]
February 20
Representation of Numbers
   binary integers
       ones complement
       twos complement
February 23
Data Representation [Extra Credit]
   Laboratory Exercise
   Integer representation
       Sign-magnitude notation
       Ones- and twos-complement
Due: Module 010 Project
February 24
Data Representation [Required]
   Laboratory Exercise
   Floating-point numbers
   Roundoff errors
   Numerical errors
February 25
Machine-level Explorations
   Machine-level operations
      Bitwise operations
   Debugging with GDB
February 27
Module 011: Examples
Due: Floating-Point Lab
March 2
Module 011: characters & strings
   Laboratory Exercise
March 3
Module 011: Input with scanf
   Laboratory Exercise
   Formatted input: scanf
March 4
Module 011: Character-by-character input and output[Required]
   Laboratory Exercise
   Character-by-character input/output: getchar, putchar
   Formatted output: printf
March 6
Hour Test 1
March 9
Module 011: Project [Required], Continued
   Robot follows interactive commands
[Deadline: Ex. Cr. Lab on Integer Representation]
March 10
Module 100: Grouping Data
Introduction, Examples
   2D arrays
Due: Lab on Character-by-character input and output
March 11
   Module 100: structs
Laboratory Exercise:
March 13
Module 100: Two-Dim. Arrays
Laboratory Exercise
   2D arrays
Due: Module 011 Project
March 16
Spring Break
March 17
Spring Break
March 18
Spring Break
March 20
Spring Break
March 23
Spring Break
March 24
Spring Break
March 25
Spring Break
March 27
Spring Break
March 30
Module 100: Transforming Pictures[Extra Credit]
   Laboratory Exercise
   Processing pixels in a picture
March 31
Module 100: Insertion Sort
   Laboratory Exercise
April 1
Module 100: Project [Required]
   Picture Transformation
April 3
Module 101: Examples
Due: Supp. Problem 3
April 6
Module 101: Pointers
   Laboratory Exercise
April 7
Module 101: Scheme-like Lists
Getting started
Due: Module 100 Project
April 8
Module 101: Linked Lists [required]
   Laboratory Exercise
April 10
Module 101: Linked Lists for a Movie [Extra Credit]
   Laboratory Exercise
April 13
Module 101: Program Mgmt. [Extra Credit]
   Laboratory Exercise
[Deadline: Ex. Cr. Lab on Transforming Pictures]
April 14
Module 101: Project [Required]
   Music composition
Due: Linked Lists
April 15
Module 101: Project, Continued [Required]
   Music composition
April 17
Module 110: Examples
Due: Module 101 Project
April 20
Module 110: Stacks
   Laboratory Exercise
Due: Supp. Problem 4
April 21
Module 110: Queues - arrays [Required]
   Laboratory Exercise
April 22
Hour Test 2
April 24
Module 110: Queues - lists [required]
   Laboratory Exercise
Lab continued
April 27
Module 110: Bash scripts [Extra Credit]
   Laboratory Exercise
   use with testing
April 28
Module 110: Project [required]
   Stack implementations
[Deadline: Ex. Cr. Lab on Program Management]
Due: Queues' Lab (both list and queue implementations)
April 29
Module 111: Comm.-line Args
   Laboratory Exercise
May 1
Module 111: Files
   Laboratory Exercise
read and write to files
Due: Module 110 Project
May 4
Module 111: Files
   Laboratory Exercise
    Processing file data
May 5
Module 111: Project [required]
   robot motion with logging
Due: Supp. Problem 5
May 6
Module 111: Project [required]
   robot motion with logging
May 8
Semester Wrap-Up
   Questions, Review
   End-of-course evaluations
Due: Module 111 Project
[5:00 pm Deadline: All Ex. Cr. Labs and Supplemental Problems]
Absolute deadline for all course work: 5:00 pm