Fundamentals of Computer Science 1 (CS151 2003S)
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[EC]
[Honesty]
[Instructions]
[Links]
[Search]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Lab Writeups]
[Outlines]
[Project]
[Readings]
[Reference]
ECA:
[About]
[Grades]
[Quizzes]
[Submit Work]
[Change Password]
[Reset Password]
Misc:
[Scheme Reference]
[Scheme Report]
[CS151 2003S Gum]
[CS151 2002F]
[CS151 History]
[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) 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 Starting Scheme 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 Numbers 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 Procedure Definitions Topics: Why define your own procedures? How to define your own procedures. Lab. |
(10) Tuesday, 4 February 2003 Conditionals 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 Conditionals Lab 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. Assignments |
| Week 4: Recursion | |||
| (13) Monday, 10 February 2003 CGI Scripting 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 Recursion Lab 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 let.
|
(22) Tuesday, 25 February 2003 Local Bindings Topics: Why name things. Naming things with let.
Naming things with let*.
Naming procedures.
|
(23) Wednesday, 26 February 2003 Laboratory: Local Bindings Topics: Lab. 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 Simulation Topics: The Problem of Simulation. Scheme's random procedure.
Simulating the roll of dice.
Lab.
|
(26) Tuesday, 4 March 2003 Pairs Topics: Behind the scences in Scheme: Memory. Pairs and Cons cells. Dotted pairs. Lab. Assignments Read Association Lists. |
(27) Wednesday, 5 March 2003 Association Lists Topics: Databases and dictionaries. Lists as dictionaries. assoc, a procedure for searching lists.
Lab.
Assignments Read Vectors. |
(28) Friday, 7 March 2003 Vectors Topics: Problems with lists. A solution: Vectors. Side note: The begin construct.
Lab.
Due:
Homework 3: Web Services.
|
| Week 8: Procedures, Revisited | |||
| (29) Monday, 10 March 2003 Deep Recursion Topics: List recursion, revisited. Deep recursion, considered. Group design example 1: count-elements.
Group design example 2: depth.
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: map and apply.
Lab.
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 Early Break |
| Spring Break | |||
| 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 Script-Fu Basics Topics: About Script-Fu. Lab. Reflection. Assignments Exam 2. |
(35) Wednesday, 2 April 2003 Complete Scripts 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 Algorithmic Art 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 Files Topics: Files and ports. Reading values. Reading characters and lines. Lab. Due: Exam 2. Assignments Read Variable-Arity Procedures. |
(39) Wednesday, 9 April 2003 Variable-Arity Procedures 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 Binary Search |
| Week 12: Sorting | |||
| (45) Monday, 21 April 2003 Sorting Out Sorting |
(46) Tuesday, 22 April 2003 Searching Lab Topics: Lab. |
(47) Wednesday, 23 April 2003 Sorting Techniques 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 Sorting Lab Topics: The Six P's of Sorting. Lab. |
| Week 13: Object Oriented Programming | |||
| (49) Monday, 28 April 2003 Project Presentations 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 Merge Sort Topics: Lab. Reflection. Assignments Read Records in Scheme. |
(51) Wednesday, 30 April 2003 Records 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 Object Basics 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 Object Lab Topics: Lab: Objects in Scheme. |
(55) Wednesday, 7 May 2003 Course Evaluation Topics: Evaluations. Due: Exam 3. |
(56) Friday, 9 May 2003 Wrapup 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]
[Skip to Body]
Primary:
[Front Door]
[Current]
[Glance]
-
[EC]
[Honesty]
[Instructions]
[Links]
[Search]
[Syllabus]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Lab Writeups]
[Outlines]
[Project]
[Readings]
[Reference]
ECA:
[About]
[Grades]
[Quizzes]
[Submit Work]
[Change Password]
[Reset Password]
Misc:
[Scheme Reference]
[Scheme Report]
[CS151 2003S Gum]
[CS151 2002F]
[CS151 History]
[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 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 http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2003S/Handouts/glance.html.
You may wish to
validate this document's HTML
;
;
Check with Bobby