Algorithms, data structures and computability

The aim of this module is to help you become a computational thinker. Formulating a problem for efficient solution by computers is an extremely important skill. In this module, you will hone this skill: exploring a range of computing concepts; applying these to a variety of problems; and, in the process, becoming familiar with the popular Python programming language. This is the module for you if you are specialising in computing or if – whatever your field – you need to understand both the power and the limitations of computing. Though the focus is on the underlying ideas, you will also need to work with some mathematical concepts and notation.

Read More

Web technologies

The World Wide Web continues to provide a foundation for the development of a broad range of increasingly influential and strategic technologies, supporting a large variety of applications and services, both in the private and public sectors. There is a growing need for management and decision makers to gain a clearer understanding of the application development process, from planning through to deployment and maintenance. This module will give you an insight into architectures, protocols, standards, languages, tools and techniques; an understanding of approaches to more dynamic and mobile content; and demonstrate how you can analyse requirements, plan, design, implement and test a range of web applications.
Read More

Software development with Java

How do teams of professional software developers work together when creating complex software systems? How can the development process be partitioned to enable different people to work on different tasks, and what techniques can assist the individuals involved?

In this module you will be introduced to object-oriented approaches to software development that are widely applicable in the creation of software that meets the needs of its users: from small, simple systems to large, complex ones. These approaches take you from an analysis of what is required of a system through its specification, design and implementation. They include concepts such as use case design; the construction of structural and dynamic models; and the specification of classes. You will also be introduced to the role of user interface design within software development, and to some key aspects of testing software.Read More

Object-oriented Java programming

In the Object-oriented view of software, programs are considered to be collections of objects that interact by sending messages to one another and reacting to the answers to those messages. These ideas are at the forefront of modern software development.

The module takes an ‘objects first’ approach to teaching; you start seeing and interacting with graphical objects right from the very start. This is achieved by working within innovative and engaging micro worlds that allow you to learn basic object-oriented principles, before you attempt Java syntax or source code.Read More