Teaching Software Engineering As Programming over Time

Markus Hofbauer, Christoph Bachhuber, Christopher Kuhn, Eckehard Steinbach

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

Programming and software engineering differ by the aspect of time and scale. Going beyond just implementing software that fulfills requirements, software engineering also means writing code that can be maintained by multiple contributors over months, years or even decades. Due to the limited time of university projects, students mainly learn to focus on writing software that works once. In in-dustry, software lifetime is longer and the aspect of time becomes highly relevant. Professional software must be readable and modular to be maintainable. In this paper, we present an experience report on a novel university course in software engineering. The course teaches the concepts of unit testing, refactoring, and automation tools to novices with basic programming experience. We present those concepts for the example of C++,but they are applicable to any programming language. Our goal is to teach students the key con-cepts of software engineering early on, giving them the opportunity to benefit from these concepts in their further projects. We present these concepts in five plenary lectures with live coding sessions, and then student teams apply the concepts in five practical homework as-signments. All assignments contribute to a single project maintained and improved by the student groups for the duration of the course. Additionally, we present a teaching tool framework that can be used to automate tasks for student project management and examinations. Finally, we discuss the lessons learned from conducting this course for the first time. We believe this course is a valuable step towards including essential software engineering skills in the education of science and engineering students.

Original languageEnglish
Title of host publicationProceedings - 4th International Workshop on Software Engineering Education for the Next Generation, SEENG 2022
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages51-58
Number of pages8
ISBN (Electronic)9781450393362
DOIs
StatePublished - 2022
Externally publishedYes
Event4th IEEE/ACM International Workshop on Software Engineering Education for the Next Generation, SEENG 2022 - Pittsburgh, United States
Duration: 17 May 2022 → …

Publication series

NameProceedings - 4th International Workshop on Software Engineering Education for the Next Generation, SEENG 2022

Conference

Conference4th IEEE/ACM International Workshop on Software Engineering Education for the Next Generation, SEENG 2022
Country/TerritoryUnited States
CityPittsburgh
Period17/05/22 → …

Keywords

  • Automation Tools
  • Software Engineering Education and Training
  • Test Driven Development
  • Unit Testing

Fingerprint

Dive into the research topics of 'Teaching Software Engineering As Programming over Time'. Together they form a unique fingerprint.

Cite this