Course Summary
This course provides students with an advanced understanding of Object-Oriented software development with an emphasis on architecture and design and how this relates to programming and implementation. This course builds upon existing programming knowledge using Java as the implementation platform and assumes students already have a basic understanding of Java programming and basic OO concepts. Students will explore advanced OO concepts such as inheritance and polymorphism; abstract classes and interfaces; the Java Collection Framework (JCF), and generics/parameterized types. These topics will emphasise structural software quality evidenced through high cohesion and low coupling. This course will also cover Streams/Serialisation/Files and provide an introduction to parallel programming using threads. Students will also explore common OO design patterns such as MVC, Singleton and Facade and their application in User Interface Programming. This course serves as a pre-requisite for more specialized Java courses such as eCommerce, Web Services, Enterprise Architectures, and Mobile Application Development.