Our Computer Science Bachelor programme is rooted in mathematics and engineering, while our innovative department optimises the programme’s relevance by including disciplines such as linguistics, psychology, economics, physics, and music. These programmes are geared towards developing students’ professional skills needed for employment while also adapting to rapidly changing technology while working effectively, professionally, and ethically in computing-related professions, as demonstrated by their communications, teamwork, and leadership skills.
Year 1 | In the first year, students obtain the foundational knowledge in mathematics and the basics of programming upon which students will develop an understanding of programming and computer science during the following years. The courses are mostly given in a form of lectures and takeaway coursework. By the end of this year, students will be able to write programmes and use primary computer science tools.
- Foundations of Programming: C/C++
- Algorithms and Data Structures – 1
- Combinatorics and Graphs – 2
- Object Oriented Programming: Python
- Algorithms and Data Structures – 2
- Computer Organisation and Systems
- Combinatorics and Graphs – 3
Year 2 | In the second year, the students will be offered both math courses in the field of discrete mathematics and courses in the field of software development and programming languages. Most courses require practical coursework and a course project enabling students to get a feel for the challenges and approaches used in this field. By the end of this year, students will be able to write programmes and use primary computer science tools.
- Introduction to Probability
- Introduction to Statistics
- Foundations of Mathematical Logic
- Introduction to Optimization
- Introduction to Computer Networking
- Database Systems Principles
- Computational Complexity Theory
- Introduction to Cryptography
Year 3 | In the third year, students will primarily focus on key computer science subjects including computational theory and cryptography. The practical side of the programme is focused on an in-depth understanding of parallel computing, databases, and compilers. At the end of the third year, students will have sufficient theoretical and programming background to tackle computer science problems in professional real-world scenarios. The courses are taught by researchers and professionals who practice the courses they teach either academically or by sharing their professional experiences in their field. The goal of the final year is to expose students to a range of real-world applications of the material that they've learned to ensure a seamless transition into a professional role.
- Parallel and Distributed Computing
- Software Development Process
- Mobile Application Development
- Technical Project Management
- Algorithms in Bioinformatics
- Software Testing, Verification, and Validation
- Leadership and Group Dynamics
- Writing, Documentation, TeX, JavaDoc, Academic