In traditional science and engineering degree programs, computation is commonly treated as a problem-solving tool best studied and applied in isolation from "real" science and engi neering. Students are typically required to take a programming class to learn how to program, and perhaps a numerical analysis class to learn how to apply their programming skills. This traditional approach ignores the fact that computation has evolved into an essential way of illuminating scientific and engineering principles. Researchers now choose among the theo retical, experimental, and computational approaches to studying scientific phenomena. It has become increasingly clear that computation should be exploited in science and engineering education for its descriptive and analytical powers. In the past the barriers to using computational techniques were high. The emergence of application programs such as Maple and Mathematica has greatly lowered these barriers. The computational power made available per unit of student effort is orders of magnitude higher for these packages than it is for traditional programming languages. We are developing a suite of computer-based laboratories suitable to support a two-semester freshman/sophomore-level computing course for science and engineering majors. Each laboratory illustrates the computational solution of a typical problem from a field of science or engineering, builds upon freshman-level concepts from mathematics and physics, and leads the student through the process of learning the computing technology (including mathematics packages and conventional languages) required to solve the problem. We will conduct annual workshops to train undergraduate faculty in the use of our course ware.