CS151.01 2009F Functional Problem Solving : Handouts

Course Syllabus

This handout is also available in PDF.

This is an abbreviated course syllabus. Like everything else in this course, it is likely to change.

Weeks: 1, 2, 3, 4, 5, 6, 7, break, 8, 9, 10, 11, 12, 13, 14.

  Date Topic Reading Lab Work Due
Week 1
01 Friday, 28 August 2009 An Introduction to Algorithms   Drawing Smiley Faces  
02 Monday, 31 August 2009 An Introduction to CSC151 Grinnell's Linux Environment Getting Started with Linux Assignment 1: Class Basics  
03 Tuesday, 1 September 2009 An Introduction to the GIMP The GNU Image Manipulation Program Getting Started with the GIMP  
04 Wednesday, 2 September 2009 An Introduction to Scheme The MediaScript Program-Development Environment & Beginning Scheme & How Scheme Evaluates Expressions (version 1) Starting Scheme  
05 Friday, 4 September 2009 Programing the GIMP Tools Programming the GIMP Tools Scripting the GIMP Tools
Writeup 1: 2d, 3, and 4.
Quiz 1
Week 2
06 Monday, 7 September 2009 Computing with Symbols and Numbers Numeric Values & Symbolic Values Numeric Computation  
07 Tuesday, 8 September 2009 Drawings as Values Drawings as Values Drawings as Values Lab Writeup 1: Scripting the GIMP Tools  
08 Wednesday, 9 September 2009 Writing Your Own Procedures Writing Your Own Procedures & How Scheme Evaluates Expressions (version 2)   Assignment 2: Algorithms for Drawing, Revisited  
09 Friday, 11 September 2009 Laboratory: Writing Your Own Procedures Writing Your Own Procedures & How Scheme Evaluates Expressions (version 2) Writing Your Own Procedures Quiz 2
Week 3
10 Monday, 14 September 2009 Raster Graphics and RGB Colors Raster Graphics: Images from Pixels and Colors and RGB Colors Raster Graphics and RGB Colors  
11 Tuesday, 15 September 2009 A Design Perspective     Lab Writeup 2: Writing Your Own Procedures  
12 Wednesday, 16 September 2009 Transforming Colors Transforming RGB Colors Transforming RGB Colors Assignment 3: Drawing Generally and Concisely  
13 Friday, 18 September 2009 Transforming Images Transforming Images Transforming Images Quiz 3
Week 4
14 Monday, 21 September 2009 Documenting Programs and Procedures Documenting Your Procedures    
15 Tuesday, 22 September 2009 Homogeneous Lists: Making and Manipulating Groups of Drawings Making and Manipulating Homogeneous Lists Making and Manipulating Lists of Drawings Lab Writeup 3: Transforming RGB Colors  
16 Wednesday, 23 September 2009 Anonymous Procedures Anonymous Procedures Anonymous Procedures Exam 1: Scheme Basics  
17 Friday, 25 September 2009 Turtle Graphics Turtle Graphics Turtle Graphics Quiz 4
Week 5
18 Monday, 28 September 2009 Iteration Iteration Iteration  
19 Tuesday, 29 September 2009 Pause for Breath      
20 Wednesday, 30 September 2009 Naming Local Values Local Bindings Local Bindings Assignment 4: Exploring Colors  
21 Friday, 2 October 2009 Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures Quiz 5
Week 6
22 Monday, 5 October 2009 Conditionals Conditionals Conditionals  
23 Tuesday, 6 October 2009 Iterating Over Positions Building Images by Iterating Over Positions Building Images by Iterating Over Positions Lab Writeup 4: Boolean Values and Predicate Procedures  
24 Wednesday, 7 October 2009 Revisiting Lists Building Data Structures with Heterogeneous Lists Exploring Lists Assignment 5: A Miscellany of Image Models  
25 Friday, 9 October 2009 Pause for Breath     Quiz 6
Week 7
26 Monday, 12 October 2009 Recursion Basics Recursion Basics Recursion Basics  
27 Tuesday, 13 October 2009 Recursion Basics, Continued Recursion Basics & How Scheme Evaluates Expressions (version 2) Continue Recursion Basics  
28 Wednesday, 14 October 2009 Recursion with Helper Procedures Recursion with Helper Procedures Recursion with Helper Procedures Assignment 6: Conditionals  
29 Friday, 16 October 2009 Other Forms of List Recursion List Recursion, Revisited List Recursion, Revisited Quiz 7
Fall Break!
Week 8
30 Monday, 26 October 2009 Preconditions, Revisited Verifying Preconditions Verifying Preconditions  
31 Tuesday, 27 October 2009 Naming Local Procedures Local Procedure Bindings Local Procedure Bindings  
32 Wednesday, 28 October 2009 Numeric Recursion Numeric Recursion Numeric Recursion  
33 Friday, 30 October 2009 Geometric Art Through Numeric Recursion Geometric Art Geometric Art Quiz 8
Week 9
34 Monday, 2 November 2009 Randomized (Unpredictable) Drawing Randomized Drawing Randomized Drawing  
35 Tuesday, 3 November 2009 Characters and Strings Characters and Strings Characters and Strings  
36 Wednesday, 4 November 2009 Vectors Vectors Vectors Exam 2: Control  
37 Friday, 6 November 2009 Pairs and Pair Structures Pairs and Pair Structures Pairs and Pair Structures Quiz 9
Week 10
38 Monday, 9 November 2009 Trees Trees Trees  
39 Tuesday, 10 November 2009 Analyzing Procedures Analyzing Procedures Analyzing Procedures  
40 Wednesday, 11 November 2009 Testing Your Procedures Testing Your Procedures Testing Your Procedures Assignment 7: String Art  
41 Friday, 13 November 2009 Project Ideas Project Ideas Playing with Project Ideas Quiz 10
Week 11
42 Monday, 16 November 2009 Association Lists Association Lists Association Lists  
43 Tuesday, 17 November 2009 Higher-Order Procedures, Revisited Design Patterns and Higher-Order Procedures Design Patterns and Higher-Order Procedures  
44 Wednesday, 18 November 2009 Binary Search Search Algorithms Binary Search Assignment 8: Trees; Project Proposal  
45 Friday, 20 November 2009 Time to Work on Projects     Quiz 11
Week 12
46 Monday, 23 November 2009 Introduction to Sorting      
47 Tuesday, 24 November 2009 Insertion Sort Sorting Insertion Sort Project  
48 Wednesday, 25 November 2009 Merge Sort Merge Sort Merge Sort  
Week 13
49 Monday, 30 November 2009 Objects in Scheme Building Objects in Scheme Building Objects in Scheme  
50 Tuesday, 1 December 2009 Project Assessment: Images      
51 Wednesday, 2 December 2009 Project Assessment: Algorithms      
52 Friday, 4 December 2009 Objects, Continued: Implementing Turtles Building Objects in Scheme Building Objects in Scheme Quiz 12
Week 14
53 Monday, 7 December 2009 File Basics Files Files  
54 Tuesday, 8 December 2009 What is Computer Science? Revisited     Exam 3: Types and Algorithms  
55 Wednesday, 9 December 2009 Wrapup      
56 Friday, 11 December 2009 The Real Wrapup     Course Assessment  

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Fri Dec 11 09:38:37 2009.
The source to the document was last modified on Fri Aug 21 16:32:15 2009.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2009F/Handouts/syllabus.html.

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright © 2007-9 Janet Davis, Matthew Kluber, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials copyright by John David Stone and Henry Walker and used by permission.) This material is based upon work partially supported by the National Science Foundation under Grant No. CCLI-0633090. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.