Laboratory Exercises For Computer Science 151

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
  • Quote Procedure
  • Lab. 3 Editing Scheme Files:
  • Due Monday, January 27
  • Simple Editing Operations
  • Symbol and Expression Definition
  • Recording a Workstation Session
  • Lab. 4 Scheme within XEmacs :
  • Symbols as Values
  • Quote Expressions
  • Comments and String Literals
  • Lab. 5 An Introduction to Lists in Scheme:
  • Due Friday, January 31
  • List Constructors: Cons, Car, Cdr
  • List Literals
  • Common List Operations
  • Lab. 6 Simple Scheme Predicates:
  • Type Predicates
  • Equivalence Predicates
  • Arithmetic and Boolean Predicates
  • Lab. 7 User-Defined Procedures:
  • Due Thursday, February 6
  • Lambda Expressions
  • Procedure Definitions
  • Examples
  • Lab. 8 The Chez Scheme debugger:
  • Debugging Approaches and Hints
  • Debugging Commands
  • Examples
  • Lab. 9 Conditional Execution in Scheme:
  • cond statement
  • if statement
  • Boolean Expressions with and and or
  • Lab. 10 Recursion: The Basics:
  • Introduction to Recursion
  • Recursion on Strings and Lists
  • Examples
  • Lab. 11-12 Variations on Recursion:
  • Due Thursday, February 13
  • Recursion for writing filters
  • Recursion for list processing
  • Recursion for numeric processing
  • Lab. 13 Random Number Generators:
  • Use in Chez Scheme
  • Use to Simulate Rolling a Die
  • Use to Simulate Flipping a Coin
  • Lab. 14 Simulations:
  • Multiple Rolls of Dice
  • Flipping a Coin Several Times
  • Flipping Double Heads
  • Lab. 15 Testing Preconditions:
  • Error Procedure
  • Error Recovery in Chez Scheme
  • Examples
  • Lab. 16 Side Effects and Sequencing:
  • Due: Thursday, February 20
  • Output
  • Tracing
  • Begin-expressions
  • Lab. 17 Tracing:
  • Debugging
  • Capabilities in Chez Scheme
  • Examples
  • Lab. 18 Flat Recursion:
  • List Processing
  • Examples
  • Problem Solving
  • Lab. 19 Deep Recursion:
  • List Processing
  • Mutual Recursion
  • Examples
  • Lab. 20 Pairs:
  • Box-and-Pointer Representation
  • Dot Notation
  • Association Lists
  • Lab. 21 Local Bindings:
  • Local Variables
  • Let, Let*
  • Examples
  • Lab. 22 Local Binding and Recursion:
  • Due: Friday, March 7
  • Binding
  • Recursive Procedures
  • Let, Let*, Letrec
  • Lab. 23 More Recursion:
  • Tail Recursion
  • Named Let Expressions
  • Examples
  • Lab. 24 Character Data:
  • Literals
  • Character Predicates
  • Examples
  • Lab. 25 Strings:
  • Due: Tuesday, March 11
  • String Predicates
  • Zero-Based Indexing
  • Examples
  • Lab. 26 Local Procedures:
  • Named Let Procedures
  • Recursion and Tail Recursion
  • Examples
  • Lab. 27 Input and Output:
  • Due: Tuesday, April 1
  • Interactive Scheme Programs
  • Read and Write Procedures
  • Sentinels
  • Lab. 28 Files:
  • File Manipulation
  • Program Development
  • Examples
  • Lab. 29 Procedures As Values:
  • Procedure? Predicate
  • Map, for-each, apply procedures
  • Examples
  • Lab. 30 Variable Arity:
  • Parameter Declaration
  • Alternative Forms for Lambda Expressions
  • Examples
  • Lab. 31 Higher-Order Procedures:
  • Currying and Uncurring
  • Operator sections
  • Procedure composition
  • Lab. 32 Procedural Abstraction:
  • With Flat Recursion
  • With Deep Recursion
  • Examples
  • Lab. 33 Formatted Output:
  • Data Conversion: numbers, strings, symbols
  • Formatting Numbers
  • Examples
  • Lab. 34 Vectors:
  • Literals
  • Predicates
  • Standard Procedures
  • Lab. 35 Structure Mutation:
  • Due: Friday, April 18
  • vector-set!
  • string-set!, set-car!, set-cdr!
  • Examples
  • Lab. 36 Assignment and Scope:
  • Assignment: set!
  • Global and Local Scope
  • Examples
  • Lab. 37-8 CGI and the World Wide Web:
  • Due: Friday, April 25
  • HTML Format
  • An Introduction to CGI
  • CGI and Scheme Programming
  • Lab. 39 Iteration:
  • Loops
  • Do Expressions
  • Examples
  • Lab. 40 Insertion Sort:
  • Due: Friday, May 2
  • Basic Approach
  • Some Details
  • Iteration and Recursion
  • Lab. 41 Merge Sort:
  • Basic Approach
  • Some Details
  • Analysis
  • Lab. 42 Searching Methods:
  • Linear Search
  • Binary Search
  • Application in a Hi/Low Game
  • Lab. 43 Structures:
  • Defining Structures
  • Type, Constructor, Selector, Mutator Procedures
  • Examples
  • Lab. 44 Libraries:
  • Use of Libraries
  • SLIB
  • Packages
  • Lab. 45 Object-Oriented Programming:
  • Abstract Data Types, Classes, and Objects
  • Messages
  • Stacks as Objects
  • Lab. 46 Project Kaleidoscope:
  • X Windows
  • Applications
  • Project

  • This document is available on the World Wide Web as

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

    created January 13, 1997
    last revised May 9, 1997