Contents

0  DrScheme Setup

    0  Getting Started with DrScheme
        0.1  Getting DrScheme
        0.2  Installing and Starting DrScheme
            0.2.1  Windows (95 and up)
            0.2.2  Macintosh
            0.2.3  Unix/X Window System
        0.3  Preparing DrScheme

I  Processing Simple Forms of Data [Beginning Student]

    1  Students, Teachers, and Computers - no notes

    2  Numbers, Expressions, Simple Programs
        2.1  Numbers and Arithmetic
        2.2  Variables and Programs
        2.3  Word Problems - no notes
        2.4  Errors
        2.5  Designing Programs

    3  Programs are Function and Variable Definitions
        3.1  Composing Functions - no notes
        3.2  Variable Definitions
        3.3  Finger Exercises on Composing Functions

    4  Conditional Expressions and Functions
        4.1  Booleans and Relations
        4.2  Functions that Test Conditions
        4.3  Conditionals and Conditional Functions
        4.4  Designing Conditional Functions - no notes

    5  Symbolic Information
        5.1  Finger Exercises with Symbols

    6  Compound Data, Part 1: Structures
        6.1  Structures
        6.2  Extended Exercise: Drawing Simple Pictures
        6.3  Structure Definitions
        6.4  Data Definitions
        6.5  Designing Functions for Compound Data - no notes
        6.6  Extended Exercise: Moving Circles and Rectangles
        6.7  Extended Exercise: Hangman

    7  The Varieties of Data - no notes

II  Processing Arbitrarily Large Data [Beginning Student]

    9  Compound Data, Part 2: Lists
        9.1  Lists
        9.2  Data Definitions for Lists of Arbitrary Length - no notes
        9.3  Processing Lists of Arbitrary Length
        9.4  Designing Functions for Self-Referential Data Definitions - no notes
        9.5  More on Processing Simple Lists - no notes

    10  More on Processing Lists
        10.1  Functions that Produce Lists
        10.2  Lists that Contain Structures - no notes
        10.3  Extended Exercise: Moving Pictures - no notes

    11  Natural Numbers - no notes

    12  Composing Functions, Revisited Again - no notes

III  More on Processing Arbitrarily Large Data [Beginning Student with List Abbreviations] - no notes

IV  Abstracting Designs [Intermediate Student] - no notes

V  Generative Recursion [Intermediate Student with lambda] - no notes

VI  Accumulating Knowledge [Intermediate Student with lambda] - no notes

VII  Changing the State of Variables [Advanced Student]

VIII  Changing Compound Values [Advanced Student] - no notes

IX  Epilogue

X  Appendix