Two half day tutorials will be offered, one in the morning and one in the afternoon. These tutorials are organized as part of the Educator's Grant Program (EGP); tutorials are targeted, but not limited to, EGP participants.
Software Engineering Education:
Teaching Software Engineering
This tutorial will discuss two important aspects of software engineering education: software engineering curriculum and innovative approaches to teaching software engineering.
Software Engineering Curriculum
This tutorial will use a hands-on approach to presenting methodologies for integrating software engineering into undergraduate computer science curricula. Each of the tutors will present an overview of the curriculum that has been developed at his institution. Presenters will discuss challenges they faced and their experiences in implementing the curricula. A question/answer period will follow the presentations.
Tutors: Tom Reichlmayr and André van der Hoek
Innovative Approaches to Teaching Software Engineering
Many aspects of software engineering education are difficult, as we are stuck with the traditional lecture format, necessarily small class projects, and a typical focus on deliverables in those projects. In this tutorial, we will introduce three different techniques that we are investigating to break some of this traditional mold of SE education. We introduce Problems and Programmers, a physical, multi-person card game for group-oriented study of the SW process; SimSE, a graphical simulation environment for individually practicing different aspects of the SW process; and EASEL, a new kind of design editor that is much friendlier for exploration, learning-by-example, and creative expression.
Tutor: André van der Hoek
Software Engineering Education:
New Concepts in Software Engineering Education
This tutorial will present in-depth, hands-on discussions of two important concepts in software engineering that are being integrated into software-engineering curricula: agile software development and software testing.
Agile Software Development in the Computing Curriculum
An important learning outcome of a computing curriculum is to prepare students to be productive, contributing members on a software development team. Agile software development activities create opportunities for students to practice collaborative skills critical to successful projects teamwork, communication, working with clients to elicit requirements and adhering to a disciplined process that delivers working software on-time. This tutorial will introduce participants to agile methodologies and demonstrate how agile activities can be incorporated into the curriculum to introduce and reinforce good software engineering practices.
Tutor: Tom Reichlmayr
Incorporating Software Testing in the Software Engineering Curriculum
Software testing received little coverage in the Computer Science curriculum. Why? Perhaps because testing instruction so often focuses on basic design (routine application of briefly-defined simple techniques) and vast, boring test documentation. These don't carry the level of intellectual challenge appropriate for university-level instruction. It's more useful to think of software testing as a technical investigation done to expose quality-related information about the product under test. We teach students to be investigators who use tools in the service of their wits. This tutorial presents a few options for organizing testing courses and encourages discussion of spreading testing instruction throughout a smattering of programming and process courses (a strategy I think will fail, but others think will succeed). It also points attendees to assorted free instructional resources.
Tutor: Cem Kaner
Educator's Grant Program Tutorial Schedule
||Opening Mary Jean Harrold
||Software Engineering Curriculum
||Tom Reichlmayr and Andre van der Hoek
||Innovative Approaches to Teaching Software Engineering
||Incorporating Agile Methods into the Software Engineering Curriculum
||Incorporating Software Testing into the Software Engineering Curriculum
Educator's Grant Program Bios of Tutors
Center for Software Testing Education & Research
Florida Institute of Technology
Cem Kaner (http://www.kaner.com) is Professor of Software Engineering at Florida Institute of Technology, and the senior author of Testing Computer Software and Lessons Learned in Software Testing. His lab at Florida Tech is focused on the education of software testers and provides course materials (for free, under a Creative Commons license) at http://www.testingeducation.org/k04/index.html. Along with his academic work, Cem has worked as a programmer, tester, technical writer, human factors analyst, test manager, documentation group manager, software evelopment manager, software development director, independent consultant, and as an attorney with a practice focused on the law of software quality. Cem holds doctorates in law and experimental psychology, with an undergraduate emphasis on mathematics and philosophy.
Software Engineering Department
Rochester Institute of Technology
Tom Reichlmayr (http://www.se.rit.edu/~tjr/) is an assistant professor in the Software Engineering Department at the Rochester Institute of Technology where he designs and teaches courses in introductory software engineering, enterprise application design, requirements engineering and software process. His research interests include integrating agile methodologies and collaborative learning models into the software engineering curriculum. Prior to his appointment at RIT, he worked in the process automation industry as a software engineer for over twenty years.
André van der Hoek
School of Information and Computer Sciences
University of California, Irvine
André van der Hoek (http://www.ics.uci.edu/~andre/) is an assistant professor in the Department ofInformatics of the Donald Bren School of Information and Computer Sciences,and a faculty member of the Institute for Software Research, both at theUniversity of California, Irvine. He holds a joint B.S. and M.S. degree in Business-Oriented Computer Science from the Erasmus University Rotterdam, the Netherlands and a Ph.D. degree in Computer Science from the University of Colorado at Boulder. He has developed Problems and Programmers, an educational software engineering card game, and SimSE, an educational simulation environment for software processes. He is also the principal designer of the new B.S. in Informatics at UC Irvine.