Skip to Main Content
Software engineering is defined as a discipline concerned with all aspects of software production from inception to the maintenance of a system. It has often been dubbed as the "cradle-to-grave" approach to producing reliable, cost-efficient software delivered in a timely manner that satisfies the customer's needs. It interleaves the concepts of individual work with team work and the soft skills of technical writing with technical proficiency. Therefore, as computer science educators, we are faced with the challenge of creating a learning experience for our students that effectively introduces the technical aspect of software engineering principles, as well as those essential non-technical skills. The goal of this paper is to describe a work in progress that focuses on creating an enhanced learning experience where computational thinking, collaborative learning, and service-learning are infused into an undergraduate software engineering course. The paper introduces these concepts and how each is used to train students.