Skip to main content

Programming in Java


  • Credit value: 30 credits at Level 7
  • Convenor and tutor: Dr Carsten Fuhs
  • Assessment: a programming project (70%) and one-hour examination (30%)

Module description

This module is a relatively fast-paced introduction to programming for postgraduate students who do not have a computer science background. We will present the basics of data structures, recursion, object-oriented design and code maintainability and discuss several advanced programming approaches, such as functional programming, and use of state-of-the-art applied software-engineering tools and techniques.

The primary objective is for you to develop key programming and problem-solving skills using a modern programming language: Java.

Indicative syllabus

  • Introduction to programming
  • Programming tools
  • Problem solving, program design and data structures
  • Object-based programming
  • Object-oriented programming
  • Exception handling
  • Advanced programming
  • File and stream-based input and output
  • Collections, dynamic data structures, classes containing dynamic data structures
  • Graphical/Web user interfaces
  • Networking
  • Concurrent programming

Learning objectives

By the end of this module, you will be able to demonstrate:

  • knowledge of fundamental imperative programming concepts such as variables and assignment, conditional statements, loops and methods
  • the ability to implement an application in Java, from a detailed software specification
  • knowledge of basic concepts and principles of object-orientation such as objects and classes, encapsulation, object state, inheritance, subclasses, interfaces, coupling, cohesion and modularity
  • awareness of basic principles of software design and development including appropriate naming of variables and classes, code layout, testing, debugging, code version control, automated build and continuous integration systems
  • understanding of functional programming constructs
  • the ability to write code that exploits the networking facilities of Java.