Fundamentals of Computer Science I (CS151 2003F)
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]

[Honesty]
[Instructions]
[Links]
[Guidelines for Lab Writeups]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[Scheme Report]
[Glimmer Scheme Reference]
[CSC151.01 (Gum)]
[CSC151 2003S]
[CSC151 2002F]
[SamR]
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) Thursday, 28 August 2003 An Introduction to Algorithms Introduction; What is CS? An algorithm for making sandwiches. The parts of an algorithm. 
(02) Friday, 29 August 2003 An Introduction to CSC151 Lessons from PB and J. Common parts of an algorithm. Some administrative details. Lab: Getting Started in the MathLAN. Assignments: Take The introductory survey (due Mon). 

(03) Monday, 1 September 2003 HTML, A Formal Markup Language Lab: Getting Started in the MathLAN. About Markup Languages. Logical vs. Physical Markup. The Basics of HTML. A Sample HTML document. Assignments: Read Sam's quick HTML reference. 
(04) Tuesday, 2 September 2003 HTML Lab Questions on HTML. Lab. Reflection. Assignments: Read Cascading Style Sheets. 
(05) Thursday, 4 September 2003 Cascading Style Sheets Reflection on HTML Lab. Questions and Comments. Lab. Reflection. Assignments: Begin Homework 1: An Argumentative Web Site (due Tue). Read Beginning Scheme (due Fri). 
(06) Friday, 5 September 2003 An Introduction to Scheme Scheme basics. Scheme history. Lab: DrScheme. Lab: Beginning Scheme. Reflection. Assignments: Read Symbolic Values in Scheme. Read Lists in Scheme. 
Week 2: Scheme Basics  
(07) Monday, 8 September 2003 Symbols and Lists Symbolic values. Lists. Lab: Symbols and Lists. Assignments: Read Numeric Values in Scheme. 
(08) Tuesday, 9 September 2003 Numbers Types. Numbers, Kinds of Numbers, and Numeric Operations. Lab on Numbers in Scheme. Reflection. Due: Homework 1: Web Site. Assignments: Read Writing Your Own Procedures in Scheme. 
(09) Thursday, 11 September 2003 Procedure Definitions Why define your own procedures? How to define your own procedures. Lab. Assignments: Read Conditional Evaluation in Scheme. Write up The lab on procedures. Please follow the guidelines on laboratory writeups. 
(10) Friday, 12 September 2003 Conditionals A problem: Turning numbers into letters (in English and Scheme). Making life easier: Conditionals. Conditionals in Scheme. Problem, Revisited. Assignments: Lab writeup 1: Procedures. 
Week 3: Scheme and the Web  
(11) Monday, 15 September 2003 Conditionals Lab Basic comparisons. Predicates. Boolean functions. The cond operations.
Lab: Conditionals.
Assignments: Read Character Values in Scheme. Read String Values in Scheme. 
(12) Tuesday, 16 September 2003 Conditionals (3) Lab on Conditionals. Reflection. Due: Lab Writeup 1: Procedures. 
(13) Thursday, 18 September 2003 Characters and Strings Short introduction to strings. Lab: Characters and Strings. 
(14) Friday, 19 September 2003 Talk Like a Pirate Day Techniques for changing dialect. Sample changes for piratization. Useful Scheme. Lab. Assignments: Read Repetition with Recursion. Homework 2: Piratizer (due Thu). 
Week 4: Repetition and Recursion (1)  
(15) Monday, 22 September 2003 Repetition through Recursion Repetition. Recursion. Examples. Recursion in Scheme. Lab: Repetition through Recursion. Assignments: Homework 2: From Landlubber to Pirate. Exam 1: Scheme Fundamentals. 
(16) Tuesday, 23 September 2003 Recursion Lab Q&A on recursion. Lab. Reflection. 
(17) Thursday, 25 September 2003 Recursion with Lists (1) Reflections on Recursion. Lab: List Recursion, Revisited. Due: Homework 2: A Landlubber to Pirate Translator. Assignments: Read Preconditions and Postconditions. 
(18) Friday, 26 September 2003 Recursion with Lists (2) Lab. Reflection: member? and more.

Week 5: Repetition and Recursion (2)  
(19) Monday, 29 September 2003 Preconditions and Postconditions The need for documentation. Verifying preconditions. An example: Greatest in list. Husk and Kernel programming. Other uses of Husk and Kernel. Lab. Assignments: Numeric Recursion (due tomorrow). Lab writeup 2: Numeric Recursion (due Tuesday, 7 October 2003). 
(20) Tuesday, 30 September 2003 Recursion with Natural Numbers (1) Short introduction to numeric recursion. Lab. Due: Exam 1: Scheme Basics (due at midnight). 
(21) Thursday, 2 October 2003 Recursion with Natural Numbers (2) Review. Lab. Reflection. 
(22) Friday, 3 October 2003 Preconditions and Postconditions: Lab Review. Lab. Reflection. Assignments: Read Local Bindings with let .

Week 6: Local Bindings  
(23) Monday, 6 October 2003 Discussion of Exam 1 Notes on exam 1. 
(24) Tuesday, 7 October 2003 Introduction to Local Bindings Why name things. Naming things with let .
Naming things with let* .
Naming procedures.
Due: Lab writeup 2: Numeric Recursion. 
(25) Thursday, 9 October 2003 Local Bindings Laboratory Lab. Assignments: Read Local Procedure Bindings. 
(26) Friday, 10 October 2003 Local Procedure Bindings Why have local procedures. Creating local procedures. Lab. Assignments: Read Pairs and Pair Structures. 
Week 7: Pairs  
(27) Monday, 13 October 2003 Detour: Intersection The problem of intersecting two lists. Formalizing the problem. A simple solution. Improving the solution: Eliminating duplicates. Detour: A strange solution. An alternate strategy: Permitting certain duplicates. Assignments: Reread the last few sections of Pairs and Pair Structures. 
(28) Tuesday, 14 October 2003 Pairs and Pair Structures Behind the scences in Scheme: Memory. Pairs and Cons cells. Dotted pairs. Why care. Lab. 
(29) Thursday, 16 October 2003 Deep Recursion Lists, revisited. List recursion, revisited. Trees, introduced. Deep recursion, considered. Group design example 1: countelements .
Group design example 2: depth .
Lab.
Assignments: Have a great break. Behave yourselves. Read Vectors. 
(30) Friday, 17 October 2003 Early Break 
Fall Break  
Week 8: Miscellaneous (1)  
(31) Monday, 27 October 2003 Vectors Problems with lists. A solution: Vectors. Side note: The begin construct.
Lab.
Assignments: Read Output in Scheme. Read Input in Scheme. 
(32) Tuesday, 28 October 2003 Input and Output Interactive programs. Output in Scheme. Input in Scheme. Lab. Assignments: Exam 2 (due next Tuesday). Read Files in Scheme. 
(33) Thursday, 30 October 2003 Pause for Breath Assignments: Read VariableArity Procedures. 
(34) Friday, 31 October 2003 Files Reflection. Files and ports. Reading values. Reading characters and lines. Lab. 
Week 9: Higher Order Procedures  
(35) Monday, 3 November 2003 Procedures as Values (1) Design patterns, revisited. Key ideas of higherorder procedures. Two key higherorder procedures: map and apply .
Other higherorder structures: filter , section , ...
Assignments: Read HigherOrder Procedures. Read More On HigherOrder procedures. 
(36) Tuesday, 4 November 2003 Procedures as Values (2) Review. Lab. Reflect. Due: Exam 2 (Recursion and Structures). 
(37) Thursday, 6 November 2003 Procedures as Values (3) Procedures that build procedures. Why use higherorder procedures? Lab. Assignments: Write up the second lab on higherorder procedures. Read VariableArity Procedures. 
(38) Friday, 7 November 2003 Procedures as Values (4) Lab. Reflection. Assignments: Write up the second lab on higherorder procedures (due Tue). Read VariableArity Procedures (due Tue). 
Week 10: Miscellaneous (2)  
(39) Monday, 10 November 2003 Discussion of Exam 2 Problem 1: Memory. Problem 2: intree and Deep Recursion.
Problem 3: listofsymbols>string and List Recursion.
Problem 5: number>digits and Numeric Recursion.
Problem 4: Verifying Preconditions.

(40) Tuesday, 11 November 2003 VariableArity Procedures Definition of arity. Why have variablearity procedures. How to write variablearity procedures. Lab. Assignments: Read Tail Recursion. 
(41) Thursday, 13 November 2003 Tail Recursion Kinds of recursion. Why do tail recursion. Generating lists tailrecursively. Lab: Tail Recursion. Assignments: Read Association Lists. 
(42) Friday, 14 November 2003 Association Lists Databases and dictionaries. Lists as dictionaries. assoc , a procedure for searching lists.
Variants of Association Lists.
Lab.
Assignments: Write up the lab on tail recursion. 
Week 11: Searching and Sorting  
(43) Monday, 17 November 2003 Basics of Searching Algorithms for common problems. Two key problems: Searching and Sorting. Searching Examples. Sequential Search. Binary Search. Searching in Scheme. Assignments: Read Searching. Continue to write up the lab on tail recursion (due Thursday). 
(44) Tuesday, 18 November 2003 Binary Search Quick review of the reading. Lab. Reflection. 
(45) Thursday, 20 November 2003 Sorting Techniques The problem of sorting, revisited. Writing sorting algorithms. Examples: Insertion, Selection, etc. Formalizing the problem. Due: Lab on tail recursion. Assignments: Read Sorting. 
(46) Friday, 21 November 2003 Sorting Lab Lab. Assignments: Read Merge Sort. Complete the number guessing game from the binary search lab. 
Week 12: PreBreak  
(47) Monday, 24 November 2003 Merge Sort Lab. Reflection. Assignments: Continue the guessing game. Read CGI Sciprting in Scheme. 
(48) Tuesday, 25 November 2003 CGI Scripting What is CGI? Giving input to CGI programs. Reading input in CGI programs. Lab: CGI. Due: Projects. 
Thursday, 27 November 2003 Thanksgiving Break 
Friday, 28 November 2003 Thanksgiving Break 
Week 13: Objects  
(49) Monday, 1 December 2003 Project: A Simple CGI Application Short discussion. Review. Project. Assignments: Read Records in Scheme. Begin Exam 3: Algorithms and Design. 
(50) Tuesday, 2 December 2003 Records Grouping Data. The Record. Records in Scheme. Lab. Assignments: Read Objects in Scheme. 
(51) Thursday, 4 December 2003 Object Basics Extending Objects. Procedures as Objects. Adding State. Lab. 
(52) Friday, 5 December 2003 Object Lab Lab: Objects in Scheme. 
Week 14: Wrapup  
(53) Monday, 8 December 2003 Stacks Abstract Data Types (ADTs). Stacks. Implementing Stacks in Scheme. Some Applications. Assignments: Read Stacks. Read Queues. 
(54) Tuesday, 9 December 2003 Stacks Lab Due: Exam 3 (Algorithms and Data Structures). 
(55) Thursday, 11 December 2003 Queues 
(56) Friday, 12 December 2003 Wrapup 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]
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]

[Honesty]
[Instructions]
[Links]
[Guidelines for Lab Writeups]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Readings]
[Reference]
Misc:
[Scheme Report]
[Glimmer Scheme Reference]
[CSC151.01 (Gum)]
[CSC151 2003S]
[CSC151 2002F]
[SamR]
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 Tue Dec 9 13:58:43 2003.
The source to the document was last modified on Mon Nov 3 11:40:04 2003.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2003F/Handouts/glance.html
.
You may wish to validate this document's HTML ; ; Check with Bobby
Samuel A. Rebelsky, rebelsky@grinnell.edu