Workshops and Tutorials

On Sunday, May 22, 2011, we're going to have a great lineup of workshops! So take a look now, get involved, and plan to attend:

Pex4Fun: Teaching and Learning Computer Science via Social Gaming

Presenters: Nikolai Tillmann (Microsoft Research), Jonathan de Halleux (Microsoft Research), and Tao Xie (North Carolina State University)

Pex4Fun from Microsoft Research is a web-based serious gaming environment for teaching computer science. Pex4Fun can be used to teach and learn computer programming at many levels, from high school all the way through graduate courses. With Pex4Fun, a student edits code in any browser – with Intellisense – and Pex4Fun executes it and analyzes it in the cloud. Pex4Fun connects teachers, curriculum authors, and students in a unique social experience, tracking and streaming progress updates in real time. In particular, Pex4Fun finds interesting and unexpected input values that help students understand what their code is actually doing. The real fun starts with coding duels where students write code to implement a teacher's specification. Pex4Fun finds any discrepancies in behavior between the student's code and the specification.

This tutorial equips participants with skills and knowledge of using Pex4Fun in teaching and learning, such as solving puzzles, solving coding duels, exploring course materials in feature courses, creating and teaching a course, creating and publishing coding duels, and learning advanced topics behind Pex4Fun.

A Quantitative Usability Assessment Method for Inclusion in Software Engineering Courses

Presenter: Bonnie E. John

Usability is recognized as a critically important quality of software, as evidenced by its inclusion in SE 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. However, many techniques for designing useful, usable and desirable software depend on knowledge and skills in the behavioral sciences, making them difficult for SE students to learn and for SE educators to teach with confidence. This tutorial will introduce SE educators to a quantitative usability assessment method that has had over 100 papers validating its predictions in the Human-Computer Interaction literature and a tool embodying that method suitable for inclusion in SE courses.

Supplemental link: CogTool

Incorporating Software Architecture in the Computer Science Curriculum

What are the basic concepts of software architecture, and how can CS and SE students learn to get the performance, modifiability, and availability right from the beginning? This workshop will look at industry practices and how to teach those in the classroom. Quality and architecture attributes are some of the earliest design decisions, hard to get right and painful to change. How can we teach students to get them right? Join this workshop, and find out!

International Workshop on Distance Learning Support for Postgraduate Programmes in Software Engineering (e-gradSE 2011)

Postgraduate programmes in software engineering, just like education in every field, need to take advantage of the opportunities offered by distance learning. How can we use social networking and other distance education technologies to increase communication between students, academics, and industry? How can these technologies aid in building expert communities, strengthen research "in the field" and provide feedback to academics about their theories? How can distance learning be a key part of the postgraduate educational experience? Join this workshop and help develop the distance learning support that software engineering programmes need.

Designing and Delivering Real Projects for Real Clients Courses

When you teach using real projects for real clients, there are a number of common issues that often arise. There is enough experience in the field both to identify these issues and develop a taxonomy about them. This workshop will examine that taxonomy of issues related to courses using real projects for real clients, to collect examples of how these issues come up in the classes and what you have tried doing in response or think might be a good response next time. Join this workshop to help make courses with real projects for real clients better for everyone.

SmartPhones in the Curriculum Workshop (SMACK 2011)

iPhone? Android? Smartphones are everywhere, and provide an amazing range of capabilities. But how do you build these applications, and what can you do with GPS, networking, and other abilities? What do your students learn, and how can you teach with smartphones in various subjects? Come to this workshop and learn what smartphones can do in your curriculum.

A Framework for a Flexible and Adaptable Software Engineering Curriculum

Presenters: Mehdi Jazayeri, Faculty of Informatics, University of Lugano, Switzerland

We discuss the challenges of designing a software engineering curriculum and present a framework for addressing those challenges. The principal challenges are to balance the coverage of theory and practice, and to cover principles in the face of changing technology. What is needed is a flexible framework that may be adapted to local settings --- local industry, existence of a mathematics, economics or an electrical engineering department --- and to the competence and leanings of the faculty. We present a framework for such a curriculum and discuss our experience with the implementation of some instances of the curriculum. The curriculum has been implemented as a computer science bachelor's degree program and extended to specialized master's degree programs. We discuss both positive and negative experiences.

There are several critical decisions to be made in the design of a curriculum. We review these choices and give examples of different curricula that result from particular decisions. The tutorial is addressed to educators considering the design of a new curriculum or revision of an existing curriculum.

Teaching Second-Level Java and Software Engineering with Android

Faculty often consider using more advanced technology such as mobile devices in advanced courses.  However, there are a number of reasons to incorporate mobile devices into earlier courses: the learning curve is not nearly as high as faculty might imagine, numerous introductory programming topics can be found in mobile applications, and it helps to excite students about computing.  In this tutorial, we will share our experiences in incorporating Android into second-level Java and lower-level software engineering courses.  We will present some of the lessons learned and example projects we have used.

SLPC++: Teaching Software Engineering Project Courses in Industrial Application Landscapes – a Tutorial

Single large project courses (SLPC) with clients from industry have been established as capstone courses in many software engineering curricula. They are considered a good way of teaching industry relevant software engineering practices to students. However they are lacking in two regards. First, the results are often seen as exploratory prototypes by the client and are not intended for productive use. Second, the projects are usually not integrated into the application landscape of the client. Both of these challenges are of great practical importance in real software engineering projects. In this tutorial we cover the key factors for successfully carrying out our teaching approach called SLPC++ to address these issues. First we show how to initiate such a project course with real clients and problems. Then we describe how to carry out the project using a hybrid process model based on a combination of the Unified Process and Scrum. Finally we address the issues instructors face during such courses. Throughout the tutorial we use examples from a series of four project courses carried out in a highly successful collaboration with the Munich Airport.

Site contact: Nicolas Mangano, E-mail: nmangano AT