Software engineering has matured over the past thirty years to become recognized as a true engineering practice. The term software engineer is generally used in place of the word programmer in fields where highly-skilled computer scientists are called upon to solve with challenging problems. This course prepares students to become software engineers rather than programmers. It teaches them how to apply a disciplined and robust approach to software development. Students who are interested in careers in software engineering, project management, and IT management or application development would benefit from this course. Face-to-face and online lecturers, in-class and on-line discussions and hands-on labs will be used in the delivery of the course.