Updated: 1 hour 35 min ago
Claudia Ott, Anthony Robins, Kerry Shephard
Learning the first programming language is challenging for many students. High failure rates and bimodally distributed grades lead to a pedagogical interest in supporting students in first-year programming courses (CS1). In higher education, the important role of feedback for guiding the learning process and improving the learning outcome is widely acknowledged. This article introduces contemporary models of effective feedback practice as found in the higher education literature and offers an interpretation of those in the CS1 context.
Robert McCartney, Jonas Boustedt, Anna Eckerdal, Kate Sanders, Lynda Thomas, Carol Zander
In this article, we address the question of why computing students choose to learn computing topics on their own. A better understanding of why some students choose to learn on their own may help us to motivate other students to develop this important skill. In addition, it may help in curriculum design; if we need to leave some topics out of our expanding curriculum, a good choice might be those topics that students readily learn on their own. Based on a thematic analysis of 17 semistructured interviews, we found that computing students’ motivations for self-directed learning fall into four general themes: projects, social and peer interactions, joy of learning, and fear.
Wanda M. Kunkle, Robert B. Allen
Learning to program, especially in the object-oriented paradigm, is a difficult undertaking for many students. As a result, computing educators have tried a variety of instructional methods to assist beginning programmers. These include developing approaches geared specifically toward novices and experimenting with different introductory programming languages. However, determining the effectiveness of these interventions poses a problem. The research presented here developed an instrument to assess student learning of fundamental and object-oriented programming concepts, then used that instrument to investigate the impact of different teaching approaches and languages on university students’ ability to learn those concepts. Extensive data analysis showed that the instrument performed well overall.
Jürgen Börstler, Thomas B. Hilburn
Team projects are a way to expose students to conflicting project objectives, and “[t]here should be a strong real-world element … to ensure that the experience is realistic” [ACM/IEEE-CS 2015b]. Team projects provide students an opportunity to put their education into practice and prepare them for their professional careers. The aim of this special issue is to collect and share evidence about the state-of-practice of team projects in computing education and to help educators in designing and running team projects. From a record number of 69 submitted abstracts, 19 were invited to submit a full paper. Finally, nine papers were accepted for publication in this and a subsequent issue.
Heidi J. C. Ellis, Gregory W. Hislop, Stoney Jackson, Lori Postner
Providing students with the professional, communication, and technical skills necessary to contribute to an ongoing software project is critical, yet often difficult in higher education. Involving student teams in real-world projects developed by professional software engineers for actual users is invaluable. Free and Open Source Software (FOSS) has emerged as an important approach to creating, managing, and distributing software products. Involvement in a FOSS project provides students with experience developing within a professional environment, with a professional community, and has the additional benefit that all communication and artifacts are publicly accessible. Humanitarian Free and Open Source Software (HFOSS) projects benefit the human condition in some manner.
Kurt Schneider, Olga Liskin, Hilko Paulsen, Simone Kauffeld
This article investigates relationships between media, mood, and communication in teams, and studies how they are related to project success. Team projects are an essential part of the software engineering curriculum. Student teams carry out full software projects, including requirements elicitation, project management, implementation, and testing. This requires various technical skills, but non-technical and psychological aspects are of utmost importance as well, just as in professional software teams. Modern software is often developed by distributed teams. In many cases, team members feel isolated and distant from each other. Indirect communication and inappropriate media create a similar feeling of distance as geographical location.
Bernd Bruegge, Stephan Krusche, Lukas Alperowitz
There is an acknowledged need for teaching realistic software development in project courses. The design space for such courses is wide, ranging from single-semester to two-semester courses, from single-client to multicustomer courses, from local to globally distributed courses, and from toy projects to projects with real clients. The challenge for a nontrivial project course is how to make the project complex enough to enrich students’ software engineering experience, yet realistic enough to have a teaching environment that does not unduly burden students or the instructor. We describe a methodology for project courses that is realizable for instructors, improves students’ skills, and leads to viable results for industry partners.
Maria Vasilevskaya, David Broman, Kristian Sandahl
In a modern computing curriculum, large-project courses are essential to give students hands-on experience of working in a realistic software engineering project. Assessing such projects is, however, extremely challenging. There are various aspects and trade-offs of assessments that can affect course quality. Individual assessments may fairly grade individuals, but may lose focus of the project as a group activity. Extensive teacher involvement is necessary for objective assessment, but may affect the way that students work. Continuous feedback to students can enhance learning, but may be hard to combine with fair assessment. Most previous work focuses on some specific assessment aspect; in this article, we present an assessment model that consists of a collection of assessment activities, each covering different aspects.
Robert Pastel, Marika Seigel, Wei Zhang, Alex Mayer
Experience working in multidisciplinary teams is important both to prepare Computer Science (CS) students for industry and to improve their communication with teammates from disciplines other than their own. This article describes the evolution and results of collaborations among three courses: an undergraduate CS course about user interface design and implementation, an undergraduate Scientific and Technical Communication (STC) course about usability and instructions writing, and a graduate CS/Human Factors course about user-interface evaluation and usability testing. Students from all three courses work with scientists to complete the scientist-sponsored citizen science Android applications (apps). Students from the undergraduate CS and STC courses form multidisciplinary teams to design and implement apps, while the graduate students consult with the teams by evaluating and user-testing the apps.