Index of Laboratory Exercises For Computer Science 153

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:
  • Course Materials via Netscape
  • Changing Your Password
  • Running Scheme
  • Lab. 2 Beginning Scheme:
  • Symbol and Expression Definition
  • Numeric Procedures and the Quote Procedure
  • Lambda Expressions and Naming Procedures
  • Lab. 3 User-Defined Procedures: Due Monday, January 26
  • Lambda Expressions
  • Editing with XEmacs
  • Recording Work At Your Workstation
  • Lab. 4 Simple Scheme Predicates :
  • Scheme Within XEmacs
  • Type Predicates
  • Equivalence Predicates
  • Lab. 5 Conditional Execution in Scheme:
  • Boolean Expressions: and, or
  • cond statement
  • if statement
  • Lab. 6 Simple Lists:
  • List Constructors: Cons, Car, Cdr
  • List Literals
  • Common List Operations
  • Lab. 7 Recursion: The Basics:
  • Introduction to Recursion
  • Recursion on Strings and Lists
  • Examples
  • Lab. 8 Designing Recursive Procedures:
  • Base Case/Recursive Step
  • Filtering
  • Finding Roots
  • Lab. 9 Time and Space Complexity: Due Friday, February 6
  • Big-O Notation
  • Tail Recursion
  • Lab. 10 Testing and Debugging:
  • Errors
  • Testing
  • Error Procedure
  • Lab. 11 Characters and Strings:
  • Literals
  • Predicates
  • Data Conversion
  • Lab. 12 Encryption: Due Wednesday, February 11
  • Zero-based Indexing
  • Predicates
  • Palindromes
  • Lab. 13 Input/Output:
  • Interactive Scheme Programming
  • Read, Display, Newline Procedures
  • Tracing Output
  • Lab. 14 Procedures as First-Class Citizens:
  • Procedure Parameters
  • Map, Append, Eval Procedures
  • Examples
  • Lab. 15 Variables and Scope:
  • Let, Let*, Letrec
  • Local Bindings
  • Scope
  • Lab. 16 Iteration: Due Friday, February 20
  • Loops
  • Do Expressions
  • Examples
  • Lab. 17 More Recursion:
  • Tail Recursion
  • Named Let Expressions
  • Examples
  • Lab. 18 Files:
  • Input, Output, Ports
  • Reading and Writing
  • eof-object? predicate
  • Lab. 19 File Processing:
  • Reading Data
  • Processinging Data
  • Printing Results
  • Lab. 20 Simple Simulations:
  • Random Number Generators
  • Rolling Die
  • Flipping Coins
  • Lab. 21 Racquetball Simulation: Due Friday, March 6
  • Problem Solving Approaches
  • Interative Solutions
  • Recursive Solutions
  • Lab. 22 Placing Students Using An Expert System:
  • The Student Placement Problem
  • Rule-Based Systems
  • Processing Text Files
  • Lab. 23 Sorting: Due Friday, March 13
  • Insertion into an Ordered List
  • Insertion Sort
  • Sorting as an Application of Currying
  • Lab. 24 Sorting and Mutation:
  • Structural Mutation
  • Set!-expressions
  • Assignments to Parameters
  • Lab. 25 Procedures of Variable arity:
  • Parameter Declaration
  • Alternative Forms for Lambda Expressions
  • Examples
  • Lab. 26 Vectors:
  • Literals
  • Predicates
  • Standard Procedures
  • Lab. 27 CGI and the World Wide Web: Due Friday, April 3
  • HTML Format
  • An Introduction to CGI
  • CGI and Scheme Programming
  • Lab. 28 Abstract Data Types:
  • Encapsulating Data and Operations
  • ADT Definitions
  • Implementation in Scheme
  • Lab. 29 An Alternative Implementation of ADTs:
  • Definitions
  • Modules
  • Example
  • Lab. 30 Object-Oriented Programming:
  • Objects
  • Classes
  • OOP in Scheme
  • Lab. 31 Stacks: Due Friday, April 17
  • LIFO Property
  • Definition
  • Applications
  • Lab. 32 Queues:
  • FIFO Property
  • Definition
  • Applications
  • Lab. 33 Object-Oriented Design:
  • Problem Solving
  • Identifying Classes
  • Class Relationships
  • Lab. 34 Trees:
  • Definition
  • Representation
  • Traversal
  • Lab. 35 Binary Search Trees: Due Wednesday, April 29
  • Insertion
  • Search
  • Lab. 36 Searching:
  • Linear and Search
  • Efficiency
  • Application in a Hi/Low Game
  • Lab. 37 Sorting: Due Wednesday, May 7
  • Quicksort
  • Merge Sort
  • Lab. 38 Data Representation:
  • Integers
  • Reals: Mantissa and Exponent
  • IEEE Standard
  • Lab. 39 Introduction to Java:
  • Basic program elements
  • Variables, I/O, primitive types, strings
  • First Examples
  • Lab. 40 More Java:
  • Control Elements
  • Messages and Methods
  • More Examples
  • Lab. 41 Some Graphics in Java:
  • An intoroduction to Grpahics
  • Applets
  • Examples

  • This document is available on the World Wide Web as

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

    created January 6, 1998
    last revised May 5, 1998
    Henry Walker (walker@math.grin.edu)