This course aims to introduce students to software engineering concepts. Software life cycles and processes: requirements analysis and specifications; design techniques, functional design, object oriented design; implementation methodology, software testing and maintenance; application of CASE tools; documentation. Software Engineering laboratory: a series of exercises to practise the principles of software engineering. (Not for students who have taken CSCI3100 or IERG3080 or ENGG3820. Prerequisite: CSCI1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ENGG1110 or ESTR1002 or 1100 or 1102 or (MATH2210 and 2220) or PHYS2351 or its equivalent.)