Abstract
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 Aho, A.V., Hopcroft, J.E., and Ullman, J.D. 1974. The Design and Analysis of Computer Algorithms. Addison-Wesley Publ. Co., Reading, Mass.]] Google ScholarDigital Library
- 2 Ashby, G., Salmonson, L., and Heilman, R. 1973. Design of an Interactive Debugger for FORTRAN: MANTIS. Software - Practice and Experience, V. 3, N. 1.]]Google Scholar
- 3 Aygun, B.O. 1973. Dynamic Analysis of Execution: Possibilities, Techniques and Problems. Ph.D. Dissertation. Department of Computer Science, Carnegie-Mellon University, Pittsburgh, Pa.]] Google ScholarDigital Library
- 4 Baker, F.T. 1972. System Quality through Structured Programming. AFIPS Fall Joint Computer Conference Proceedings.]]Google ScholarDigital Library
- 5 Bauer, H., Becker, S., and Graham, S. 1968. ALGOL W Implementation. Report CS 98. Computer Science Department, Stanford University, Palo Alto, Ca.]] Google ScholarDigital Library
- 6 Beizer, B. 1970. Analytical Techniques for the Statistical Evaluation of Program Running Time. AFIPS Fall Joint Computer Conference.]]Google Scholar
- 7 Benson, J.P. 1973. Structured Programming Techniques. IEEE Symposium on Computer Software Reliability.]]Google Scholar
- 8 Bohm, C. and Jacopini, G. 1966. Flow Diagrams, Turing Machines and Languages With Only Two Formation Rules. Communications of the ACM, V. 9, N. 5 (May).]] Google ScholarDigital Library
- 9 Brown, A.R. and Sampson, W.A. 1973. Program Debugging. American Elsevier Publ. Co. Inc., New York, N. Y.]] Google ScholarDigital Library
- 10 Brown, J.R., DeSalvio, A.J., Heine, D.E., Purdy, J.G. 1973. Automated Software Quality Assurance. In Hetzel, W. C., ed. Program Test Methods. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
- 11 Bulow, K. 1974. Programming in Book Format. Datamation, V. 20, N. 10 (October).]]Google Scholar
- 12 DEC 1973a. DECsystem-10 COBOL Language Manual. Second Edition. Digital Equipment Corporation, Maynard, Mass.]]Google Scholar
- 13 DEC 1973b. DECsystem-10 FORTRAN-10 Language Manual. Second Edition. Digital Equipment Corporation, Maynard, Mass.]]Google Scholar
- 14 DEC 1973c. Beginning User's Guide to SPY. Digital Equipment Corporation, Maynard, Mass.]]Google Scholar
- 15 Dahl O.J., Dijkstra, E.W., and Hoare, C.A.R. 1972. Structured Programming. Academic Press, New York, N. Y.]] Google ScholarDigital Library
- 16 Darden, S.C. and Heller, S.B. 1972. Compiler Development by Iterative Optimization. In Pollack, B. W., ed. Compiler Techniques. Auerbach Publishers, Princeton, New Jersey.]]Google Scholar
- 17 Davis, T.M. and Browne, J.C. 1973. A Flowchart Based System for Program Verification. Technical Report. Information Research Associates, Austin, Texas.]]Google Scholar
- 18 Dean, J.L. 1971. Optimization Techniques for Fortran 4 (G and H) Programs Written for the IBM 360 under OS. NASA-TM-X-70477. NASA, Goddard Space Flight Center, Greenbelt, Md.]]Google Scholar
- 19 Dijkstra, E.W. 1968. Go To Statement Considered Harmful. Communications of the ACM, V. 11, N. 3 (March) and N. 8 (August).]] Google ScholarDigital Library
- 20 Dijkstra, E.W. 1972. Notes on Structured Programming. In Structured Programming. Academic Press, Inc., New York, N. Y.]] Google ScholarDigital Library
- 21 Elspas, B., Levitt, K.N., Waldinger, R.J., and Waksman, A. 1972. An Assessment of Techniques for Proving Program Correctness. ACM Computing Surveys, V. 4, N. 2 (June).]] Google ScholarDigital Library
- 22 Estrin, G., Hopkins, D., Coggan, B., and Crocker, S.D. 1967. SNUPER - a Computer Instrumentation Automaton. AFIPS Spring Joint Computer Conference.]]Google Scholar
- 23 Freeman, P. 1972. Functional Programming, Testing and Machine Aids. Technical Report. Department of Information and Computer Science, University of California, Irvine, California.]]Google Scholar
- 24 Gaines, R.S. 1969. The Debugging of Computer Programs. Communications Research Division Working Paper, Institute for Defense Analysis, Princeton, New Jersey.]]Google Scholar
- 25 Graham, R.M., Clancy, G.J., and DeVaney, D.B. 1973. A Software Design and Evaluation System. Communications of the ACM, V. 16, N. 2 (February).]] Google ScholarDigital Library
- 26 Henderson, P. and Snowdon, R. 1972. An Experiment in Structured Programming. BIT V. 12, N. 1.]]Google Scholar
- 27 Hetzel, W.C. 1973. Program Test Methods. Prentice-Hall, Englewood Cliffs, New Jersey.]]Google Scholar
- 28 IBM 1971. Chief Programmer Teams - Principles and Procedures. Technical Report FSC 71-5108. IBM Federal Systems Division, Gaithersburg, Md.]]Google Scholar
- 29 Ingalls, D. 1972. The Execution Time Profile as a Programming Tool. In Rustin, R., ed. Design and Optimization of Compilers. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
- 30 Kernighan, B.W., and Plauger, P.J. 1974. The Elements of Programming Style. McGraw-Hill Book Co., New York, N. Y.]] Google ScholarDigital Library
- 31 King, J. 1971. A Verifying Compiler. In Rustin, R., ed. Debugging Techniques in Large Systems. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
- 32 Knuth, D.E. 1968. The Art of Computer Programming, Volume 1: Fundamental Algorithms. Addison-Wesley Publ. Co., Reading, Mass.]] Google ScholarDigital Library
- 33 Knuth, D.E. 1969. The Art of Computer Programming, Volume 2: Semi-numerical Algorithms. Addison-Wesley Publ. Co., Reading, Mass.]] Google ScholarDigital Library
- 34 Knuth, D.E. 1971. An Empirical Study of FORTRAN Programs. Software - Practice and Experience, V. 1, N. 2.]]Google Scholar
- 35 Knuth, D.E. 1973. The Art of Computer Programming, Volume 3: Sorting and Searching. Addison-Wesley Publ. Co., Reading, Mass.]] Google ScholarDigital Library
- 36 Kreitzberg, C.B. and Shneiderman, B. 1972. The Elements of FORTRAN Style. Harcourt Brace Jovanovich, Inc., New York, N. Y.]] Google ScholarDigital Library
- 37 Lang, B. 1972. A New Technique for Data Monitoring. SIGPLAN Notices, V. 7, N. 6 (June).]] Google ScholarDigital Library
- 38 Lucas, H.C. Jr. 1971. Performance Evaluation and Monitoring. ACM Computing Surveys, V. 3, N. 3.]] Google ScholarDigital Library
- 39 Mann, G.A. 1973. A Survey of Debug Systems. Honeywell Computer Journal, V. 7, N. 3.]]Google Scholar
- 40 Maynard, J. 1972. Modular Programming. Auerbach Publishers, Princeton, New Jersey.]]Google Scholar
- 41 Mills, H. 1971. Top Down Programming in Large Systems. In Rustin, R., ed. Debugging Techniques in Large Systems. Prentice-Hall, Englewood Cliffs, New Jersey.]]Google Scholar
- 42 Nading, J.L. 1974. The Instrumenting Compiler as a Tool for High-level Program Monitoring. M.S. Thesis. Computer Science Department, The University of Arizona, Tucson, Arizona.]]Google Scholar
- 43 Nassi, I. and Shneiderman, B. 1973. Flowchart Techniques for Structured Programming. SIGPLAN Notices, V. 8, N. 8 (August).]] Google ScholarDigital Library
- 44 Nemeth, A.G. and Rovner, P.D. 1971. User Program Measurement in a Time-Shared Environment. Communications of the ACM, V. 14, N. 10 (October).]] Google ScholarDigital Library
- 45 Parnas, D.L. 1971. Information Distribution Aspects of Design Methodology. IFIP Congress Proceedings.]]Google Scholar
- 46 Parnas, D.L. 1972a. A Technique for Software Module Specification with Examples. Communications of the ACM, V. 15, N. 5.]] Google ScholarDigital Library
- 47 Parnas, D.L. 1972b. On the Criteria to be Used in Decomposing Systems Into Modules. Communications of the ACM, V. 15, N. 12.]] Google ScholarDigital Library
- 48 Peterson, W.W., Kasami, T., and Tokura, N. 1973. On the Capabilities of While, Repeat, and Exit Statements. Communications of the ACM, V. 16, N. 8 (August).]] Google ScholarDigital Library
- 49 Rain, M. 1973. Two Unusual Methods for Debugging System Software. Software - Practice and Experience, V. 3, N. 1.]]Google Scholar
- 50 Ripley, G.D., and Griswold. R.E. 1974. The Measurement of SNOBOL4 Programs. Technical Report S4D44. Computer Science Department, The University of Arizona, Tucson, Arizona.]]Google Scholar
- 51 Rustin, R. (ed.) 1971. Debugging Techniques in Large Systems. Prentice-Hall, Englewood Cliffs, New Jersey.]]Google Scholar
- 52 Scherr, A.L. 1973. Developing and Testing a Large Programming System, OS/360 Time Sharing Option. In Hetzel, W. C., ed. Program Test Methods. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
- 53 Snowdon, R.A. 1972. An Interactive System for the Preparation and Validation of Structured Programs. SIGPLAN Notices, V. 7, N. 3 (March).]] Google ScholarDigital Library
- 54 Van Tassel, D. 1974. Program Style, Design, Efficiency, Debugging, and Testing. Prentice-Hall, Englewood Cliffs, New Jersey.]] Google ScholarDigital Library
- 55 Waite, W.M. 1973. A Sampling Monitor for Application Programs. Software - Practice and Experience, V. 3, N. 1.]]Google Scholar
- 56 Weinberg, G.M. 1971. The Psychology of Computer Programming. Van Nostrand Reinhold, New York, N. Y.]] Google ScholarDigital Library
- 57 Wetterlind, P.J. 1974. Techniques for Effective Programming: An Analysis. Student Project Report. Computer Science Department, The University of Arizona, Tucson, Arizona.]]Google Scholar
- 58 Whitman, B. 1971. (Participant) Symposium: Computer System Performances. IFIP Congress Proceedings. Pg. 1604.]]Google Scholar
- 59 Wichmann, B.A. 1972. Estimating the Execution Speed of an ALGOL program. SIGPLAN Notices, V. 7, N. 8 (August).]] Google ScholarDigital Library
- 60 Wirth, N. 1971. Program Development by Stepwise Refinement. Communications of the ACM, V. 14, N. 4 (April).]] Google ScholarDigital Library
- 61 Wirth, N. 1973. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, New Jersey.]] Google ScholarDigital Library
- 62 Wulf, W.A. 1971. Programming Without the GOTO. IFIP Congress Proceedings.]]Google Scholar
- 63 Youngberg, E.P. 1973. A Software Testing Control System. In Hetzel, W. C., ed. Program Test Methods. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
- 64 Yourdon, E. 1975 (in press). Advanced Programming Techniques, Volume I: Program Structure and Design. Prentice-Hall, Inc., Englewood Cliffs, N. J.]]Google Scholar
Index Terms
- A course in effective programming
Comments