Gustavus Adolphus College

Computer Science
'Thinking and working like computer scientists'

Reproduced with permission from NeXT Computer, Inc.
A Reference Guide to NeXT in Higher Education, Fall 1992
ÂȘ 1992 NeXT Computer, Inc.

Since acquiring 33 NeXT computers in 1990 and 1991, the Mathematics and Computer Science Department at Gustavus Adolphus College has radically reshaped the curriculum and laboratory structure of its two-semester Introduction to Computer Science sequence, according to Max Hailperin, assistant professor of computer science.

"The introductory courses now give students a trial experience of thinking and working like computer scientists," says Hailperin. "Instead of focusing on learning to program, students explore the role of abstraction in both program development and reasoning about computation. The intro sequence plays an important role in general education, too, allowing noncomputer scientists to sample the computer science world view and allowing prospective majors to gain an early perspective on the field."

To switch to an abstraction-focused curriculum, the department implemented the Structure and Interpretation of Computer Programs curriculum developed at the Massachusetts Institute of Technology. The department also abandoned Pascal programming language in favor of MIT's Scheme dialect of Lisp, which, "better supports abstraction and exploratory programming and learning," says Hailperin.

"We chose the Scheme language because of its use of higher-order procedures, its interpreted environment that allows for rapid testing and experimentation, and its support for procedural and data abstractions. We decided it was the programming language best suited for our emphasis on exploring abstraction."

The department then had to decide among four computer platforms to use for the new curriculum: MS-DOS machines, time-sharing systems, Macintosh computers, and UNIX workstations–including NeXT.

"We found that MS-DOS machines suffer from a limited memory architecture as well as the lack of a good Scheme implementation," explains Karl Knight, associate professor of computer science. "Further, the less expensive MS-DOS models were far too slow. The higher-level models were comparable in cost to NeXT workstations-though without offering the advantages of NeXTSTEP. And the time-sharing systems were expensive and would have locked us into a computer longer than it would remain current. This contrasts sharply with workstations like NeXT that allow colleges like ours to buy incrementally in order to keep the system as a whole state of the art."

Although Macintosh machines had the speed and Scheme implementations, Knight says the faculty decided against Macs for several reasons: "They would've tied us too closely to a single vendor; Macintosh is not an open system and has not committed to industry standards the way NeXT has. Second, AppleTalk doesn't provide the level of networking we need, making system management unnecessarily difficult. Finally, to configure a Mac so it's usable in CS makes the price greater than the NeXT workstations, which provide many software and hardware advantages over the Macs."

Besides NeXT's software and hardware advantages, an important factor to Hailperin, Knight, and their colleagues, was that 10 other departments at Gustavus Adolphus had already integrated NeXT machines into their curricula.

"The very fact that other departments used NeXT machines was a big factor in our final decision," says Hailperin. "There's a strong benefit in creating uniformity among departments: there's a tremendous savings of effort and money because we have fewer kinds of machines to deal with on campus; more importantly, students apply the same NeXT interface skills learned in an intro to CS class to a psychology course that uses a NeXT-based stats package. This uniformity added value even above the machine's capabilities."

Hailperin continues: "We also liked that NeXT is a UNIX-based machine because UNIX is a standard for computer science departments. UNIX and the existence of anonymous FTP sites allows a high level of sharing and dissemination of software, such as MIT's Scheme implementation itself."

He adds, "NeXT's windowing environment is ideally suited for our beginning students, since it's easy to learn while also allowing access to the underlying operating system for advanced students."

In the first course in the revised sequence, students learn how to express general procedural ideas and how to use general categories of data in terms of their operational properties. They also learn the relationship between the form of a procedure and that of the computational process it generates, including the resource consumption of that process. In the second course, students learn how to use programming-language definition as an abstraction mechanism and how to implement a newly defined language by writing an interpreter in an existing language.

Instead of working on lab assignments in their spare time, students are assigned scheduled lab times when an instructor is present to assist and facilitate collaboration among classmates. "When a student gets stuck due to a conceptual misunderstanding, we move away from the workstation to the whiteboard to talk about the underlying concepts. The student can then immediately go back and apply his or her new understanding."

For the introductory sequence, student Chris Kane and Hailperin developed a customized NeXT programming environment called Schemakit, a Scheme dialect of Lisp.

According to Hailperin, Schematik combines the functionalities of a text editor tailored to Scheme with user interface for an underlying Scheme interpreter. It has standard NeXTSTEP features and many Scheme-specific features, including automatic indention. When used with MIT Scheme, Schematik provides such features as indication of the current command loop type and level; indication of whether Scheme is running, garbage collecting, or waiting for input, error messages in standard NeXT-style error panels; and commands for sending various interrupts to Scheme.

Schematik is available via anonymous FTP from ftp.gac.edu. in pub/next/scheme.

Partial support for this work was provided by the National Science Foundation's Instrumentation and Laboratory Improvement Program through grant #USE-915248.

For more information, please contact:

Max Hailperin
Assistant Professor of Computer Science
Department of Computer Science
Gustavus Adolphus College
800 W. College Avenue
St. Peter, MN 56082-1498
(507) 933-7466
max@nic.gac.edu