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: count-elements .
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 Variable-Arity 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 higher-order procedures. Two key higher-order procedures: map and apply .
Other higher-order structures: filter , section , ...
Assignments: Read Higher-Order Procedures. Read More On Higher-Order 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 higher-order procedures? Lab. Assignments: Write up the second lab on higher-order procedures. Read Variable-Arity Procedures. |
(38) Friday, 7 November 2003 Procedures as Values (4) Lab. Reflection. Assignments: Write up the second lab on higher-order procedures (due Tue). Read Variable-Arity Procedures (due Tue). |
Week 10: Miscellaneous (2) | |||
(39) Monday, 10 November 2003 Discussion of Exam 2 Problem 1: Memory. Problem 2: in-tree and Deep Recursion.
Problem 3: list-of-symbols->string and List Recursion.
Problem 5: number->digits and Numeric Recursion.
Problem 4: Verifying Preconditions.
|
(40) Tuesday, 11 November 2003 Variable-Arity Procedures Definition of arity. Why have variable-arity procedures. How to write variable-arity procedures. Lab. Assignments: Read Tail Recursion. |
(41) Thursday, 13 November 2003 Tail Recursion Kinds of recursion. Why do tail recursion. Generating lists tail-recursively. 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: Pre-Break | |||
(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