Programming in Java
Overview
- Credit value: 30 credits at Level 7
- Convenor: 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.