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.
|Week 1: Getting Started|
|(01) Monday, 20 January 2003
Introduction to the Course
Topics: Definitions: Computer science, computer programming, computing, algorithm, and more. Course basics. Getting started with the ECA. Administrative issues.
Assignments Scan through the various administrative handouts (due Tue). Fill out the introductory survey (due Tue). Take the administrivia quiz (due Tue).
|(02) Tuesday, 21 January 2003
Algorithms: Thinking Formally
Topics: Introduction; What is CS? An algorithm for making sandwiches. The parts of an algorithm.
Due: Introductory survey. Consideration of course web. Administrivia survey. Assignments Read SamR's Quick HTML Reference.
|(03) Wednesday, 22 January 2003
HTML: A Formal Markup Language
Topics: About HTML. Logical vs. Physical Markup. Lab: Getting Started in the MathLAN. Lab: Writing Documents for the World Wide Web.
Due: SamR's Quick HTML References. Assignments Read Beginning Scheme (due Fri). Scan (but do not do) The DrScheme Lab (due Fri). Start Homework 1: A CS151 Web Site (due next Wed).
|(04) Friday, 24 January 2003
An Introduction to Scheme
Topics: Scheme basics. Scheme history. Lab: DrScheme. Lab: Beginning Scheme. Reflection.
|Week 2: Scheme Basics|
|(05) Monday, 27 January 2003
Cascading Style Sheets
Topics: What are style sheets? Why style sheets? Style sheets for HTML. Lab.
|(06) Tuesday, 28 January 2003
Topics: Review: Scheme Syntax. Lab: DrScheme. Lab: Beginning Scheme. Reflection
Assignments Read Symbolic Values in Scheme. Read Lists in Scheme.
|(07) Wednesday, 29 January 2003
Symbols and Lists
Topics: Symbolic values. Lists. Lab: Symbols and Lists.
Due: Homework 1. Assignments Read Numbers in Scheme.
|(08) Friday, 31 January 2003
Topics: Types. Numbers, Kinds of Numbers, and Numeric Operations. Lab on Numbers in Scheme. Reflection.
Assignments Read Defining Procedures in Scheme.
|Week 3: Control Structures|
|(09) Monday, 3 February 2003
Topics: Why define your own procedures? How to define your own procedures. Lab.
|(10) Tuesday, 4 February 2003
Topics: A problem: Turning numbers into letters (in English and Scheme). Making life easier: Conditionals
Assignments Laboratory Writeup 1: Procedures and Conditions. Read Boolean Values and Predicates.
|(11) Wednesday, 5 February 2003
Topics: The grading problem, revisited. Lab: Conditionals.
Assignments Read Characters in Scheme. Read Strings in Scheme.
|(12) Friday, 7 February 2003
Characters and Strings
Topics: Short introduction to strings. Lab: Characters and Strings.
|Week 4: Recursion|
|(13) Monday, 10 February 2003
Topics: What is CGI? Giving input to CGI programs. Reading input in CGI programs. Lab: CGI.
Due: Lab writeup 01.
|(14) Tuesday, 11 February 2003
CGI Scripting, Continued
Topics: Short discussion. First Lab. Second Lab. Reflection.
Assignments Homework 2: Mad Libs.
|(15) Wednesday, 12 February 2003
Repetition with Recursion
Topics: Repetition. Recursion. Examples. Recursion in Scheme.
Assignments Read Repetition with Recursion.
|(16) Friday, 14 February 2003
Topics: Q&A on recursion. Lab. Reflection.
|Week 5: Recursion, Revisited|
|(17) Monday, 17 February 2003
Recursion with Lists (1)
Topics: Reflections on Recursion. Lab: List Recursion, Revisited.
Due: Homework 2. Assignments Lab Writeup 2 (optional).
|(18) Tuesday, 18 February 2003
Recursion with Lists (2)
Assignments Read Recursion with Natural Numbers.
|(19) Wednesday, 19 February 2003
Recursion with Natural Numbers (1)
Topics: Introduction to numeric recursion. Lab.
Assignments Exam 1.
|(20) Friday, 21 February 2003
Recursion with Natural Numbers (2)
Assignments Read Preconditions and Postconditions.
|Week 6: Miscellaneous|
|(21) Monday, 24 February 2003
Preconditions and Postconditions
Topics: The need for documentation. Verifying preconditions. An example: Sum of squares. Husk and Kernel programming. Other uses of Husk and Kernel. Lab.
Assignments Read Local bindings with
|(22) Tuesday, 25 February 2003
Topics: Why name things. Naming things with
|(23) Wednesday, 26 February 2003
Laboratory: Local Bindings
Assignments Read Local Procedure Bindings and Recursion.
|(24) Friday, 28 February 2003
Local Procedure Bindings
Topics: Why have local procedures. Creating local procedures. Lab.
Due: Lab Writeup 2 (optional). Exam 1. Assignments Homework 3: Web Services. Read Pairs and Pair Structures.
|Week 7: More Data Structures|
|(25) Monday, 3 March 2003
Topics: The Problem of Simulation. Scheme's
|(26) Tuesday, 4 March 2003
Topics: Behind the scences in Scheme: Memory. Pairs and Cons cells. Dotted pairs. Lab.
Assignments Read Association Lists.
|(27) Wednesday, 5 March 2003
Topics: Databases and dictionaries. Lists as dictionaries.
Assignments Read Vectors.
|(28) Friday, 7 March 2003
Topics: Problems with lists. A solution: Vectors. Side note: The
|Week 8: Procedures, Revisited|
|(29) Monday, 10 March 2003
Topics: List recursion, revisited. Deep recursion, considered. Group design example 1:
Assignments Read the reading on higher-order procedures.
|(30) Tuesday, 11 March 2003
Procedures as Values
Topics: Design patterns, revisited. Key ideas of higher-order procedures. Two key higher-order procedures:
Assignments Read More Higher-Order Procedures.
|(31) Wednesday, 12 March 2003
Procedures as Values, Continued
Topics: Procedures that build procedures. Building predicates. Building recursive procedures. Why use higher-order procedures? Old lab, continued. New lab, initiated.
|(32) Friday, 14 March 2003
|Week 9: Graphics|
|(33) Monday, 31 March 2003
Introduction to the GNU Image Manipulation Program
Topics: About the Gimp. This week. Getting started with the Gimp. Lab. Wrapup.
Assignments Exam 2: Recursion (due April 8). Read Scripting the Gimp with Script-Fu.
|(34) Tuesday, 1 April 2003
Topics: About Script-Fu. Lab. Reflection.
Assignments Exam 2.
|(35) Wednesday, 2 April 2003
Topics: Writing Script-Fu Procedures. An example: Drawing a circle. Project: Drawing a Random Circle. Project: Creating a New Image. Project: Drawing a Star. Project: Tracing a Picture. Project: Choose Your Own.
|(36) Friday, 4 April 2003
Topics: About Images. Algorithmically generating and modifying images. Lab.
Assignments Read Output in Scheme. Read Input in Scheme.
|Week 10: A Web Service|
|(37) Monday, 7 April 2003
Input and Output
Topics: Interactive programs. Output in Scheme. Input in Scheme. Lab.
Assignments Read Files in Scheme.
|(38) Tuesday, 8 April 2003
Topics: Files and ports. Reading values. Reading characters and lines. Lab.
Due: Exam 2. Assignments Read Variable-Arity Procedures.
|(39) Wednesday, 9 April 2003
Topics: Definition of arity. Why have variable-arity procedures. How to write variable-arity procedures. Lab.
|(40) Friday, 11 April 2003
Discussion of Exam 2
Topics: General Issues.
Due: Project Proposal. Assignments Read Tail Recursion. Start the first implementation phase of the project.
|Week 11: Algorithms|
|(41) Monday, 14 April 2003
Tail Recursion (1)
Topics: Kinds of recursion. Why do tail recursion. Generating lists tail-recursively. Lab: Tail Recursion.
|(42) Tuesday, 15 April 2003
Tail Recursion (2)
Topics: A note on timing. Lab: Tail Recursion.
Due: Project, Phase 1 Assignments Project, Phase 2
|(43) Wednesday, 16 April 2003
Basics of Searching and Sorting
Topics: Algorithms for common problems. Two key problems: Searching and Sorting. Searching Examples. Sequential Search. Binary Search. Searching in Scheme.
Assignments Read Searching.
|(44) Friday, 18 April 2003
|Week 12: Sorting|
|(45) Monday, 21 April 2003
Sorting Out Sorting
|(46) Tuesday, 22 April 2003
|(47) Wednesday, 23 April 2003
Topics: Binary Search, Revisited. The problem of sorting, revisited. Writing sorting algorithms. Examples: Insertion, Selection, Quick, Merge. Formalizing the problem.
Assignments Read Sorting.
|(48) Friday, 25 April 2003
Topics: The Six P's of Sorting. Lab.
|Week 13: Object Oriented Programming|
|(49) Monday, 28 April 2003
Topics: Overview of Projects. The Grinnell Stress Test. Buy, Sell, Free. Poker. Triangle.
Assignments Start Exam 3 (due next Tuesday). Read Merge Sort (due this Tuesday).
|(50) Tuesday, 29 April 2003
Topics: Lab. Reflection.
Assignments Read Records in Scheme.
|(51) Wednesday, 30 April 2003
Topics: Grouping Data. The Record. Records in Scheme. Lab.
Assignments Read Objects in Scheme.
|(52) Friday, 2 May 2003
In Class Exam 3
|Week 14: Wrapup|
|(53) Monday, 5 May 2003
Topics: Extending Objects. Procedures as Objects. Adding State. Lab: Object-Oriented Programming.
Assignments Read About End-of-course Evaluations (due Wed). Fill out the development evaluation (distributed in paper form) (due Wed).
|(54) Tuesday, 6 May 2003
Topics: Lab: Objects in Scheme.
|(55) Wednesday, 7 May 2003
Due: Exam 3.
|(56) Friday, 9 May 2003
Topics: The subject matter of the course. Final comments.
This document is automatically generated from a number of other documents. Hence, I may not always remember to update the history.
Friday, 12 January 2001 [Samuel A. Rebelsky]
Course at a Glanceform.
Tuesday, 7 Janaury 2003 [Samuel A. Rebelsky]
Tuesday, 14 January 2003 [Samuel A. Rebelsky]
Thursday, 13 February 2003 [Samuel A. Rebelsky]
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 Fri May 9 09:31:27 2003.
The source to the document was last modified on Thu Feb 13 20:13:18 2003.
This document may be found at