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

Tentative Class Schedule

Monday Tuesday Wednesday Friday
August 25
New
Student
Days
August 26
New
Student
Days
August 27
Grinnell
College
Registration
August 29
Introduction
   Problem-Solving Process
   Module 000: Linux Intro.
   Linux Examples
September 1
Module 000: Linux Basics
   Laboratory Exercise:
   Terminal window, emacs
   Setting up .bashrc
   commands:
      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
   eSpeak
   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
   Casting
Due: Module 000 Project
September 12
Module 001: Conditionals
   Laboratory Exercise
   Scribbler 2:    Motion, Sensors
September 15
Module 001: Loops [Extra Credit]
   Laboratory Exercise
   Loops
   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
   Clarify/review
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
   Testing
   More values and addresses as parameters
[Deadline: Ex. Cr. Lab on Loops]
September 30
Representation of Numbers
   binary integers
       sign/magnitude,
       ones complement
       twos complement
Due: Supp. Problem 2
October 1
Data Representation [Extra Credit]
   Laboratory Exercise
   Integer representation
       Non-negatives
       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
   characters
   strings
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
   Unions
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
Examples
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
   Stacks
   Queues
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
Thanksgiving
Recess
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
    include
    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