Version: 4.1

Teachpacks

Teaching languages are small subsets of a full programming language. While such restrictions simplify error diagnosis and the construction of tools, they also make it impossible (or at least difficult) to write some interesting programs. To circumvent this restriction, it is possible to import teachpacks into programs written in a teaching language.

In principle, a teachpack is just a library written in the full language, not the teaching subset. Like any other library, it may export values, functions, etc. In contrast to an ordinary library, however, a teachpack must enforce the contracts of the "lowest" teaching language into which it is imported and signal errors in a way with which students are familiar at that level.

This chapter covers the teachpacks for How to Design Programs and How to Design Classes.

    1 HtDP Teachpacks

      1.1 Manipulating Images: "image.ss"

        1.1.1 Images

        1.1.2 Modes and Colors

        1.1.3 Creating Basic Shapes

        1.1.4 Basic Image Properties

        1.1.5 Composing Images

        1.1.6 Manipulating Images

        1.1.7 Miscellaneous Image Manipulation and Creation

      1.2 Simulations and Animations: "world.ss"

        1.2.1 Basics

        1.2.2 Simple Simulations

        1.2.3 Interactions

        1.2.4 Scenes and Images

      1.3 Converting Temperatures: "convert.ss"

      1.4 Guessing Numbers: "guess.ss"

      1.5 MasterMinding: "master.ss"

      1.6 Simple Drawing: "draw.ss"

        1.6.1 Drawing on a Canvas

        1.6.2 Interactions with Canvas

      1.7 Hangman: "hangman.ss"

      1.8 Managing Control Arrows: "arrow.ss"

      1.9 Manipulating Simple HTML Documents: "docs.ss"

      1.10 Working with Files and Directories: "dir.ss"

      1.11 Graphing Functions: "graphing.ss"

      1.12 Simple Graphical User Interfaces: "gui.ss"

      1.13 An Arrow GUI: "arrow-gui.ss"

      1.14 Controlling an Elevator: "elevator.ss"

      1.15 Queens: "show-queen.ss"

      1.16 Matrix Operations: "matrix.ss"

    2 HtDC Teachpacks

      2.1 Geometry: geometry.*

      2.2 Colors: colors.*

      2.3 Draw: draw.*

        2.3.1 World

        2.3.2 Canvas

      2.4 Draw: idraw.*