The course presents basic software engineering concepts and discusses how they are applied within modern software development. It explains current problems within the traditional software engineering and presents how they have been handled with modern methods. While going through the development cycle, the course will in parallel present different modern methods such as iterative development, pair programming, refactoring, test first programming, release planning, retrospective, and show how they are combined. Finally, the course presents future methodological trends.
The course is integrated with two other project courses that together cover theory and practice of modern development methods. In this course students will get acquainted with the theory while in the project courses the student will practice the modern methods.