Data Structures, Algorithms, and Software Engineering
Christian S. Collberg
Department of Computer Sciences,
Lund University,
S-221 00 Lund, Sweden.
collberg@dna.lth.se
Abstract
Traditionally, students in undergraduate computer science curricula have to
wait until their third or fourth year until they are confronted with the problems
which arise in the design of large programs. The rationale behind this is that
programming-in-the-small has to be mastered before programming-in-the-large.
In this paper we will argue that the elements of software engineering
must be present at all levels and in all computer science courses and that
it is feasible, with the proper tools and precautions, to assign large
and complex programming assignments even at the introductory level.
An experiment to this effect has been carried out in a data structures and
algorithms course given at the University of Lund. A non-trivial program
(a make -utility for Modula-2) was specified and partially modularized
by the instructor and assigned piecewise to the students. The assignments
trained the students in the implementation of data structures and algorithms
as well as software tool design, modularization, information hiding, reuse,
and large system design.
Back to Collberg's Research Page
Back to Collberg's Home Page