Connecting Discrete Mathematics and Software Engineering

Modern systems are critically dependent on software for their design and operation. The next generation of developers must be facile in the specification, design and implementation of dependable software using rigorous developmental processes. To help prepare this generation we have developed a teaching approach and materials that serve a two-fold purpose: promote an understanding and appreciation of the discrete mathematical structures (DM) that are the foundation of software engineering (SE) theory; and provide motivation and training of modern software development and analysis tools. Our teaching approach and materials form a two-course sequence establishing mastery of important SE areas: DM underlying modern SE theory (e.g., static analysis and proof); formal languages and their use (e.g., software specification languages); application of DM to SE (e.g., composition of theory and application for artifact development); and mathematics for advanced SE engineering needs (e.g., finite state machines and graph theory)

[1]  Jim Woodcock,et al.  Software engineering mathematics : formal methods demystified , 1988 .

[2]  Jack W. Davidson,et al.  Java Program Design , 2003 .

[3]  Allen B. Tucker,et al.  Computing curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force , 1991 .

[4]  John C. Knight,et al.  Tool support for production use of formal techniques , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[5]  John C. Knight,et al.  Exploring the software development process using a security camera in a CS2 course , 1994, Proceedings of 1994 IEEE Frontiers in Education Conference - FIE '94.

[6]  James P. Cohoon,et al.  Software Engineering Beginning in the First Computer Science Course , 1994, CSEE.

[7]  J. Stanley Warford An experience teaching formal methods in discrete mathematics , 1995, SGCS.

[8]  Ronald E. Prather Another look at the discrete structures course , 1976, SIGCSE '76.

[9]  Rocky Ross Education Forum: Making Theory Come Alive , 1996, SIGA.

[10]  Gregory Tassey,et al.  Prepared for what , 2007 .

[11]  Darrel C. Ince,et al.  An introduction to discrete mathematics , 1988 .

[12]  D. Ince,et al.  An introduction to discrete mathematics, formal system specification, and Z , 1993 .

[13]  Ann E. Fleury Evaluating discrete mathematics exercises , 1993, SIGCSE '93.

[14]  Susan H. Rodger,et al.  A collection of tools for making automata theory and formal languages come alive , 1997, SIGCSE '97.

[15]  Mandayam K. Srivas,et al.  A Tutorial Introduction to PVS , 1998 .

[16]  James W. McGuffee The discrete mathematics enhancement project , 2002 .

[17]  Allen B. Tucker,et al.  Computing Curricula 1991 , 1991, CACM.

[18]  A. T. Berztiss The why and how of discrete structures , 1976, SIGCSE '76.

[19]  J. Davenport Editor , 1960 .

[20]  Thomas B. Hilburn,et al.  Support for Teaching Formal Methods Report of the ITiCSE 2000 Working Group on Formal Methods Education , 2000 .

[21]  Vicki L. Almstrum,et al.  Support for teaching formal methods , 2001, SGCS.

[22]  J. P. Tremblay,et al.  A first course in discrete structures with applications to computer science , 1974, SIGCSE '74.

[23]  Jim Woodcock,et al.  Software engineering mathematics , 1988 .

[24]  Kathryn L. Heninger Specifying Software Requirements for Complex Systems: New Techniques and Their Application , 2001, IEEE Transactions on Software Engineering.

[25]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[26]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

[27]  Jane Chu Prey,et al.  Undergraduate computer science education: a new curriculum philosophy & overview , 1994, SIGCSE '94.

[28]  Hossein Saiedian Towards more formalism in software engineering education , 1993, SIGCSE '93.