The Teaching Machine is a program animation system for Java and C++ programs.

"Effortless Animation"

It runs as an application or as an Applet.

- Control
  - Subroutine- / Statement- / Operator-at-a-time stepping
    - Hence multiple levels of abstraction
  - Unlimited undo
- Visualization of
  - Source Code
  - Expression Evaluation
  - Stack / Heap / Static Memory
    - With multiple levels of abstraction
  - Symbol table
  - Interactive console I/O

It provides multiple views into memory.

It exposes the implicit. For example conversions, constructor calls, destructor calls.

Coverage:

- Most of C++ (but not exceptions —yet— nor templates)
- Most of Java 1.4 (but not multithreading)
- C++ and Java libraries are currently rather limited