Fundamentals of Computer Science I (CS151.02 2007S)
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
[Glance]
[Search]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Projects]
[Readings]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151 2006F (Rebelsky)]
[CSC151.01 2007S (Davis)]
[CSCS151 2005S (Stone)]
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, 8, break, 9, 10, 11, 12, 13, 14.
Monday | Tuesday | Wednesday | Friday |
---|---|---|---|
Week 1: Getting Started | |||
(01) Monday, January 22, 2007 An Introduction to Algorithms Introduction; What is CS? An Algorithm for Making Simple Sandwiches. Assignments: Do Homework 1 (due tomorrow). Read Linux and the MathLAN (also due tomorrow). |
(02) Tuesday, January 23, 2007 An Introduction to CSC151 Lessons from PB and J. Common parts of an algorithm. About the course. Lab. Some administrative details. Due:HW 1 |
(03) Wednesday, January 24, 2007 Working in DrScheme Wrapping up the MathLAN lab. DrScheme lab. |
(04) Friday, January 26, 2007 Beginning Scheme Why use programming languages? Scheme basics. Scheme history. Lab. Due:HW 2 |
Week 2: Data Types | |||
(05) Monday, January 29, 2007 Symbols and Lists Symbolic values. Lists. Lab. |
(06) Tuesday, January 30, 2007 Numeric Values Types. Review of Reading: Numbers, Kinds of Numbers, and Numeric Operations. Lab. Reflection. Due:HW 3 |
(07) Wednesday, January 31, 2007 Characters and Strings Additional lessons from yesterday. Short introduction to strings. Lab. |
(08) Friday, February 2, 2007 Procedure Definitions Why define your own procedures? How to define your own procedures. Lab. Due:HW 4 |
Week 3: Control Structures | |||
(09) Monday, February 5, 2007 Boolean Values and Predicates Preparation. Lab. |
(10) Tuesday, February 6, 2007 Conditionals Preliminary Notes on Conditionals. Lab. Reflections. Due:HW 5 |
(11) Wednesday, February 7, 2007 Recursion Repetition. Recursion. Recursion in Scheme. Lab. |
(12) Friday, February 9, 2007 Recursion, Revisited Q&A. Lab. Optional topics: Scheme's Evaluation Strategy; Another Example. Due:HW 6 |
Week 4: Recursion, Revisited | |||
(13) Monday, February 12, 2007 Recursion with Lists Q&A. Labs. |
(14) Tuesday, February 13, 2007 Recursion with Natural Numbers (1) Writing Recursive Procedures. Short Introduction to Numeric Recursion. Lab. |
(15) Wednesday, February 14, 2007 Recursion with Natural Numbers (2) Q & A. Lab. Reflection. |
(16) Friday, February 16, 2007 Local Bindings Why name things. Naming things with let .
Naming things with let* .
Naming procedures.
Lab.
Due:HW 7 Assignments: Exam 1 |
Week 5: Miscellaneous | |||
(17) Monday, February 19, 2007 Documentation, Preconditions and Postconditions The need for documentation. Verifying preconditions. Husk and Kernel programming. Lab. |
(18) Tuesday, February 20, 2007 Unit Testing An Overview of Testing. Using Our Test Environment. Lab. |
(19) Wednesday, February 21, 2007 Local Procedure Bindings Why Have Local Procedures. Creating Local Procedures. An Example: Reverse. Lab. |
(20) Friday, February 23, 2007 Analyzing Procedures Overview. Steps. Lab. Due:Exam 1 |
Week 6: Files | |||
(21) Monday, February 26, 2007 Discussion of Exam 1 Notes on exam 1. |
(22) Tuesday, February 27, 2007 Input and Ouptut Interactive programs. Output in Scheme. Input in Scheme. |
(23) Wednesday, February 28, 2007 Recursion with Files Remaining I/O Topic: Repetitive Prompting. About Files. Key File Operations. File Recursion. Lab. |
(24) Friday, March 2, 2007 Simulation The Problem of Simulation. Scheme's random procedure.
Simulating the roll of dice.
Lab.
Due:HW 8 Due:HW 9 |
Week 7: First Project: Generating Text | |||
(25) Monday, March 5, 2007 Project: Text Generation (Part One) The Project. Strategies. Dividing the Work. Lab. |
(26) Tuesday, March 6, 2007 Project: Text Generation (Part Two) Improving Our Text Generation Strategy. Questions. Lab. Due:HW 10 |
(27) Wednesday, March 7, 2007 Project: Text Generation (Part Three) |
(28) Friday, March 9, 2007 Project: Text Generation (Part Four) |
Week 8: Data Structures | |||
(29) Monday, March 12, 2007 Pairs and Pair Structures Memory and Naming. Pairs and Cons cells. Why care? Lab. |
(30) Tuesday, March 13, 2007 Deep Recursion Lists, revisited. Trees, introduced. Deep recursion, considered. Lab. |
(31) Wednesday, March 14, 2007 Deep Recursion Laboratory Lab. |
(32) Friday, March 16, 2007 Vectors Problems with lists. A solution: Vectors. Lab. Due:Project Report 1 |
Spring Break | |||
Week 9: Scripting Graphics in the GIMP | |||
(33) Monday, April 2, 2007 GIMP Basics About the GIMP. This week. Getting started with the GIMP. Lab. |
(34) Tuesday, April 3, 2007 Getting Started with Script-Fu About Script-Fu. Lab. Reflection. |
(35) Wednesday, April 4, 2007 Writing Script-Fu Procedures Reflections on the first Script-Fu Lab. Writing procedures for Script-Fu. Lab. |
(36) Friday, April 6, 2007 Randomized Images Randomized Drawing - Some Theory. Randomized Drawing - Some Practice. Lab. Due:Exam 2 |
Week 10: Higher Order Procedures | |||
(37) Monday, April 9, 2007 Algorithmic Art Color grids. Example. Anonymous Procedures. Lab. |
(38) Tuesday, April 10, 2007 Discussion of Exam 2 General issues. Problem 4. Problem 3. Problem 2. Problem 1. Due:HW 11 |
(39) Wednesday, April 11, 2007 Manipulating Images with Script-Fu Primary image-manipulation procedures. color transformations. Lab. |
(40) Friday, April 13, 2007 Drawing with Script-Fu Representing drawings. Transforming drawings. Lab. Due:HW 12 |
Week 11: Algorithms (1): Searching | |||
(41) Monday, April 16, 2007 Higher-Order Procedures, Summarized Background: Guiding Principles. Background: Writing Similar Code. Procedures as Parameters. Anonymous Procedures. Procedures as Return Values. Encapsulating Control. Final Thoughts. |
(42) Tuesday, April 17, 2007 Association Lists and Searching Databases and dictionaries. Lists as dictionaries. assoc , a procedure for searching lists.
Variants of Association Lists.
Lab.
Due:HW 13 |
(43) Wednesday, April 18, 2007 Binary Search About common algorithms. Searching. Binary search. Lab. |
(44) Friday, April 20, 2007 Introduction to Sorting The problem of sorting, revisited. Writing sorting algorithms. Examples: Insertion, Selection, etc. Formalizing the problem. Due:HW 15 |
Week 12: Sorting | |||
(45) Monday, April 23, 2007 Insertion Sort Preparation. Lab. Reflection. |
(46) Tuesday, April 24, 2007 Merge Sort Key Ideas. Lab. Reflection. Due:HW 15 |
(47) Wednesday, April 25, 2007 Quicksort The key ideas of Quicksort. Lab. |
(48) Friday, April 27, 2007 Variable-Arity Procedures Definition of arity. Why have variable-arity procedures. How to write variable-arity procedures. Lab. Due:HW 16 |
Week 13: Object-Oriented Programming in Scheme | |||
(49) Monday, April 30, 2007 Object Basics Representing Compound Values. Introduction to Objects. Procedures as Objects. Adding State. |
(50) Tuesday, May 1, 2007 An Object Example Review of reading. Extended example. |
(51) Wednesday, May 2, 2007 Objects Lab Review of reading. Lab. |
(52) Friday, May 4, 2007 Metaprogramming Code vs. Data in Scheme. Rewriting Named let structures.
Generating Code for Objects.
Due:Exam 3 |
Week 14: Wrapup | |||
(53) Monday, May 7, 2007 Discussion of Exam 3 General Observations. Specific Problems. |
(54) Tuesday, May 8, 2007 What is Computer Science, Revisited? What is CS? Subfields of CS. Related Disciplines. |
(55) Wednesday, May 9, 2007 Wrapup The subject matter of the course. Evaluation forms. Final comments. |
(56) Friday, May 11, 2007 Review for Final Grading. The Final. Preparting for the Final. |
[Skip to Body]
Primary:
[Front Door]
[Syllabus]
[Glance]
[Search]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[EBoards]
[Examples]
[Exams]
[Handouts]
[Homework]
[Labs]
[Outlines]
[Projects]
[Readings]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151 2006F (Rebelsky)]
[CSC151.01 2007S (Davis)]
[CSCS151 2005S (Stone)]
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 Sep 13 20:54:00 2007.
The source to the document was last modified on Thu Jan 18 14:16:49 2007.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2007S/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.