Gettysburg College
Computer ScienceNew focus for introductory CS students
Reproduced with permission from NeXT
Computer, Inc.
A Reference
Guide to NeXT in Higher Education, Fall 1992
ยช
1992 NeXT Computer,
Inc.
The traditional teaching
approach for most introductory computer science courses
involves implementing concepts through programming language
syntax. According to Rodney Tosten, assistant professor of
computer science at Gettysburg College, one unfortunate
consequence of this method is that students often "become
lost in the code development and encounter tremendous
trouble in understanding the real concepts."
"Although this approach has successfully taught a large
number of students," he says, "many others have completed
the introductory courses assuming that computer science and
programming are synonymous. We feel that the introduction
of improved computer hardware and software development
environments has outdated this approach."
To take advantage of new technology and improve students'
understanding of computer science concepts, Tosten and Carl
Leinbach, chair of the Mathematics and Computer Science
Department, revised the curriculum in Gettysburg's three
lower-division CS courses-Introduction to Computing, Data
Structures and Computer Organization, and Assembly Language
Programming.
"We wanted to expedite the coding phase," explains Tosten,
"and provide more time for students to learn and explore
concepts. We want first- and second-year computer science
students to learn that computer science concepts are
grounded in solid theories."
Tosten and Leinbach decided to use NeXT machines in the
courses based on three factors they considered key in the
curriculum redesign.
"The object-oriented environment was a significant factor,"
Tosten says. "NeXTSTEP incorporates the object-oriented
paradigm throughout its operating system and user interface
instead of within an individual programming package.
"In addition, NeXT's various software support systems,
including Interface Builder and Display PostScript-based
graphics, provide a powerful environment for application
construction. The third factor is NeXT's support of the
UNIX operating system. All in all, these things really set
NeXT above other platforms."
Tosten and Leinbach came up with two strategies to teach
the courses using NeXT machines. first, they wanted to
implement course concepts in an object-oriented environment
so students could create and maintain individual object
structures.
"We believed that if students were using their own object
libraries in conjunction with the system object libraries,
they would be able to experiment more with abstract ideas,"
says Tosten. "They could construct applications more
quickly and effectively and thereby eliminate their
preoccupation with coding."
They also wanted to provide students with more visual
reinforcement of abstract ideas. "With Interface Builder,"
Tosten says, "students work with concrete visual objects
associated with abstract concepts. They also build and
dissect objects so they can observe and compare a variety
of abstract ideas for solving the same problem."
Throughout the semester-long data structures course,
students now implement data structures as objects and then
use these objects to construct larger applications. When
studying sorting, for example, they implement several
sorting algorithms in a "package skeleton" provided by the
instructor. When they've finished the assignment, they have
a package that allows them to experiment among the sorting
algorithms.
As an assignment in Introduction to Computing, students
implement a loop structurally, visually, and through code.
"This way," says Tosten, "the students interact with the
concept in three different settings. The combination of
these strategies presents the student with the tools to
implement concepts through code and to explore concepts
structurally. The visual representation of an idea gives
the student another method to learn and experiment with the
major concepts of computer science."
Using Interface Builder, Tosten has also developed an
interactive database, called IntroBase, for use in
Introduction to Computing. IntroBase serves as as a tool to
introduce database management theory and processing and as
a bridge from using applications to building them.
"It provides an easy way to introduce students to the
concept of an algorithm and the problem-solving process,"
says Tosten.
With NeXT's graphical interface, students in the Computer
Language and Assembly Language course are able to construct
and experiment with graphical representations of
architectural components such as an address decoder.
"The focus of this course is less on assembly language
programming and more on concepts and theory," says Tosten.
"We want students to understand how high-level language
structures are implemented in assembly language code and
how they affect the machine's behavior at a lower level."
Concludes Tosten, "The NeXT platform is an excellent
teaching platform for us. With the NeXT machines, we've
been able to cover computer concepts we were previously
incapable of presenting. Our overall teaching approach with
NeXT now raises the student from the traditional role of a
programmer forging out the code that implements concepts to
that of an active scientist engaged in experimentation."
For more information, please contact:
Rodney Tosten
Assistant Professor of Computer Science
Gettysburg College
Campus Box 402
Gettysburg, PA 17325
(717) 337-6636
rtosten@cc.gettysburg.edu