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