Introduction to Software Engineering course, NUCES

Description of the course

This course introduces students to the fundamental principles and methodologies of Software Engineering. It covers traditional and modern software development life cycle stages with practical examples and case studies. Topics include design, architecture, testing, and project management, and software process improvement models.

Description of the participants

The course is mandatory for 1st year undergraduate students enrolled in Software Engineering. In the spring 2023 semester, 250 students attended the course divided into 6 sections.

Description of the gamified design thinking activities

Students were introduced with design thinking principles through a workshop. Later during the course students were encouraged to use design thinking to identify the topic of their course project and propose solutions ideas. They combined design thinking with agile SCRUM practices to develop software solutions.

Students worked on a semester-long project, which was organized around design thinking principles and steps.

Step 1. Identify a research problem and develop a problem statement definition.

Students identified a research problem through hands-on collaborative activities.

Step 2. Ideate.

Students generated a rich pool of ideas towards solving the problem in focus. They engaged in ideation exercises such as identifying solutions that start from each letter of the alphabet.

Step 3. Solution synthesis.

Students were asked to synthesize a solution to their research problem and demonstrate it through any possible method. Students opted to present their solutions through prototypes.