Data structures, algorithms, and software engineering

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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.

Original languageEnglish (US)
Title of host publicationSoftware Engineering Education - SEI Conference 1989, Proceedings
PublisherSpringer Verlag
Pages70-79
Number of pages10
Volume376 LNCS
ISBN (Print)9780387970905
StatePublished - 1989
Externally publishedYes
Event3rd SEI Conference on Software Engineering Education, 1989 - Pittsburgh, United States
Duration: Jul 18 1989Jul 21 1989

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume376 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other3rd SEI Conference on Software Engineering Education, 1989
CountryUnited States
CityPittsburgh
Period7/18/897/21/89

Fingerprint

Algorithm Engineering
Software Engineering
Data structures
Algorithms and Data Structures
Software engineering
Data Structures
Programming
Students
Computer science
Computer Science
Assignment
Information Hiding
Modularization
Software Tools
Curricula
Reuse
System Design
Assign
Systems analysis
Experiment

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Cite this

Collberg, C. S. (1989). Data structures, algorithms, and software engineering. In Software Engineering Education - SEI Conference 1989, Proceedings (Vol. 376 LNCS, pp. 70-79). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 376 LNCS). Springer Verlag.

Data structures, algorithms, and software engineering. / Collberg, Christian S.

Software Engineering Education - SEI Conference 1989, Proceedings. Vol. 376 LNCS Springer Verlag, 1989. p. 70-79 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 376 LNCS).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Collberg, CS 1989, Data structures, algorithms, and software engineering. in Software Engineering Education - SEI Conference 1989, Proceedings. vol. 376 LNCS, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 376 LNCS, Springer Verlag, pp. 70-79, 3rd SEI Conference on Software Engineering Education, 1989, Pittsburgh, United States, 7/18/89.
Collberg CS. Data structures, algorithms, and software engineering. In Software Engineering Education - SEI Conference 1989, Proceedings. Vol. 376 LNCS. Springer Verlag. 1989. p. 70-79. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
Collberg, Christian S. / Data structures, algorithms, and software engineering. Software Engineering Education - SEI Conference 1989, Proceedings. Vol. 376 LNCS Springer Verlag, 1989. pp. 70-79 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{8ae04b37c13643bf827d1ef1daee4e7e,
title = "Data structures, algorithms, and software engineering",
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.",
author = "Collberg, {Christian S}",
year = "1989",
language = "English (US)",
isbn = "9780387970905",
volume = "376 LNCS",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "70--79",
booktitle = "Software Engineering Education - SEI Conference 1989, Proceedings",
address = "Germany",

}

TY - GEN

T1 - Data structures, algorithms, and software engineering

AU - Collberg, Christian S

PY - 1989

Y1 - 1989

N2 - 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.

AB - 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.

UR - http://www.scopus.com/inward/record.url?scp=85032272307&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85032272307&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:85032272307

SN - 9780387970905

VL - 376 LNCS

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 70

EP - 79

BT - Software Engineering Education - SEI Conference 1989, Proceedings

PB - Springer Verlag

ER -