Teaching developer skills in the first software engineering course

Author(s): Václav Rajlich
Venue: Proceedings of the 2013 International Conference on Software
Date: 2013


The paper presents the different software engineering skills that are taught in Wayne State University. It focuses on its first software engineering course, 1SEC, because the author argues that the first course is “the first and sometimes the only opportunity in the curriculum to learn the relevant skills”. The concepts that are taught in the class includes developer role, project technologies, realistic code, evolutionary-iterative-agile development, phased model of software change, open source, concept location, impact analysis, refactoring, and actualization.

The description of each different aspect in the course are the following:
• Portfolio of Project Technologies: Portfolio of technologies, according to the paper, consists of programming language, IDE, GUI, database, testing tools, modeling, intra-team communication, and version control. Prior to this course, students are expected to have basic knowledge on some of the technologies in the portfolio. In order to focus more on the course’s object, the new technologies that are necessary for the project should be kept at minimal
• Code Development: Practices and roles that are taught in the course should be practical in the industry, and the knowledge should be on the level that is acceptable by most of the students
• Survey of Software Engineering: The survey of software engineering disciplines is conducted in the class, but it should not occupies too much time in the course
• 1SEC Project: In the course, students have the opportunity to apply their software engineering knowledge on a project. The projects are selected based on the technologies, level of difficulty and students’ level of familiarity. The main goal of the project is to satisfy customers’ need, instead of focusing on the software practices. In the end of the course, students are graded based on individual performance