TEMARIO
First year
Students will take the following compulsory first-year modules:
- Object-Oriented Programming: provides an introduction to object-oriented modelling and programming using Java.
- Programming with Data: explores various aspects of data storage, processing and analysis.
Second year
Students will take the following compulsory second-year modules:
- Foundations of Computation: introduces fundamental algorithms, data structures and ideas about formal languages at the heart of modern software.
- Computer Systems: develops skills in programming in C, systems programming, digital logic and low-level computer organisation.
b>Honours - compulsory
In third year, computer science students must take the following three compulsory modules:
- Logic and Reasoning: covers the foundations of logic that are relevant to computer scientists, with an emphasis on automatic reasoning and decidability. Topics include propositional and predicate calculus, various proof techniques, and Goedel's incompleteness theorem.
- Computational Complexity: introduces Turing machines, non-determinism and pushdown automata, followed by study of decidability, simulation and the Halting Problem.
- Software Engineering Team Project: gives a broad overview of software engineering, presenting the fundamental aspects as a collaborative professional activity including its concerns and approaches. Students apply these concepts and practices to a substantial software engineering project as part of a team.
In fourth year, you must take the following compulsory module:
- Major Software Project: allows students to undertake a substantial software engineering project using professional development techniques. Each student designs, specifies and constructs a medium-sized software system, or undertakes a formal development and proof of such a system, under the guidance of a member of staff.
b>Honours - optional
In addition to the compulsory modules in your Honours years, you will choose from a wide variety of advanced options, including modules in topics such as cyber security, video games and computer graphics.
In your final Honours year, you will also have the option to choose from a variety of modules at Masters level, providing advanced training in computer science in topics such as machine learning, data ethics and information visualisation.
Here is a sample of Honours modules that have been offered in previous years:
- Advanced Communication Networks and Systems
- Artificial Intelligence
- Component Technology
- Computer Architecture
- Computer Graphics
- Computer Security
- Concurrency and Multi-Core Architectures
- Constraint Programming
- Data Communications and Networks
- Data Encoding
- Databases
- Distributed Systems
- Human Computer Interaction
- Logic and Software Verification
- Operating Systems
- Programming Language Design and Implementation
- Signal Processing: Sound, Image, Video
- Video Games