Introducing "theory" in the second programming course

  • Authors:
  • Paul N. Hilfinger;Mary Shaw;Wm. A. Wulf

  • Affiliations:
  • Carnegie-Mellon University, Pittsburgh, Pennsylvania;Carnegie-Mellon University, Pittsburgh, Pennsylvania;Carnegie-Mellon University, Pittsburgh, Pennsylvania

  • Venue:
  • SIGCSE '78 Proceedings of the ninth SIGCSE technical symposium on Computer science education
  • Year:
  • 1978

Quantified Score

Hi-index 0.00

Visualization

Abstract

Traditionally, the first two programming courses have emphasized basic techniques and skills—the details of a programming language, basic problem solving and program development, “structured programming”, the manipulation of simple data structures and files, basic sorting and searching algorithms, etc. Our principle motivation is the conviction that programming should be an engineering discipline, and that engineering disciplines must be grounded in engineering science. Further, to be effectively taught, this science must be introduced as early as possible. In contrast to the measure-theoretic under pinnings of the calculus, the theory we introduce is immediately useful to working programmers. In addition, the topics we cover are fundamental to later courses. By introducing the topics early in the curriculum, we provide a common vocabulary for these later courses, eliminate redundant treatment of topics, and give students greater exposure to the material and a better chance to absorb it. We feel we have been successful with the course, although our evidence is necessarily subjective. Because its philosophy flies in the face of current practice, we shall attempt to explain that philosophy in this paper. The course itself, “Fundamental Structures of Computer Science” (FS here after) is described in somewhat greater detail in [2] and we are preparing a supporting text [3]. We are not so much interested in pressing our own particular treatment of the topics, however, as we are the choice of material and its place in the curriculum.