CSEE&T 2011
2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2011)
Powered by
Conference Publishing Consulting

2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T 2011), May 22–24, 2011, Waikiki, Honolulu, HI, USA

CSEE&T 2011 – Proceedings

Contents - Abstracts - Authors


Title Page

We welcome you to the 24th Conference on Software Engineering Education and Training (CSEE&T 2011) in Honolulu, Hawaii, USA. CSEE&T is the premier international peer-reviewed conference, sponsored by the IEEE Computer Society, which addresses all major areas related to software engineering education, training and professionalism. For information on previous conferences we invite you to visit: http://conferences.computer.org/cseet/

Academic Research Papers

PROGTEST: An Environment for the Submission and Evaluation of Programming Assignments based on Testing Activities
Draylson Micael de Souza, José Carlos Maldonado, and Ellen Francine Barbosa
(University of São Paulo, Brazil)

Article Search
Predicting Individual Performance in Student Project Teams
Matthew L. Hale, Noah M. Jorgenson, and Rose F. Gamble
(University of Tulsa, USA)
Due to the critical role of communication in project teams, capturing and analyzing developer design notes and conversations for use as performance predictors is becoming increasing important as software development processes become more asynchronous. Current prediction methods require human Subject Matter Experts (SME) to laboriously examine and rank user content along various categories such as participation and the information they express. SEREBRO is an integrated courseware tool that captures social and development artifacts automatically and provides real time rewards, in the form of badges and titles, indicating a user's progress towards predefined goals using a variety of automated assessment measures. The tool allows for instructor visualization, involvement, and feedback in the ongoing projects and provides avenues for the instructor to adapt or adjust project scope or individual role assignments based on past or current individual performance levels. This paper evaluates and compares the use of two automated SEREBRO measures with SME content-based analysis and work product grades as predictors of individual performance. Data is collected from undergraduate software engineering teams using SEREBRO, whose automated measures of content and contribution perform as well as SME ratings and grades to suggest individual performance can be predicted in real-time.

Article Search
Communication Genres: Integrating Communication into the Software Engineering Curriculum
Michael Carter, Mladen Vouk, Gerald C. Gannod, Janet E. Burge, Paul V. Anderson, and Mark E. Hoffmann
(North Carolina State University, USA; Miami University, USA; Quinnipiac University, USA)
One way to improve the communication abilities of new software engineering graduates in the workplace is to integrate communication more effectively in the software engineering curriculum. But faculty typically conceive of communication as outside their realm of expertise. Based on the results of an NSF-funded project, we use theories of situated learning and genre to make the case that communication is integral to software engineering and that faculty are in the best position to guide students in becoming better communicators in the field. We identify software engineering genres and show how those genres may be used to integrate communication in the classroom and throughout the curriculum.

Article Search
Teaching Software Engineering with SimulES-W
Elizabeth Suescún Monsalve, Vera Maria B. Werneck, and Julio Cesar Sampaio do Prado Leite
(PUC-Rio, Brazil; Universidade do Estado do Rio de Janeiro, Brazil)
This work presents an educational board and card game named SimulES-W, as a tool for teaching Software Engineering. It encompasses 5 years of evolution, in which the game Problems and Programmers was the fundamental source. SimulES-W innovates in three distinct areas: it is a web based game, it relies on a broad view of the software process and it is customizable for content. SimulES-W is supported by collaborative software that implements the SimulES board game. The paper describes the game, stresses its strong points, provides initial data on its use and discusses its future.

Article Search
Investigating Student-Instructor Interactions When Using Pair Programming: An Empirical Study
Alex Radermacher and Gursimran Walia
(North Dakota State University, USA)
At North Dakota State University, there are multiple sections of the CS1 and CS2 introductory computer science courses. A large number of students are enrolled in each section, making it difficult to hold laboratory sessions as there is not enough space for all of the students in one room. This results in diminished student attendance and a decrease in student understanding of the course material. Pair programming has been shown to have multiple benefits in educational use. Previous research has shown that it benefits student learning in addition to increasing the student retention in computer science programming courses. Using pair programming would also allow students to share laboratory resources and make it possible to accommodate more students in laboratory session. To study the effects of pair programming on student-instructor interactions in laboratory sessions of introductory computer science courses, an empirical study was conducted at North Dakota State University. Data about student-instructor interactions was collected by monitoring the laboratory sessions during the study run, as well as through a post-study survey given to students and interviews with the instructors. The results from this study indicate that having students work in pairs as opposed to individually reduces the number of questions from students and decreases the amount of time that a student must wait for instructor assistance.

Article Search
Supporting Introductory Test-Driven Labs with WebIDE
Thomas Dvornik, David S. Janzen, John Clements, and Olga Dekhtyar
(Salesforce.com, USA; California Polytechnic State University, USA)
WebIDE is a new web-based development environment for entry-level programmers with two primary goals: minimize tool barriers to writing computer programs and introduce software engineering best practices early in a student’s educational career. Currently, WebIDE focuses on Test-Driven Learning (TDL) by using small iterative examples and introducing lock-step labs, which prevent the student from moving forward until they finish the current step. However, WebIDE does not require that labs follow TDL. Instructors can write their own labs for WebIDE using any software engineering or pedagogical approach. Likewise, instructors can build custom evaluators—written in any language—to support their approach and provide detailed error messages to students. We report on a pilot study in a CS0 course where students were split into two groups, one that used WebIDE and one that didn’t. The WebIDE group showed a significant improvement in performance when writing a simple Android application. Additionally, among students with some programming experience, the WebIDE group was more proficient in writing unit tests.

Article Search
Competence Analysis of IT Professionals Involved in Business Services - Using a Qualitative Method
Hsin-Ke Lu, Chia-Hui Lo, and Peng-Chun Lin
(Chinese Culture University, Taiwan; National Taiwan Normal University, Taiwan)
Content, evaluation, and applications of competence have been important issues in both academia and practical applications since the 1970s. On the one hand, studies on psychological assessment, human resources development and human resources management have extensively discussed the definition and classification of competence; on the other hand, practical research on the competences of different occupations has attracted considerable attention. Previous studies have presented numerous analytical procedures and research methods. Further elaborating these methods can derive higher quality competency models based on different perspectives. This investigation incorporated the notion of adaptive theory into the Job Competence Analysis (JCA) method. Through rigid qualitative content analysis, this study integrated the existing literature with in-depth interviews conducted with managers and experts. This yielded a practical competence model that indentified the core competences of an occupation or industry. Taking IT professionals as an example, this study carried out field research that followed the practical model and clarified the core competencies of IT professionals in the business service sector in Taiwan. Theoretically, this model can not only establish a foundation for further research on core competence, but can also guide decision making on human resource management and development. Practically, by identifying core competences in the business services this investigation significantly helps the development of practical training programs.

Article Search
An Exploration of Knowledge and Skills Transfer from a Formal Software Engineering Curriculum to a Capstone Practicum Project
Ray Bareiss and Edward Katz
(Carnegie Mellon Silicon Valley, USA)
Students at Carnegie Mellon Silicon Valley complete a team-based practicum project for an industrial sponsor as the capstone of their master’s education in software engineering. Over time, the faculty member who typically serves as advisor for such projects has been disturbed by the failure of several student teams to transfer some relevant knowledge and skills from the formal curriculum to the relatively unstructured practicum project environment. We conducted a survey of all 2010 software engineering students to ascertain the most significant self-reported shortcomings. This paper presents the survey data and then discusses the results in terms of a theory of transfer; as part of this discussion recent and possible future changes to instruction are identified.

Article Search
Teaching Software Project Management using Simulations
Andreas Bollin, Elke Hochmüller, and Roland T. Mittermeir
(Universität Klagenfurt, Austria; Carinthia University of Applied Sciences, Austria)
An experience-dominated subject like software project management cannot be learned by merely attending lectures. Additional labs, however, even with only modest real-life projects, call for substantial effort to be spent by the instructors as well as by the partaking students. Our experience shows that using a software development simulation tool enhances the mix of methods used in conventional teaching substantially.

Article Search
Educating Software Engineers of the Future: Software Quality Research through Problem-Based Learning
Ita Richardson, Louise Reid, Stephen B. Seidman, Bob Pattinson, and Yvonne Delaney
(University of Limerick, Ireland; Texas State University, USA)
Software Engineering graduates are expected to enter the workforce with both technical and soft skills. In addition, software quality is a topic that is becoming increasingly important both because of educational and industry requirements. Software engineering lecturers need to bring their research into the classroom. Bringing all of these together can pose the lecturer with a dilemma that is not easily solvable. This paper presents how problem-based learning, a pedagogical methodology that is popular in medicine and other disciplines, can be used to accomplish these goals in a single course module. It describes a research project which analyses the implementation of problem-based learning within a M.Sc. Software Engineering Quality Module, and evaluates the outcomes against published expectations.

Article Search
An Overview of the Main Design Characteristics of Simulation Games in Software Engineering Education
Daniela C. C. Peixoto, Rodrigo M. Possa, Rodolfo F. Resende, and Clarindo Isaías P. S. Pádua
(Federal University of Minas Gerais, Brazil)
Simulation games supporting students’ education and training are being described in an increasing number of works. Simulations are accepted as a complementary mode for the traditional teaching methods by stimulating and motivating learning through providing a realistic environment for the students to practice. They can engage students in a more enjoyable simulated experience of the real world. This article explores the use of simulation games in Software Engineering education. We focus on simulation games that were developed to bridge the gap between the theoretical learning and real life practice of software development. Following a review of the literature, we present a discussion of the simulation games, showing their main characteristics and differences regarding their design. Our findings identify some dimensions that provide an integrated view of simulation games in the Software Engineering field. Our main contributions are the criteria and results of our discussion. These criteria are based on the interaction aspects of simulation games which can assist instructors during game selection and provide some insights for Software Engineering simulation games developers.

Article Search
Industry Academia Collaboration Model: The Design Challenges
Manisha and Manoj Manuja
(Infosys Technologies Ltd., India)
The Information Technology industry is growing at a healthy rate with businesses heavily dependent on IT applications for their operations. India has become a global hub for IT services export and has witnessed exponential growth of employment opportunities. While the IT industry has felt a pressing need for acquiring and retaining competent talent, academia on the other side has also felt a strong need in terms of producing the necessary quality talent. Hence, a need for industry-academia partnership has been strongly felt to enhance the employability of engineering graduate workforce and make them industry ready.
This article discusses the critical design challenges significant for any industry-academia collaboration model in the higher education space [4]. Here, we discuss the design options for such a model, its evaluation strategy and performance parameters, and how it addresses the primary challenges faced by both the stakeholders i.e. industry and academia, in a measurable, scalable and sustainable manner.

Article Search
Analysis of the Motivation of Learners in the In-House Training of Programming in Japanese ICT Industries
Hidekuni Tsukamoto, Hideo Nagumo, Yasuhiro Takemura, and Kenichi Matsumoto
(Osaka University of Arts, Japan; Niigata Seiryo University, Japan; Nara Institute of Science and Technology, Japan)
In order to plan efficient and effective in-house training for programming, the characteristics of the motivation of learners in an in-house training of programming course, in an information and communication technology (ICT) industry, have been analyzed. In the in-house training course, 42 participants underwent a 16 day training program of Java language. The analysis of the motivation was carried out using a questionnaire based on the ARCS motivation model. As a result, it has been found that the motivation of those who have a technology background is not necessarily higher than that of those who have a non-technology background.

Article Search
Turning Real-World Systems into Verification-Driven Learning Cases
Shengru Tu, Shireesha Tankashala, Sehun Oh, Brian Becker, Brian Horton, Aditya Kallem, Zhao Yang, Lisa Hartman, and Daniel Wagner
(University of New Orleans, USA; Benjamin Franklin High School at New Orleans, USA; Jesuit High School at New Orleans, USA)
Based on the verification-driven learning (VDL) model, we have proposed a methodology for turning real-world software systems into platforms for CS students to carry out active and in-depth studies in software development. The purpose of the VDL model is to enrich the context of software engineering education. VDL cases can be a supplement to other teaching approaches to software engineering.

Article Search
Learning at the Elbows of Experts: Technology Roadmapping with Software Engineering Students
John Hosking, Peter Smith, Elisabeth Krull, and Nick Jones
(University of Auckland, New Zealand)
We describe a multidisciplinary course introducing Software Engineering, Computer Science and Business students to strategic business planning in IT organizations using technology roadmapping as the focus of instruction. The course has a strong practicum element, where multidisciplinary teams facilitate development of a technology roadmap in fast growth IT organizations guided by experienced mentors. It provides opportunities for a rich set of learnings, of the core content, technology roadmapping, but also: team skills in a multidisciplinary context; consultancy and communication skills; understanding other professionals vocabularies; and practical observation of hi-tech senior managers.

Article Search
The Effects of Openness to Experience on Pair Programming in a Higher Education Context
Norsaremah Salleh, Emilia Mendes, and John Grundy
(International Islamic University Malaysia, Malaysia; University of Auckland, New Zealand; Swinburne University of Technology, Australia)
This paper describes a formal experiment carried out to investigate the effect of the personality factor Openness to experience on the academic performance of students who practiced pair programming (PP) in higher education. The experiment was carried out at the University of Auckland, using as subjects undergraduate students attending an introductory software programming course. Our results showed that differences in Openness level could significantly affect academic performance of students who pair programmed. In addition, our results also showed that most students gained higher satisfaction from the PP experience and their confidence level in solving programming exercises was also high.

Article Search
A Quantitative Assessment Method for Simulation-based E-learnings
Natalia Andriano, Marcela Garay Moyano, Carlos Bertoni, and Diego Rubio
(Universidad Tecnológica Nacional, Argentina)
For several years the software industry has been focused on improving its product´s quality by implementing different frameworks, models and standards like CMMI and ISO. It has been discovered that training team members is a must within these quality frameworks. Given the vast technologies differentiations and new methodologies for developing software, it is imminent that alternative faster, effective and more customized ways of training people are needed. One alternative way in training people is using simulation-based e-learning technologies. Due to the vast e-learnings market´s availability, evaluations on educational software must be done to verify the quality of the training that is been produced or acquired. This paper presents a method that provides a quantitative assessment of the training quality. The proposed method presents an approach towards assessing educational software through the quantitative evaluation of predefined attribute. A pilot experience is presented in this paper along with the method description and explanation

Article Search
Evaluating the Testing Ability of Senior-level Computer Science Students
Jeffrey C. Carver and Nicholas A. Kraft
(University of Alabama, USA)
Testing is a key skill for computer science students to acquire during their studies. To determine how well students are learning this skill, we conducted an empirical study in two offerings of a senior-level computer science course. The goal of the study was to determine whether students would be able to create a small, complete test suite for a simple program. The students created a test suite first without the aid of a coverage tool and then with the aid of a coverage tool. The results indicate that without a coverage tool, students achieved significantly less than 100% statement, branch or condition coverage. When provided with a code coverage tool, students increased coverage levels. Still, examination of the test suites indicated that they were significantly larger than the minimum required. These results indicate that students cannot conduct adequate testing of even a small program. To provide context for our results, we provide a literature survey summarizing various techniques proposed for teaching testing in the computer science curriculum. We discuss each technique, its strengths, and its weaknesses.

Article Search
Leveraging Design Structure Matrices in Software Design Education
Yuanfang Cai, Daniel Iannuzzi, and Sunny Wong
(Drexel University, USA)
Important software design concepts, such as information hiding and separation of concerns, are often conveyed to students informally. The modularity and hence maintainability of student software is difficult to assess. In this paper, we report our study of using design structure matrix (DSM) to assess the modularity of student software by comparing the differences between the DSM representing the intended design and the DSMs representing the software implemented by the students. We applied this approach to a software design class at Drexel University. We found that even though the lab and homework assignments were of small scale, and in many cases, detailed designs were given to the students in the form of UML class diagrams, 74% of the 85 student submissions, although fulfilled the required functionality, introduced unexpected dependencies so that the modules that designed to be independent are actually coupled. These design problems can only be revealed during software evolution, which is usually not possible for student projects. The results show the necessity and benefits of applying DSM modeling to make such design problems explicit to the students.

Article Search
Relevance and Alignment of Real-Client Real-Project Courses via Technology Transfer
LiGuo Huang and Daniel Port
(Southern Methodist University, USA; University of Hawaii, USA)
It is often claimed Real-Client Real-Project (RCRP) courses are important providers of industry relevant experience and skills to students. How do we know this is so? We cannot prove this or improve RCRP industry relevance without tangible evidence. Here we suggest that the degree an industry partner is willing to accept technology transfer for technologies used within an RCRP course is a strong indicator of relevance. There must be common challenges between RCRP and industry software development for which technology proven in the classroom will also be relevant in industry. We describe our experiences with using an RCRP parallel to the TAME technology transfer model to assess the degree of willingness for technology transfer facilitated by technology use in RCRP courses. We find benefits from realizing envisaged synergies between software engineering research, education, and technology transfer to industry. We further note how the willingness for technology transfer indicator is useful for aligning software engineering courses for industry relevance.

Article Search

Contributions to Mini-Track on Systems and Software Engineering

Experience Teaching Software Project Management in both Industrial and Academic Settings
Philippe Kruchten
(University of British Columbia, Canada)
This paper relates seven years of experience teaching Software Project Management both in academia as part of an undergraduate software engineering program and to software engineering graduate students, and to practitioners in industry. It explains some of the difficulties and constraints for such a course. It describes the current syllabus and its rationale. The course is constructed based on a conceptual model of software development that accommodates a wide range of process models, traditional and agile, large and small. The course is illustrated by drawing from a range of concrete processes: RUP®, DSDM®, MSF®, Scrum and XP, of software engineering standards (from IEEE and ISO) and a few project management tools. The paper then maps this course to the IEEE SWEBOK (Software Engineering Body Of Knowledge), to IEEE Standard 1490, better known as the PMBOK (Project Management Body of Knowledge), and more particularly to the recent IEEE-CS/ACM SE2004 (Software Engineering Curriculum 2004), showing how the course can be made an integral part of a well-rounded software engineering program.

Article Search
Educating Software Engineers to Become Systems Engineers
Supannika Koolmanojwong and Barry W. Boehm
(University of Southern California, USA)
Our two-semester USC core software engineering project course CS577ab devotes its first semester to having students learn and do systems engineering on a real-client project. This requires a good deal of just-in-time lectures, tutorials, and homework to prepare the students, and feedback in terms of mentoring, artifact grading, and live milestone reviews to help them succeed. This paper provides some initial motivation and context; discusses our approach to introduce systems engineering into software engineering relative to that in the GSwE 2009 curriculum guidelines, SEBOK draft 2010, and SWEBOK 2004; describes the course practices during the systems engineering and software engineering semesters; and summarizes the project results and conclusions.

Article Search
Teaching Systems Engineering to Software Engineering Students
Richard E. Fairley and Mary Jane Willshire
(Software and Systems Engineering Associates, USA)
This paper describes the relationships between systems engineering and software engineering and indicates ways in which systems engineering concepts can be integrated into the SE2004 curriculum guidelines for software engineering to produce software engineers who can effectively participate in systems engineering endeavors. This paper is a companion to “Teaching Software Engineering Concepts to Systems Engineers” which appears in the proceedings of the 2011 ASEE conference.

Article Search

In-Depth Teaching / Training Experience Reports

Using Abstraction and Web Applications to Teach Criteria-Based Test Design
Jeff Offutt, Nan Li, Paul Ammann, and Wuzhi Xu
(George Mason University, USA)
The need for better software continues to rise, as do expectations. This, in turn, puts more emphasis on finding problems before software is released. Industry is responding by testing more, but many test engineers in industry lack a practical, yet theoretically sound, understanding of testing. Software engineering educators must respond by teaching students to test better. An essential testing skill is designing tests, and an efficient way to design high quality tests is to use an engineering approach: test criteria. To achieve the maximum benefit, criteria should be used during unit (developer) testing, as well as integration and system testing. This paper presents an in-depth teaching experience report on how we successfully teach criteria-based test design using abstraction and publicly accessible web applications. Our teaching materials are freely available online or upon request.

Article Search
Design and Delivery of a Modern Mobile Application Programming Course - An Experience Report
Meyer Cu Tanuan
(Conestoga College Institute of Technology and Advanced Learning, Canada)
This report presents the experience in the design and delivery of a modern mobile application programming course in an Information Technology program offered by a Canadian college. Due to the popularity of smartphones and the increasing demand for mobile application professionals, universities and colleges are offering mobile computing courses. However, there are few publicly-available coursewares that are relevant, practical and realistic. This report presents the course outline, course requirements and evaluation criteria that have all been well received by the students. We present the student feedback that demonstrates how the combination of lab assignments and group project make the course practical and realistic to the students.

Article Search
Some Observations from Releasing Student Projects to the Public
Damith C. Rajapakse
(National University of Singapore, Singapore)
Software engineering educators often struggle to strike a balance between making the project "real" so that students can learn in a realistic context and using an "imaginary" project tweaked to optimize learning goals of the module. This paper describes our observations when we tried to make an established software engineering project module more realistic by introducing to it a public release of the software built by students. For various aspects of the module, we describe risks we had anticipated, measures we had applied to mitigate those risks, unanticipated challenges that emerged during the module, possible measures that we think can counter those additional challenges, and other positive and negative points of interest that we observed during the module. We hope that this paper will help other educators who plan to incorporate a public release to their project modules.

Article Search
The Design and Implementation of an Innovative Online Program for a Master of Science Degree in Computer Science - Software Engineering Specialization
Laura J. White and John Coffey
(University of West Florida, USA)
An executive software engineering program--developed to meet regional workforce needs-- affords cohorts of students the opportunity to complete their Master’s degree within one calendar year. This innovative program was designed with several objectives. Custom elective tracks were integrated to better meet needs within diverse application areas, such as healthcare, transportation, and the insurance industry. This program was also designed to establish a partner relationship with employers to support students through work release and opportunities for real world capstone project experiences. The program was designed as a cohort model in order to establish a strong sense of community and thus promote increased peer learning within courses because effective peer learning has been established as a best practice for online programs in higher education. Experiences regarding the development and implementation of an innovative, graduate, online program for the Master of Science in Computer Science – Software Engineering specialization are described in this paper.

Article Search
Development of North Carolina's First Software Engineering Program: An Experience Report
Nasseh Tabrizi, Sergiy Vilkomir, and Junhua Ding
(East Carolina University, USA)
The North Carolina’s first Master of Science in Software Engineering program was introduced at East Carolina University in spring 2008. In this paper we report on our progress in terms of successful student recruitment and retention and also course delivery methods in both face-to-face and online environments.

Article Search
Guiding Global Software Development Projects using Scrum and Agile with Quality Assurance
Christelle Scharff
(Pace University, USA)
This paper focuses on a global software development project where extended teams of students distributed across two to three countries, namely the US, Cambodia, India and Senegal, experienced the roles of developers, auditors and testers. Developers used Scrum and Agile to develop mobile applications for different mobile platforms with the support of different end-to-end tooling infrastructures. This paper isolates and focuses on the role of auditors. It describes the model of collaboration, the role of auditing in Agile and Scrum adherence, and the importance of tools to support quality assurance activities. Recommendations for a better involvement of auditors in Agile and Scrum projects and the expected benefits of their contribution are discussed.

Article Search
Delivering PSP Course in Tertiary Education Environment: Challenges and Solution
Guoping Rong, He Zhang, Zhenyu Chen, and Dong Shao
(State Key Laboratory for Novel Software Technology, China; Nanjing University, China; NICTA, Australia; University of New South Wales, Australia)
Nowadays, many universities include Personal Software Process (PSP) into their software engineering curriculum. However, delivering PSP course in tertiary education environment always faces at least two challenges. Firstly, in a typical PSP course in education environment, one teacher may teach much more students than a typical PSP class in industry, hence it is extremely difficult to provide evaluation of students’ assignments in time. Secondly, participation of students in university often has significantly different characteristics compared to those trainees who had industry experiences. Based on education practice in Software Institute of Nanjing University, this paper proposed an approach to teaching PSP in tertiary education environment with higher efficiency and effectiveness. In this approach, a complete PSP course is delivered and cooperative learning (in pair) is encouraged. Besides, an evaluation team is established to provide timely evaluation on students’ submissions and to help students correct their development behaviors. To validate this teaching approach, we conducted an experiment which involved all the freshman students enrolled in software engineering. We compared some process data collected from the submissions of both groups (individual and pair) of students. The results of the experiment show that the load of students’ submissions reduced by half while students’ interest of learning increased

Article Search
Integrating Instructional and Study Materials to Tailor a Student-Specific Resource
J. Yates Monteith and John D. McGregor
(Clemson University, USA)
Courses about various software engineering practices, e.g. testing and architecture, all ultimately relate to a process for applying the practice. We have used that process as the organizing principle for undergraduate and graduate software engineering courses. The Software Process Engineering Meta-model (SPEM) provides a means for engineering a process for the specific practice being studied and even tailoring that process to the specific needs of a project. We have used the Eclipse Process Framework, an implementation of the SPEM, as a tool to allow instructors to create, modify and reuse a baseline electronic textbook as well as for students to collect, organize, and represent information in a form most meaningful to them. We present examples and data from one undergraduate introduction to software engineering course and two graduate courses in verification and validation and software architecture gathered over several years.

Article Search
Making Winners for Both Education and Research: Verification and Validation Process Improvement Practice in a Software Engineering Course
Qi Li and Barry W. Boehm
(University of Southern California, USA)
An empirical study is provided on teaching Verification & Validation (V&V) process practice in a real-client graduate level software engineering course which makes students and researchers mutual winners. From our observation and experiences during the course, on the education side, several reflection-in-action techniques are used to educate and train students. These include inspections, architecture review boards, grading criteria, monitoring of their quality management plans, student critiques of their project experiences, and client evaluations. On the research side, students’ feedback, evaluation, and critiques provide not only previous empirical evidence for the researchers’ research proposal, but also great opportunities to refine their research methods from lessons learned from the course, and in turn to improve the course quality.

Article Search
A New CS0 Course for At-Risk Majors
Mona Rizvi, Thorna Humphries, Debra Major, Heather Lauzun, and Meghan Jones
(Norfolk State University, USA; Old Dominion University, USA)
The Bureau of Labor Statistics forecasts that approximately 175,100 software engineering jobs will be created between 2008 and 2018. In order to fill these positions, new computer scientists, who enjoy and are competent in the art of programming and software design, must be trained. Computer science departments must look for novel approaches to attract non-traditional students, i.e. women and minorities, to the major, in order to fill the positions predicted by the Bureau of Labor Statistics. Additionally, although computer science enrollment has increased in the freshman and sophomore levels over the past few years, computer science departments are still faced with identifying new approaches to teaching programming that will retain students, particularly if some of them have weak mathematics backgrounds and are placed directly in CS1. In this paper, a study to determine the effectiveness of a CS0 course using Scratch for improving the retention, the performance and the attitudes of at-risk majors is discussed. Initial assessments associated with the study indicate that students of the target group who program using Scratch have a high degree of perceived self-efficacy with respect to their programming abilities. Furthermore, results to date indicate that the originally at-risk students in the study went on to successfully complete CS1 with a passing rate of 74% compared to a 39% passing rate in CS1 by the students who had sufficiently high mathematics scores upon entry into the university.

Article Search
The Virtual Agile Enterprise: Making the Most of a Software Engineering Course
Fatma Meawad
(German University in Cairo, Egypt)
Software engineers are expected to possess a variety of technical, social and personal competencies to be well prepared for real world working environments. At the German University in Cairo (GUC), we were able to guide large groups of students into becoming self managing and self learning communities whose members work together as a team to build large scale software. The students were able to experience many of the challenges in software engineering and develop a variety of related skills in a short period of time. This report describes our detailed experience in reaching such results using agile development practices in a simulated enterprise environment. With an aim to enable educators realise the same success, this report serves as a guide for educators who wish to replicate the process. The resulting successes and the concerns from this unique experience are discussed along with future recommendations.

Article Search
An Introductory Course on Software Engineering on Self-Organization in Swarm Robotics
Michael Uelschen and Heinz-Josef Eikerling
(University of Applied Sciences Osnabrück, Germany)
In this paper we describe an introductory course on software engineering for undergraduate students of computer science, electrical engineering and mechatronics. In contrast to previous courses we conceived, performed and evaluated a project that has to be accomplished within a one-week timeframe. Therefore the focus is rather on goal-orientation and pragmatic problem-solving than on a strict phase-based software development process. The problem at stake focuses on an algorithm for implementing swarm intelligence which is borrowed from the behavior of leaf cutting ants. We explain our concept and demonstrate how short-duration assignments like this can yield interesting results and experiences with respect to teaching software engineering skills.

Article Search
Engineering a Successful Partnership Between Academia and the Financial Industry: A Software Engineering Program for IT Professionals
Sotiris Skevoulis
(Pace University, USA)
This paper describes an ongoing partnership between the Seidenberg School of Computer Science and Information Systems at Pace University, a Registered Education Provider (REP) for IEEE and the Information Technology Division at Bank of New York Mellon. The goal of the project is to deliver at the bank’s location, a high quality, customized, graduate program in software engineering as well as to reflect on its strong and weak points and improve it. More importantly, through intense interaction with the Bank’s IT Management, to ensure that the academic program matches their actual needs. The technology transfer, the customized training and the challenges are discussed.

Article Search
Teach Project Management, Pack an Agile Punch
Shankar Venkatagiri
(IIM Bangalore, India)
Agile software development methods have begun to gain wide acceptance by the global software industry. However, project managers with academic training in ASD are a rarity. This paper outlines a course in IS Project Management that is well-suited for an audience consisting of students from the information systems, business and computer science streams, who normally make up a graduate class. The course begins by adopting a process-neutral perspective towards activities such as requirements and estimation, before proceeding to discuss Agile methods. A team project allows participants to develop a hands-on feel for ASD, with the help of an Agile PM platform. The author has recently taught the course as proposed at his institution. The paper makes some observations on the effect of prior work experience on team performance. It concludes with some testimonials from professional participants, on the impact that the course has had on their practices at work.

Article Search
Group Project Work from the Outset: An In-depth Teaching Experience Report
Martin Shepperd
(Brunel University, UK)
We redesigned our undergraduate computing programmes to address problems of motivation and outdated content. The primary vehicle for the new curriculum was the group project which formed a central spine for the entire degree right from the first year. In terms of results, thus far this programme has been successfully run once. Failures, drop outs and students required to retake modules have been halved (from an average of 21.6% from the previous 4 years to 9.5%) and students obtaining the top two grades have increased from 25.2% to 38.9%. Whilst we cannot be certain that all improvement is due to the group projects, informally the change has been well received, however, we are looking for areas to improve including the possibility of more structured support for student metacognitive awareness.

Article Search
Read Before You Write
Thomas B. Hilburn, Masood Towhidnejad, and Salamah Salamah
(Embry-Riddle Aeronautical University, USA)
This paper describes and advocates a focused approach to using inspections of software artifacts as an active learning technique in software engineering education. A central thesis is that one must “learn to read before they write”; that is, you should read and study an existing software artifact, before you develop one. There is discussion of how software artifacts and supporting instructional materials from a Digital Home case study project can be used to support and guide software inspection exercises. These inspection exercises are designed to introduce students to realistic software engineering artifacts and involve them in rigorous examination of their contents. Instances of the use of software inspections to teach software engineering are described and analyzed: the experiences of students and instructors, what worked and what did not, and how this influenced the cases study project. The authors also outline a set of topics and courses in which software inspections might be used as a teaching tool throughout a computing curriculum.

Article Search

Work in Progress Reports

Mystery Bug Theater
Renée Bryce and Vicki Allan
(Utah State University, USA)
Introductory Computer Science students often encounter programming bugs. Our previous work gathers and classifies data for 450 programming bugs brought to our tutor lab over a one year period. We use the data to identify the most common bugs as the basis for activities that improve our curriculum. This paper discusses several activities that rely on this data: (1) the ``Mystery Bug Theater'' website contains games and movies about common bugs, (2) professors quickly respond to the common bugs in lectures, and (3) class exercises use buggy code from the repository. Future work will distribute software testing material across the curriculum to help students with the most common bugs in specific courses and will analyze whether bug patterns change based on curriculum changes.

Article Search
How Can We Make Software Engineering Text Books Well-founded, Up-to-date, and Accessible to Students?
David Broman and Kristian Sandahl
(Linköping University, Sweden)
When teaching software engineering courses it is highly important to have good text books that are well-founded, up-to-date, and easily accessible to students. However, currently available text books on the market are either very broad or highly specialized, making it hard to select appropriate books for specific software engineering courses. Moreover, due to the rapidly changing subject of software engineering, books tend to become obsolete, which make students hesitate to buy books even if they are part of the listed course literature. In this paper, we briefly explain and discuss an approach of using a web-based system for creating collaborative and peer-reviewed text books that can be customized individually for specific courses. We describe and discuss the proposed system from a use case perspective.

Article Search
Teaching Software Testing Methods Based on Diversity Principles
Zhenyu Chen, Jinyu Zhang, and Bin Luo
(Nanjing University, China)
Software testing is the primary approach to support software quality assurance. Many novel software testing methods have been proposed to achieve various tasks in recent years. It is a challenge to teach these new testing methods and classical testing methods within limited time. This paper reports our work in progress on the new teaching approach to software testing methods based on diversity principles.

Article Search
Incorporating Real-World Industrial Testing Projects in Software Testing Courses: Opportunities, Challenges, and Lessons Learned
Vahid Garousi
(University of Calgary, Canada)
In order to effectively teach software engineering students how to solve real-world problems, if possible, students should have the chance of working with and testing “real-world” industrial software systems during their courses. In a previous article, we presented a comprehensive software-testing lab exercise repository in which real software systems and test tools were incorporated to give students the chance of learning industry-standard tools (such as JUnit and IBM Rational Functional Tester). As the next step in our on-going efforts to improve the learning experience of students in testing courses, we have incorporated “real-world” industrial testing projects in a graduate-level software testing course in the past three years (2008-2010). The experience and the outcomes of these industrial-caliber projects have been very satisfying to the stakeholders. We report in this article some details about those projects and also discuss the opportunities, challenges, and lessons learned in those projects.

Article Search
A Learning Methodology based on Semantic Tableaux for Software Engineering Education
Rafael del Vado Vírseda
(Complutense University of Madrid, Spain)
While Computational Logic plays an important role in several areas of Software Engineering (SE), most of the educational technology developed for teaching logic ignores their application in a larger portion of the SE education domain. In this paper we describe an innovative methodology based on a prototype logic teaching tool on semantic tableaux to prepare and train the students to use logic as a formal proof technique in other topics of SE, such as the formal verification of algorithms and the declarative debugging of imperative programs, which are foundations of good development of software.

Article Search
Toward Instant Gradeification
Daniel M. Zimmerman, Joseph R. Kiniry, and Fintan Fairmichael
(University of Washington at Tacoma, USA; IT University of Copenhagen, Denmark; University College Dublin, Ireland)
Providing useful feedback to students about both the functional correctness and the internal structure of their submissions is the most labor-intensive part of teaching programming courses. The former can be automated through test scripts and other similar mechanisms; however, the latter typically requires a detailed inspection of the submitted code. This paper introduces AutoGradeMe, a tool that automates much (but not all) of the work required to grade the internal structure of a student submission in the Java programming language. It integrates with the Eclipse IDE and multiple third-party plug-ins to provide instructors with an easy-to-use grading environment. More importantly, unlike other automatic grading tools currently in use, it gives students continuous feedback about their work during the development process.

Article Search
An Introductory Software Engineering Course for Software Engineering Program
Dong Shao, Bin Luo, Eryu Ding, and Qin Liu
(Nanjing University, China)
One important issue in undergraduate software engineering curriculum is how to help students establish the concept of software engineering at the beginning of software engineering undergraduate program and to provide a reasonable basis of knowledge and skills for subsequent courses. The "Computing and Software Engineering (CSE)", a three-semester course, is designed as the introductory course for undergraduate software engineering program at NJU in China; it tries to help students learn the comprehensive knowledge and skills in constructing small-to-medium size software. The course includes not only technical topics, such as programming and software development technology, but also professionalism and teamwork through constructing different scales of software. The knowledge is organized with the complete software example development demonstration, which makes it easier for students to synthesize all knowledge related in software development. CSE has been executed from 2009, and it has been refined according to feedback from students, lecturers and TAs. This paper describes the design and teaching practice of CSE.

Article Search
Making the Comprehension of Software Architecture Attractive
Claudia Susie C. Rodrigues and Cláudia M. L. Werner
(COPPE/UFRJ, Brazil)
Visualization stimulates the cognitive capacity of humans and facilitates the understanding of a subject. It performs a crucial role in teaching software architecture. As systems become more complex, new education proposals have been introduced in the classroom, especially those that make teaching more attractive to students. This paper presents the VisAr3D approach which was designed to provide a 3D visualization of UML models, where the user should intuitively understand architectural elements in this 3D environment. It includes exploration, interaction and simulation resources to establish a practical and pleasant learning activity, focusing in large scale systems.

Article Search
Teaching UML Using Umple: Applying Model-Oriented Programming in the Classroom
Timothy C. Lethbridge, Gunter Mussbacher, Andrew Forward, and Omar Badreddin
(University of Ottawa, Canada)
We show how a technology called Umple can be used to improve teaching UML and modeling. Umple allows UML to be viewed both textually and graphically, with updates to one view reflected in the other. It allows UML concepts to be added to programming languages, plus web-based code generation from UML to those languages. We have used Umple in student laboratories and assignments for two years, and also live in the classroom. In a survey, students showed enthusiasm about Umple, and indicated they believe it helps them understand UML better. Improvements in their grades also support our approach.

Article Search
Effective Real-World Project Collaboration: Strategies from a Cyber Security Degree Program
Wajee Chookittikul and Peter E. Maher
(Phetchaburi Rajabhat University, Thailand; Webster University, USA)
The undergraduate degree of computer and cyber security has been offered at the School of Information Technology, Phetchaburi Rajabhat University, Thailand since 2005. Our program requires direct field experience when students are taking upper-level courses. This is not only to ensure that students are well prepared for their future jobs, but also to raise awareness of how important and mandatory specialized computer and cyber security personnel skills can be for their organizations. This paper documents an effective model incorporating real-world projects into 16-week lecture courses. Creating a strong bond between school and industry is one of the key factors in the success of the curriculum and our graduates, and is one of the quality assurance indicators for this degree and the School.

Article Search

Short Papers

Software Development as Service to the Student Community: An Experiential and High Student Involvement Approach to Software Engineering Education
John C. Georgas
(Northern Arizona University, USA)
While a common expression of experiential learning in software engineering is the industry-sponsored project, it suffers from key shortcomings at the introductory level. These center on the fact that projects are neither drawn from nor relevant to the everyday lives and communities of their student-developers. To address these challenges, we focus on casting project development in terms of service to the student community, with the involvement of our university’s ACM Student Chapter. We discuss the pedagogical foundations of our work, present specific course organization issues, expand on a number of specific challenges with our approach, offer concrete project examples, and outline future work and evaluation.

Article Search
Continued Assessment of Students' Learning Experience in an Oral Communication Course at MIT for EECS Majors
Tony L. Eng and Rudolph Mitchell
Electrical Engineering and Computer Science (EECS) majors at MIT are required to take an oral communications course called “6.UAT” that teaches oral presentation skills and other professional skills that students will need to be effective in the workplace. An assessment of the oral presentation skills component of the course, consisting of a survey and an interview, was designed and conducted in Spring 2009. We performed the assessment again, with a larger cohort during the Fall 2009 semester and in this paper, describe the outcomes of (1) a class survey of 146 students (with 104 respondents or a 71% response rate) and (2) student interviews in which 7 out of 10 randomly-selected individuals participated. The findings from both instruments for both cohorts were consistent and positive; students were enthusiastic about the course, found it useful and viewed the experience positively.

Article Search
Updating CS Capstone Projects to Incorporate New Agile Methodologies used in Industry
Dean Knudson and Alex Radermacher
(North Dakota State University, USA)
Computer Science capstone programs in many universities provide students with the opportunity to develop software systems/tools for industrial companies. These projects are often completed using processes that can be considered “heavy weight” in order to provide students the experience of using the same tools and practices found in industry. For example, North Dakota State University uses a set of processes modeled after CMMI level 2. However, over the past several years, many sponsoring companies have transitioned towards agile software development processes. In order to better prepare students for this, it is necessary to provide capstone projects offering an agile option as well as the more traditional methods. Interviews were conducted with developers and managers from five sponsoring companies using agile processes. The results of these interviews and feedback from student teams that have used agile are being used to create an agile software development process designed for capstone projects. This paper describes the agile methodology, a summary of suggestions from interviews and student feedback, and plans for incorporating agile processes in the capstone course.

Article Search
How Middle School Teachers Solved Our SE Project Problems
Elizabeth Sweedyk
(Harvey Mudd College, USA)
This paper compares several models for student software engineering projects. We discuss our experience using projects for external customers, using computer game projects, and finally using game projects for external customers, specifically middle school teachers. We discuss the problems we encountered with the first two approaches and how they are solved with our current model.

Article Search
Teach Sustainability in Software Engineering?
Birgit Penzenstadler and Andreas Fleischmann
(Technische Universität München, Germany)
Sustainability is becoming an important topic in IT—as contribution of IT to safeguard our future, and as evolving market segment. IT’s high productivity in combination with short life cycles and, on the other hand, growing resource problems of our planet, lead to a necessity that software engineers take their share of responsibility for sustainability. Therefore, we need to include the concept of sustainability into the university curriculum of computer science. The challenge is to motivate and interest students (and lecturers) for sustainability, to identify spheres of activity for software engineers, to build up competence fields for solutions, and to incorporate the topic into the syllabus. This paper presents a strategy for integrating the concept of sustainability into a degree course scheme across three stages: find a core of interested people by offering a seminar, then broaden the awareness for sustainability by offering a lecture series, and finally establish the topic by offering teach-the-teacher seminars and integration into software engineering lectures.

Article Search
Software Engineering or Soft Engineering?
Ken Robinson and Peter Ho
(The University of New South Wales, Australia)
The conflict raised by the title of this paper is familiar and may be considered too well worn to continue discussing? On the contrary, the fact that there is no serious resolution of this specific aspect of Software Engineering —despite many advances in software and software tools— suggests to these authors, both from general concern for the implications for the discipline as well as even greater concern for the teaching of software engineering students, that it is worth pursuing. The paper discusses the topic in general and also with particular reference to curricula. Experience in the School of Computer Science and Engineering at UNSW including attempts to address this problem are discussed.

Article Search
Retrospectives in a Software Engineering Project Course: Getting Students to Get the Most from a Project Experience
Steve Roach
(University of Texas at El Paso, USA)
Project retrospectives are an established “best practice” in software process improvement. As a tool for learning how to perform better as a development organization, retrospectives may provide an additional learning opportunity for students in software engineering project courses. This paper describes a project retrospective approach that has been adapted to the academic setting. Academic project retrospectives not only provide students with the opportunity to reflect on their project performance, it gives the instructor additional information on improving the delivery, management, and learning outcomes. Key elements and suggestions for improvements of the retrospective are described.

Article Search
Using Community-based Projects in Software Engineering Education
Roshanak Roshandel, Jeff Gilles, and Richard LeBlanc
(Seattle University, USA)
Over the past six years, Seattle University’s Master of Software Engineering program has adopted a common community-based software engineering project as the basis for class projects in a sequence of required and elective courses. These related projects offer a unifying experience for students in the program, allow in-depth treatment of course topics on a real software project, address needs of local non-profit organizations, and better prepare the students for their professional careers through civic engagement and leadership.

Article Search
Empirical Assessment of Languages for Teaching Concurrency: Methodology and Application
Sebastian Nanz, Faraz Torshizi, Michela Pedroni, and Bertrand Meyer
(ETH Zurich, Switzerland; University of Toronto, Canada)
Concurrency has been rapidly gaining importance in computing, and correspondingly in computing curricula. Concurrent programming is, however, notoriously hard even for expert programmers. New language designs promise to make it easier, but such claims call for empirical validation. We present a methodology for comparing concurrent languages for teaching purposes. A critical challenge is to avoid bias, especially when (as in our example application) the experimenters are also the designers of one of the approaches under comparison. For a study performed as part of a course, it is also essential to make sure that no student is penalized. The methodology addresses these concerns by using self-study material and applying an evaluation scheme that minimizes opportunities for subjective decisions. The example application compares two object-oriented concurrent languages: multithreaded Java and SCOOP. The results show an advantage for SCOOP even though the study participants had previous training in writing multithreaded Java programs. The lessons should be of use to educators interested in teaching concurrency, to researchers looking for objective ways of assessing teaching techniques, and to researchers who want to avoid bias in assessing an approach or tool that they have themselves designed.

Article Search
Comparing Extreme Programming and Waterfall Project Results
Feng Ji and Todd Sedano
(Carnegie Mellon Silicon Valley, USA)
Waterfall and Extreme Programming are two software project methods used for project management. Although there are a number of opinions comparing the two methods regarding how they should be applied, none have used project data to clearly conclude which one is better. In this paper, we present the results of a controlled empirical study conducted at Carnegie Mellon University in Silicon Valley to learn about the effective transition from traditional development to agile development. We conducted a comparison research against these two approaches. Multiple teams were assigned a project; some used Waterfall development, others used Extreme Programming. The purpose of this research is to look at advantages and disadvantages based upon the outcomes, generated artifacts, and metrics produced by the teams.

Article Search
Contextual Android Education
James Reed and David S. Janzen
(Intuit Inc., USA; California Polytechnic State University, USA)
Advances in mobile phone hardware and development platforms have drastically increased the demand, interest, and potential of mobile applications. We report on development of a new special topics software engineering course that combines the appeal of Android application development with software engineering topics and entrepreneurial thinking. The primary contribution of this project and the focus of this paper is a series of detailed educational laboratory exercises that are designed to supplement the Android documentation by providing contextual examples, activities, and tutorials. The labs were contributed to the Google Code University under the Creative Commons license, resulting in over 30,000 visits and nearly 100,000 pageviews in its first three months.

Article Search
Research and Practice on Software Engineering Undergraduate Curriculum NJU-SEC2006
Eryu Ding, Bin Luo, Daliang Zhang, Jidong Ge, Dong Shao, and Haoran Wang
(Nanjing University, China)

Article Search
The Challenge and Practice of Creating Software Engineering Curriculum
Yanchun Sun
(Peking University and Ministry of Education, China)
Software Engineering is important for the students majored in computer science and technology. This curriculum is intended to provide students with an overall view over Software Engineering as an engineering discipline and with insight into the processes of software development. Creating software Engineering curriculum faces several challenges: (1) Software Engineering has wide coverage, but teaching time is limited. So it is difficult to make in-depth education. (2) Some introductory Software Engineering courses present the principles in isolation from practice. Teaching the lectures seems to focus on philosophy and methodology level, which leads to difficulty for students having no practical experience to understand. (3) Due to the lack of software project practice, students can hardly apply appropriate software engineering methods and technologies to solve problems. (4) How can Software Engineering curriculum satisfy the various needs of different levels? This paper focuses on the challenges above, and introduces how to try to solve them by a case study on the construction of Software Engineering curriculum at Peking University. Finally, this paper gives the future direction for the construction of Software Engineering curriculum.

Article Search
MSE Studio Project: The Viewpoint of a UC Student
António Damasceno
(CMU, USA and University of Coimbra, Portugal)
This paper is a reflection on how the studio concept is applied in the Master of Software Engineering (MSE) in the joint program between University of Coimbra (UC) and Carnegie Mellon University(CMU). The partnership is sponsored by the Portuguese Government through the CMU Portugal program. The original MSE concept of James Tomayko was based on the ideas of Donald Schon on the education of the "reflective practitioner". It evolved over time, with contributions of faculty and students. Some of the improvements were made by Mary Shaw with the introduction of the Methods course, others by David Root, Mel Rosso-Lloppard and Gil Taran, addressing current concerns on Studio structure and exporting the program to foreign partners such as the University of Coimbra. One of the key concerns we have seen is on the identification of what is good and should be repeated and what is not so good and should be changed. Students are asked to contribute to this effort, this paper is the author's contribution to the effort of continuous improvement made by the MSE.

Article Search
Incremental Sequential Problem Based Training Model – Institute Corporate Readiness
Sundaresan Iyer, S. Meenakshi, and Anooja Mary Jacob
(Infosys Technologies Limited, India)
The high impact of IT driven business worldwide in diversified fields has increased the need for huge quality and quantity workforce in IT corporate domain. Corporate units are hence compelled to receive/absorb incumbents from diversified educational and cultural backgrounds. The incumbents seem to have good fundamental knowledge on the core subjects in the area of study, but are short of acquaintance in the people, process and technology aspects. This short paper discusses a new model, Incremental Sequential Problem based Learning Model (ISPLM) which is being used to make the incumbents of a leading software giant, production ready with corroboratory business impact. The model involves tailored courses which consist of problem solving driven through logic, implemented using a technology, developed through people and applied using processes structured in that order. The courses are threaded using business domain examples to give a big picture of the work environment to the incumbents. This model has been proven with impressive results to bring about corporate readiness in its learners.

Article Search
The Practical Method of Motivating Students to Iterative Software Development
Ondřej Macek and Martin Komárek
(Czech Technical University in Prague, Czech Republic)
Iteration-based software development is a popular and widely used software development approach. Therefore students have to get familiar with it; however it is difficult for them to work iteratively. We designed new courses aimed at software development in a way in which students are forced to use incremental and iterative development instead of the waterfall model. The new project-oriented courses focus on project management (regular planning and reporting) and emphasize students’ motivation toward project success.

Article Search

Highly Collaborative Workshops

International Workshop on Distance Learning Support for Postgraduate Programs in Software Engineering (e-gradSE)
Itana M. S. Gimenes, Leonor Barroca, and Ellen Francine Barbosa
(Universidade Estadual de Maringá, Brazil; The Open University, UK; Universidade de São Paulo, Brazil)
This workshop aims at bringing together researchers and practitioners to present contributions and discuss strategies for distance learning software engineering postgraduate education.

Article Search
SMArtphones in the Curriculum worKshop (SMACK 2011)
Jules White, Jeff Gray, and Adam Porter
(Virginia Tech, USA; University of Alabama, USA; University of Maryland, USA)
Smartphone sales are expected to outpace desktop/laptop computer sales in 2011. It is critical for software engineers to understand the key issues of building applications for this new platform. The mobile sensing and networking capabilities of smartphones create a unique platform for building cyberphysical and other applications that sense and respond to the environment. Moreover, social networking capabilities of these platforms offer new paradigms for dissemination of knowledge, harvesting of user relationship information, and following current events. This workshop will foster new ideas, approaches, and artifacts that can be used to support the introduction of smartphones into traditional software engineering courses (e.g., a survey course, or senior capstone design course, among others).

Article Search
Incorporating Software Architecture in the Computer Science Curriculum
Martin L. Barrett, Ayşe Başar Bener, and Steve Chenoweth
(East Tennessee State University, USA; Ryerson University, Canada; Rose-Hulman Institute of Technology, USA)
This workshop introduces the concepts of software architecture and how to incorporate these concepts into the computer science and software engineering curriculum. Participants will learn techniques used in industry to specify quality attributes critical to system performance, modifiability, and availability, and to use those attributes to drive the system structure using well-known architectural styles. Exercises will be used to demonstrate the techniques and to practice effective methods for students to learn the techniques in CS and SE classes. Participants will become part of the community of educators sharing educational resources in software architecture.

Article Search

Panel Sessions

Is Integration of Communication and Technical Instruction Across the SE Curriculum a Viable Strategy for Improving the Real-World Communication Abilities of Software Engineering Graduates?
Gerald C. Gannod, Janet E. Burge, Paul V. Anderson, and Andrew Begel
(Miami University, USA; Microsoft Research, USA)
Software engineering educators and trainers are acutely aware that software engineering graduates need strong real-world communication abilities. The National Science Foundation is supporting a three-year project in which industry professionals, CS/SE faculty, and communication-across-the-curriculum specialists are collaborating to develop curricula and teaching resources designed to improve communication abilities of CS/SE graduates by integrating communication instruction and assignments with the technical work in courses across the students’ four years of study. The project’s goal is to develop teaching supports, assignments, and other resources that CS/SE faculty can use to create assignments and instruct their students in four areas: writing, reading, speaking, and teaming. Our panelists—an industry practitioner, a CS/SE educator, and a communication specialist—will describe what has been learned in the project’s first half and invite comments, insights and advice from the audience.

Article Search
Teaching Software Testing: Experiences, Lessons Learned, and the Path Forward
W. Eric Wong, Antonia Bertolino, Vidroha Debroy, Aditya Mathur, Jeff Offutt, and Mladen Vouk
(University of Texas at Dallas, USA; Italian National Research Council, Italy; Purdue University, USA; George Mason University, USA; North Carolina State University, USA)
This article contains position statements for the panel on "Teaching Software Testing: Experiences, Lessons Learned, and the Path Forward".

Article Search
The Role of Graduate Software and Systems Engineering Bodies of Knowledge in Formulating Graduate Software Engineering Curricula
Barry W. Boehm, Pierre Bourque, Don Gelosh, Thomas B. Hilburn, Art Pyster, Mary Shaw, and J. Barrie Thompson
(University of Southern California, USA; École de Technologie Supérieure, Canada; Department of Defense, USA; Embry-Riddle Aeronautical University, USA; Stevens Institute of Technology, USA; CMU, USA; University of Sunderland, UK)
The Software Engineering Body of Knowledge (SWEBOK), published in 2004, and now under revision, has influenced many software engineering graduate programs worldwide. In 2009, guidelines were published for graduate programs in software engineering (GSWE2009). GSWE2009, now sponsored by both the IEEE Computer Society and the Association for Computing Machinery, strongly rely on the SWEBOK but also recommends specific systems engineering knowledge for students to master. Today, an international team is creating a rigorous Systems Engineering Body of Knowledge (SEBoK) with the help of the IEEE Computer Society and the International Council on Systems Engineering and other professional societies. As it matures, the SEBoK should influence future versions of GSWE2009 and graduate program curricula worldwide. This panel will examine the influence of bodies of knowledge on both the creation of new graduate software engineering programs and the evolution of existing ones.

Article Search

Practice and Methods Presentations, and Tutorials

A Quantitative Usability Assessment Method for Inclusion in Software Engineering Courses
Bonnie E. John
(IBM Research Watson, USA)
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.

Article Search
Teaching Second-Level Java and Software Engineering with Android
Sarah Heckman, Thomas B. Horton, and Mark Sherriff
(North Carolina State University, USA; University of Virginia, USA)
Over the past two years, second-year Java and software engineering courses have been taught at the University of Virginia and North Carolina State University utilizing the Android OS platform. Instructors taught a variety of traditional second-year topics, including abstraction, design, requirements, and testing, utilizing a variety of Android-based mobile devices. Anecdotal responses from student surveys and evaluations from five course sessions indicate that teaching lower-level courses with more advanced and current technology, even with a steeper learning curve, is beneficial. In this tutorial proposal, we outline our plan for presenting a session that would help educators incorporate the Android OS into their curriculum and how to use the system even if mobile devices are not available.

Article Search
Structuring a Software Engineering-based Curriculum: Tutorial Presentation Summary
Mehdi Jazayeri
(University of Lugano, Switzerland)
We have designed a novel computer science curriculum at the University of Lugano in Switzerland. The curriculum is based largely on software engineering principles. We have been teaching the curriculum since 2004. Following the European standards, the curriculum consists of a 3-year bachelor program and a 2-year master’s program. With 6 years of experience, we are in a position to draw some conclusions about the curriculum and offer lessons to others who are interested in designing or evolving a software engineering-based curriculum. The principles apply whether one wants to design a bachelor’s curriculum or a master’s curriculum. They apply to both US and European systems.

Article Search
Pex4Fun: Teaching and Learning Computer Science via Social Gaming
Nikolai Tillmann, Jonathan de Halleux, and Tao Xie
(Microsoft Research, USA; North Carolina State University, USA)
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 instructs materials to equip 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.

Article Search
SLPC++: Teaching Software Engineering Project Courses in Industrial Application Landscapes - A Tutorial
Bernd Bruegge, Helmut Naughton, and Michaela Gluchow
(Technische Universität München, Germany)
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.

Article Search


Mission to Mars: An Agile Release Planning Game
Philippe Kruchten and James King
(University of British Columbia, Canada; Software Education, Australia)
Mission to Mars is an educational board game illustrating the planning process in iterative software development; it brings together concepts such as: iteration (sprint), backlog, story cards and story-points, velocity (productivity), impact of defects, technical debt, and risks. The game is a low-cost, Monopoly-style board game, played in groups of 2 to 4 students, where some factors such as uncertainty in estimation, actual velocity, and occurrence of defects are simulated by a throw of dice. Hard constraints and dependencies between stories are added to stimulate discussion on the strategy to pursue and how to mitigate risks. The game has been played in various contexts, academic and industrial, in several countries around the world with several hundred players, and it available to the software engineering community under a Creative Commons (by-nc-sa) license.

Article Search
Hard Choice: A Game for Balancing Strategy for Agility
Nanette Brown, Robert L. Nord, Ipek Ozkaya, Philippe Kruchten, and Erin Lim
(SEI/CMU, USA; University of British Columbia, Canada)
This poster presents the educational Hard Choices board game that simulates design decision process to communicate the concepts of design strategies in the face of uncertainty. At the end of the game, players experience the implications of investing effort to gain an advantage or paying a price to take shortcuts during software development in the race to become market leader. The game has been played in academic and industrial contexts, in several countries around the world, and is available to the community under a creative commons license.

Article Search
Using Games in Software Engineering Education to Increase Student Success and Retention
C. Shaun Longstreet and Kendra M. L. Cooper
(University of Texas at Dallas, USA)
Software Engineering (SE) and Systems Engineering (Sys) are knowledge intensive, specialized, rapidly changing disciplines; their educational infrastructure faces significant challenges including the need to rapidly, widely, and cost effectively introduce new or revised course material; encourage the broad participation of students; address changing student motivations and attitudes; support undergraduate, graduate and lifelong learning; and incorporate the skills needed by industry. Games have a reputation for being fun and engaging; more importantly, they are immersive, requiring deep thinking and complex problem solving. We believe educational games are essential in the next generation of e-learning tools. An extensible, web-enabled, freely available, engaging, problem-based game platform that provides students with an interactive simulated experience closely resembling the activities performed in a (real) industry development project would transform the SE/Sys education infrastructure.

Article Search
Teammates: A Cloud-Based Peer Evaluation Tool for Student Team Projects
Gerald Goh, Xiaoni Lai, and Damith C. Rajapakse
(National University of Singapore, Singapore)
Student team projects pose many challenges to educators, in particular because of possible inequality of contributions from different team members. Frequent peer-evaluation can be a big help in addressing the two following challenges: 1. Evaluating how much was contributed by each team member. 2. Giving feedback to students on their contribution to the project. However, most educators do not have access to a peer-evaluation system that gets the job done without adding too much overhead to students’ workload or their own workload. 'Teammates' is an online peer-evaluation system we built to fill this gap.

Article Search
A Proposal for an Educational System Service to Support Teaching/Learning Process for Logic Programming
Eric R. G. Dantas, Ryan R. de Azevedo, Cleyton M. O. Rodrigues, Silas C. Almeida, Fred Freitas, and Vinicius C. Garcia
(Federal University of Pernambuco, Brazil)
The Information and Communication Technology (ICT) have been successfully used to transform either partial/total face to face or distance learning education. Educational software systems aid the teaching/learning process, promoting the development of a lot of Virtual Learning Environments (VLEs), improving the assimilation of the content presented in the class. By using mechanisms such as Hardware as a Service (HaaS) and Software as a Service (SaaS), it is possible to envision a new concept: Education as a Service – EdaaS.

Article Search
Agile Methods in Thai Higher Education and Beyond
Wajee Chookittikul, Peter E. Maher, and Janet L. Kourik
(Phetchaburi Rajabhat University, Thailand; Webster University, USA)
Our research focuses on an analysis of the perception and utilization of agile methods in Thailand and begins to examine the gap between education and industry in this field. To develop an understanding of how agile methods are incorporated into computer science curricula several leading Thai universities were visited. Further, detailed interviews were conducted with a selection of large software companies in order to identify the perception and success of agile techniques. This research has provided an insight into level of preparation of Thai computer science graduates, specifically in the area of agile software development. Initial results from our empirical field research in Thailand are presented.

Article Search
Erase and Rewind – Learning by Replaying Examples
Lile Hattori, Alberto Bacchelli, Michele Lanza, and Mircea Lungu
(University of Lugano, Switzerland; University of Berne, Switzerland)
Much of human learning is built on observing, retaining, and replicating behavior witnessed in a model. On this basis, instructors often teach informatics by providing programming examples to be observed and analyzed by learners. By retaining and replicating the steps leading to the final artifacts, students learn.
However, teachers usually illustrate an example program only once and provide only its finalized version. This hinders the students' need of repeated observation and replication. With the Eclipse plug-in Replay, we strive to overcome the limitations of the current approach to learning by example. Replay records every code edit of a programming session, making the history available as an interactive executable "tape". Teachers can accurately design the steps of an example, and "play" them as live sessions in class, without the burden of concurrent coding and explaining; students have their hands in the complete code history, can observe it repeatedly, and can interact with it in any moment.

Article Search
Grading Code Quality of Programming Assignments Based on Bad Smells
Woei-Kae Chen and Pin-Ying Tu
(National Taipei University of Technology, Taiwan)
Programming assignments (PAs) are very important to many computer science courses. Traditionally, the grading of a programming assignment is based mainly on the correctness of the code. However, from the view point of software engineering education, such a grading does not encourage students to develop code that is easy to read and maintain. Thus, the authors created a grading policy that considers not only the correctness but also the quality of the code, expecting students to follow the most important discipline — the source code should be written in a way that is readable and maintainable. Instead of using pure subjective code-quality ratings, bad smells are used to assess the code quality of PAs. When a PA is graded by the teaching assistant, a list of bad smells is identified and given to the student so that the student can use refactoring methods to improve the code.

Article Search
A Software Architecture Orientation Framework
Timo Kehrer, Ingo Arnold, Arif Chughtai, and Oliver Vogel
(University of Siegen, Germany; Novartis Pharma AG, Switzerland; IT-Consultant, Switzerland; IBM, Switzerland)
Software architecture is a complex domain and one of the cornerstones to successful software development. The complexity appears in learning and teaching as well as in real-life projects, where architectural thinking emerges as a process of life-long learning. In order to develop a structured and comprehensive architectural awareness, we present an explanatory model for dealing with architecture.

Article Search
Can We Make Software Engineering Education Better By Applying Learning Theories?
Sridhar Chimalakonda and Kesav V. Nori
(IIIT at Hyderabad, India)
Today, software is being developed and maintained not just by engineers educated formally but also by people from widely different backgrounds including children, knowledge workers among many others. However, a number of studies indicate that most of these people are not equipped with enough software engineering skills leading to low-quality software. On the other hand, an analysis of literature reveals that the significant potential of learning theories (LTs) like Learning by Doing, Reflection, Model-based and so on has not been fully utilized by Software Engineering Education (SEE) and Training community. In this context, the main thrust of this poster is to emphasize the need for using vast amount of LTs (nearly 110) available to effectively and efficiently teach software engineering and help in producing quality software engineers. In this poster, we motivate the need for use of LTs in SEE, while summarizing significant ones and their use in SE. The poster also presents a mapping of key SE topics and their proposed LTs while emphasizing the role of context in using LTs. The poster further presents teaching Software Product Lines as an illustrative example. Finally, future work of this poster includes designing modeling languages to represent LTs and mapping them to topics in SWEBOK and GSwERC (software engineering curriculum).

Article Search

proc time: 1.23