17.5 credits
Level 1
First Term
This course will provide a self-contained introduction to computer programming. 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. It will include a gentle introduction to professional issues and security concepts.
20 credits
Level 1
First Term
Calculus is the mathematical study of change, and is used in many areas of mathematics, science, and the commercial world. This course covers, limits, continuity, differentiation, finding maximum and minimum values, integration.
15 credits
Level 1
First Term
Linear algebra is the study of linear equations and matrices. At a more abstract level, it concerns vector spaces and linear maps between them, and it is a central subject within mathematics. It provides foundations for almost all branches of mathematics and sciences in general. The techniques are used in engineering, physics, computer science, economics and others.
20 credits
Level 1
Second Term
This course will build on the basic programming skills acquired previously and equip the students with advanced object-oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The course will build from simple exercises through to complicated programming problems.
20 credits
Level 1
Second Term
This course deals with the theory of sequences and series, and discusses their applications to the theory of functions. It also gives an introduction to differential equations and the theory of functions of several variables. It provides the necessary mathematical background for further study in mathematics, computing science and other subjects.
20 credits
Level 2
First Term
This course provides a thorough introduction to fundamental concepts and methodologies of software engineering.
20 credits
Level 2
First Term
This course provides a thorough grounding in programming concepts and technologies for large scale and high dependability software systems.
15 credits
Level 2
Second Term
Students will learn to develop modern web applications using a variety of languages and frameworks.
A key focus will be on the integration of HTML with CSS and Javascript with other backing frameworks to develop dynamic applications.
20 credits
Level 2
Second 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.
17.5 credits
Level 2
Second 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.
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.