| Schedule | Readings | Labs | Homework | Mechanics | Contact | |
| CSC 151-01, 2007S » Schedule | ||||||
This schedule is tentative. Readings and labs will be posted as the semester progresses. Check this page frequently for updates.
Readings should be completed before the class for which they are assigned. Assignments are due at the start of class.
Skip to week: Current 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Final
| Week | Date | Topic | Reading | Lab | Assignments | |
|---|---|---|---|---|---|---|
| 1 | Mon | Jan 22 | An introduction to algorithms | |
||
| Tue | Jan 23 | An introduction to CS 151 | The MathLAN environment | Getting started in the MathLAN | Due: Homework 1 | |
| Wed | Jan 24 | Working in DrScheme | The DrScheme programming environment | Finish yesterday's
lab Working in DrScheme |
||
| Fri | Jan 26 | Beginning Scheme | Beginning Scheme | Beginning Scheme | Due: Homework 2 | |
| 2 | Mon | Jan 29 | Symbols and lists | Symbols Lists |
Symbols and lists (Also: Partners assigned) |
|
| Tue | Jan 20 | Numeric values | Numeric values in Scheme |
Numbers | Due: Homework 3 | |
| Wed | Jan 31 | Characters and strings | Character values in
Scheme String values in Scheme |
Characters and strings | ||
| Fri | Feb 2 | Procedure definitions | Defining your own Scheme procedures | Defining procedures | Due: Homework 4 | |
| 3 | Mon | Feb 5 | Boolean values and predicates | Boolean values and predicate procedures | Booleans
and predicates (New partners assigned) |
|
| Tue | Feb 6 | Conditionals | Conditional evaluation in Scheme | Conditional expressions | Due: Homework 5 | |
| Wed | Feb 7 | Recursion (1) | Repetition through recursion | Recursion | ||
| Fri | Feb 9 | Recursion (2) Detour: Scheme's evaluation strategy |
Review Repetition through recursion | Continue Recursion (if time) | Due: Homework 6 | |
| 4 | Mon | Feb 12 | More recursion with lists | Review Repetition through recursion | Finish
Recursion Do More recursion with lists |
|
| Tue | Feb 13 | Recursion with natural numbers (1) | Numeric recursion | Numeric recursion
(New partners assigned) |
Due: Homework 7 | |
| Wed | Feb 14 | Recursion with natural numbers (2) | Writing recursive procedures | Finish Numeric recursion | ||
| Fri | Feb 16 | Introduction to local bindings | Naming values with local bindings | Naming values with local bindings | Due:
Homework 8 Distributed: Exam 1 |
|
| 5 | Mon | Feb 19 | Procedures as contracts | Procedures as contracts | Documentation,
preconditions, and postconditions (New partners assigned) |
|
| Tue | Feb 20 | Unit testing | Unit testing | Unit testing | ||
| Wed | Feb 21 | Local procedure bindings and recursion | Local procedure bindings and recursion | Local procedure bindings and recursion | ||
| Fri | Feb 23 | Analyzing procedures | Analyzing procedures | Analyzing procedures | Due: Exam 1 | |
| 6 | Mon | Feb 26 | Discussion of Exam 1 | None! | ||
| Tue | Feb 27 | Input and output | Generating extra output Input for interactive programs |
Input and output (New partners assigned) |
Due: Homework 9 Extended to Friday |
|
| Wed | Feb 28 | Recursion with files | Files | Files | ||
| Fri | Mar 2 | Simulation | Randomness and simulation | Randomness and simulation | Due:
Homework 9 Due: Homework 10 |
|
| 7 | Mon | Mar 5 | Project 1: Text generation (Part 1) | Text generation (1) | Text generation (1) (Choose your own partners!) |
|
| Tue | Mar 6 | Project 1: Text generation (Part 2) | Text generation (2) | Text generation (2) | Due: Homework 11 | |
| Wed | Mar 7 | Project 1: Text generation (Part 3) | None! | Finish Text generation (2) Work on your project |
|
|
| Fri | Mar 9 | Project 1: Text generation (Part 4) | None! | Work on your project | Due: Homework 12 |
|
| 8 | Mon | Mar 12 | Pairs and pair structures | Pairs and pair structures | Pairs and pair structures | |
| Tue | Mar 13 | Deep recursion | Deep recursion | Deep recursion | ||
| Wed | Mar 14 | Vectors | Vectors | Vectors | Due: Project 1 | |
| Fri | Mar 16 | Usability | Usability | Usability testing | ||
| Spring break | ||||||
| 9 | Mon | Apr 2 | The GIMP | The GNU Image Manipulation Program | Getting Started with the GIMP | |
| Tue | Apr 3 | Script-Fu | Scripting the GIMP with Script-Fu | Generating GIMP Images with Script-Fu | ||
| Wed | Apr 4 | Writing Script-Fu procedures | Writing Script-Fu procedures | Writing Script-Fu procedures | ||
| Fri | Apr 6 | Random drawings | Random drawings | Random drawings | Due: Exam 2 | |
| 10 | Mon | Apr 9 | Algorithmic art | Algorithmic art | Algorithmic art | |
| Tue | Apr 10 | Discussion of Exam 2 | None! | Due: Homework 13 | ||
| Wed | Apr 11 | Image filtering | Image filtering with Script-Fu | Image filtering | ||
| Fri | Apr 13 | Line drawings | Representing line drawings | Making line drawings | Due: Homework 14 | |
| 11 | Mon | Apr 16 | Higher-order Programming, Summarized | None! | Lecture: Higher-order procedures Finish the lab on Making line drawings |
|
| Tue | Apr 17 | Association lists and searching | Association lists | Association lists | Due: Homework 15 | |
| Wed | Apr 18 | Binary search | Search algorithms | Binary search | ||
| Fri | Apr 20 | Introduction to sorting | None! | Due: Homework 16 | ||
| 12 | Mon | Apr 23 | Insertion sort | Insertion sort | Insertion sort | |
| Tue | Apr 24 | Merge sort | Merge sort | Merge sort | Due: Homework 17 | |
| Wed | Apr 25 | Quicksort | Quicksort | Quicksort | ||
| Fri | Apr 27 | Variable-arity procedures | Variable-arity procedures | Variable-arity procedures | Due: Homework 18 | |
| 13 | Mon | Apr 30 | Objects | Objects | Objects | |
| Tue | May 1 | Abstract data types & stacks | Stacks | Stacks | ||
| Wed | May 2 | Queues | Queues | Queues | ||
| Fri | May 4 | Queues lab | Queues | Due: Exam 3 | ||
| 14 | Mon | May 7 | Discussion of Exam 3 | |||
| Tue | May 8 | What is computer science?, revisited | ||||
| Wed | May 9 | Review for final | Due: Project report 2 | |||
| Fri | May 11 | Wrap-up | ||||
| Fri | May 18 | Final exam, 9 a.m. | ||||
Janet Davis (davisjan@cs.grinnell.edu)
Created January 19, 2007