15 credits
Level 1
First Term
This course will introduce students to techniques that support problem solving and modelling with computers, and concepts and methods that are fundamental to computing science. The techniques and concepts will be illustrated with numerous computing examples.
15 credits
Level 1
First Term
This course will be delivered in two halves. The first half will provide a self-contained introduction to computer programming. It will be accessible to all undergraduates. Students will be exposed to the basic principles of computer programming, e.g. fundamental programming techniques, concepts, algorithms and data structures. The course contains lectures where the principles are systematically developed. As the course does not presuppose knowledge of these principles, we start from basic intuitions. The second half will be particularly of use to those studying Science and Engineering subjects, broadly interpreted, as well as Computing and IT specialists. It will include a gentle introduction to professional issues and security concepts.
15 credits
Level 1
First Term
Did you ever wonder about the efficiency of different forms of renewable energy, the mechanisms behind the formation of double rainbows or efficient ways of counting the number of termites in a nest? This non-calculus course provides an excellent opportunity to understand the basic principles of physics necessary to answer these and many other questions relevant to multiple disciplines, ranging from geology to engineering to biology and environmental sciences.
15 credits
Level 1
First Term
This course introduces the concepts of complex numbers, matrices and other basic notions of linear algebra over the real and complex numbers. This provides the necessary mathematical background for further study in mathematics, physics, computing science, chemistry and engineering.
15 credits
Level 1
Second Term
This course will build on the basic programming skills acquired in the first half-session and equip the students with advanced object oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The students will be challenged with more complicated programming problems through a series of continuous assessments.
15 credits
Level 1
Second Term
The course is aimed at a general science audience and it focuses on providing the students with the working knowledge of a good set of mathematical skills needed in all science subjects.
15 credits
Level 1
Second Term
This statistics course teaches students how to summarise data effectively and how to correctly interpret it. Among the topics covered are sampling strategies, probability theory, confidence intervals and hypothesis tests. There are also weekly computer practicals using the statistics software RStudio. The mathematical context is emphasised but students are not expected to have a high level of maths.
15 credits
Level 2
First Term
Databases are an important part of traditional information systems (offline /online) as well as modern data science pipelines. This course will be of interest to anyone who wishes to learn to design and query databases using major database technologies. The course aims to teach the material using case studies from real-world applications, both in lectures and lab classes.
In addition, the course covers topics including management of different kinds of data such as spatial data and data warehousing. The course provides more hands-on training that develops skills useful in practice.
15 credits
Level 2
Second Term
This course provides the knowledge needed to understand, design and compare algorithms. By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity, and make use of proof techniques. The practical component of the course will build on and enhance students' programming skills.
15 credits
Level 3
First Term
The course provides an introduction to Artificial Intelligence (AI). It discusses fundamental problems of AI and their computational solution via key concepts.
15 credits
Level 3
First Term
This course discusses core concepts and architectures of operating systems, in particular the management of processes, memory and storage structures. Students will learn about the scheduling and operation of processes and threads, problems of concurrency and means to avoid race conditions and deadlock situations. The course will discuss virtual memory management, file systems and issues of security and recovery. In weekly practical session, students will gain a deeper understanding of operating system concepts with various programming exercises.
15 credits
Level 3
Second Term
This course discusses core concepts of distributed systems, such as programming with distributed objects, multiple threads of control, multi-tire client-server systems, transactions and concurrency control, distributed transactions and commit protocols, and fault-tolerant systems. The course also discusses aspects of security, such as cryptography, authentication, digital signatures and certificates, SSL etc. Weekly practical sessions cover a set of techniques for the implementation of distributed system concepts such as programming with remote object invocation, thread management and socket communication.
15 credits
Level 4
First Term
The course provides a solid foundation in computer and information security. It will cover topics of Information and Risk, Threats and Attacks, Cybersecurity Architecture and Operations, Secure Systems and Products, Cybersecurity Management and Trustworthy Software.
15 credits
Level 4
First Term
In this course, you will conduct an individual research project into the behaviour of a computing system. You will develop knowledge and understanding of rigorous methods to: explore computing system behaviour; identify questions about behaviour; design experiments to answer those questions; analyse experimental results; and report on the outcomes of your research. You will develop your understanding of research ethics and how this relates to professional behaviour.
We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.