This Article 
 Bibliographic References 
 Add to: 
Mathematical Principles for a First Course in Software Engineering
May 1989 (vol. 15 no. 5)
pp. 550-559

An introductory computer science course is developed, much as calculus is a basic course for mathematics and the physical sciences, concerned primarily with theoretical foundations and methodology rather than apprenticeship through applications. In this work, the principles taught in the course are described and an example illustrating them is given.

[1] E. W. Dijkstra, "Notes on structured programming," inStructured Programming. New York: Academic, 1972, pp. 1-82.
[2] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[3] R. W. Floyd, "Assigning meanings to programs," inProc. Symp. Appl. Math., vol. 19, J. T. Schwartz, Ed., 1967, pp. 19-32.
[4] J.D. Gannon, R.G. Hamlet, and H.D. Mills, "Theory of modules,"IEEE Trans. Software Eng., vol. 14, no. 7, pp. 820-829, July 1987.
[5] C. A. R. Hoare, "An axiomatic basis for computer programming,"Commun. ACM, vol. 12, no. 10, pp. 576-583, 1969.
[6] C. A. R. Hoare, "Proof of correctness of data abstraction,"Acta Inform., vol. 1, pp. 271-281, 1972.
[7] C. A. R. Hoare, "Notes on data structuring," inStructured Programming. New York: Academic, 1972, pp. 83-174.
[8] H. D. Mills, "Mathematical foundations for structured programming," inSoftware Productivity. Boston, MA: Little, Brown and Co., 1982, pp. 115-178.
[9] H. D. Mills, V. R. Basili, J. D. Gannon, and R. G. Hamlet,Principles of Computer Programming: A Mathematical Approach. Boston, MA: Allyn and Bacon, 1986.
[10] H. D. Mills, M. Dyer, and R. Linger, "Cleanroom software engineering,"IEEE Software, vol. 4, no. 5, pp. 19-25, Sept. 1987.
[11] P. Naur, "Proof of algorithms by general snapshots,"BIT, vol. 6, pp. 310-316, 1966.
[12] Parnas, D.L., "A Technique for Software Module Specification with Examples,"Comm. ACM, Vol. 15, No. 5, May 1972, pp. 330-336.
[13] R. Selby, Jr., V. Basili, and T. Baker, "Cleanroom Software Development: An Empirical Evaluation,"IEEE Trans. Software Eng., Sept. 1987, pp. 1027-1037.
[14] N. Wirth, "Program development by stepwise refinement,"Commun. ACM, vol. 14, no. 4, pp. 221-227, Apr. 1971.

Index Terms:
mathematical principles; first course; software engineering; introductory computer science course; computer science education; educational courses; mathematics computing; software engineering.
H.D. Mills, V.R. Basili, J.D. Gannon, R.G. Hamlet, "Mathematical Principles for a First Course in Software Engineering," IEEE Transactions on Software Engineering, vol. 15, no. 5, pp. 550-559, May 1989, doi:10.1109/32.24704
Usage of this product signifies your acceptance of the Terms of Use.