Object Oriented programming

Description

This module provides a solid foundation in Object-Oriented Concepts in the Java programming language. The primary focus of this module is to, within the agile process, provide theoretical and practical approaches to producing clean Java code, more frequently and reliably, to an advanced level. An emphasis is placed on Test Driven Development and Software Automation.

Java is the foundation for virtually every type of networked application and is the global standard for developing and delivering enterprise software, web-based content, games and mobile applications. Java enjoys a large and mature ecosystem with strong tools support. Java delivers application portability and robust performance across many computing environments.

Learning Outcomes

  1. Differentiate and apply the various primitive types, mathematical, logical, increment/decrement operators and the
    differing selection/iteration constructs.

  2. Interpret and solve problems by employing OOP encapsulation and inheritance techniques.

  3. Implement good programming practices when writing code.

  4. Differentiate and apply singleton, inner classes, immutable classes and enumerated types.

  5. Distinguish between checked/unchecked exceptions.

  6. Fix/evolve the software based on the flaws/errors in program code by testing and refactoring.

  7. Design and write (automated) software tests, run and evaluate test outcomes using tools such as JUnit and Maven.

  8. Maintain and professionally evolve software using version control software such as Git and GitHub.

Credits
10
% Coursework 70%
% Final Exam 30%