Showing 112 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.
This course is for everyone interested in learning and using artificial intelligence. It introduces the fundamental techniques and applications in AI and explains how AI affects individuals and society. This course will also discuss ethical issues an...
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...
Secure Programming
CYBR271
This course addresses the concepts, techniques and tools required for developing software that reliably preserves the security properties of the information and systems they protect. The course covers common software vulnerabilities, specifying secur...
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...
This course addresses key ideas and techniques of artificial intelligence (AI). It provides a brief introduction to the history of AI and fundamental search techniques, as well as introducing important machine learning topics and algorithms with thei...
This course explores a range of machine learning tools and techniques for analysing data and automatically generating applications. The course will address tools for classification, regression, clustering and text mining, and techniques for preproces...
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...
Computer Game Development
COMP313
The course will investigate tools, techniques and concepts for building interactive computer games, including software engineering techniques, HCI principles, AI methods and design strategies. The course will be co-taught with Media Design and will i...
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...
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...
Special Topic
AIML337
Special Topic to be advised.
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 addresses key concepts, techniques and tools needed to provide security in computer and communications systems. Topics include the need for security, system and network security threats such as malware or denial-of-service attacks, secure...
Applications of Cryptography
CYBR372
Cryptographic mechanisms are widely deployed for communication and data protection. This course addresses how cryptographic mechanisms can be effectively used within larger security systems and how cryptographic mechanisms can be vulnerable in deploy...
This course addresses how the behaviour and values of people as individuals or within an organisation affects cyber security threats and mitigation strategies. Topics covered include social engineering, ethical considerations, the insider threat, sec...
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 and algorithms with their applications, including n...
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 ...
This course addresses the fundamentals of neural network based deep learning. It covers the commonly used deep learning architectures such as fully connected networks, resnets, variational autoencoders, and generative adversarial networks. It discuss...
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...
This course looks at the range of applications of artificial intelligence in the world of today and the future. It surveys the kinds of problem that can be solved with AI technology and techniques and considers the implications and consequences of us...
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