Theory: Systematic principles for construction of correct and robust programs, life cycle models, PSS standard, software requirements, user requirements, architectural design specification, Capability Maturity Model (CMM), extreme programming, organization of work in group, group dynamics, experience from industry, testing, design patterns. Documentation.
Presentation of project ideas, assignment of projects. Constructing documents concerning the assigned project: documents on project planning, user requirements, software requirements, program architecture.
Program development project: Realization of a program development project. Design, including prototyping and implementation of an application is done in groups of 3-6 students. The projects are “real life projects” from outside the course. A project description, an user manual, and a system description are written and the project is presented orally including a live demonstration.