Skip to main content

Software and Programming III

Overview

Module description

In this module you will have the opportunity to further develop the scope of your problem-solving skills by continuing your study of advanced programming techniques.

You should study a (free) short course in the term prior to taking the prerequisite module. The short course completes the coverage of Java started in Software and Programming I and II and is available as a separate module on Moodle. On enrolling for the Software and Programming III module you will receive access to the short course materials.

Indicative syllabus

  • Recursive methods
  • Further development of the ideas of inheritance, polymorphism and abstraction
  • Generic classes and methods, including wildcards
  • Functional interfaces and lambdas
  • The Collections framework
  • The reflection API
  • Modularity, versioning, packaging and managing the build process
  • Concurrent programming
  • Graphical/Web user interfaces
  • REST APIs
  • Linked and self-referential data structures: linked lists, stacks, queues and trees

Learning objectives

By the end of this module, you will have the necessary skills for developing software using the object-oriented and functional programming paradigms through appropriate programming languages (e.g. Java, Kotlin and Rust).