Media Scripting in Scheme

Generic Syllabus


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

Creative Commons License

Samuel A. Rebelsky, rebelsky@grinnell.edu

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.