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 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.
| Monday | Tuesday | Wednesday | Friday |
|---|---|---|---|
| Week 1: 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. |
(03) Tuesday, 29 August 2006 Working in DrScheme Wrapping up the MathLAN lab. DrScheme lab. Assignments: Homework 2: Solving Quadratics. |
(04) Wednesday, 30 August 2006 Beginning Scheme Why use programming languages? Scheme basics. Scheme history. Lab. |
(05) Friday, 1 September 2006 Symbols and Lists Symbolic values. Lists. Lab. Due: HW2. Assignments: HW3: Reconfiguring Lists. |
| Week 2: Data Types | |||
| (06) Monday, 4 September 2006 Numeric Values Types. Review of Reading: Numbers, Kinds of Numbers, and Numeric Operations. Lab. Reflection. |
(07) Tuesday, 5 September 2006 Characters and Strings Additional lessons from yesterday. Short introduction to strings. Lab. Due: HW3. Assignments: HW4. |
(08) Wednesday, 6 September 2006 Procedure Definitions Why define your own procedures? How to define your own procedures. Lab. |
(09) Friday, 8 September 2006 Boolean Values and Predicates The Components of an Algorithm, Revisited. Lab. Due: HW4. Assignments: HW5. |
| Week 3: Repetition and Recursion | |||
| (10) Monday, 11 September 2006 Conditionals Notes on HW4. Preliminary Notes on Conditionals. Lab. Reflections. |
(11) Tuesday, 12 September 2006 Recursion Repetition. Recursion. Recursion in Scheme. Lab. |
(12) Wednesday, 13 September 2006 Recursion, Revisited Detour: Scheme's Evaluation Strategy. Example: Difference. Q&A. Lab. |
(13) Friday, 15 September 2006 Recursion with Lists Q&A. Labs. Due: HW5. Assignments: HW6. |
| Week 4: Miscellaneous | |||
| (14) Monday, 18 September 2006 Recursion with Natural Numbers (1) Writing Recursive Procedures. Short Introduction to Numeric Recursion. Lab. |
(15) Tuesday, 19 September 2006 Recursion with Natural Numbers (2) Q & A. Lab. Reflection. Assignments: HW7. Due: HW6. |
(16) Wednesday, 20 September 2006 Recursion with Files About files. Key file operations. File recursion. Lab. |
(17) Friday, 22 September 2006 Recursion with Files About files. Key file operations. File recursion. Lab. Due: HW7. Assignments: Exam 1 (due next Friday). |
| Week 5: 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. |
(19) Tuesday, 26 September 2006 Unit Testing An Overview of Testing. Using Our Test Environment. Lab. |
(20) Wednesday, 27 September 2006 Introduction to Local Bindings Why name things. Naming things with let.
Naming things with let*.
Naming procedures.
Lab.
|
(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. |
| Week 6: 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. |
(24) Wednesday, 4 October 2006 Project: Text Generation (Part One) The Project. Strategies. Dividing the Work. Lab. |
(25) Friday, 6 October 2006 Project: Text Generation (Part Two) Improving Our Text Generation Strategy. Questions. Lab. Due: HW9. Assignments: First Project Report. |
| Week 7: 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. |
(28) Wednesday, 11 October 2006 Deep Recursion Lists, revisited. Trees, introduced. Deep recursion, considered. Lab. |
(29) Friday, 13 October 2006 Vectors Problems with lists. A solution: Vectors. Lab. Due: Project 1 Writeup. |
| Fall Break | |||
| Week 8: 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. |
(31) Tuesday, 24 October 2006 Getting Started with Script-Fu About Script-Fu. Lab. Reflection. Due: HW10. |
(32) Wednesday, 25 October 2006 Writing Script-Fu Procedures Writing procedures for Script-Fu. Lab. |
(33) Friday, 27 October 2006 Algorithmic Art: Demonstration Random art. Color grids. Example. Anonymous Procedures. Lab. Assignments: Exam 2. Due: HW11. |
| Week 9: Higher Order Procedures | |||
| (34) Monday, 30 October 2006 Algorithmic Art: Lab Q&A. Lab. |
(35) Tuesday, 31 October 2006 Manipulating Images with Script-Fu Primary image-manipulation procedures. Lab. |
(36) Wednesday, 1 November 2006 Drawing with Script-Fu Representing drawings. Transforming drawings. Lab. |
(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. |
(40) Wednesday, 8 November 2006 Binary Search About common algorithms. Searching. Binary search. Lab. |
(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. |
(43) Tuesday, 14 November 2006 World Usability Day Usability, introduced. Lab/Study. Reflection. Due: HW14. |
(44) Wednesday, 15 November 2006 Merge Sort Key Ideas. Lab. Reflection. |
(45) Friday, 17 November 2006 Quicksort The key ideas of Quicksort. Lab. Due: HW15. |
| 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. |
(47) Tuesday, 21 November 2006 Object Basics Representing Compound Values. Introduction to Objects. Procedures as Objects. Adding State. Due: HW16. |
(48) Wednesday, 22 November 2006 Objects Lab Lab. Assignments: Exam 3 distributed. |
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. |
(50) Tuesday, 28 November 2006 Multivariate Data Visualization (1) Short introduction to data visualization. Lab. |
(51) Wednesday, 29 November 2006 Multivariate Data Visualization (2) Short reflection on previous class. Lab. |
(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:43 2006.
The source to the document was last modified on Mon Aug 28 14:13:05 2006.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2006F/Handouts/glance.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.