All modules listed are compulsory.
Designed for international students who require a preparatory year prior to undergraduate study, our integrated foundation course is equivalent in learning to year 13 of the UK education system.
Successful completion of the foundation year will also guarantee you progression onto the Computer Science BSc (Hons) programme. *You will need at least 100 credits, at least 55% in Academic English and Study Skills, at least 60% in Introductory Mathematics and in Further Mathematics and at least 50% in Introductory Computer Science.
We will ensure you're fully prepared for your undergraduate programme, immersing you in the university environment and giving you dedicated support in your first year in Dubai.
We want to give you a really strong education in the fundamentals of computer science, so in first year you'll be given an overview of the subject and gain a firm foundation in the principles of algorithms, artificial intelligence and relevant maths. You will also learn computer programming in Java - an invaluable language widely used in business and industry.
We want you to have a chance to follow your own passions whilst studying, so in your first year you are also given a chance to pursue your own interests, via work within robot programming and image processing. We encourage group work as part of our commitment to preparing you for the world of employment and you will learn valuable skills.
In your second year of the BSc Computer Science course you will progress into studying enabling technologies such as graphics and the formal basis of programming languages. Teaching these to you together with programming allows you to put the theory into practice, giving you a much deeper understanding and experience that will be crucial in your working life.
You can also apply to spend the second year of your BSc Computer Science course at our campus in the UK. Find our more.
In the final year of your BSc computer science course you will obtain a huge amount of training and experience so you can maximise on your degree to achieve your ambitions and interests.
You’ll spend one third of your time on a project, either developed from your own idea or from a wide selection offered by staff members. This usually involves writing a large piece of software and gives you the freedom to extend and demonstrate your skills in your own way. We will also introduce you to Machine Learning and Advanced Networking.
Optional modules - choose 80 credits:
Please note: The modules listed on the website for this programme are regularly reviewed to ensure they are up-to-date and informed by the latest research and teaching methods. Unless indicated otherwise, the modules listed for this programme are for students starting in 2019. On rare occasions, we may need to make unexpected changes to core modules; in this event we will contact offer holders as soon as possible to inform or consult them as appropriate.
Relevant modules we offer that cover programming:
Programming in Java
The Java programming language continues to be one of the most popular languages in industrial software development. The module will introduce you to the Java language. In addition to the language itself, you will learn basic imperative algorithms and data structures along with exposure to principles of object orientation.
System Programming in C/C++
This module introduces the C/C++ family of programming languages, including programming language design issues arising from the various extensions of C that have been developed. The module assumes some familiarity with programming in Java, and it will emphasise the differences between C-style languages and Java, such as garbage collection vs memory management and pointers.
Robot Programming (in Artificial Intelligence)
In this part of the module, you will will learn how to program and command robots using Java programming while also applying artificial intelligence algorithms. This is a very practical area where you will work in small and big teams to program robots to navigate autonomously and in coordination with other robots.
Data Structures and Algorithms
In order for programs to run efficiently, data must be organised in a structured way and also accessed by algorithms as efficiently as possible. This course will introduce a principled way in which data can be organised. It will also teach how the efficiency of a program can be measured in terms of complexity, and how complexity can be estimated mathematically given a problem. This module has both a theoretical and practical nature.
Relevant modules covering theoretical foundations of computer science:
In this module, you will learn the mathematical skills that will help you to master basic and advanced computer science subjects, such as mathematics for computer graphics and machine learning (linear algebra), for cybersecurity (algebra), for understanding programming languages and natural languages studied in AI (formal languages and automata). It will also teach you the basics of how to tell apart easy from difficult to unsolvable problems in computer science.
Logic and Computation
Logic is a powerful formalism that can teach us, among other things, how human and machines reason. This module teaches the basics of logic and a variety of techniques for proving whether a statement is correct or not. Applications of this module include AI knowledge representation systems as well as development of tools to ensure the correctness of computer programs.
Data Structures and Algorithms
Algorithms lie at the heart of computer science and software development. They embody the way in which we solve problems using computers. This module will introduce the fundamentals of data structures and algorithms. Data structures will be formulated to represent information in such a way that it can be conveniently and efficiently manipulated by the algorithms that are developed. The ideas will be presented both abstractly, and via problem-solving and implementations.
Programming Language Principles, Design and Implementation
This module introduces the foundations how programming languages work, from syntactic and semantic specification to compilation. Rather than focusing on specific programming languages, it will use many as examples to explain how these are built and work in principle.