Functional Problem Solving (CSC 151 2013F) : Handouts

Schedule


Date Topic Reading Lab Work Due
Week 01: An Introduction to ...
01 Friday, 30 August 2013 An Introduction to Algorithms
02 Monday, 2 September 2013 An Introduction to Linux The Linux Environment and Parts of Algorithms Getting Started with Linux HW 1: Introductory Survey (due 10:30 p.m. Sunday)
03 Tuesday, 3 September 2013 An Introduction to Scheme The Parts of an Algorithm & The DrRacket Program-Development Environment & Beginning Scheme & How Scheme Evaluates Expressions (Take 1) Starting Scheme
04 Wednesday, 4 September 2013 Computing with Symbols and Numbers Numeric Values & Symbolic Values Numeric Computation
05 Friday, 6 September 2013 Drawings as Values Drawings as Values Drawings as Values Quiz 1
Week 02: Two Models of Images
06 Monday, 9 September 2013 Drawings as Values, Continued Writing Your Own Procedures Drawings as Values
07 Tuesday, 10 September 2013 Writing Your Own Procedures Writing Your Own Procedures and How Scheme Evaluates Expressions (Take 2) Writing Your Own Procedures HW 2: Starting Scheme
08 Wednesday, 11 September 2013 Documenting Programs and Procedures Documenting Your Procedures
09 Friday, 13 September 2013 An Introduction to the GIMP The GNU Image Manipulation Program Getting Started with the GIMP Quiz 2
Week 03: Design and Color
10 Monday, 16 September 2013 Programing the GIMP Tools Programming the GIMP Tools Scripting the GIMP Tools
11 Tuesday, 17 September 2013 A Design Perspective Design and Color HW 3: Drawing Procedures
12 Wednesday, 18 September 2013 Raster Graphics and RGB Colors Raster Graphics: Images from Pixels and Colors and RGB Colors Raster Graphics and RGB Colors
13 Friday, 20 September 2013 Pause for Breath Quiz 3
Week 04: Miscellaneous
14 Monday, 23 September 2013 Transforming Colors Transforming RGB Colors Transforming RGB Colors
15 Tuesday, 24 September 2013 Transforming Images Transforming Images Transforming Images Exam 1 (due 10:30 p.m. via emai)
16 Wednesday, 25 September 2013 Homogeneous Lists: Making and Manipulating Groups of Drawings Making and Manipulating Homogeneous Lists Making and Manipulating Lists of Drawings Exam 1 (due in class in paper form))
17 Friday, 27 September 2013 Anonymous Procedures Anonymous Procedures Anonymous Procedures 07: Turn in 5 b-f. Quiz 4
Week 05: Control
18 Monday, 30 September 2013 Turtle Graphics Turtle Graphics Turtle Graphics 08: Turn in Extra 2 and Exploration
19 Tuesday, 1 October 2013 Iteration Iteration Iteration 09: Turn in 4c, 4d and 5e HW 4: Exploring Colors
20 Wednesday, 2 October 2013 Naming Local Values Local Bindings Local Bindings 10: Turn in 6d and 7b.
21 Friday, 4 October 2013 Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures Boolean Values and Predicate Procedures 11: Turn in 4a, 4b, and 5 Quiz 5
Week 06: Miscellaneous
22 Monday, 7 October 2013 Conditionals Conditionals Conditionals 12: Turn in 3c, 4d.
23 Tuesday, 8 October 2013 Revisiting Lists Building Data Structures with Heterogeneous Lists Exploring Lists 13: Turn in 4. HW 5: Producing Playful Polygons
24 Wednesday, 9 October 2013 Recursion Basics Recursion Basics Recursion Basics
25 Friday, 11 October 2013 Pause for breath 14: Turn in 4 and 5 from Recursion Basics. Quiz 6
Week 07: Recursion
26 Monday, 14 October 2013 Recursion with Helper Procedures Recursion with Helper Procedures Recursion with Helper Procedures 15: Turn in 6
27 Tuesday, 15 October 2013 Other Forms of List Recursion List Recursion, Revisited List Recursion, Revisited 16: Turn in 5 HW 6: Conditionals and Colors
28 Wednesday, 16 October 2013 Preconditions, Revisited Verifying Preconditions Verifying Preconditions 17: Turn in 3h & 4
29 Friday, 18 October 2013 Testing Your Procedures Testing Your Procedures Testing Your Procedures No Writeup Quiz 7
Fall Break
Week 08: Recursion, Continued
30 Monday, 28 October 2013 Naming Local Procedures Local Procedure Bindings Local Procedure Bindings 18: Turn in 4.
31 Tuesday, 29 October 2013 Numeric Recursion Numeric Recursion Numeric Recursion 19: Turn in 4.
32 Wednesday, 30 October 2013 Geometric Art Through Numeric Recursion Geometric Art Geometric Art 20: Turn in 3d & 6. HW 7: List Recursion due; Exam 2 assigned
33 Friday, 1 November 2013 Characters and Strings Characters and Strings Characters and Strings 21: Turn in 10. Quiz 8
Week 09: Data Structures
34 Monday, 4 November 2013 Pairs and Pair Structures Pairs and Pair Structures Pairs and Pair Structures
35 Tuesday, 5 November 2013 Trees Trees Trees 22: Turn in 4 & 6. Exam 2 (due 10:30 p.m. via emai)
36 Wednesday, 6 November 2013 Vectors Vectors Vectors 23: Turn in 6. Exam 2 (due in class in paper form))
37 Friday, 8 November 2013 Randomized (Unpredictable) Drawing Randomized Drawing Randomized Drawing Quiz 9
Week 10: Miscellaneous
38 Monday, 11 November 2013 Another Image Model: Iterating Over Positions Building Images by Iterating Over Positions Building Images by Iterating Over Positions
39 Tuesday, 12 November 2013 On Two-Dimensional Design Elements and Principles of Two-Dimensional Design & About the Project HW 8: Color Trees; Project assigned
40 Wednesday, 13 November 2013 Project Kickoff Project Ideas Playing with Project Ideas
41 Friday, 15 November 2013 Visit from Hilary Mason (No quiz)
Week 11: Searching
42 Monday, 18 November 2013 Analyzing Procedures Analyzing Procedures Analyzing Procedures 24: Turn in 5d.
43 Tuesday, 19 November 2013 Association Lists Association Lists Association Lists 25: Turn in 4, 5d, 6c Project proposal due
44 Wednesday, 20 November 2013 Higher-Order Procedures, Revisited Design Patterns and Higher-Order Procedures Design Patterns and Higher-Order Procedures 26: Turn in 3, 4 Project proposal images due
45 Friday, 22 November 2013 Binary Search Search Algorithms Binary Search 27: Turn in 5 Quiz 11
Week 12: Sorting
46 Monday, 25 November 2013 Introduction to Sorting
47 Tuesday, 26 November 2013 Insertion Sort Sorting Insertion Sort 28: Turn in 6e, 8f
48 Wednesday, 27 November 2013 Merge Sort Merge Sort Merge Sort 29: Turn in 6, Extra 1 Exam 3 assigned
Week 13: Project and Beyond
49 Monday, 2 December 2013 File Basics Files Files 30: Turn in 4
50 Tuesday, 3 December 2013 Objects in Scheme Building Objects in Scheme Building Objects in Scheme 31: Turn in 6 Project due
51 Wednesday, 4 December 2013 Objects in Scheme, Continued Building Objects in Scheme Building Objects in Scheme 31: Turn in 6
52 Friday, 6 December 2013 Project Assessment: Images Quiz 12
Week 14: Wrapup
53 Monday, 9 December 2013 Project Assessment: Algorithms Exam 3 due (early)
54 Tuesday, 10 December 2013 What is Computer Science? Revisited Exam 3 due (normal)
55 Wednesday, 11 December 2013 Wrapup
56 Friday, 13 December 2013 Discussion of Exam 3 and Review for Final

Samuel A. Rebelsky, rebelsky@grinnell.edu

Copyright (c) 2007-2013 Janet Davis, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials are copyright by John David Stone or Henry Walker and are used with permission.)

Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.