Fundamentals of Computer Science I (CS151.01 2006F)
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
[Glance]
[Search]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Homework]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Projects]
[Readings]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.02 2006F (Davis)]
[CSCS151 2005S (Stone)]
[CSC151 2003F (Rebelsky)]
[CSC153 2004S (Rebelsky)]
This handout is also available in PDF.
This is an alternate abbreviated course syllabus. Like everything else in this course, it is likely to change.
Weeks: 1, 2, 3, 4, 5, 6, 7, break, 8, 9, 10, 11, 12, 13, 14.
Date | Subject | Work | Reading | Lab | |
---|---|---|---|---|---|
Week 01: Getting Started | |||||
01 | Friday, 25 August 2006 | An Introduction to Algorithms
Introduction; What is CS? An Algorithm for Making Simple Sandwiches. |
Assignments:
Do Homework 1 (due Monday). Read Linux and the MathLAN (also due Monday). | ||
02 | Monday, 28 August 2006 | An Introduction to CSC151
Lessons from PB and J. Common parts of an algorithm. Lab. Some administrative details. |
Due:
HW1: Administrivia. | The Linux Environment in the MathLAN | Getting Started in the MathLAN |
03 | Tuesday, 29 August 2006 | Working in DrScheme
Wrapping up the MathLAN lab. DrScheme lab. |
Assignments:
Homework 2: Solving Quadratics. | The DrScheme Program-Development Environment | The DrScheme Program-Development Environment |
04 | Wednesday, 30 August 2006 | Beginning Scheme
Why use programming languages? Scheme basics. Scheme history. Lab. | Beginning Scheme | Beginning Scheme | |
05 | Friday, 1 September 2006 | Symbols and Lists
Symbolic values. Lists. Lab. |
Due:
HW2. Assignments: HW3: Reconfiguring Lists. | Symbols in Scheme and Lists in Scheme | Symbols and Lists |
Week 02: Data Types | |||||
06 | Monday, 4 September 2006 | Numeric Values
Types. Review of Reading: Numbers, Kinds of Numbers, and Numeric Operations. Lab. Reflection. | Numeric Values | Numeric Values | |
07 | Tuesday, 5 September 2006 | Characters and Strings
Additional lessons from yesterday. Short introduction to strings. Lab. |
Due:
HW3. Assignments: HW4. | Characters in Scheme and Strings in Scheme | Characters and Strings |
08 | Wednesday, 6 September 2006 | Procedure Definitions
Why define your own procedures? How to define your own procedures. Lab. | Defining Your Own Procedures | Defining Your Own Procedures | |
09 | Friday, 8 September 2006 | Boolean Values and Predicates
The Components of an Algorithm, Revisited. Lab. |
Due:
HW4. Assignments: HW5. | Boolean Values and Predicates | Boolean Values and Predicates |
Week 03: Repetition and Recursion | |||||
10 | Monday, 11 September 2006 | Conditionals
Notes on HW4. Preliminary Notes on Conditionals. Lab. Reflections. | Conditionals | Conditionals | |
11 | Tuesday, 12 September 2006 | Recursion
Repetition. Recursion. Recursion in Scheme. Lab. | Recursion | Recursion | |
12 | Wednesday, 13 September 2006 | Recursion, Revisited
Detour: Scheme's Evaluation Strategy. Example: Difference. Q&A. Lab. | Recursion | Recursion | |
13 | Friday, 15 September 2006 | Recursion with Lists
Q&A. Labs. |
Due:
HW5. Assignments: HW6. | Recursion | Recursion with Lists |
Week 04: Miscellaneous | |||||
14 | Monday, 18 September 2006 | Recursion with Natural Numbers (1)
Writing Recursive Procedures. Short Introduction to Numeric Recursion. Lab. | Numeric Recursion | Numeric Recursion | |
15 | Tuesday, 19 September 2006 | Recursion with Natural Numbers (2)
Q & A. Lab. Reflection. |
Assignments:
HW7. Due: HW6. | Numeric Recursion and Writing Recursive Procedures | Numeric Recursion |
16 | Wednesday, 20 September 2006 | Recursion with Files
About files. Key file operations. File recursion. Lab. | Files | Files | |
17 | Friday, 22 September 2006 | Recursion with Files
About files. Key file operations. File recursion. Lab. |
Due:
HW7. Assignments: Exam 1 (due next Friday). | Files | Files |
Week 05: Local Bindings | |||||
18 | Monday, 25 September 2006 | Documentation, Preconditions and Postconditions
The need for documentation. Verifying preconditions. Husk and Kernel programming. Other uses of Husk and Kernel. | Preconditions and Postconditions | Preconditions and Postconditions | |
19 | Tuesday, 26 September 2006 | Unit Testing
An Overview of Testing. Using Our Test Environment. Lab. | Unit Testing | Unit Testing | |
20 | Wednesday, 27 September 2006 | Introduction to Local Bindings
Why name things. Naming things with let .
Naming things with let* .
Naming procedures.
Lab.
| Naming Values with Local Bindings | Naming Values with Local Bindings | |
21 | Friday, 29 September 2006 | Local Procedure Bindings
Why Have Local Procedures. Creating Local Procedures. An Example: Reverse. Lab. |
Due:
Exam 1. Assignments: Homework 8: Intersection. | Local Procedure Bindings and Recursion | Local Procedure Bindings and Recursion |
Week 06: First Project: Generating Text | |||||
22 | Monday, 2 October 2006 | Discussion of Exam 1
Notes on exam 1. Time to work on the Local Procedures Lab. | |||
23 | Tuesday, 3 October 2006 | Simulation
The Problem of Simulation. Scheme's random procedure.
Simulating the roll of dice.
Lab.
|
Due:
HW8. Assignments: HW9. | Simulation | Simulation |
24 | Wednesday, 4 October 2006 | Project: Text Generation (Part One)
The Project. Strategies. Dividing the Work. Lab. | Project: Text Generation (Part One) | Project: Text Generation (Part One) | |
25 | Friday, 6 October 2006 | Project: Text Generation (Part Two)
Improving Our Text Generation Strategy. Questions. Lab. |
Due:
HW9. Assignments: First Project Report. | Project: Text Generation (Part Two) | Project: Text Generation (Part Two) |
Week 07: Data Structures | |||||
26 | Monday, 19 October 2006 | Project: Text Generation (Questions)
How do I verify structure files? How do I build sentences? How do I add indefinite articles? | |||
27 | Tuesday, 10 October 2006 | Pairs and Pair Structures
Memory and Naming. Pairs and Cons cells. Why care? Lab. | Pairs and Pair Structures | Pairs and Pair Structures | |
28 | Wednesday, 11 October 2006 | Deep Recursion
Lists, revisited. Trees, introduced. Deep recursion, considered. Lab. | Deep Recursion | Deep Recursion | |
29 | Friday, 13 October 2006 | Vectors
Problems with lists. A solution: Vectors. Lab. |
Due:
Project 1 Writeup. | Vectors | Vectors |
Fall Break | |||||
Week 08: Scripting Graphics in the GIMP | |||||
30 | Monday, 23 October 2006 | GIMP Basics
About GIMP. This week. Getting started with GIMP. Lab. |
Assignments:
Homework 10: Survey. | The GNU Image Manipulation Program | The GNU Image Manipulation Program |
31 | Tuesday, 24 October 2006 | Getting Started with Script-Fu
About Script-Fu. Lab. Reflection. |
Due:
HW10. | Scripting the GIMP with Script-Fu | Generating GIMP Images with Script-Fu |
32 | Wednesday, 25 October 2006 | Writing Script-Fu Procedures
Writing procedures for Script-Fu. Lab. | Writing Script-Fu Procedures | Writing Script-Fu Procedures | |
33 | Friday, 27 October 2006 | Algorithmic Art: Demonstration
Random art. Color grids. Example. Anonymous Procedures. Lab. |
Assignments:
Exam 2. Due: HW11. | Algorithmic Art | Algorithmic Art |
Week 09: Higher Order Procedures | |||||
34 | Monday, 30 October 2006 | Algorithmic Art: Lab
Q&A. Lab. | Algorithmic Art | Algorithmic Art | |
35 | Tuesday, 31 October 2006 | Manipulating Images with Script-Fu
Primary image-manipulation procedures. Lab. | Manipulating Images with Script-Fu | Manipulating Images with Script-Fu | |
36 | Wednesday, 1 November 2006 | Drawing with Script-Fu
Representing drawings. Transforming drawings. Lab. | Drawing with Script-Fu | Drawing with Script-Fu | |
37 | Friday, 3 November 2006 | Higher-Order Procedures, Summarized
Background: Guiding Principles. Procedures as Parameters. Anonymous Procedures. Procedures as Return Values. Encapsulating Control. |
Due:
Exam 2. | ||
Week 10: Algorithms (1): Searching | |||||
38 | Monday, 6 November 2006 | Discussion of Exam 2
General issues. Problem 1. Problem 2. Problem 3. Problem 4. | |||
39 | Tuesday, 7 November 2006 | Association Lists and Searching
Databases and dictionaries. Lists as dictionaries. assoc , a procedure for searching lists.
Variants of Association Lists.
Lab.
|
Due:
HW12. | Association Lists | Association Lists |
40 | Wednesday, 8 November 2006 | Binary Search
About common algorithms. Searching. Binary search. Lab. | Searching Methods | Binary Search | |
41 | Friday, 10 November 2006 | Introduction to Sorting
The problem of sorting, revisited. Writing sorting algorithms. Examples: Insertion, Selection, etc. Formalizing the problem. |
Due:
HW13. | ||
Week 11: Sorting | |||||
42 | Monday, 13 November 2006 | Insertion Sort
Preparation. Lab. Reflection. | Sorting | Insertion Sort | |
43 | Tuesday, 14 November 2006 | World Usability Day
Usability, introduced. Lab/Study. Reflection. |
Due:
HW14. | Usability | Usability |
44 | Wednesday, 15 November 2006 | Merge Sort
Key Ideas. Lab. Reflection. | Merge Sort | Merge Sort | |
45 | Friday, 17 November 2006 | Quicksort
The key ideas of Quicksort. Lab. |
Due:
HW15. | Quicksort | Quicksort |
Week 12: Objects | |||||
46 | Monday, 20 November 2006 | Variable-Arity Procedures
Definition of arity. Why have variable-arity procedures. How to write variable-arity procedures. Lab. | Variable-Arity Procedures | Variable-Arity Procedures | |
47 | Tuesday, 21 November 2006 | Object Basics
Representing Compound Values. Introduction to Objects. Procedures as Objects. Adding State. |
Due:
HW16. | Objects in Scheme | |
48 | Wednesday, 22 November 2006 | Objects Lab
Lab. |
Assignments:
Exam 3 distributed. | Objects in Scheme | Objects in Scheme |
Friday, 24 November 2006 | Thanksgiving Break | ||||
Week 13: Second Project: Visualizing Data | |||||
49 | Monday, 27 November 2006 | Stacks
Abstract Data Types (ADTs). Stacks. Implementing Stacks in Scheme. Some Applications. Lab. | Stacks | Stacks | |
50 | Tuesday, 28 November 2006 | Multivariate Data Visualization (1)
Short introduction to data visualization. Lab. | Multivariate Data Visualization | Multivariate Data Visualization | |
51 | Wednesday, 29 November 2006 | Multivariate Data Visualization (2)
Short reflection on previous class. Lab. | More Multivariate Data Visualization | More Multivariate Data Visualization | |
52 | Friday, 1 December 2006 | Multivariate Data Visualization (3) |
Due:
Exam 3. | ||
Week 14: Wrapup | |||||
53 | Monday, 4 December 2006 | Discussion of Exam 3 | |||
54 | Tuesday, 5 December 2006 | What is Computer Science, Revisited? | |||
55 | Wednesday, 6 December 2006 | Review for Final | |||
56 | Friday, 8 December 2006 | Wrapup
Evaluation forms. The subject matter of the course. Final comments. |
Due:
Project Writeup 2. |
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
[Glance]
[Search]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Homework]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Projects]
[Readings]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.02 2006F (Davis)]
[CSCS151 2005S (Stone)]
[CSC151 2003F (Rebelsky)]
[CSC153 2004S (Rebelsky)]
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 Nov 30 21:42:46 2006.
The source to the document was last modified on Mon Aug 28 14:13:21 2006.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2006F/Handouts/syllabus.html
.
You may wish to validate this document's HTML ; ;
Samuel A. Rebelsky, rebelsky@grinnell.eduhttp://creativecommons.org/licenses/by-nc/2.5/
or send a letter to Creative Commons, 543 Howard Street, 5th Floor,
San Francisco, California, 94105, USA.