Primary: [Front Door] [Syllabus] [Assignments] [Labs] [Readings]
References: [A-Z] [Primary] [Scheme Report (R5RS)] [Scheme Reference]
Related Courses: [CSC151 2007S (Rebelsky)] [CSC151 2008S (Davis)] | [CSC151 2008F (Davis)] [CSC151 2008F (Weinman)] | [CSC151 2009S (Davis)] [CSC151 2009S (Weinman)]
We typically offer the course four days per week, with 50 minues per session. This syllabus presents a typical ordering of topics. However, in a real class, we normally intersperse days for exams and pauses for breath to give students some extra opportunity to reflect on topics.
A few of the topics particuarly the introduction to recursion, often require more than one day of class.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
| Week | Day | Topic | Reading | Lab | Notes |
|---|---|---|---|---|---|
| 1 | 1 | Introduction to Algorithms | Grinnell's Linux environment | ||
| 2 | Introduction to the Course and Lab Environment | Grinnell's Linux environment | Grinnell's Linux environment | ||
| 3 | Introduction to the GIMP | The GNU Image Manipulation Program | Getting Started with the GIMP | ||
| 4 | Introduction to Scheme | The MediaScript Programming Environment & Beginning Scheme & How Scheme Evaluates Expressions (version 1) | Starting Scheme | ||
| 2 | 5 | Scripting the GIMP Tools | Scripting the GIMP Tools | Scripting the GIMP Tools | |
| 6 | Drawings as Values | Drawings as Values | Drawings as Values | ||
| 7 | Writing Your Own Procedures | Defining Scheme procedures & How Scheme Evaluates Expressions (version 2) | Writing Your Own Procedures | ||
| 8 | Basic Types: Numbers and Symbols | Numeric Values & Symbolic Values & Documenting Your Procedures | Numeric Values | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 3 | 9 | Turtle Graphics | Turtle Graphics | Turtle Graphics | |
| 10 | Documenting Procedures | Documenting Procedures | Class activity | ||
| 11 | Raster Graphics and RGB Colors | Raster Graphics & RGB Colors | Raster Graphics and RGB Colors | ||
| 12 | Design and Color | Guest lecture by Matt Kluber; might eventually add reading | |||
| 4 | 13 | Transforming RGB Colors | Transforming RGB Colors | Transforming RGB Colors | |
| 14 | Transforming Images | Transforming Images | Transforming Images | ||
| 15 | Local Bindings | Local Bindings | Local Bindings | ||
| 16 | Boolean Values and Predicate Procedures | Boolean Values and Predicate Procedures | Boolean Values and Predicate Procedures | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 5 | 17 | Conditionals | Conditional Evaluation in Scheme | Conditionals | |
| 18 | Iterating Over Positions | Building Images by Iterating Over Positions | Building Images by Iterating Over Positions | ||
| 19 | Representing Images as Lists of Spots | Representing Images as Lists of Spots | Representing Images as Lists of Spots | ||
| 20 | Iterating Over Lists | Iterating Over Lists | Iterating Over Lists | ||
| 6 | 21 | Recursion Over Lists | Recursion Basics | Recursion Basics | |
| 22 | Recursion with Helpers | Recursion with Helper Procedures | Recursion with Helper Procedures | ||
| 23 | Other Forms of List Recursion | List Recursion, Revisited | List Recursion, Revisited | ||
| 24 | Verifying Preconditions | Verifying Preconditions | Verifying Preconditions | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 7 | 25 | Local Procedures and Recursion | Local Procedures and Recursion | Local Procedures and Recursion | |
| 26 | Randomized Drawing | Randomized Drawing | Randomized Drawing | ||
| 27 | Numeric Recursion | Numeric Recursion | Numeric Recursion | ||
| 28 | Geometric Art through Numeric Recursion | Geometric Art | Geometric Art | Often needs two days | |
| 8 | 29 | Characters and Strings | Characters and Strings | Characters and Strings | |
| 30 | Storing Data in Files | Files | Files | ||
| 31 | Storing Images in Files | Pixel Maps: A Technique for Storing Images | Pixel Maps | ||
| 32 | Storing Images More Efficiently | Pixmaps Revisited | Representing Integers as Characters | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 9 | 33 | Color Palettes | Color Palettes | Encoding Images With Color Palettes | |
| 34 | Vectors | Vectors | Vectors | ||
| 35 | Analyzing Procedures | Analyzing Procedures | Analyzing Procedures | ||
| 36 | Testing Procedures | Testing Procedures | Unit Testing | ||
| 10 | 37 | Pairs and Pair Structures | Pairs and Pair Structures | Pairs and Pair Structures | |
| 38 | Deep Recursion | Deep Recursion | Deep Recursion | ||
| 39 | Project Ideas | Project Ideas | Project Ideas | ||
| 40 | Association Lists | Association Lists | Association Lists | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 11 | 41 | Higher Order Procedures, Revisited | Design Patterns and Higher-Order Procedures | Higher-Order Procedures | |
| 42 | Binary Search | Search Algorithms | Binary Search | ||
| 43 | Trees, Revisited | Trees, Revisited | Trees, Revisited | Planned Material | |
| 44 | Binary Search Trees | Binary Search Trees | Binary Search Trees | Planned Material | |
| 12 | 45 | Introduction to Sorting | No reading | Class activity | Need to describe class activity. |
| 46 | Insertion Sort | Sorting | Insertion Sort | ||
| 47 | Merge Sort | Merge Sort | Merge Sort | ||
| 48 | Quicksort | Quicksort | Quicksort | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 13 | 49 | Student Project Presentations | No reading | No lab | |
| 50 | Guest Lecture: Artistic Perspectives on Student Projects | No reading | No lab | ||
| 51 | Algorithmic Perspectives on Student Projects | No reading | No lab | ||
| 52 | Project Debriefing | No reading | No lab | ||
| 14 | 53 | Encapsulating Values | GENERIC | GENERIC | |
| 54 | Object-Oriented Programming | GENERIC | GENERIC | ||
| 55 | Representing Objects | GENERIC | GENERIC | ||
| 56 | Inheritance | GENERIC | GENERIC | ||
| Week | Day | Topic | Reading | Lab | Notes |
| 15 | 53 | Beyond Introductory CS: What Do Computer Scientists Do? | No reading | No lab | |
| 54 | Beyond Introductory CS, Continued | No reading | No lab | ||
| 55 | Class Wrapup | No reading | No lab | ||
| 56 | Review for Final | No reading | No lab | ||
| Week | Day | Topic | Reading | Lab | Notes |
Primary: [Front Door] [Syllabus] [Assignments] [Labs] [Readings]
References: [A-Z] [Primary] [Scheme Report (R5RS)] [Scheme Reference]
Related Courses: [CSC151 2007S (Rebelsky)] [CSC151 2008S (Davis)] | [CSC151 2008F (Davis)] [CSC151 2008F (Weinman)] | [CSC151 2009S (Davis)] [CSC151 2009S (Weinman)]
Copyright (c) 2007-2009 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.