Software Engineering and Advanced Software Engineering courses, UTH

Description of the course

Students presenting their projects in the Advanced Software Engineering course, fall 2021.

The courses focus on software engineering principles, namely good practices on the design, implementation, and validation of software products. It addresses all aspects of software design, including requirements extraction and analysis, requirements definition, functional and non-functional requirements, software architectures, software design methodologies, project management including time management, modelling, reliability engineering, safety engineering, security engineering, and emerging agile design processes. During the course, students are challenged to work in teams towards the design and implementation of a full software services by following sound software engineering principles.

The courses are jointly offered in the undergraduate and graduate program of the Department of Electrical and Computer Engineering of the University of Thessaly. This means that both undergraduate and graduate students are present in the classroom at the same time.

As a result of the ICT-INOV, the course has been updated to include design thinking principles. Students are exposed to design thinking concepts and deploy design thinking for the implementation of their projects.

Description of the participants

The courses are elective in the Bachelor’s and Master’s in Computer Science programs of the Department of Electrical and Computer Engineering of the University of Thessaly. The program targets students that wish to continue their studies, possibly entering a doctoral track. The course is also open to undergraduate students under specific conditions. Typically, 4th or 5th year undergraduate students, close to the completion of their studies may attend the course along with graduate students. ICT-INOV was used in academic years 2021 – 2022 and 2022 – 2023.

In the 2021 – 2022 academic year, the courses were attended by 77 undergraduate and 8 graduate students from the Department of Electrical and Computer Engineering of the University of Thessaly.

In the 2022 – 2023 academic year, the courses were attended by a similar number of individuals.

Description of gamified design thinking activities

A learning activity based on design thinking was specifically designed for the course. The objective of the learning activity was to challenge students to design and implement a software service that addresses the needs of a specific group. For example, a learning game, a service for financial transactions, a community for reuse of unused items, a social network, software services for enriching the lives of individuals with disabilities, and more. The activity is directly in line with course objectives, which aims at encouraging teamwork in the context of software development practices.

Students worked in groups of up to 6 individuals. The activity was structured as follows:

Step 1: Problem discovery

Students were encouraged to research the problem by exploiting the internet. They were asked to post ideas related to technology and people, technology and places, and technology and feelings. Through this process, students broadened their perspective on technology as a means for enriching quality of life. The exercise helped students build insight on various topics, towards selecting a specific challenge to solve.

Step 2: Empathy

Students were encouraged to “put themselves in the shoes of the user”. They were encouraged to structure and conduct interviews with characteristic users and to document their findings into interview cards. Based on the collected information, students were asked to create a user persona, namely a description of a typical target user. In the deployed, students were asked to describe what the user thinks, feels, hears, sees, says, and does.

Step 3: Problem definition

Students were asked to define the problem they wished to work on through a sentence of the form “who, what, how”. This exercise encouraged students to define the challenge in focus in one line, identifying what they planned to create for addressing which needs and through what means.

Step 4: Ideation

Students were encouraged to publish as many ideas as possible towards synthesizing a solution to the problem of their choice. The objective at this stage of the process was to “go wide”, noting as many ideas as possible.

Step 5: Solution synthesis, prototyping, and evaluation

At this stage students were directed to document their design towards a solution as specifically as possibly, with the objective of facilitating software development. In addition, students implemented their solution in programming languages of their choice. They presented their results for the benefit of the entire class.

Following are screenshots of student projects in the ICT-INOV platform.