Programming in Java
Overview
- Credit value: 30 credits at Level 7
- Module convenor Carsten Fuhs
- Module tutors: Carsten Fuhs, Sergio Gutiérrez Santos
- Assessment: a coursework 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. The basics of data structures, recursion, object-oriented design and code maintainability will be presented. The module also discusses several advanced programming approaches, such as functional programming, and uses 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 module 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.