Showing 114 courses for the subject Computer Science
Today, most problems are solved using computers. An understanding of programming is needed to harness the full potential of computers. This course serves as an introduction to the foundational principles of programming utilising the high-level object...
This course focuses on the techniques for designing, building and analysing computer programs that deal with large collections of data. The course addresses techniques for programming with collections of data, and the data structures and algorithms n...
Introduction to Computer Science
COMP112
This course introduces a range of important concepts and topics across Computer Science, Software Engineering and Network Engineering. Students will also gain a solid foundation of programming skills in object oriented programming. The course is an e...
An introduction to the range of mathematical techniques employed by engineers, including functions, calculus, linear algebra, vector geometry, set theory, logic and probability. This course emphasises engineering applications and modelling.
Further mathematical techniques employed by electrical and electronic engineers, with a focus on methods of calculus, differential equations, and linear algebra. There is an emphasis on engineering applications and use of software.
Mathematical techniques employed by cybersecurity and software engineers, including combinatorics, logic, probability distributions, model fitting and estimation. The course emphasises engineering applications.
Special Topic
COMP130
Special topic to be advised.
Enter the dynamic world of Artificial Intelligence with AIML 131. Delve deep into Large Language Models, such as ChatGPT, addressing challenges like bias and hallucinations. Witness the power of text-to-image generation through tools like Midjourney....
This course addresses the fundamental programming skills required to process, transform, analyse and present data. The course will explore a range of kinds of data, kinds of analysis and kinds of visualisation that can be performed on the data, and g...
Introduces necessary background, fundamental concepts, and basic algorithms of Computer Graphics, including human visual perception, representation of colour and images, representation of 2D and 3D spaces, manipulation, movement and drawing of 2D and...
Cybersecurity Fundamentals
CYBR171
Hacker—hero or villain? Explore the world of cyber criminals, state-sponsored hackers, and commercial and government defenders. Engage directly with cybersecurity professionals as you explore diverse career paths — from incident response to digital f...
This course will equip students with a basic understanding of mechanical theory and the skills of electronic and mechanical design and construction so that they can successfully design and complete a moderately complex project. A presentation of this...
An introduction to the design and construction of digital electronic instruments. Following a review of binary arithmetic and Boolean algebra, the course will focus on the design of digital circuits using both combinatorial and sequential logic. Furt...
Circuit Analysis
EEEN203
This course covers the analysis of analogue electrical and electronic circuits. Topics covered include basic circuit theorems, operational amplifier circuits, the use of phasors for AC circuit analysis and the Laplace transform for switched systems. ...
Electronic Devices
EEEN204
This course introduces fundamental electronic devices and their circuit applications. Topics include semiconductor fundamentals, diodes, transistors and operational amplifiers and the operation and application of special function diodes such as light...
The course introduces analysis techniques for signals and linear time-invariant systems as well as fundamentals of engineering statistics. The first part of the course focuses on continuous time signals and systems and Fourier transform techniques, w...
Software Development
SWEN221
This course develops a deeper understanding of object- oriented programming and associated practices. The focus is on programming techniques at the micro scale. Topics include: inheritance, polymorphism, genericity, error handling, testing and debugg...
Software Design
SWEN225
This course develops a strong understanding of object-oriented design. Students will study modelling and programming techniques that support the analysis, design and development of large and maintainable programs. Students will work together in group...
Techniques in Machine Learning
AIML231
This course introduces core concepts and techniques in machine learning, as well as commonly used software libraries for implementing machine learning pipelines. It includes an overview of the machine learning field, including supervised and unsuperv...
This course introduces various concepts and techniques of broad applicability to artificial intelligence and machine learning. It includes an introduction to common machine learning paradigms such as neural networks and evolutionary learning; gradien...
Systems Programming
NWEN241
This course considers the issues raised when programming at a low-level, for example in embedded systems, OS system level, or network protocol stacks. It includes an introduction to C language programming and motivating examples related to a wide var...
Clouds and Networking
NWEN243
The course provides a broad introduction to computer networks and a basic understanding of network application programming, with an emphasis on the working principles and application of computer networks. It covers a range of introductory topics incl...
Algorithms and Data Structures
COMP261
This course covers a range of algorithms and data structures building on the fundamental structures and algorithms from COMP 103. The major areas covered are: graph algorithms, graphics algorithms and advanced data structures. This course takes a pra...
Code Security
CYBR271
This course covers measures taken to protect software code and applications from unauthorized access, modification, or exploitation. It involves identifying and addressing potential security vulnerabilities in the source code, design, and architectur...
The course develops an understanding of the structure of computers, how they execute programs and how they interface to the real world. The course first covers ARM assembly language programming, data representation, computer arithmetic, microprocesso...
Operating Systems Design
NWEN301
This course addresses the design and implementation of operating sytems and examines fundamental concepts such as resource management, concurrency, protection and security. Examples drawn from a range of modern operating systems illustrate these conc...
Scalable Software Development
SWEN301
This course introduces the processes, practices, and tools required to engineer medium to large software systems, and to address challenges arising from the emerging complexity of such systems. Topics include software craft, architecture, design, imp...
This course introduces a range of machine learning techniques of importance in Data Science, and gives students experience in using modern software libraries for implementing machine learning pipelines. Topics will include machine learning techniques...
Computer Network Design
NWEN302
This course addresses the principles, architectures and protocols that have shaped the development of the Internet and modern networked applications. It examines network design principles, underlying protocols, technologies and architectures of the T...
Concurrent Programming
NWEN303
This course examines a range of techniques for programming multi-threaded and distributed applications. Topics include synchronisation mechanisms used for programs that communicate via shared memory and message passing techniques for programs that co...
User Experience Engineering
SWEN303
This course addresses the engineering of user experiences (UX). It presents principles and guidelines for design and covers a range of design and engineering processes. It presents techniques for user testing of applications, digital systems, and phy...
Programming Languages
COMP304
This course addresses the principles of programming language design and use. It introduces different models of computation and the programming languages based on them, particularly functional programming and logic programming. It then examines a rang...
Advanced Network Applications
NWEN304
This course introduces technologies, algorithms and systems for developing secure, scalable and reliable web server applications. Specific emphasis will be placed on application development middleware, computer security, network protocols and distrib...
Database System Engineering
SWEN304
The course addresses fundamental principles underlying databases and database management systems. It covers the structure and principles of the relational data model, including SQL, and the principled design of the relational database schema. It also...
Communication Engineering
EEEN310
The course provides students with an introduction to the physical layer of communication systems. It begins with basics of analog communications (AM, FM). Digital communications topics include intersymbol interference and Nyquist pulse shaping for ba...
Simulation and Stochastic Models
COMP312
Simulation and modelling of stochastic systems, covering examples from Operations Research and Computer Science, including queues, networks and computer systems. Design, analysis and validation of simulation experiments. Previous experience with comp...
This course covers the theory, design and application of electrical machines, power electronic circuits, electric drives, and the transformation and control of electrical energy. The course introduces the fundamentals of electromagnetics and electric...
Control and Instrumentation
EEEN315
The course shows how models can be used to analyse, describe and predict the behaviour of mechanical and electrical systems. The use of feedback to alter the properties of these systems to meet desired specifications is presented. A variety of method...
Artificial Intelligence
AIML320
This course addresses concepts and techniques of artificial intelligence (AI). It provides a brief overview of AI history and search techniques, as well as covering important machine learning topics, tools, and algorithms with their applications, inc...
The course introduces analysis techniques for discrete-time signals and linear time-invariant systems as well as topics in engineering statistics. The first part of the course focuses on discrete-time signals and systems and discrete Fourier transfor...
Software Correctness
SWEN324
This course is concerned with the development of correct software, especially the use of formal requirements and specifications to develop high-integrity software. This has applications in several areas, such as safety-critical systems (e.g. commerci...
Robotic Engineering
EEEN325
This course presents the principles of robotic and mechatronic design, construction and control. It covers both the theoretical and practical aspects of integrating mechanical, electronic and software components.
This course addresses the concepts, techniques, and tools required for developing applications within software frameworks for mobile platforms. Topics include the concepts and principles underlying software frameworks, the design and implementation o...
Safety-Critical Systems
SWEN326
This course addresses the concepts, techniques and tools required for developing computer systems that are applicable where safety and reliability is paramount. Topics include: the concepts and principles underlying safety-critical systems & standard...
Computer vision and image processing has a wide range of real-world applications, such as automated vehicles and face recognition. This course addresses key AI techniques, tasks, and applications in this area. The course covers a range of topics, sta...
AI Natural Language Processing
AIML332
This course introduces the basic concepts, applications and algorithms for natural language processing, with a particular focus on processing and analysing large natural language data sets. The course will cover topics such as text representation, te...
Acting, Planning, and Scheduling
AIML333
This course introduces key concepts, techniques and algorithms for AI systems that perform actions. It starts with reactive systems that respond intelligently to observations, expands to AI systems that use their knowledge about the world to plan or ...
Machine Learning
AIML335
This course teaches fundamental concepts and mathematical techniques that underlie much of machine learning (ML). Topics include an introduction to learning theory, optimisation for ML, unsupervised learning, learning with latent variables, generativ...
Special Topic
AIML337
Special Topic to be advised.
Directed Individual Study
AIML338
A supervised programme of study approved by the Head of School.
Artificial Intelligence Project
AIML339
A capstone project to construct a solution to an AI task. The project may be an individual or a group project.
Special Topic
COMP348
To be advised.
Special Topic
COMP349
This course examines techniques for developing correct and efficient algorithms for some important classes of problems in Computer Science. It explores methods for designing algorithms, including greedy algorithms, divide and conquer, dynamic program...
System and Network Security
CYBR371
This course covers system and network security, emphasizing secure design, access control, and TCP/IP protocol security. Students will gain practical skills in Linux ACLs, shell scripting, and the deployment of defence mechanisms, preparing them for ...
Applied Cryptography
CYBR372
This course covers key cryptography concepts and services, encryption, hash functions, digital signatures, public key certificates, cryptographic protocols, and applications like SSL/TLS and blockchain.
Governance, Risk and Compliance
CYBR373
This course offers a detailed exploration of risk management in cybersecurity, covering concepts from basic principles to advanced applications. It includes practical exercises on security controls, incident response, and policy development, alongsid...
This course will introduce applications of mathematics to game and graphics programming. The concepts will be taught through computational and programming exercises with visual results. Topics may include mathematics for shading, geometric computatio...
This course will address the engineering applications of electromagnetism, including propagation of signals, low EM emissions circuit board design, radio waves and antennas, grounding, high voltage insulators, and electrical safety design and testing...
Programmable Digital Logic
EEEN402
The course develops an understanding of the structure of Field Programmable Gate Arrays, how to program them and how to interface them to the real world. The topics covered are VHDL programming, logic design, state machine design, I/O, design tools, ...
This course develops a deeper understanding of electronic instrumentation and the underlying models and methodologies used in electronic design. Topics covered are: derivation of discrete device models (including noise behaviour) for simulation, radi...
Computer Graphics Rendering
CGRA408
This course will introduce a physically based photo-realistic rendering pipeline including radiometry, reflectance models, lighting, scene acceleration structures, ray tracing, path tracing and other global illumination algorithms.
Geometry Processing Algorithms
CGRA409
This course introduces the algorithmic and mathematical foundations of three-dimensional modelling. Topics include representations such as polygons, splines, implicit surfaces, point models, particle systems and volumetric models; concepts such as pa...
The course covers advanced topics in physical layer wireless communications. It begins with a brief introduction to Information Theory, leading to the concept of channel capacity. Multiple antenna techniques for both single and multiple user communic...
The course covers key topics in modern coding theory (finite vector spaces, linear codes, coding bounds, perfect codes, cyclic codes) as applied to wireless communication systems. Further topics include cryptography (classical ciphers, the one-time p...
This course extends previous control studies to cover the use of modern control techniques in shaping the behaviour of complex systems having multiple inputs and outputs, in both discrete and continuous time. Optimal control (LQR) and estimation (the...
Artificial Intelligence
AIML420
This course addresses concepts and techniques of artificial intelligence (AI). It provides a brief overview of AI history and search techniques, as well as covering important machine learning topics, tools, and algorithms with their applications, inc...
Artificial Intelligence
COMP420
This course addresses concepts and techniques of artificial intelligence (AI). It provides a brief overview of AI history and search techniques, as well as covering important machine learning topics and algorithms with their applications, including n...
This course addresses the use of machine learning tools and techniques for analysing data and automatically generating applications. The course will explore a range of tools and techniques for classification, regression, image analysis, clustering, t...
Machine Learning
COMP421
This course covers a range of topics in machine learning, with a focus on inference and uncertainty. Topics include optimization, Bayesian probability theory, learning from rewards, unsupervised learning, Belief networks and particle filters (This co...
Advanced Signal Processing
EEEN421
This course provides a geometric intuition to signal processing. This geometric point of view is a powerful tool for the understanding of signal processing techniques including transforms, sampling, time-frequency analysis and wavelets. The course pr...
This course is concerned with data mining concepts and techniques, especially neural networks and genetic programming. It mainly focuses on the following topics: data mining and knowledge discovery in databases; data mining techniques such as nearest...
Convex Optimisation
EEEN422
Convex optimisation problems are common in science, engineering and economics. The course teaches identifying and solving convex optimisation problems. It discusses convex sets and functions, linear and quadratic programs, semi-definite programming, ...
Intelligent Agents
COMP423
This course examines the construction of intelligent agents - software programs that can act for themselves in some part of the human world. This course focuses on agents for improving web search and includes topics such as agents for information ext...
Big Data
COMP424
Big Data refers to the large and often complex datasets generated in the modern world: data sources such as commercial customer records, internet transactions, environmental monitoring. This course provides an introduction to the theory and practice ...
Uncover the fundamentals of neural network-based deep learning. In this course you will learn the state-of-the-art methods for classification, regression, and generative modelling, giving you the building blocks for designing your own chatbots as wel...
Computational Logic
COMP425
This course is concerned with the application of formal logic to problems in Computer Science, and with techniques for mechanising logical reasoning. Topics may include: systems of reasoning; logic programming; the application of temporal and modal l...
Advanced Robotic Engineering
EEEN425
This course presents advanced principles of robotic and mechatronic design, prototyping, construction and control. It covers both the theoretical and practical aspects of integrating the mechanical, electronic and software components and applies rele...
This course addresses evolutionary approaches in machine learning and optimisation. The course will cover both evolutionary algorithms and swarm intelligence as well as some other population-based techniques for problem solving. It will include a ran...
Special Topic:
EEEN426
design, construction and testing of this robotic device.
Big Data
AIML427
Big Data refers to the large and often complex datasets generated in the modern world: data sources such as commercial customer records, internet transactions, environmental monitoring. This course provides an introduction to the theory and practice ...
The course will cover a number of topics in design, simulation, construction and testing of advanced mechatronic systems, addressing both theoretical and practical design aspects.
This course focuses on text mining and natural language processing. It covers a variety of topics including text representation, document classification and clustering, opinion mining, information retrieval, recommender systems, query expansion, and ...
Probabilistic Machine Learning
AIML429
This course teaches the ideas, algorithms and techniques of probabilistic machine learning. Topics include Bayesian inference, discriminative and generative classifiers, the EM algorithm, Gaussian processes, Markov Chain Monte Carlo, hidden Markov mo...
AIML 430 explores AI's diverse applications in today's world and what the future might hold. We go beyond just understanding AI solutions, diving into how AI techniques can have real-world consequences and ramifications. Develop your ability to criti...
Robotic Intelligence and Design
EEEN430
The course addresses the applications of artificially intelligent systems in embodied scenarios. It will teach the skills to assess tasks, evaluate appropriate techniques, and will provide experience in designing and implementing solutions and commun...
This course addresses several current topics in artificial intelligence. Possible topics include Reinforcement Learning, AI for robotics, AI in games, Intelligent image analysis, AI and optimisation, AI Planning.
Musical Robotics
EEEN431
This project-based course incorporates a music theme in the design and construction of a novel mechatronic instrument. The necessary fundamentals of the appropriate music theory are introduced, and then students are guided in a project-based learning...
Directed Individual Study
AIML440
Content depends on the individual student.
Directed Individual Study
CGRA440
To be confirmed.
Directed Individual Study
COMP440
A supervised programme of study approved by the Head of School.
Directed Individual Study
AIML441
Content depends on the individual student.
Directed Individual Study
COMP441
A supervised programme of study approved by the Head of School.
Computer Graphics Practicum
CGRA463
The practicum is an opportunity for students to engage with a supervised computer graphics project in the context of an external company or organisation.
Special Topic
CGRA471
To be advised.
This course teaches underlying algorithms and techniques of machine learning, with an emphasis on techniques that use probability and graphical models.
Offensive and Defensive Security
CYBR471
This course provides an in-depth journey into cybersecurity attacks and defences. It begins with the basics of reconnaissance, scanning, and exploitation, moving into advanced topics such as exploitation tools, post-exploitation techniques, and threa...
This course provides students with the knowledge and understanding of the processes of user experience engineering, design and evaluation for immersive and interactive technologies, Virtual Reality (VR), Augmented Reality (AR) and mixed reality (MR),...
Special Topic
COMP472
To be advised.
Cybercrime Investigations
CYBR472
This course offers an in-depth look at digital forensics, emphasizing its role in civil and criminal investigations including the legal context. Students will learn to analyse computer systems, mobile devices, and cloud environments, while understand...
Special Topic:
COMP473
Malware Analysis
CYBR473
This course introduces techniques and tools for analysing and detecting malicious software (malware). It covers in-depth analysis techniques for identifying, dissecting, and neutralising malware threats, including viruses, worms, trojans, and ransomw...
Research Project
AIML487
A supervised research project in an area of Artificial Intelligence.
Research Project
CGRA489
A research project on a topic in computer graphics approved by the Head of School.
Research Project
COMP489
A research project on a topic approved by the Head of School.
An investigation and literature review of an advanced topic in an area of artificial intelligence, reported in a project description and a literature review essay.
An investigation into an advanced topic in an area of computer science, reported in an essay.
Research Project
AIML589
A supervised research project in an area of Artificial Intelligence.
Project
COMP589
Individual project under the supervision of an academic staff member.
MSc thesis in Artificial Intelligence.
Thesis
COMP591
MSc thesis in Computer Science.
Artificial Intelligence for PhD
AIML690
Computer Science for PhD
COMP690
Showing results 1 - 114 of 114 results
Showing 1 - 114 of 114 results for Computer Science