Lab Package Development & Evaluation for the Course “Software Engineering”

Bolot Kasybekov
In this thesis, a lab package will be delivered for undergraduate students. The aim of the
package is to teach students how to analyze and develop software following Test-Driven
Development (TDD) process. TDD is one of the most used methodologies nowadays. It can
be easily used in the educational context to develop programming skills. The lab package is
aimed at bachelors’ students who don’t have a solid experience in programming. The lab
package contains a set of necessary documents and has a certain structure. The documents
are usually guidelines, which support the development of particular skills such as
requirements’ gathering, testing and refactoring. Those skills should be learned in a certain
workflow so that students will follow TDD methodology rigorously. Hence, students need
to understand all details of TDD. In my thesis, the lab package is divided into two parts. The
first part develops analytical skills and the second part develops coding skills. In the first
part, students are introduced to the theoretical background of TDD. Then, they see how TDD
is used in practice by developing a special small app. During the first part, students learn
how to generate requirements, develop domain model, develop examples based on the
requirements. Examples are particular test cases for each requirement. There is a prepared “
code skeleton” of the game and all examples that the students can build upon. In the second
part, students do mainly coding. The main feature is that students follow TDD circle. I want
students to understand all specifics of TDD. In the beginning, students will learn how to
generate and develop test cases. All test cases are based on examples. Then, they start coding
and move on from one test case to another. While coding, they also learn refactoring
techniques. The lab package was evaluated by university professors. The results are provided
in the form of answers to questionnaire. The main audience are university professors who
have an extensive experience in teaching OOP. The results are quite interesting. On the one
hand, the structure of the lab package was understandable and clear, the grading scheme was
transparent and simple. The professors also agreed that the lab package develops a wide
range of skills. Those skills are necessary for TDD. There is some research to be conducted
to elaborate how TDD can be applied for educational purposes.
Graduation Thesis language
Graduation Thesis type
Master - Software Engineering
Dietmar Pfahl
Defence year
PDF Extras