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 26
|
| |
|
Lab. 3
| Simple Scheme Predicates : |
| |
|
Lab. 4
| Conditional Execution in Scheme:
| Due Tuesday, January 30
|
| |
|
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 7
|
| |
|
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 Tuesday, February 27
|
| |
|
Lab. 15
| Tail Recursion:
| Due Monday, February 19
|
| |
|
Lab. 16
| Iteration:
|
| |
|
Lab. 17
| Higher-Order Procedures:
| Due: Friday, February 23
|
| |
|
Lab. 18
| Sorting:
| Due: Tuesday, February 27
|
| |
|
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 16
|
| |
|
Lab. 24
| And Introduction to the World Wide Web and CGI
Programming: |
| |
|
Lab. 25
| CGI and the World Wide Web:
| Due Monday, March 12
|
| |
|
Lab. 26
| Abstract Data Types: |
| |
|
Lab. 27
| Vectors:
| Optional;
Extra Credit if submitted by Friday, April 6
|
| |
|
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 13
|
| |
|
Lab. 36
| Iteration and Arrays:
|
| |
|
Lab. 37
| Searching:
| Due Wednesday, April 18
|
| |
|
Lab. 38
| Arrays and Hash Tables:
| Extra Credit if submitted by Wednesday, May 1
|
| |
|
Lab. 39
| Analysis of Algorithms:
| Extra Credit if submitted by Monday, May 7
|
| |
|
Lab. 40
| Sorting Lists and Arrays:
| Due: Monday, April 30
|
| |
|
Lab. 41
| Inheritance: |
| |
|
Lab. 42
| Generalization and Exceptions:
| Due Friday, May 4
|
| |
|
Lab. 43
| Lists in Java:
| Extra Credit if submitted by Friday, May 11
|
| |
|
Lab. 44
| Trees and Recursive Definition:
| Due Wednesday, May 9
|
| |
| |