To prepare software engineering graduates for professional careers, their education must provide them with “real-life” experience. There are many tasks beyond those of core software engineering and development for which students need training: project management, team building, software estimation and planning, progress tracking, and communication. Project-based learning offers ways to transfer learning of foundational and practical knowledge into “real projects for real clients”. The emphasis on projects in software engineering education follows naturally from the fact that projects are the main working style in the software engineering industry. Software engineering study programs maintain a share of more traditional courses in which the dominant learning activities are textbook reading, lectures and weekly exercises, so the education as such is not fully project-based.