The Quest for a Practical Sophomore-Level Software Engineering Course

AbstractThis paper describes our efforts starting since 2014 when we began developing a practical introductory sophomore-level software engineering course. The aim is to guide students into the fundamental theory and practice of building reliable software, with an emphasis on agile and object-oriented practices. Course topics revolve around three main themes: 1) managing complexity (how to model and scale software), 2) achieving quality (how to minimize defects) and 3) supporting usability (how to deliver user functionality). Students are exposed to theoretical and practical aspects of software production, such as software life-cycle models, strong-typing, testing, documentation, graphical user interfaces, UML, design patterns, version control systems and software deployment. The course is in constant evolution: near-future plans include adding build automation tools and DevOps concepts. We made the early decision to use reference materials available to our students at no cost; therefore, all reference materials are accessed online through resources afforded by our library.

Return to previous page