All modules are subject to availability and this list may change at any time.
The course consists of 120 credits per year. Most modules are 20 credits, meaning you’ll study six modules each year. Some longer modules, such as a dissertation, are worth more (e.g. 40 credits). In these cases, you’ll study fewer modules - but the number of credits will always add up to 120.
A common first year across all of our courses covers the fundamental aspects of the subject. Assessment is a mix of exams and coursework, generally 50:50 in the first year and leaning towards coursework in later years. Example first-year coursework includes building a small game or business application in C#, undertaking a performance analysis of different software algorithms and giving a presentation on different aspects of computer hardware.
Your programming skills will be developed using C# and the paradigm of Object Oriented Programming – there are pathways for those with no or little programming experience, and for those who are already accomplished programmers.
Due to the common first year, you can easily switch your degree course at any point until the start of Year 2, when more specialist material begins to be introduced.
Core and compulsory modules are fundamental to achieving the learning outcomes for your course and must be studied.
-
Computer Systems
Gain an overview of what makes the computer perform tasks the programmers ask it to perform. You'll look at the basic hardware of the computer, the architecture of a computer system and operating system, as well as the functionalities required to handle and manage memory and processor times in the presence of multiple users and services.
-
Quantitative Methods for Computing
Learn and understand some of the key mathematical concepts that underpin and provide the theoretical basis of modern computing.
-
Software Engineering and Human Computer Interaction
This module takes you beyond programming to software engineering, the discipline concerned with all aspects of complex software production. You'll explore methods for improving planning and software quality, effective elicitation and modelling of software requirements using constrained languages. You'll also investigate use cases and state automata and focus on design for effective human-computer interaction.
-
Computer Science: The Challenge for Sustainable Computing
With a focus on the British Computer Society (BCS) and other relevant professional codes of conduct, this module challenges you to broaden your horizons beyond just programming by considering the sustainability of computing and the wider impact that computer science has on society.
Optional modules let you tailor the course to your interests. Please note, the availability of optional modules can vary each trimester. And some modules may require prior study (taking an earlier module, for example).
-
Introduction to Programming and Algorithmic Thinking
This module provides a foundation for students new to programming. Develop a practical skill that requires both logic and creativity, from understanding basic syntax to constructing bigger, more complex systems and comparing and evaluating different programming approaches.
-
Programming Paradigms
You will build on your existing programming experience and start to explore the use of professional development tools and techniques. The primary programming language for this module is C#.
-
Object Oriented Programming and Principles
This module is designed to build upon the basic knowledge of programming, to reinforce fundamental concepts and to develop awareness of the issues involved in the implementation of larger-scale software.
-
Software Project-Based Learning
Following on from Programming Paradigms, you will apply your programming and development skills as part of a team to produce a solution to a real-world-problem scenario.
All modules are subject to availability and this list may change at any time.
The course consists of 120 credits per year. Most modules are 20 credits, meaning you’ll study six modules each year. Some longer modules, such as a dissertation, are worth more (e.g. 40 credits). In these cases, you’ll study fewer modules - but the number of credits will always add up to 120.
In the second year of your degree, you will begin to specialise more in the area of software development.
Core and compulsory modules are fundamental to achieving the learning outcomes for your course and must be studied.
-
Systems Analysis, Design and Process
This module aims to introduce the tasks of elicitation, modelling and validation of the requirements of an information system. It includes a combination of lectures, practical classes and substantial group-based activity.
-
Information Systems and Web Technologies
Explore the concepts, principles and guidelines that underpin the design and implementation of information systems, including network based information systems and enterprise systems. Information system design is introduced from an organisational context and the enabling technologies are also considered.
-
Software Engineering
The module offers both theoretical and practical study of software engineering with an object-oriented perspective. You'll cover analysis, design, implementation and testing, along with the use of frameworks, components and patterns.
-
Networking and User Interface Design
This module introduces you to computer networks and the practical problems associated with such interconnections. It also addresses technologies and the role they play in creating the user interface for enterprise business web applications.
-
Advanced Programming (C++)
Gain an in-depth knowledge of object-oriented programming. You’ll use C++ as a vehicle to explore how language features and your high-level design decisions are executed on the CPU.
Optional modules let you tailor the course to your interests. Please note, the availability of optional modules can vary each trimester. And some modules may require prior study (taking an earlier module, for example).
-
Database Techniques
A database management system (DBMS) is a program product for keeping computerized records about an enterprise. This module introduces the full implementation of a database system from its original data analysis to a relational table's implementation.
-
Agile Software Development
Using agile software development methods, you will work in a team to produce a solution to a real-world problem. Through weekly showcases to the module team, you will develop a user-centred software solution, reacting to change whilst ensuring quality.
All modules are subject to availability and this list may change at any time.
The course consists of 120 credits per year. Most modules are 20 credits, meaning you’ll study six modules each year. Some longer modules, such as a dissertation, are worth more (e.g. 40 credits). In these cases, you’ll study fewer modules - but the number of credits will always add up to 120.
This is the most specialist year of your degree and provides you with the opportunity to work on a major individual software project as part of your dissertation. Year 3 allows you to dig deeper into the subject, acquiring the expertise and experience that will stand you in good stead when entering industry or pursuing further study.
The highlight of the third year is the individual software project. You can choose from a range of suggested topics or propose your own idea, and you will then spend time across both semesters researching, developing, and writing about your chosen software project. Previous projects have included AI simulations, 3D games, emulators for historic computers, stock control management systems, robotics and even a Jedi lightsaber training simulator using 3D motion tracking and virtual reality.
Core and compulsory modules are fundamental to achieving the learning outcomes for your course and must be studied.
-
Honours Stage Project
Show your all-round ability to tackle a substantial piece of computer-related investigation or software design in an area of your interest. You will demonstrate project, time and risk management skills and bring the task to a successful conclusion with a quality report, documentation as appropriate and presentation.
Core and compulsory modules are fundamental to achieving the learning outcomes for your course and must be studied.
-
Languages and their Compilers
You'll study various aspects of computer languages, their background theory, formal specifications of languages and features of languages. You'll gain an understanding of many languages from the history of computers in the past, as well as current and future languages.
-
Advanced Software Engineering
Discover the techniques for designing dependable software drawing on recent advances and current research. Explore mechanisms of failure in computer systems and software. And practice techniques for preventing and managing software related hazards via safety analysis, formal specification, advanced software testing and online detection, diagnosis and control of failures.
Optional modules let you tailor the course to your interests. Please note, the availability of optional modules can vary each trimester. And some modules may require prior study (taking an earlier module, for example).
-
Communicating and Teaching Computing
Undertake a placement in a school or college to develop practical teaching and communication skills, as well as understanding of the education process. Supporting tutorials explore models of learning, curriculum structures, lesson planning, classroom management and professional awareness.
-
Mobile Devices and Applications
The module provides a critical overview of the state of the art in mobile computing and communication devices. You will learn and develop an understanding of the application of mobile computing and its place in larger scale computing systems. You will also gain the skills and knowledge required to develop software for mobile devices.
-
Starting and Managing a High-Tech Business
Explore the management, planning and development issues concerning information systems used in an organisation. A key issue is strategic planning to achieve competitive advantage by deploying information systems, technology, software products and intellectual property. You'll also consider entrepreneurship issues associated with new, high-tech business ventures.
-
Distributed Systems Programming
Beginning with an overview of key networking technologies, relevant software patterns and distributed topologies, this module explores mechanisms for applying your existing C# knowledge to distributed systems or applications while considering key areas like scalability and security.
-
Computer Systems Infrastructure and Management
Through this module, you will learn about the fundamentals of computer system administration and its infrastructure. You'll explore the fundamentals of network and database system administration along with the techniques for building up the secure and reliable management of information.