CS151.02 2010S 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 Monday, January 25, 2010 An Introduction to Algorithms      
02 Tuesday, January 26, 2010 An Introduction to CSC151 Grinnell's Linux Environment Getting Started with Linux Assignment 1: Class Basics  
03 Wednesday, January 27, 2010 An Introduction to the GIMP The GNU Image Manipulation Program Getting Started with the GIMP  
04 Friday, January 29, 2010 An Introduction to Scheme The MediaScript Program-Development Environment & Beginning Scheme & How Scheme Evaluates Expressions (version 1) Starting Scheme  
05 Monday, February 1, 2010 Programing the GIMP Tools Programming the GIMP Tools Scripting the GIMP Tools  
Week 2
06 Tuesday, February 2, 2010 Computing with Symbols and Numbers Numeric Values & Symbolic Values Numeric Computation  
07 Wednesday, February 3, 2010 Drawings as Values Drawings as Values Drawings as Values Assignment 2: Algorithms for Drawing  
08 Friday, February 5, 2010 Writing Your Own Procedures Writing Your Own Procedures & How Scheme Evaluates Expressions (version 2)    
09 Monday, February 8, 2010 Laboratory: Writing Your Own Procedures Writing Your Own Procedures & How Scheme Evaluates Expressions (version 2) Writing Your Own Procedures  
Week 3
10 Tuesday, February 9, 2010 Raster Graphics and RGB Colors Raster Graphics: Images from Pixels and Colors and RGB Colors Raster Graphics and RGB Colors  
11 Wednesday, February 10, 2010 Transforming Colors Transforming RGB Colors Transforming RGB Colors Assignment 3: Drawing Generally and Concisely  
12 Friday, February 12, 2010 A Design Perspective      
13 Monday, February 15, 2010 Transforming Images Transforming Images Transforming Images  
Week 4
14 Tuesday, February 16, 2010 Documenting Programs and Procedures Documenting Your Procedures    
15 Wednesday, February 17, 2010 Homogeneous Lists: Making and Manipulating Groups of Drawings Making and Manipulating Homogeneous Lists Making and Manipulating Lists of Drawings Exam 1: Scheme and Image Basics  
16 Friday, February 19, 2010 Anonymous Procedures Anonymous Procedures Anonymous Procedures  
17 Monday, February 22, 2010 Exam 1 Discussion      
Week 5
18 Tuesday, February 23, 2010      
19 Wednesday, February 24, 2010 Turtle Graphics Turtle Graphics Turtle Graphics Assignment 4: Exploring Colors  
20 Friday, February 26, 2010 Iteration Iteration Iteration  
21 Monday, March 1, 2010 Naming Local Values Local Bindings Local Bindings  
Week 6
22 Tuesday, March 2, 2010 Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures  
23 Wednesday, March 3, 2010 Conditionals Conditionals Conditionals Assignment 5: Producing Polygons  
24 Friday, March 5, 2010 Revisiting Lists Building Data Structures with Heterogeneous Lists Exploring Lists  
25 Monday, March 8, 2010 Recursion Basics Recursion Basics Recursion Basics  
Week 7
26 Tuesday, March 9, 2010 Recursion with Helper Procedures Recursion with Helper Procedures Recursion with Helper Procedures  
27 Wednesday, March 10, 2010 Testing Your Procedures Testing Your Procedures Testing Your Procedures Assignment 6: Conditionals and Colors  
28 Friday, March 12, 2010 Another Image Model: Iterating Over Positions Building Images by Iterating Over Positions Building Images by Iterating Over Positions  
29 Monday, March 15, 2010 Other Forms of List Recursion List Recursion, Revisited List Recursion, Revisited  
Fall Break!
Week 8
30 Tuesday, March 16, 2010 Preconditions, Revisited Verifying Preconditions Verifying Preconditions  
31 Wednesday, March 17, 2010 Naming Local Procedures Local Procedure Bindings Local Procedure Bindings  
32 Friday, March 19, 2010 Randomized (Unpredictable) Drawing Randomized Drawing Randomized Drawing Exam 2: Image Models and Control Structures  
33 Monday, April 5, 2010 Numeric Recursion Numeric Recursion Numeric Recursion  
Week 9
34 Tuesday, April 6, 2010 Geometric Art Through Numeric Recursion Geometric Art Geometric Art  
35 Wednesday, April 7, 2010 Characters and Strings Characters and Strings Characters and Strings  
36 Friday, April 9, 2010 Vectors Vectors Vectors  
37 Monday, April 12, 2010 Pairs and Pair Structures Pairs and Pair Structures Pairs and Pair Structures  
Week 10
38 Tuesday, April 13, 2010 Trees Trees Trees  
39 Wednesday, April 14, 2010 Project Ideas Project Ideas Playing with Project Ideas Assignment 7: Fractals  
40 Friday, April 16, 2010 On Design      
41 Monday, April 19, 2010 Analyzing Procedures Analyzing Procedures Analyzing Procedures  
Week 11
42 Tuesday, April 20, 2010 Analyzing Procedures, Continued Analyzing Procedures Analyzing Procedures  
43 Wednesday, April 21, 2010 Association Lists Association Lists Association Lists Project Proposal  
44 Friday, April 23, 2010 Time to Work on Projects      
45 Monday, April 26, 2010 Higher-Order Procedures, Revisited Design Patterns and Higher-Order Procedures Design Patterns and Higher-Order Procedures  
Week 12
46 Tuesday, April 27, 2010 Binary Search Search Algorithms Binary Search  
47 Wednesday, April 28, 2010 Introduction to Sorting      
48 Friday, April 30, 2010 Insertion Sort Sorting Insertion Sort Project  
Week 13
49 Monday, May 3, 2010 Merge Sort Merge Sort Merge Sort  
50 Tuesday, May 4, 2010 Project Assessment: Images      
51 Wednesday, May 5, 2010 Project Assessment: Algorithms     Exam 3: Sophisticated Scheming  
52 Friday, May 7, 2010 Pause for Breath      
Week 14
53 Monday, May 10, 2010 Objects in Scheme Building Objects in Scheme Building Objects in Scheme  
54 Tuesday, May 11, 2010 What is Computer Science? Revisited      
55 Wednesday, May 12, 2010 About Exam 3      
56 Friday, May 14, 2010 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 Tue Aug 3 09:02:13 2010.
The source to the document was last modified on Thu Jan 21 13:03:53 2010.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2010S/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-10 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.