Computer Science 153 is a laboratory-based course that uses collaborative learning extensively. The following list outlines each laboratory exercise for the course.
| Laboratory | ||
|---|---|---|
| Exercise | Title and Description | |
| Lab. 1 | Getting Started: | |
| Lab. 2 | User-Defined Procedures: | Due Friday, January 25 |
| Lab. 3 | Simple Scheme Predicates: | |
| Lab. 4 | Conditional Execution in Scheme: | Due Tuesday, January 29 |
| Lab. 5 | Simple Lists: | |
| Lab. 6 | Recursion: The Basics: | |
| Lab. 7 | Designing Recursive Procedures: | |
| Lab. 8 | Program Correctness and Program Design: | |
|
Note: With the introduction of pre- and post-conditions in Lab 8,
all procedures for subsequent labs or supplemental problems must start with
a statement of pre- and post-conditions, as well as the procedure name.
If no pre-conditions are appropriate, that should be stated formally
stated. Of course, every procedure does something, so it must have
post-conditions.
A suggested format follows:
(define <procedure-name>
Pre-condition: .......
Post-condition: .......
| ||
| Lab. 9 | Refining Recursive Procedures: | Due Wednesday, February 6 |
| Lab. 10 | Characters: | |
| Lab. 11 | Strings: | |
| Lab. 12 | Input/Output: | |
| Lab. 13 | Procedures as First-Class Citizens: | Optional |
| Lab. 14 | Variables and Scope: | Extra Credit if submitted by Monday, March 4 |
| Lab. 15 | Tail Recursion: | Due Monday, February 18 |
| Lab. 16 | Iteration: | |
| Lab. 17 | Sorting: | Due: Wednesday, February 20 |
| Lab. 18 | Higher-Order Procedures: | Due: Tuesday, February 26 |
| Lab. 19 | Sorting and Mutation: | |
| Lab. 20 | Files: | |
| Lab. 21 | File Processing: | |
| Lab. 22 | Procedures of Variable arity: | |
| Lab. 23 | Placing Students Using An Expert System: | Optional; Extra Credit if submitted by Friday, March 15 |
| Lab. 24 | And Introduction to the World Wide Web and CGI Programming: | |
| Lab. 25 | CGI and the World Wide Web: | Due Monday, March 11 |
| Lab. 26 | Abstract Data Types: | |
| Lab. 27 | Vectors: | Optional; Extra Credit if submitted by Friday, April 5 |
| Lab. 28 | Stacks and Queues: | |
| Lab. 29 | Object-Oriented Programming: | |
| Lab. 30 | Object-Oriented Design: | |
| Lab. 31 | Object-Oriented Design: | |
| Lab. 32 | Introduction to Java: | |
| Lab. 33 | Notes on Elementary Java: | |
| Lab. 34 | Building a Simple Class: | |
| Lab. 35 | Problem Solving in Java: | Due Friday, April 12 |
| Lab. 36 | Iteration and Arrays: | |
| Lab. 37 | Searching: | Due Wednesday, April 17 |
| Lab. 38 | Hash Tables and Inheritance: | Extra Credit if submitted by Wednesday, May 1 |
| Lab. 39 | Analysis of Algorithms: | Extra Credit if submitted by Tuesday, May 7 |
| Lab. 40 | Sorting Lists and Arrays: | Due: Monday, April 29 |
| Lab. 41 | Generalization and Exceptions: | Due Wednesday, May 1 |
| Lab. 42 | Lists in Java: | Extra Credit if submitted by Friday, May 10 |
| Lab. 43 | Trees and Recursive Definition: | Due Wednesday, May 8 |
| Lab. 44 | More Binary Search Trees: | Extra Credit if submitted by Friday, May 10 |
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/~walker/courses/153.sp02/lab-index.html
|
created January 6, 1998 last revised April 21, 2002 |
|
| For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |