Powered by
2013 35th International Conference on Software Engineering (ICSE),
May 18–26, 2013,
San Francisco, CA, USA
Software Engineering in Education
Problem-Based and Studio Learning
Wed, May 22, 13:30 - 15:30, Marina Room (Chair: Janet Burge)
Authentic Assessment in Software Engineering Education Based on PBL Principles: A Case Study in the Telecom Market
Simone C. dos Santos and Felipe S. F. Soares
(UFPE, Brazil; Recife Center of Advanced Studies and Systems, Brazil)
The continuous growth of the use of Information and Communication Technology in different sectors of the market calls out for software professionals with the qualifications needed to solve complex and diverse problems. Innovative teaching methodologies, such as the "Software Internship" model and PBL teaching approaches that are learner-centered and focus on bringing market reality to the learning environment, have been developed and implemented with a view to meeting this demand. However, the effectiveness of these methods cannot always be satisfactorily proved. Prompted by this, this paper proposes a model for assessing students based on real market practices while preserving the authenticity of the learning environment. To evaluate this model, a case study on skills training for software specialists for the Telecom market is discussed, and presents important results that show the applicability of the proposed model for teaching Software Engineering.
@InProceedings{ICSE13p1054,
author = {Simone C. dos Santos and Felipe S. F. Soares},
title = {Authentic Assessment in Software Engineering Education Based on PBL Principles: A Case Study in the Telecom Market},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1054--1061},
doi = {},
year = {2013},
}
Studios in Software Engineering Education: Towards an Evaluable Model
Christopher N. Bull, Jon Whittle, and Leon Cruickshank
(Lancaster University, UK)
Studio-based teaching is a method commonly used in arts and design that emphasizes a physical "home" for students, problem-based and peer-based learning, and mentoring by academic staff rather than formal lectures. There have been some attempts to transfer studio-based teaching to software engineering education. In many ways, this is natural as software engineering has significant practical elements. However, attempts at software studios have usually ignored experiences and theory from arts and design studio teaching. There is therefore a lack of understanding of what "studio" really means, how well the concepts transfer to software engineering, and how effective studios are in practice. Without a clear definition of "studio", software studios cannot be properly evaluated for their impact on student learning nor can best and worst practices be shared between those who run studios. In this paper, we address this problem head-on by conducting a qualitative analysis of what "studio" really means in both arts and design. We carried out 15 interviews with a range of people with studio experiences and present an analysis and model for evaluation here. Our results suggest that there are many intertwined aspects that define studio education, but it is primarily the people and the culture that make a studio. Digital technology on the other hand can have an adverse effect on studios, unless properly recognised.
@InProceedings{ICSE13p1062,
author = {Christopher N. Bull and Jon Whittle and Leon Cruickshank},
title = {Studios in Software Engineering Education: Towards an Evaluable Model},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1062--1071},
doi = {},
year = {2013},
}
Enabling a Classroom Design Studio with a Collaborative Sketch Design Tool
Dastyni Loksa, Nicolas Mangano, Thomas D. LaToza, and
André van der Hoek
(UC Irvine, USA)
The use of a studio approacha hands-on teaching method that emphasizes in-class discussion and activitiesis becoming an increasingly accepted method of teaching within software engineering. In such studios, emphasis is placed not only on the artifacts to be produced, but also on the process used to arrive at those artifacts. In this paper, we introduce Calico, a sketch-based collaborative software design tool, and discuss how it supports the delivery of a studio approach to software design education. We particularly describe our experiences with Calico in Software Design I, a course aimed at introducing students to the early, creative phases of software design. Our results show that Calico enabled students to work effectively in teams on their design problems, quickly developing, refining, and evaluating their designs.
@InProceedings{ICSE13p1072,
author = {Dastyni Loksa and Nicolas Mangano and Thomas D. LaToza and André van der Hoek},
title = {Enabling a Classroom Design Studio with a Collaborative Sketch Design Tool},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1072--1081},
doi = {},
year = {2013},
}
A Framework to Evaluate Software Engineering Student Contests: Evaluation and Integration with Academic Programs
Amir Zeid
(American University of Kuwait, Kuwait)
There are hundreds of general contests targeting undergraduate and graduate students. The prizes vary from cash, trip, fame, conference participation and others. Contests could be class competitions, school, national, regional or global. In this paper, we compare between existing student contests that can be integrated with software engineering courses. We classify the contests and propose a framework to choose which one to suit curriculum. We also include best practices and samples of our practices in integrating software engineering course with class, regional, national and global contests.
@InProceedings{ICSE13p1082,
author = {Amir Zeid},
title = {A Framework to Evaluate Software Engineering Student Contests: Evaluation and Integration with Academic Programs},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1082--1088},
doi = {},
year = {2013},
}
Teaching Introductory Software Engineering
Wed, May 22, 16:00 - 18:00, Marina Room (Chair: Laurie Williams)
An Evaluation of Interactive Test-Driven Labs with WebIDE in CS0
David S. Janzen, John Clements, and Michael Hilton
(Cal Poly, USA)
WebIDE is a framework that enables instructors to develop and deliver online lab content with interactive feedback. The ability to create lock-step labs enables the instructor to guide students through learning experiences, demonstrating mastery as they proceed. Feedback is provided through automated evaluators that vary from simple regular expression evaluation to syntactic parsers to applications that compile and run programs and unit tests. This paper describes WebIDE and its use in a CS0 course that taught introductory Java and Android programming using a test-driven learning approach. We report results from a controlled experiment that compared the use of dynamic WebIDE labs with more traditional static programming labs. Despite weaker performance on pre-study assessments, students who used WebIDE performed two to twelve percent better on all assessments than the students who used traditional labs. In addition, WebIDE students were consistently more positive about their experience in CS0.
@InProceedings{ICSE13p1089,
author = {David S. Janzen and John Clements and Michael Hilton},
title = {An Evaluation of Interactive Test-Driven Labs with WebIDE in CS0},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1089--1097},
doi = {},
year = {2013},
}
POPT: A Problem-Oriented Programming and Testing Approach for Novice Students
Vicente Lustosa Neto,
Roberta Coelho, Larissa Leite, Dalton S. Guerrero, and Andrea P. Mendonça
(UFRN, Brazil; UFCG, Brazil; IFAM, Brazil)
There is a growing interest of the Computer Science education community for including testing concepts on introductory programming courses. Aiming at contributing to this issue, we introduce POPT, a Problem-Oriented Programming and Testing approach for Introductory Programming Courses. POPT main goal is to improve the traditional method of teaching introductory programming that concentrates mainly on implementation and neglects testing. According to POPT, students skills must be developed by dealing with ill-defined problems, from which students are stimulated to develop test cases in a table-like manner in order to enlighten the problems requirements and also to improve the quality of generated code. This paper presents POPT and a case study performed in an Introductory Programming course of a Computer Science program at the Federal University of Rio Grande do Norte, Brazil. The study results have shown that, when compared to a Blind Testing approach, POPT stimulates the implementation of programs of better external quality - the first program version submitted by POPT students passed in twice the number of test cases (professor-defined ones) when compared to non-POPT students. Moreover, POPT students submitted fewer program versions and spent more time to submit the first version to the automatic evaluation system, which lead us to think that POPT students are stimulated to think better about the solution they are implementing.
@InProceedings{ICSE13p1098,
author = {Vicente Lustosa Neto and Roberta Coelho and Larissa Leite and Dalton S. Guerrero and Andrea P. Mendonça},
title = {POPT: A Problem-Oriented Programming and Testing Approach for Novice Students},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1098--1107},
doi = {},
year = {2013},
}
Teaching Developer Skills in the First Software Engineering Course
Václav Rajlich
(Wayne State University, USA)
Both employers and graduate schools expect computer science graduates to be able to work as developers on software projects. Software engineering courses present the opportunity in the curriculum to learn the relevant skills. This paper presents our experience from Wayne State University and reviews challenges and constraints that we faced while trying to teach these skills. In our first software engineering course, we teach the iterative software development that includes practices of software change, summarized in the phased model of software change. The required resources for our software engineering course are comparable to the other computer science courses. The students - while working in teams - are graded based on their individual contribution to the team effort rather than on the work of the other team members, which improves the fairness of the grading and considerably lessens the stress for the best students in the course. Our students have expressed a high level of satisfaction, and in a survey, they indicated that the skills that they learned in the course are highly applicable to their careers.
@InProceedings{ICSE13p1108,
author = {Václav Rajlich},
title = {Teaching Developer Skills in the First Software Engineering Course},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1108--1115},
doi = {},
year = {2013},
}
Teaching and Learning Programming and Software Engineering via Interactive Gaming
Nikolai Tillmann, Jonathan de Halleux
, Tao Xie,
Sumit Gulwani , and Judith Bishop
(Microsoft Research, USA; North Carolina State University, USA)
Massive Open Online Courses (MOOCs) have recently gained high popularity among various universities and even in global societies. A critical factor for their success in teaching and learning effectiveness is assignment grading. Traditional ways of assignment grading are not scalable and do not give timely or interactive feedback to students. To address these issues, we present an interactive-gaming-based teaching and learning platform called Pex4Fun. Pex4Fun is a browser-based teaching and learning environment targeting teachers and students for introductory to advanced programming or software engineering courses. At the core of the platform is an automated grading engine based on symbolic execution. In Pex4Fun, teachers can create virtual classrooms, customize existing courses, and publish new learning material including learning games. Pex4Fun was released to the public in June 2010 and since then the number of attempts made by users to solve games has reached over one million. Our work on Pex4Fun illustrates that a sophisticated software engineering technique -- automated test generation -- can be successfully used to underpin automatic grading in an online programming system that can scale to hundreds of thousands of users.
@InProceedings{ICSE13p1116,
author = {Nikolai Tillmann and Jonathan de Halleux and Tao Xie and Sumit Gulwani and Judith Bishop},
title = {Teaching and Learning Programming and Software Engineering via Interactive Gaming},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1116--1125},
doi = {},
year = {2013},
}
Panel: Town Hall Discussion of SE 2004 Revisions
Thu, May 23, 13:30 - 15:30, Marina Room (Chair: Debra Richardson)
Town Hall Discussion of SE 2004 Revisions (Panel)
Mark Ardis, David Budgen, Gregory W. Hislop,
Jeff Offutt, Mark Sebern, and Willem Visser
(Stevens Institute of Technology, USA; Durham University, UK; Drexel University, USA; George Mason University, USA; Milwaukee School of Engineering, USA; Stellenbosch University, South Africa)
This panel will engage participants in a discussion of recent changes in software engineering practice that should be reflected in curriculum guidelines for undergraduate software engineering programs. Current progress in revising the guidelines will be presented, including suggestions to update coverage of agile methods, security and service-oriented computing.
@InProceedings{ICSE13p1126,
author = {Mark Ardis and David Budgen and Gregory W. Hislop and Jeff Offutt and Mark Sebern and Willem Visser},
title = {Town Hall Discussion of SE 2004 Revisions (Panel)},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1126--1126},
doi = {},
year = {2013},
}
Advanced Software Engineering Education
Thu, May 23, 16:00 - 17:45, Marina Room (Chair: Rafael Prikladnicki)
Teaching Students Global Software Engineering Skills using Distributed Scrum
Maria Paasivaara, Casper Lassenius, Daniela Damian
, Petteri Räty, and Adrian Schröter
(Aalto University, Finland; University of Victoria, Canada)
In this paper we describe distributed Scrum augmented with best practices in global software engineering (GSE) as an important paradigm for teaching critical competencies in GSE. We report on a globally distributed project course between the University of Victoria, Canada and Aalto University, Finland. The project-driven course involved 16 students in Canada and 9 students in Finland, divided into three cross-site Scrum teams working on a single large project. To assess learning of GSE competencies we employed a mixed-method approach including 13 post-course interviews, pre-, post-course and iteration questionnaires, observations, recordings of Daily Scrums as well as collection of project asynchronous communication data. Our analysis indicates that the Scrum method, along with supporting collaboration practices and tools, supports the learning of important GSE competencies, such as distributed communication and teamwork, building and maintaining trust, using appropriate collaboration tools, and inter-cultural collaboration.
@InProceedings{ICSE13p1127,
author = {Maria Paasivaara and Casper Lassenius and Daniela Damian and Petteri Räty and Adrian Schröter},
title = {Teaching Students Global Software Engineering Skills using Distributed Scrum},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1127--1136},
doi = {},
year = {2013},
}
Teaching Software Process Modeling
Marco Kuhrmann, Daniel Méndez Fernández, and Jürgen Münch
(TU Munich, Germany; University of Helsinki, Finland)
Most university curricula consider software pro- cesses to be on the fringes of software engineering (SE). Students are told there exists a plethora of software processes ranging from RUP over V-shaped processes to agile methods. Furthermore, the usual students programming tasks are of a size that either one student or a small group of students can manage the work. Comprehensive processes being essential for large companies in terms of reflecting the organization struc- ture, coordinating teams, or interfaces to business processes such as contracting or sales, are complex and hard to teach in a lecture, and, therefore, often out of scope. We experienced tutorials on using Java or C#, or on developing applications for the iPhone to gather more attention by students, simply speaking, as these are more fun for them. So, why should students spend their time in software processes? From our experiences and the discussions with a variety of industrial partners, we learned that students often face trouble when taking their first real jobs, even if the company is organized in a lean or agile shape. Therefore, we propose to include software processes more explicitly into the SE curricula. We designed and implemented a course at Masters level in which students learn why software processes are necessary, and how they can be analyzed, designed, implemented, and continuously improved. In this paper, we present our courses structure, its goals, and corresponding teaching methods. We evaluate the course and further discuss our experiences so that lecturers and researchers can directly use our lessons learned in their own curricula.
@InProceedings{ICSE13p1137,
author = {Marco Kuhrmann and Daniel Méndez Fernández and Jürgen Münch},
title = {Teaching Software Process Modeling},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1137--1146},
doi = {},
year = {2013},
}
Industry Involvement in ICT Curriculum: A Comparative Survey
Chris J. Pilgrim
(Swinburne University of Technology, Australia)
Stakeholder consultation during course accreditation is now a requirement of new Australian government regulations as well as the Australian ICT professional society accreditation. Despite these requirements there remains some differences between universities and industry regarding the purpose, nature and extent of industry involvement in the curriculum. Surveys of industry and university leaders in ICT were undertaken to provide a representative set of views on these issues. The results provided insights into the perceptions of universities and industry regarding industry involvement into the curriculum. The results also confirmed previous research that identified a tension between industrys desire for relevant skills and the role of universities in providing a broader education for lifelong learning
@InProceedings{ICSE13p1147,
author = {Chris J. Pilgrim},
title = {Industry Involvement in ICT Curriculum: A Comparative Survey},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1147--1152},
doi = {},
year = {2013},
}
Vulnerability of the Day: Concrete Demonstrations for Software Engineering Undergraduates
Andrew Meneely and Samuel Lucidi
(Rochester Institute of Technology, USA)
Software security is a tough reality that affects the many facets of our modern, digital world. The pressure to produce secure software is felt particularly strongly by software engineers. Todays software engineering students will need to deal with software security in their profession. However, these students will also not be security experts, rather, they need to balance security concerns with the myriad of other draws of their attention, such as reliability, performance, and delivering the product on-time and on-budget. At the Department of Software Engineering at the Rochester Institute of Technology, we developed a course called Engineering Secure Software, designed for applying security principles to each stage of the software development lifecycle. As a part of this course, we developed a component called Vulnerability of the Day, which is a set of selected example software vulnerabilities. We selected these vulnerabilities to be simple, demonstrable, and relevant so that the vulnerability could be demonstrated in the first 10 minutes of each class session. For each vulnerability demonstration, we provide historical examples, realistic scenarios, and mitigations. With student reaction being overwhelmingly positive, we have created an open source project for our Vulnerabilities of the Day, and have defined guiding principles for developing and contributing effective examples.
@InProceedings{ICSE13p1153,
author = {Andrew Meneely and Samuel Lucidi},
title = {Vulnerability of the Day: Concrete Demonstrations for Software Engineering Undergraduates},
booktitle = {Proc.\ ICSE},
publisher = {IEEE},
pages = {1153--1156},
doi = {},
year = {2013},
}
proc time: 0.34