Assignments
Specification for the course assignments.
1: Paradigms & Languages
Introduction to the module, assessment structure & timetable. Overview of programming paradigms, programming languages and the nature on focus of the module.
2: The Java Programming Language
Rapid introduction to the fundamentals of the Java Programming Language, including language basics, fundamental types, control statements & classes
3: Inheritance & Collections
Inheritance is a core concept implement all Object Oriented languages. We review how it is implemented in Java and discuss its variants. These concepts are deployed in the Collections framework - and essential library for your toolkit.
4: Serialization & Test Driven Development I
Conclude our review of the Java essentials with an examination of Serialization. Introduce Test Driven Development, JUnit and incorporate simple tests into our projects.
5: Test Driven Development II
Looks at Unit Tests in more detail with several extended examples. Review the Pacemaker tests we have composed to date. Acquire an overall sense of the contribution TDD can make to a project.
6: Exceptions & Maven
Maven is a tool for building and managing any Java-based project. We will explore where Maven fits into the DevOps landscape and examine capabilities by converting pacemaker-console into a Maven supported project.
7. TDDIII and Pacemaker Solution
We will delve deeper into TDD and investigate the anatomy of tests, how best to structure them and what's important to test (using Right BICEP). We will also look at the evolution of Java from JDK7 to JDK9. The solution to Assignment 1 is in lab format.
8: SRP and TDD IV
Continue our exploration of TDD principles. Commence a review of the SOLID principles, examining the Single Responsibility Principle in detail.
09. OCP and REST
The second SOLID principle is discussed here: Open Closed Principle (OCP). The Representational state transfer (REST) approach for providing interoperability between computer systems on the Internet will be introduced.
10. LSP, TDD & Rest Client
Solid - Liskof Substitution Principle + further exploration of TDD in the context of REST.
11. ISP, DSP and Kotlin
The last two SOLID principles are discussed here: Interface Segregation Principle (ISP) and the Dependency Inversion Principle (DIP). We will also continue with our exploration of Kotlin.
12. Test Doubles + Lab Review
Explore Test doubles - sometimes call mock objects - an important aspect of modern Test Driven Development practices. Review Labs 08-12