Module Definition

This module introduces students to more advanced programming constructs and techniques and build on their knowledge from the first two years. This will include a review of Java, Threads and synchronisation, File I/O sockets, client/server, JSON and web services.

Aims

The aim of this module is to introduce the students to more advanced programming constructs and techniques.

Learning Outcomes

After completing this module, students will be expected to be able to:

1. Demonstrate an understanding of the programming constructs and techniques introduced to this module; and
2. Use these constructs and techniques in the design and implementation of programs
3. Critically reflect on program designs.

Outline Syllabus

. Java Review
. Threads and synchronisation
. File I/O, sockets and client/server
. JSON and web services
. Collections
. Streams
. Recursion and program optimisation
. Design patterns
. Introduction to functional programming in Haskell
. Miscellaneous