Abstract
The idea of weaving formal methods through computing (or software engineering) degrees is not a new one. However, there has been little success in developing and implementing such a curriculum. Formal methods continue to be taught as stand-alone modules and students, in general, fail to see how fundamental these methods are to the engineering of software. A major problem is one of motivation — how can the students be expected to enthusiastically embrace a challenging subject when the learning benefits, beyond passing an exam and achieving curriculum credits, are not clear? Problem-based learning has gradually moved from being an innovative pedagogique technique, commonly used to better-motivate students, to being widely adopted in the teaching of many different disciplines, including computer science and software engineering. Our experience shows that a good problem can be re-used throughout a student’s academic life. In fact, the best computing problems can be used with children (young and old), undergraduates and postgraduates. In this paper we present a process for weaving formal methods through a University curriculum that is founded on the application of problem-based learning and a library of good software engineering problems, where students learn about formal methods without sitting a traditional formal methods module. The process of constructing good problems and integrating them into the curriculum is shown to be analagous to the process of engineering software. This approach is not intended to replace more traditional formal methods modules: it will better prepare students for such specialised modules and ensure that all students have an understanding and appreciation for formal methods even if they do not go on to specialise in them.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Woods, D.R.: Problem-based Learning: how to gain the most from PBL. Waterdown, Ontario (1996)
Wing, J.M.: Invited talk: Weaving formal methods into the undergraduate computer science curriculum. In: Rus, T. (ed.) AMAST 2000. LNCS, vol. 1816, pp. 2–9. Springer, Heidelberg (2000)
Kiniry, J.R., Zimmerman, D.M.: Secret ninja formal methods. In: Cuellar, J., Maibaum, T.S.E., Sere, K. (eds.) FM 2008. LNCS, vol. 5014, pp. 214–228. Springer, Heidelberg (2008)
Gibson, J.P., Lallet, E., Raffy, J.L.: How do I know if my design is correct? In: Formal Methods in Computer Science Education (FORMED), pp. 59–69 (March 2008)
Hilgard, E.R., Bower, G.H.: Theories of Learning. Prentice Hall, Englewood Cliffs (1956)
Brainerd, C.: Piaget’s Theory of Intelligence. Prentice Hall, Englewood Cliffs (1978)
Bruner, J.S.: Toward a theory of instruction. Belknap Press of Harvard University, Cambridge (1966)
Guilford, J.P.: The Nature of Human Intelligence. McGraw-Hill, New York (1967)
Gardner, H.: Frames of mind: the theory of multiple intelligence. Basic Books, New York (1983)
Papert, S., Sculley, J.: Mindstorms: children, computers, and powerful ideas. Basic Books, New York (1980)
Schoenfeld, A.H.: Mathematical Problem Solving. Academic Press, Orlando (1985)
Bloom, B.S., Engelhart, M.D., Furst, E.J., Hill, W.H., Krathwohl, D.R.: Taxonomy of educational objectives Handbook 1: cognitive domain. Longman Group Ltd., London (1956)
Barrows, H., Tamblyn, R.: Problem-Based Learning: An Approach to Medical Education. Springer Publishing Company, New York (1980)
Torp, L., Sage, S.: Problems as Possibilities: Problem-Based Learning for K16 Education. Association for Supervision and Curriculum Development (ASCD), Alexandria (2002)
Duch, B.: Writing Problems for Deeper Understanding, pp. 47–53. Stylus Publishing, Sterling (2001)
Tien, C., Chu, S., Lin, Y.: Four phases to construct problem-based learning instruction materials. In: PBL In Context Bridging work and Education, pp. 117–133. Tampere University Press (2005)
O’Kelly, J., Gibson, J.P.: PBL: Year one analysis — interpretation and validation. In: PBL In Context — Bridging Work and Education (2005)
Wing, J.M.: Computational thinking. Commun. ACM 49(3), 33–35 (2006)
Gibson, J.P., O’Kelly, J.: Software engineering as a model of understanding for learning and problem solving. In: ICER 2005: Proceedings of the 2005 international workshop on Computing education research, pp. 87–97. ACM, New York (2005)
Gibson, J.P.: Formal methods - never too young to start. In: Formal Methods in Computer Science Education (FORMED), pp. 149–159 (March 2008)
Gibson, J.P.: Formal requirements engineering: Learning from the students. In: Australian Software Engineering Conference, pp. 171–180. IEEE Computer Society, Los Alamitos (2000)
Gibson, J.P., Méry, D.: Teaching formal methods: Lessons to learn. In: Flynn, S., Butterfield, A. (eds.) IWFM. Workshops in Computing, BCS (1998)
Curran, W.S.: Teaching software engineering in the computer science curriculum. SIGCSE Bull. 35(4), 72–75 (2003)
Parnas, D.L., Soltys, M.: Basic science for software developers. In: Workshop on Formal Methods in the Teaching Lab (FM-Ed 2006), pp. 9–14 (August 2006)
Habrias, H.: Teaching specifications, hands on. In: Formal Methods in Computer Science Education (FORMED), pp. 5–15 (March 2008)
Parnas, D.L.: Software engineering programmes are not computer science programmes. Ann. Software Eng. 6, 19–37 (1998)
Gibson, J.P.: Feature requirements models: Understanding interactions. In: Dini, P., Boutaba, R., Logrippo, L. (eds.) Feature Interactions in Telecommunications Networks IV (FIW 1997), pp. 46–60. IOS Press, Amsterdam (1997)
Miller, A., Cutts, Q.: The use of an electronic voting system in a formal methods course. In: Workshop on Formal Methods in the Teaching Lab (FM-Ed 2006), pp. 3–8 (August 2006)
Gibson, J.P., McGaley, M.: Verification and maintenance of e-voting systems and standards. In: 8th European Conference on e-Government, pp. 283–290 (July 2008)
Cansell, D., Gibson, J.P., Méry, D.: Refinement: A constructive approach to formal software design for a secure e-voting interface. Electr. Notes Theor. Comput. Sci. 183, 39–55 (2007)
Cansell, D., Gibson, J.P., Méry, D.: Formal verification of tamper-evident storage for e-voting. In: Software Engineering and Formal Methods (SEFM 2007), pp. 329–338. IEEE Computer Society, Los Alamitos (2007)
Gibson, J.P.: E-voting and the need for rigorous software engineering — the past, present and future. In: Julliand, J., Kouchnarenko, O. (eds.) B 2007. LNCS, vol. 4355, p. 1. Springer, Heidelberg (2006)
Gibson, J.P.: A noughts and crosses java applet to teach programming to primary school children. In: PPPJ 2003: Proceedings of the 2nd international conference on Principles and practice of programming in Java, pp. 85–88. Computer Science Press, Inc., New York (2003)
Gibson, D.J.P.: Méry,: Formal modelling of services for getting a better understanding of the feature interaction problem. In: Bjorner, D., Broy, M., Zamulin, A.V. (eds.) PSI 1999. LNCS, vol. 1755, pp. 155–179. Springer, Heidelberg (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gibson, J.P. (2008). Weaving a Formal Methods Education with Problem-Based Learning. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. ISoLA 2008. Communications in Computer and Information Science, vol 17. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88479-8_32
Download citation
DOI: https://doi.org/10.1007/978-3-540-88479-8_32
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-88478-1
Online ISBN: 978-3-540-88479-8
eBook Packages: Computer ScienceComputer Science (R0)