This unit introduces the foundations of software design and construction. It covers the topics of modelling software (UML, CRC, use cases), software design principles, object-oriented programming theory (inheritance, polymorphism, dynamic subtyping and generics), and simple design patterns. The unit aims to foster a strong technical understanding of the underlying software design and construction theory (delivered in the lecture) but also has a strong emphasis of the practice, where students apply the theory on practical examples.
Refer to the assessment table in the unit outline.
INFO1113 OR INFO1103 OR INFO1105 OR INFO1905Prohibitions
INFO3220 OR COMP9201