This is the second of two courses that will present object-oriented methodologies and programming concepts using the Java programming language. Students will apply Agile tools and techniques, as well as the Unified Modeling Language (UML) within the software development process. The course builds on the material from ICT-4305 to create code based on models written using the UML while applying industry standard object-oriented design patterns. Students will learn critical skills in designing inheritance hierarchies, working with object persistence and serialization frameworks and multi-threaded code. Additionally, the course will cover critical topics in privacy and security, including recent legislation such as the GDPR. Prerequisite: ICT 4305.