Fostering Theoretical, Empirical and Tool Specific Knowledge in a Software Testing Learning Scenario
by Ivan Ricarte
Co-authored with Ellen Barbosa, Christian Adriano, José Carlos Maldonado, and Mario Jino. Published in ICECE'2000.
Teaching some subjects, as for example Computer Science, concerns the support for a learning process that involves... more
Teaching some subjects, as for example Computer Science, concerns the support for a learning process that involves cooperation of theoretical and empirical knowledge with related software tools. The underlying hypothesis is that there is a lack of appropriate support, to students and instructors, to the apprenticeship of specific theories and skills. The current research aims at a more specific learning scenario – Software Testing – addressing of what would be these specific theories and skills. A Software Testing Lab requires three cooperating types of knowledge – theoretical, empirical and tool specific, which together compose the learning and the evaluation process. To investigate such hypothesis, a specific learning scenario is implemented within a platform named CALM. This learning
scenario comprises a unit testing activity and the support of an integrated testing tool – PokeTool. With the implemented learning scenario we hope to be in a position to suggest more specific guidelines to be integrated into the platform CALM. It is expected that this experience can also be extended to other software engineering courses.
Designing digital annotation with metaphor entailments
by Ivan Ricarte
Co-authored with Christian Adriano, Matthias Brust, and Steffen Rothkugel. Published in IInternational Conference on Engineering and Technology Education, 2008
We investigate educational technology design by means of porting metaphors from different usage scenarios. Even though... more We investigate educational technology design by means of porting metaphors from different usage scenarios. Even though such approach is common for usability engineering, it is novel to domain-driven design. The metaphor adopted is the annotation on documents. We surveyed metaphors in current digital annotation systems and analyzed metaphorical implications (defined as entailments). It was possible to extract essential and accidental features. We probed the rationale by porting metaphors to an educational software engineering scenario supported by Eclipse IDE. We concluded that entailments should play a role as domain-driven pattern. Questions for further research are offered.
Exploring suggestions for improving a computing course: an empirical study
Alberto Sampaio and Isabel Sampaio. 2010. Exploring suggestions for improving a computing course: an empirical study. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (Koli Calling '10). ACM, New York, NY, USA, 13-20. DOI=http://dl.acm.org/citation.cfm?id=1930464.1930466&coll=DL&dl=GUIDE&CFI
The purpose of this study was to understand teachers' perceptions about possible course improvements based on... more The purpose of this study was to understand teachers' perceptions about possible course improvements based on students' suggestions. The course involves a software development project of median complexity. In this study the Q-methodology was used as the research methodology. Suggestions of possible improvements were collected from the students of the course and used as a concourse. A sample of the concourse was presented to the teachers, who rank-ordered them according a predefined scale and, next, data was analyzed. The analysis produced two distinct factors relative to teachers' opinions about possible course improvements. The resulting factors were then described and interpreted. This study shows and confirms the adequacy of Q for course improvement studies.
Providing students with'real-world'experience through university group projects
Co-authored with Shayne Flint, published in proceedings of the 2009 AaeE Conference, Adelaide
Many tertiary institutions use project-based courses as a capstone for final year engineering, software engineering,... more Many tertiary institutions use project-based courses as a capstone for final year engineering, software engineering, computing and informatics students. Such courses give students an opportunity to draw together the apparently disparate learning they have undertaken during the preceding years. Students often work as members of a team, gaining team skills, as well as interacting with industry rather than academics only. In this paper we describe how we have restructured our project courses by forming teams comprising 4th year students as team leaders and 3rd year students. We discuss our experiences as well as evaluating the new course structure and its outcomes. We believe we have improved the outcomes for all stakeholders – students, clients and academics – and we have reduced significantly the work load of the academics involved, while gaining an improved ability to differentiate between students' contribution.
49 views
Seen by:Connecting Reality with Theory - An Approach for Creating Integrative Industry Case Studies in the Software Engineering Curriculum
published in Proceedings of the 41st Annual IEEE Frontiers in Education Conference (FIE 2011), October 13-16, 2011
Case studies have been successfully integrated into a wide variety of educational contexts and disciplines. Today,... more Case studies have been successfully integrated into a wide variety of educational contexts and disciplines. Today, case studies are increasingly accepted as valuable teaching tools in science and engineering curriculums to complement the underlying theory of the field. Well-articulated cases can reinforce abstract concepts, demonstrate the nature of real client interactions, and showcase the relevance of soft skills to students that lack significant practical experience. However, assembling and delivering quality case studies to students requires a great deal of practical disciplinary knowledge, and a careful alignment of the case content and delivery style with curricular objectives, course learning outcomes, and the overarching institutional format. In this paper, we summarize our experience with an approach for constructing case study teaching materials that are integrative and deep in content, but also carefully aligned to the core principles and format of a senior-level software engineering course. Our approach ensures that the cases are complex enough to retain their realism and intrinsic appeal, while mirroring the format and objectives of the course such that the cases reinforce key points in a familiar and consistent fashion to the students.
Work in Progress - Computer Science Perspectives on Integration with Human-Centered Design
published in Proceedings of the 41st Annual IEEE Frontiers in Education Conference (FIE 2011), October 13-16, 2011
Capstone courses in many disciplines often fall into a single paradigm: they allow students to practice the skills... more Capstone courses in many disciplines often fall into a single paradigm: they allow students to practice the skills they should have gathered through their progress in the department curriculum in a real-world or near-real venue. However, these courses often fail the real-world test by one important factor: they are not interdisciplinary projects, which is not indicative of industry experiences. We are attempting to create an interdisciplinary environment for capstone courses, involving both design and computer science students, to more adequately prepare students for industry work. This work-in-progress paper describes our experiences and plans for bettering the interdisciplinary capstone experience. The experiences show that there is a fundamental miscommunication between students of different disciplines that hinders their ability to collaborate. By analyzing qualitative questionnaires from thirty-three computer science students, we have affirmed the existence of this rift in inter-departmental understanding. This realization has formed our basis for creating educational modules to ease the collaboration between computer science and design students
An Agile Boot Camp: Using a LEGO®-Based Active Game to Ground Agile Development Principles.
published in Proceedings of the 41st Annual IEEE Frontiers in Education Conference (FIE 2011), October 13-16, 2011
Industry-practiced agile methods must become an integral part of a software engineering curriculum. It is essential... more Industry-practiced agile methods must become an integral part of a software engineering curriculum. It is essential that graduates of such programs seeking careers in industry understand and have positive attitudes toward agile principles. With this knowledge they can participate in agile teams and apply these methods with minimal additional training. However, learning these methods takes experience and practice, both of which are difficult to achieve in a direct manner within the constraints of an academic program. This paper presents a novel, immersive boot camp approach to learning agile software engineering concepts with LEGO® bricks as the medium. Students construct a physical product while inductively learning the basic principles of agile methods. The LEGO®-based approach allows for multiple iterations in an active learning environment. In each iteration, students inductively learn agile concepts through their experiences and mistakes. Subsequent iterations then ground these concepts, visibly leading to an effective process. We assessed this approach using a combination of quantitative and qualitative methods. Our assessment shows that the students demonstrated positive attitudes toward the boot-camp approach compared to lecturebased instruction. However, the agile boot camp did not have an effect on the students’ recall on class tests when compared to their recall of concepts taught in lecturebased instruction.
Providing End-to-End Perspectives in Software Engineering
published in Proceedings of the 41st Annual IEEE Frontiers in Education Conference (FIE 2011), October 13-16, 2011
In order to better prepare students for professional practice, we have created a software engineering curriculum that... more In order to better prepare students for professional practice, we have created a software engineering curriculum that provides an end-to-end perspective that begins with the business context of software, and goes all the way to the ongoing management of software services after deployment. This paper examines how the theoretical aspects of this broad-based curriculum may be effectively delivered through a single course within a traditional computer science program. This curriculum is under a diverse set of constraints and requirements, such as the need for pedagogical consistency, faculty development, consideration of the learning style of computer science students, and a need for an effective continuous improvement process. Our approach uses “engineeringoriented” analysis frameworks such as Porter’s Five Forces model for the business aspects, and attributedriven design for software architectures, an “inverted” classroom mode of teaching where lectures are delivered on line with interactions and exercises that promote active learning reserved for the classroom, case studies developed from real projects to serve as concrete examples, open discussion boards and weekly short quizzes for concept refinement and retention, and a paper-based project where students apply the concepts learned. Faculty development and replication outside the current site are also discussed.
Formal Specification and Documentation Using Z: A Case Study Approach
International Thomson Computer Press, International Thomson Publishing, 1996. ISBN 1-850-32230-9.
Formal methods are becoming more accepted in both academia and industry as one possible way in which to help improve... more
Formal methods are becoming more accepted in both academia and industry as one possible way in which to help improve the quality of both software and hardware systems. It should be remembered however that they are not a panacea, but rather one
more weapon in the armoury against making design mistakes. To quote from Prof. Tony Hoare:
"Of course, there is no fool-proof methodology or magic formula that will ensure a good, efficient, or even feasible design. For that, the designer needs experience, insight, flair, judgement, invention. Formal methods can only stimulate, guide, and
discipline our human inspiration, clarify design alternatives, assist in exploring their consequences, formalize and communicate design decisions, and help to ensure that they are correctly carried out." - C.A.R. Hoare, 1988
Thus we should not expect too much from formal methods, but rather use them to advantage where appropriate.
Even within the formal methods community, there are many camps: for example, those that believe that a formally correct system must be proved correct mechanically, one small step at a time, and those who use the term formal to mean mathematical, using high-level pencil-and-paper style proofs to verify a design is ‘correct’ with respect to its specification. Sometimes the latter method is known as ‘rigorous’ to differentiate it from the former; and of course there are positions between these two extremes.
Even if a system is proved correct, there are still many assumptions which may be invalid. The specification must be ‘obviously right.’ There is no way that this can be formally verified to be what is wanted. It must be simple enough to be understandable and should be acceptable to both the designer and the customer.
This book presents an even more pragmatic view of the use of formal methods than that held by some academics: that is that formal specification alone can still be beneficial (and is much more cost effective in general) than attempting proofs in many cases. While the cost of proving a system correct may be justified in safety-critical systems where lives are at risk, many systems are less critical, but could still benefit from formalization earlier on in the design process than is normally the case in much industrial practice.
Ultimately the computer system will be communicating with the outside world. In a control system, we will probably be dealing with physical laws, continuous mathematics (e.g., differential equations), etc. This will have to be converted into digital values and approximations will have to be made. In many cases, a Human-Computer Interface will be involved. Great engineering skill will be needed to ensure that any assumptions made are correct and will not invalidate any formally verified design. It is very important to apportion responsibility between the engineers associated with each design task. Mutually agreed interfaces must be drawn up. Ideally these should be formalized to reduce the risk of ambiguity and misunderstanding on each side of the interfaces.
This book presents the use of one notation in the accumulation of available mathematical techniques to help ensure the correctness of computer-based systems, namely the Z notation (pronounced ‘zed’), intended for the specification of such systems. The formal notation Z is based on set theory and predicate calculus, and has been developed at the Oxford University Computing Laboratory since the late 1970’s.
The use of a formal notation early on in the design process helps to remove many errors that would not otherwise be discovered until a later stage. The book includes specification of a number of digital systems in a variety of areas to help demonstrate the scope of the notation. Most of the specifications are of real systems that have been built, either commercially or experimentally. It is hoped that the variety of examples in this book will encourage more developers to attempt to specify their systems in a more formal manner before they attempt the development or programming stage.
In Part I, the first two chapters give an introduction to formal specification, using Z in particular, and also to the issues concerning the practical take-up and use of formal methods in industry. Chapter 2 gives an overview of some industrial issues, for those contemplating the use of formal methods as part of the software development process. Some guidelines to help with successful use are given. Finally a brief tutorial is given in Chapter 3, which introduces Z for those who have not seen the notation before, but who wish to tackle the rest of the book. However, it should be noted that this is not a substitute for a fuller treatment, which if required should be sought from one of the numerous Z textbooks now available.
Z has been designed to be read by (suitably trained) humans, rather than by computers, and as such may be included in manuals documenting computer-based systems. Part II gives some examples, using network services designed and built at Oxford University. Two types of manual have been developed, one of the user of a service, giving an idealized external abstract view, and one for potential implementors, giving more details of the suggested internal structure of the service.
In Part III, Chapter 6 details the specification of a text formatting tool designed for using under the UNIX operating system. The structure of UNIX files is discussed in this context. A specification of a mouse-based input system for UNIX workstations is also presented in Chapter 7.
Although Z has mainly been applied to software systems, it is also applicable to hardware. In Part IV, a number of aspects important in the specification of machine instruction sets are discussed. Chapter 8 formally defines some concepts which are useful in the specification of any microprocessor. Building of this, a part of a specific instruction set, namely that of the Transputer, is then presented in Chapter 9.
Part V details some graphical concepts. Chapter 10 introduces general concepts useful for specifying pixel maps and window systems. Chapter 11 defines the rasterop function which is fundamental to many graphics operations.
Window systems are now one of the most popular interfaces for computers. Part VI builds on the ideas presented in Part V and gives details of three window systems, including the highly successful XWindow System. Chapter 15 remarks on experience
gained by formally specifying the three window systems and other case studies.
Appendix A gives some indications on how to obtain further up-to-date information on Z. A glossary of the Z notation may be found in Appendix B. A literature guide in Appendix C together with a substantial bibliography at the end of the book are included to allow readers to follow up on another aspect of Z and formal methods that are of special interest. Finally an index, particularly of names of definitions in the specifications presented in the book, will aid the reader in navigating the text, especially the formal parts.
It is hoped that the specifications presented here will help students and industrial practitioners alike to produce better specifications of their designs, be they large or small. Even if no proofs or refinement of a system are attempted, mere formalization early on in the design process will help to clarify a designer’s thoughts (especially when undertaken as part of a team) and remove many errors before they become implemented,
and therefore much more difficult and expensive to rectify.
For further on-line information related to this book, held as part of the distributed World Wide Web (WWW) Virtual Library, the reader is referred to the following URL
(Uniform Resource Locator):
http://http://formalmethods.wikia.com/zbook
J.P.B.
June 1995
358 views
Seen by: and 7 moreFrom a Community of Practice to a Body of Knowledge: A Case Study of the Formal Methods Community
By Jonathan P. Bowen and Steve Reeves. In Michael Butler and Wolfram Schulte (eds.), FM 2011: 17th International Symposium of Formal Methods. Springer-Verlag, LNCS, Volume 6664, pages 308-322, 2011. DOI: 10.1007/978-3-642-21437-0_24
See also http://issuu.com/jpbowen/docs/fm2011
A Body of Knowledge (BoK) is an ontology for a particular professional domain. A Community of Practice (CoP) is the... more A Body of Knowledge (BoK) is an ontology for a particular professional domain. A Community of Practice (CoP) is the collection of people developing such knowledge. In the paper we explore these concepts in the context of the formal methods community in general and the Z notation community, as has been supported by the Z User Group, in particular. The existing SWEBOK Software Engineering Body of Knowledge is considered with respect to formal methods and a high-level model for the possible structure of of a BoK is provided using the Z notation.
Ten Commandments Ten Years On: Lessons for ASM, B, Z and VSR-net
Jonathan P. Bowen and Michael G. Hinchey. In Jean-Raymond Abrial and Uwe Glaesser (eds.), Rigorous Methods for Software Construction and Analysis. Springer-Verlag, LNCS, Volume 5115, pages 219-233, 2009.
Just over a decade ago, a paper Ten Commandments of Formal Methods, suggested some guidelines to help ensure the... more Just over a decade ago, a paper Ten Commandments of Formal Methods, suggested some guidelines to help ensure the success of a formal methods project. It proposed ten important requirements (or “commandments”) for formal developers to consider and follow, based on our knowledge of several industrial application success stories, most of which have been reported in more detail in two books. The paper was surprisingly popular, is still widely referenced, and used as required reading in a number of formal methods courses. However, not all have agreed with some of our commandments, feeling that they may not be valid in the long-term. We re-examine the original commandments over ten years on, and consider their validity in the light of a further decade of industrial best practice and experiences, especially with respect to formal notations like ASM, B and Z. We also cover the activities of the UK Verified Software Repository Network (VSR-net) in the context of UK Grand Challenge 6 on Dependable Systems Evolution.
26 views
Seen by:Globalising Software Development in the Local Classroom through Virtual Teams
Ita Richardson, Sarah Moore, Alan Malone, Valentine Casey and Delores Zage, Book Chapter in Edited book Information Systems and Technology Education from the University to the Work Place, Edited by Rod Turner and Glenn Lowry, 2007
In the dynamic global economy that exists today the operation and structure of organisations have had to adapt to the... more In the dynamic global economy that exists today the operation and structure of organisations have had to adapt to the reality of the information revolution which has taken place. This has been the case within the software industry where global software development (GSD) has become a popular strategy and software development has become a globally sourced commodity. Given the requirement for graduates to operate in the type of environment we as educators considered how our teaching methods could be developed and enhanced to instil GSD competencies within globally distributed software teams. Two separate projects were undertaken. One was with Siemans Corporate Research which was part of a larger project. The focus of this project was the shadowing of the development of an actual geographically distributed software project. The second project was carried out in collaboration with Ball State University and the focus of this endeavour was virtual team software testing. Extensive qualitative research was undertaken on the data provided by the students. We identified three specific forms of learning which had taken place: (1) pedagogical, (2) pragmatic and (3) the achievement of specific globally distributed competencies. Our findings would confirm that mimicking real-work settings creates the possibility of giving rise to the range of learning benefits that are associated with truly problem-based learning environments
Globalising Software Development in the Local Classroom
Richardson, Ita, Sarah Moore, Daniel, Paulish, Valentine Casey and Dolores Zage, IEEE Conference on Software Engineering Education and Training, CSEET 2007, July 3rd-5th, 2007, Dublin, Ireland
Given the requirement for software engineering graduates to operate in Global Software Development (GSD) environments,... more Given the requirement for software engineering graduates to operate in Global Software Development (GSD) environments, educators need to develop teaching methods to enhance and instill GSD knowledge in their students. In this paper, we discuss two projects that provided students with a first-hand learning experience of working within GSD teams. One project was with Siemens Corporate Research, whose focus was to shadow the development of a real-life GSD project. The second project, whose focus was virtual team software testing, was carried out in collaboration with Ball State University. In parallel with these projects we undertook qualitative research during which we analyzed students’ own written reflections and face-to-face interviews that focused on their learning experiences in these contexts. We identified three specific forms of learning which had taken place: pedagogical, pragmatic and the acquisition of specific globally distributed knowledge. Our findings confirm that mimicking real work settings has educational benefits for problem-based learning environments.

