Laboratory Exercises For Computer Science 151

Lab Index:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44


Computer Science 151 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:
  • Logging in
  • Use of Windows
  • Changing Your Password
  • Lab. 2 Beginning Scheme:
  • Symbols and Expressions
  • Read-Eval-Print Loop
  • Numbers, Arithmetic Experssions
  • Optional Lab. 2a The Scheme Environment:
  • Dr. Scheme
  • Read-Eval-Print Loop
  • Numbers, Arithmetic Experssions
  • Lab. 3 An Introduction to Lists in Scheme:
  • Due Friday, September 1
  • List Constructors: Cons, Car, Cdr
  • List Literals
  • Common List Operations
  • Lab. 4 Working with Dr. Scheme:
  • Simple Editing Operations
  • Symbols, Expression Definitions, Strings, Comments
  • Quote expressions
  • Lab. 5 User-Defined Procedures:
  • Due Wednesday, September 6
  • Lambda Expressions
  • Procedure Definitions
  • Examples
  • Lab. 6 Simple Scheme Predicates:
  • Type Predicates
  • Equivalence Predicates
  • Arithmetic and Boolean Predicates
  • Lab. 7 Conditional Execution in Scheme:
  • cond statement
  • if statement
  • Boolean Expressions with and and or
  • Lab. 8 Recursion: The Basics:
  • Introduction to Recursion
  • Recursion on Strings and Lists
  • Examples
  • Lab. 9 Variations on Recursion:
  • Recursion for writing filters
  • Recursion for list processing
  • Recursion for numeric processing
  • Lab. 10 Testing Preconditions:
  • Error Procedure
  • Error Recovery in Chez Scheme
  • Examples
  • Lab. 11 Random Number Generators:
  • Use in Chez Scheme
  • Use to Simulate Rolling a Die
  • Use to Simulate Flipping a Coin
  • Lab. 12 Simulations:
  • Due Friday, September 22
  • Multiple Rolls of Dice
  • Flipping a Coin Several Times
  • Flipping Double Heads
  • Lab. 13 Side Effects and Sequencing:
  • Output
  • Tracing
  • Begin-expressions
  • Lab. 14 Flat Recursion:
  • List Processing
  • Examples
  • Problem Solving
  • Lab. 15 Deep Recursion:
  • Due: Friday, September 29
  • List Processing
  • Mutual Recursion
  • Examples
  • Lab. 16 Patterns:
  • Comparing Procedures
  • Applications for Problem Solving
  • Examples
  • Lab. 17 Pairs:
  • Box-and-Pointer Representation
  • Dot Notation
  • Association Lists
  • Lab. 18 Local Bindings:
  • Local Variables
  • Let, Let*
  • Examples
  • Lab. 19 Local Binding and Recursion:
  • Due: Wednesday, October 4
  • Binding
  • Recursive Procedures
  • Let, Let*, Letrec
  • Lab. 20 Local Procedures:
  • Due: Monday, October 9
  • Named Let Procedures
  • Recursion and Tail Recursion
  • Examples
  • Lab. 21 Character Data:
  • Literals
  • Character Predicates
  • Examples
  • Lab. 22 Strings:
  • Due: Tuesday, October 24
  • String Predicates
  • Zero-Based Indexing
  • Examples
  • Lab. 23 Input and Output:
  • Interactive Scheme Programs
  • Read and Write Procedures
  • Sentinels
  • Lab. 24 Application: Placing Students Using An Expert Systems:
  • The Student Placement Problem
  • Rule-Based Systems
  • Processing Text Files
  • Lab. 25 An Introduction to Files:
  • Files as Streams
  • Reading File Data
  • Writing Data to Files
  • Lab. 26 Processing Lines in Files:
  • Reading a Line
  • Line-by-Line Processing
  • Elements of a File I/O Library
  • Lab. 27 Beginning a File Processing Library:
  • Reading Characters
  • Reading a Fixed-Length String
  • Elements of a File I/O Library
  • Lab. 28 Procedures As Values:
  • Procedure? Predicate
  • Map, for-each, apply procedures
  • Examples
  • Lab. 29 Variable Arity:
  • Parameter Declaration
  • Alternative Forms for Lambda Expressions
  • Examples
  • Lab. 30 Higher-Order Procedures:
  • Due: Friday, November 10
  • Currying and Uncurrying
  • Operator sections
  • Procedure composition
  • Lab. 31 Formatted Output:
  • Data Conversion: numbers, strings, symbols
  • Formatting Numbers
  • Examples
  • Lab. 32 Vectors:
  • Literals
  • Predicates
  • Standard Procedures
  • Lab. 33 Structure Mutation:
  • vector-set!
  • string-set!, set-car!, set-cdr!
  • Examples
  • Lab. 34 Assignment and Scope:
  • Assignment: set!
  • Global and Local Scope
  • Examples
  • Lab. 35 And Introduction to the World Wide Web and CGI Programming:
  • HTML Format
  • Creating and Editing an HTML document
  • An Introduction to CGI and Scheme Programming
  • Lab. 36 CGI Programming:
  • Due: Monday, November 27
  • CGI and Scheme Programming
  • Query Strings
  • A Directory Example
  • Lab. 37 Iteration:
  • Loops
  • Do Expressions
  • Examples
  • Lab. 38 Insertion Sort:
  • Due: Wednesday, November 29
  • Basic Approach
  • Some Details
  • Iteration and Recursion
  • Lab. 39 Merge Sort:
  • Basic Approach
  • Some Details
  • Analysis
  • Lab. 40 Searching Methods:
  • Linear Search
  • Binary Search
  • Application in a Hi/Low Game
  • Lab. 41 Records:
  • Definition
  • Constructors, Selectors
  • Mutators, Type Predicates
  • Lab. 42 Object-Oriented Programming:
  • Due: Friday, December 8
  • Classes and Objects
  • Messages
  • Stacks as Objects
  • Lab. 43 Queues:
  • FIFO Property
  • Definition
  • Applications
  • Lab. 44 Object-Oriented Design:
  • Problem Solving
  • Identifying Classes
  • Class Relationships

  • This document is available on the World Wide Web as

    http://www.math.grin.edu/~walker/courses/151.fa99/lab-index.html
    

    created January 13, 1997
    last revised October 30, 2000