A course in effective programming

This paper describes a graduate Computer Science course in which all aspects of the programming process are examined. The course has been taught for the past three years, and represents an attempt to pull together various results of researchers working on this rather undeveloped but important area. Unfortunately space does not permit the inclusion here of many details or examples. Rather, the emphasis is on the form of the course and how the reference material is used in pursuing the course objectives. (The topic of program measurement is expanded on somewhat, being a topic of interest to the author and one about which little has been said elsewhere.)

[1]  Tadao Kasami,et al.  On the capabilities of while, repeat, and exit statements , 1973, Commun. ACM.

[2]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[3]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[4]  Boris Beizer,et al.  Analytical techniques for the statistical evaluation of program running time , 1970, AFIPS '70 (Fall).

[5]  Randall Rustin,et al.  Debugging Techniques in Large Systems , 1972 .

[6]  Birol Omer Aygun Dynamic-analysis of execution: possibilities, techniques and problems. , 1974 .

[7]  Henry R. Bauer,et al.  ALGOL W implementation , 1968 .

[8]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[9]  Gordon Ashby,et al.  Design of an interactive debugger for FORTRAN: MANTIS , 1973, Softw. Pract. Exp..

[10]  A. R. Brown,et al.  Program Debugging , 1973 .

[11]  Karl N. Levitt,et al.  Greatest Common Divisor of n Integers and Multipliers (Certification of Algorithm 386) , 1973, Commun. ACM.

[12]  F. T. Baker,et al.  System quality through structured programming , 1899, AFIPS '72 (Fall, part I).

[13]  Jeff Maynard,et al.  Modular programming , 1972 .

[14]  Dennis Van Tassel,et al.  Program Style, Design, Efficiency, Debugging, and Testing , 1974 .

[15]  R. A. Snowdon PEARL: an interactive system for the preparation and validation of structured programs , 1972, SIGP.

[16]  Jay Lawrence Nading The instrumenting compiler as a tool for high-level program monitoring , 1974 .

[17]  Henry C. Lucas,et al.  Performance Evaluation and Monitoring , 1971, CSUR.

[18]  David Lorge Parnas,et al.  Information Distribution Aspects of Design Methodology , 1971, IFIP Congress.

[19]  Peter Henderson,et al.  An experiment in structured programming , 1972 .

[20]  Robert M. Graham,et al.  A software design and evaluation system , 1973, CACM.

[21]  Brian W. Kernighan,et al.  Elements of Programming Style , 1974 .

[22]  William A. Wulf,et al.  Programming without the Goto , 1971, IFIP Congress.

[23]  Bernard Lang A new technique for data monitoring , 1972, SIGP.

[24]  Ben Shneiderman,et al.  The elements of Fortran style: techniques for effective programming , 1972 .

[25]  R. Stockton Gaines,et al.  The debugging of computer programs , 1969 .

[26]  Niklaus Wirth,et al.  Systematic Programming: An Introduction , 1974 .

[27]  William C. Hetzel,et al.  Program test methods , 1973 .

[28]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[29]  A. R. Brown,et al.  Pgm DeBugging , 1973 .

[30]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[31]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[32]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[33]  Gerald Estrin,et al.  Snuper computer: a computer in instrumentation automaton , 1967, AFIPS '67 (Spring).

[34]  B. A. Wichmann Estimating the execution speed of an Algol program , 1972, SIGP.

[35]  Paul Rovner,et al.  User program measurement in a time-shared environment , 1971, CACM.

[36]  Mark Rain Two unusual methods for debugging system software , 1973, Softw. Pract. Exp..

[37]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[38]  Donald E. Knuth,et al.  An empirical study of FORTRAN programs , 1971, Softw. Pract. Exp..

[39]  B. Shneiderman,et al.  Flowchart techniques for structured programming , 1973, SIGP.

[40]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[41]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[42]  J. L. Dean Optimization techniques for FORTRAN 4 (G and H) programs written for the IBM 360 under OS , 1971 .