Functional Problem Solving (CS151.02 2010S) : Handouts

Course Schedule

This handout is also available in PDF.

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

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

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