Fundamentals of Computer Science I: Media Computing (CS151.01 2008S)
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[Assignments]
[EBoards]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Projects]
[Readings]
References:
[A-Z]
[Primary]
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.02 2008S (Davis)]
[CSC151 2007F (Rebelsky)]
[CSC151 2007S (Rebelsky)]
[CSCS151 2005S (Stone)]
Misc:
[SamR]
[DrFu]
[GIMP]
[DrScheme]
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, 8, break, 9, 10, 11, 12, 13, 14.
| Date | Topic | Reading | Lab | Assignments | |
|---|---|---|---|---|---|
| Week 1: Getting Started | |||||
| 01 | Tuesday, 22 January 2008 | An Introduction to Algorithms Introduction: What is CS? Exercise: Drawing smileys. | Drawing Smiley Faces | ||
| 02 | Wednesday, 23 January 2008 | An Introduction to CSC151 Lessons from day one. Common parts of an algorithm. About the course. Getting started with Linux. Some administrative details. | Grinnell's Linux Environment | Getting Started with Linux | Assignment 1: Class Basics |
| 03 | Friday, 25 January 2008 | An Introduction to the GIMP What is GIMP? Why GIMP in 151? Short Demo. Lab + Reflection. | The GNU Image Manipulation Program | The GNU Image Manipulation Program | |
| Week 2: Getting Started With Media Computation | |||||
| 04 | Monday, 28 January 2008 | An Introduction to Scheme Why use programming languages? Scheme basics. Scheme history. | The DrScheme Program-Development Environment & Beginning Scheme & How Scheme Evaluates Expressions (version 1) | Starting Scheme | |
| 05 | Tuesday, 29 January 2008 | Tools for Scripting the Gimp A model of images, extended. Coding algorithms for drawing. Other useful techniques. | GIMP Tools | Lab: GIMP Tools | |
| 06 | Wednesday, 30 January 2008 | Turtle Graphics Modeling images through process: Turtle graphics. Some historical notes. Turtle graphics in DrFu. | Turtle Graphics | Turtle Graphics | Assignment 2: Drawing Smileys, Revisited |
| 07 | Friday, 1 February 2008 | Drawings as Values Thinking about drawings through composition/decomposition. Pure approaches vs impure approaches. | Drawings as Values | Drawings as Values | Quiz 1 |
| Week 3: Scheme Basics | |||||
| 08 | Monday, 4 February 2008 | Writing Your Own Procedures Why define your own procedures? How to define your own procedures. | Writing Your Own Procedures & How Scheme Evaluates Expressions (version 2) | Writing Your Own Procedures | |
| 09 | Tuesday, 5 February 2008 | Computing with Symbols and Numbers Types. Kinds of Numbers. Key Numeric Operations. | Numeric Values & Symbolic Values | Numeric Computation | |
| 10 | Wednesday, 6 February 2008 | Representing Images as Lists of Spots Lists in Scheme. Basic list operations. Spot lists: Another perspective on images. | Representing Images as Lists of Spots | Representing Images as Lists of Spots | Assignment 3: Algorithmically Creating Simple Images |
| 11 | Friday, 8 February 2008 | Spot Lists, Continued Quick review. Lab, continued. | Representing Images as Lists of Spots | Representing Images as Lists of Spots | Quiz 2 |
| Week 4: Raster Graphics | |||||
| 12 | Monday, 11 February 2008 | Raster Graphics and RGB Colors Representing images, revisited. Pixels and colors: The basics. RGB colors. | Raster Graphics: Images from Pixels and Colors and RGB Colors | Raster Graphics and RGB Colors | |
| 13 | Tuesday, 12 February 2008 | Documenting Programs and Procedures The need for documentation. The Six P's - a strategy for documenting procedures. Practice. | Documenting Your Procedures | ||
| 14 | Wednesday, 13 February 2008 | A Design Perspective Approaching colors. Managing the huge palette. Other design issues. | Exam 1: Scheme Basics | ||
| 15 | Friday, 15 February 2008 | Discussion of Exam 1 General issues. Issues with particular problems. Additional Q&A | Quiz 3 | ||
| Week 5: Control | |||||
| 16 | Monday, 18 February 2008 | Boolean Values and Predicate Procedures Boolean values. Predicates - Procedures that return Boolean values. Combining booleans with and and or.
| Boolean Values and Predicate Procedures | Boolean Values and Predicate Procedures | |
| 17 | Tuesday, 19 February 2008 | Conditionals Choosing between two options with if.
Making multiple choices with cond.
| Conditionals | Conditionals | |
| 18 | Wednesday, 20 February 2008 | Iterating Over Lists Review: How Scheme evaluates expressions. Repetition. Building new lists from old with map.
Anonymous procedures.
Doing something with each value in a list with foreach!.
Drawing lists of spots.
| Iterating Over Lists | Iterating Over Lists | Assignment 4: Blending Colors |
| 19 | Friday, 22 February 2008 | Naming Local Values Why name things. Naming things with let.
Naming things with let*.
Naming procedures.
Lab.
| Local Bindings | Local Bindings | Quiz 4 |
| Week 6: Transformations | |||||
| 20 | Monday, 25 February 2008 | Transforming Colors Computing new colors from old. Some basic transformations. Transforming pixels and images. | Transforming RGB Colors | Transforming RGB Colors | |
| 21 | Tuesday, 26 February 2008 | Transforming Images Review: Transforming colors. Transforming images by transforming each pixel. Sequencing transformations with compose. | Transforming Images | Transforming Images | |
| 22 | Wednesday, 27 February 2008 | Iterating Over Positions Iterating over positions. Blends and other positionally-computed images. Drawing simple shapes. | Building Images by Iterating Over Positions | Building Images by Iterating Over Positions | Assignment 5: List Iteration |
| 23 | Friday, 29 February 2008 | Recursion Basics The idea of recursion. A sample recursive procedure: sum.
Another example: Filtering.
| Recursion Basics | Recursion Basics | Quiz 5 |
| Week 7: Recursion | |||||
| 24 | Monday, 3 March 2008 | Recursion Basics, Continued Designing a recursive procedure. More time for lab. | Recursion Basics | Recursion Basics | |
| 25 | Tuesday, 4 March 2008 | Recursion with Helper Procedures Delayed evaluation in recursive procedures. A strategy: Carry along intermediate results. Using recursive helpers. A term: Tail recursion. Designing recursive procedures. | Recursion with Helper Procedures | Recursion with Helper Procedures | |
| 26 | Wednesday, 5 March 2008 | Other Forms of List Recursion Questions and answers. Patterns of list recursion. Recursive predicates. | List Recursion, Revisited | List Recursion, Revisited | Assignment 6: Color-Reducing Filters |
| 27 | Friday, 7 March 2008 | Preconditions, Revisited Verifying preconditions. The | Verifying Preconditions | Verifying Preconditions | Quiz 6 |
| Week 8: Further Topics | |||||
| 28 | Monday, 10 March 2008 | Naming Local Procedures Why have local procedures. Creating local procedures with letrec.
Creating local procedures with named let.
An example: reverse.
| Local Procedure Bindings | Local Procedure Bindings | |
| 29 | Tuesday, 11 March 2008 | Numeric Recursion Recursion, Generalized. Thinking About Natural Numbers. Numeric Recursion. | Numeric Recursion | Numeric Recursion | |
| 30 | Wednesday, 12 March 2008 | Geometric Art Through Numeric Recursion Parallel lines, Concentric Circles, and Beyond. | Geometric Art | Geometric Art | Exam 2: Control: Conditionals, Iteration, and Recursion |
| 31 | Friday, 14 March 2008 | Class Cancelled SamR goes to a conference. Students get a pre-break break. | |||
| Spring Break! | |||||
| Week 9: Files | |||||
| 32 | Monday, 31 March 2008 | Characters and Strings Representing text. Characters: The basic building blocks. Combining characters into strings. | Characters and Strings | Characters and Strings | |
| 33 | Tuesday, 1 April 2008 | File Basics File basics: Data persistence and beyond. Ports. Basic file operations. | Files | Files | |
| 34 | Wednesday, 2 April 2008 | Storing Images as Simple Pixel Maps Files, revisited. Storing images. Storing colors. Storing images, revisited. | Pixel Maps: A Technique for Storing Images | Pixel Maps | Assignment 7: Spirograph-Like Drawings |
| 35 | Friday, 4 April 2008 | More Efficient Pixel Maps Review. Storing data more efficiently. Tradeoffs. | Pixmaps, Revisited: Encoding Data More Efficiently | Pixmaps, Revisited | Quiz 7 |
| Week 10: Miscellaneous | |||||
| 36 | Monday, 7 April 2008 | More Efficient Pixel Maps, Revisited Quick review. More time for lab. | Pixmaps, Revisited: Encoding Data More Efficiently | Pixmaps, Revisited | |
| 37 | Tuesday, 8 April 2008 | Color Palettes Saving space by approximating colors. One strategy: Web-safe colors. Another strategy: Color palettes. Choosing palette colors. Using different palettes. | Color Palettes | Color Palettes | |
| 38 | Wednesday, 9 April 2008 | Representing Color Palettes with Vectors Problems with lists. A solution: Vectors. Important vector procedures. Representing palettes with vectors. | Vectors | Vectors | Assignment 8: Run-Length Encoding |
| 39 | Friday, 11 April 2008 | Analyzing Procedures Comparing algorithms. Two related metrics: Time and Number of steps. Counting procedure calls by printing. Tools for analysis. | Analyzing Procedures | Analyzing Procedures | Quiz 8 |
| Week 11: Binary Structures | |||||
| 40 | Monday, 14 April 2008 | Pairs and Pair Structures Memory and naming. Pairs and cons cells. Why care? | Pairs and Pair Structures | Pairs and Pair Structures | |
| 41 | Tuesday, 15 April 2008 | Deep Recursion Lists, revisited. Trees, introduced. Deep recursion, considered. Playing with color trees. | Deep Recursion | Deep Recursion | |
| 42 | Wednesday, 16 April 2008 | Association Lists and Searching Storing information in tables. Representing table entries as lists. Representing tables as lists. Association lists: Scheme's standard table representation. Implementing key association list procedures. | Association Lists | Association Lists | Assignment 9: Palettes and Vectors |
| 43 | Friday, 18 April 2008 | Project Ideas More about the project. Technique one: Color Trees. Technique two: Fractals. Technique three: Genetic Art. | Project Ideas | Playing with Project Ideas | Quiz 9 |
| Week 12: Sorting | |||||
| 44 | Monday, 21 April 2008 | Higher Order Procedures Elegance. Procedures as parameters. Procedures as return values. Writing map.
Writing all?.
| Higher-Order Procedures | Higher-Order Procedures | |
| 45 | Tuesday, 22 April 2008 | Binary Search The problem of searching. Analyzing algorithmic efficiency. Making searching more efficient using divide-and-conquer. | Searching | Binary Search | |
| 46 | Wednesday, 23 April 2008 | Introduction to Sorting The problem of sorting. Writing sorting algorithms. Examples: Insertion, selection, etc. Formalizing the problem. | |||
| 47 | Friday, 25 April 2008 | Insertion Sort Expressing sorting algorithms in code. Key technique: Insertion. Analyzing insertion sort. | Sorting | Insertion Sort | Quiz 10 |
| Week 13: Project and Beyond | |||||
| 48 | Monday, 28 April 2008 | Merge Sort More efficient sorting techniques. Divide and conquer, revisited. Merge sort. Analyzing merge sort. | Merge Sort | Merge Sort | |
| 49 | Tuesday, 29 April 2008 | Project Assessment: Images External assessment of images. | |||
| 50 | Wednesday, 30 April 2008 | Project Assessment: Algorithms Students discuss programming techniques. | |||
| 51 | Friday, 2 May 2008 | Randomized (Unpredictable) Drawings Random art. Why use randomness. The random procedure.
| Randomized Drawing | Randomized Drawing | Exam 3: Types and Algorithms |
| Week 14: Wrapup | |||||
| 52 | Monday, 5 May 2008 | What is Computer Science? Revisited What is CS? Subfields of CS. Related Disciplines. | |||
| 53 | Tuesday, 6 May 2008 | Pause for Breath Pause. for. breath. | |||
| 54 | Wednesday, 7 May 2008 | Wrapup The subject matter of the course. Course evaluation. | Course Assessment | ||
| 55 | Friday, 9 May 2008 | Review for the Final Policies for the final. Likely kinds of problems. Questions on Exam 3. Debriefing. Final comments. | |||
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[Assignments]
[EBoards]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Projects]
[Readings]
References:
[A-Z]
[Primary]
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.02 2008S (Davis)]
[CSC151 2007F (Rebelsky)]
[CSC151 2007S (Rebelsky)]
[CSCS151 2005S (Stone)]
Misc:
[SamR]
[DrFu]
[GIMP]
[DrScheme]
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 Thu May 15 22:05:50 2008.
The source to the document was last modified on Mon Jan 21 10:56:00 2008.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2008S/Handouts/syllabus.html.
You may wish to
validate this document's HTML
;
;
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.