The discipline of Software Engineering focuses on producing graduates who are ready to develop and maintain quality software systems of scale for organisations and businesses within the constraints of time, budget and other requirements. In addition to its core computer science technical foundation, Software Engineering also involves human processes that are harder to formalise than the logical abstraction of computer science. The discipline therefore borrows and adapts from traditional engineering practice as well as from the field of project management. A focus of a Software Engineering specific curriculum must be able to develop students into software engineers through course work, practicals and applied project experience.