An Active-Learning Curriculum for Computer Science This project is producing a series of learning modules designed to help students to develop the problem solving skills central to doing computer science. Each module is a collection of interactive visualizations and related materials centered around a fundamental concept in computer science. Typical materials include a student guide and a teacher's guide, the code for the visualization programs, manipulative materials such as games or puzzles, a collection of exercises, suggested closed labs and programming projects, and a Hypercard stack containing an explanation of the module's central topic and an annotated bibliography. The code portion of the modules is carefully designed to teach basic software engineering principles, both directly and by example. Manipulative materials allow the students to gain an intuitive feeling for the problem to be solved. Visualizations illustrate the central topic, a programming construct, a data structure, or an algorithm. Each program is designed individually, so that the graphic animation best represents the desired concept, and the user interface allows for interactive user experimentation. The visualizations can also be used to demonstrate concepts in lectures. The Hypercard stacks give background information and in-depth explanations that students can explore at their own pace. All software is being developed on Macintosh computers in THINK Pascal using QuickDraw. Students have access to the source code, for reading and for reuse in their own projects.