Skip to main content

Data structures, algorithms, and software engineering

  • Section I Third SEI Conference On Software Engineering Education
  • Conference paper
  • First Online:
  • 143 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 376))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Czyzowicz, J., and Iglewski, M. Implementing Generic Types In Modula-2. SIGPLAN Notices, Vol. 20, No. 12, June 1985, pp. 26–32.

    Article  Google Scholar 

  2. Feldman, S. I. Make — A Program for Maintaining Computer Programs. Software-Practice and Experience, Vol. 9, No. 4, Apr. 1979, pp. 255–265.

    MATH  Google Scholar 

  3. Gillett, W. The Anatomy of a Project Oriented Second Course for Computer Science Majors. In 11th SIGCSE Technical Symposium on Computer Science Education, Feb. 1980, ACM, pp. 25–31.

    Google Scholar 

  4. Koffman, E. B. The Case for Modula-2 in CS1 and CS2. In 19th SIGCSE Technical Symposium on Computer Science Education, Feb. 1988, ACM, pp. 49–53.

    Google Scholar 

  5. Koffman, E. B., Stemple, D., and Wardle, C. E. Recommended Curriculum for CS2, 1984. CACM, Vol. 28, No. 8, Aug. 1985, pp. 815–818.

    Google Scholar 

  6. Teague, D. B. Computer Programming II: A Project-Oriented Course. In 12th SIGCSE Technical Symposium on Computer Science Education, Feb. 1981, ACM, pp. 41–45.

    Google Scholar 

  7. Walden, K. Automatic Generation of Make Dependencies. Software-Practice and Experience, Vol. 14, No. 6, June 1984, pp. 575–585.

    MATH  Google Scholar 

  8. Werth, L. H. Integrating Software Engineering into an Intermediate Programming Class. In 19th SIGCSE Technical Symposium on Computer Science Education, Feb. 1988, ACM, pp. 54–58.

    Google Scholar 

  9. Wiener, R. S., and Sinovec, R. F. Two Approaches to Implementing Generic Data Structures In Modula-2. SIGPLAN Notices, Vol. 20, No. 6, June 1985, pp. 56–64.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Norman E. Gibbs

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Collberg, C.S. (1989). Data structures, algorithms, and software engineering. In: Gibbs, N.E. (eds) Software Engineering Education. SEI 1989. Lecture Notes in Computer Science, vol 376. Springer, New York, NY. https://doi.org/10.1007/BFb0042350

Download citation

  • DOI: https://doi.org/10.1007/BFb0042350

  • Published:

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-0-387-97090-5

  • Online ISBN: 978-0-387-34791-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics