Applicants wishing to join the part-time mode must submit their application as full-time, and then include a note in the comments box of the application form, denoting their preference to be considered for the part-time option. Such requests will be considered by the Board of the Faculty.
The Computing Science Degree programme focuses on giving sound scientific and practical skills for constructing, analysing, and maintaining complex software systems. The course is suitable if you are interested in all aspects of computer science, ranging from the low-level hardware interfacing, to the construction of distributed and concurrent systems, to the handling of complex data structures, up to the analysis of these artefacts using mathematical and formal methods. It covers topics such as software engineering, computer architecture, computer vision and signal processing, and inducts you to be proficient in a wide variety of programming paradigms. The aim is to prepare graduates with a solid grounding in computing science aspects in systems development. As a graduate following this programme, you will be ready to take on jobs related to software development in a wide variety of industries, or further your studies in a selected area.
The Computing Science Degree programme focuses on giving sound scientific and practical skills for constructing, analyzing, and maintaining complex software systems. The proliferation of technologies such as cloud and mobile computing is changing the nature of software development as we know it today. The focus is moving from developing applications for a single powerful machine to new environments ranging from:
(i) ones in which developers have to harness the computational power of multiple computers (possibly geographically distributed) in order to leverage the cost of expensive calculations and guarantee acceptable levels of service; to (ii) the other extreme of developing systems which run on mobile devices with limited computational, memory and power resources. These fundamental changes necessitate both a deeper understanding of the concepts underlying science of computing, as well as a proper exposition to new computational models and analysis techniques, tools and technologies. Furthermore, interaction frequency with machines in our everyday life is ever increasing (not only for communication but also in critical cases e.g. eGovernment services, health records kept in databases, etc.) ֠making the need for correct and dependable computer systems ever more important. Social networking and cloud networking impose new stringent requirements on software development where scheduling of tasks, communications in the networks, and exploitation of multimedia content are becoming imperative to guarantee a quality of experience to the users in virtually real-time.
The degree gives a foundation necessary for appreciation and understanding of these issues - both theoretical and practical - leading up to concrete career pathways in both industry and academia. The degree is suitable for students interested in all aspects of computer science, ranging from the low-level hardware interfacing, to the construction of distributed and concurrent systems, to the handling (e.g., compression, encryption, transfer) of complex data structures, up to the analysis of these artefacts using mathematical and formal methods. It covers core topics such as software engineering, data structures and algorithms, compilers, systems programming computer networks, computer architecture, computer vision and signal processing, and inducts students to be proficient in a wide variety of programming paradigms such as procedural, object-oriented, functional, logical, concurrent and scripting based. The course teaches indispensable skills required by industry such as software testing and security. Moreover, by exposing you to the core concepts in computer science, the course equips you well for adapting quickly to future technologies.
The aim is to prepare you with a solid grounding in computing science aspects in systems development ranging over mobile devices, programming languages, signal processing and communication networks. As a graduate following this programme, you will be ready to take on jobs related to software development in a wide variety of industries, or further their studies in a selected area.
The main objective of this programme of study is therefore to prepare you to face modern ICT challenges where they are expected to develop software that exploits the underlying technologies.
The programme offers significant lecturing and training in subjects like mathematics, computer language design, algorithm development, software engineering, software verification and testing, real-time systems and applications, digital signal processing, computer organisation, and communication and computer networks. In the final year the student has the opportunity to focus more in one of the fields through the dissertation.
Communication and Academic Skills Programme
The communication and academic skills programme complements students’ main course of study. It introduces them to writing and presenting as situated within academic contexts sensitive to specific disciplines and develops their competences for future careers.
  | |||||
Year   (This/these unit/s start/s in Semester 1 and continue/s in Semester 2) | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
SOR1201 | Probability, Sampling and Estimation | 4 ECTS   | (NC)   | ||
  | |||||
  | |||||
Semester 1 | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CCE1013 | Computer Logic 1 | 5 ECTS   | (NC)   | ||
CPS1002 | Mathematics of Discrete Structures | 5 ECTS   | (NC)   | ||
CPS1011 | Programming Principles in C | 5 ECTS   | (NC)   | ||
CPS1013 | Software Project | 5 ECTS   | (NC)   | ||
MAT1801 | Mathematics for Engineers 1 | 4 ECTS   | (NC)   | ||
  | |||||
  | |||||
Semester 2 | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CCE1014 | Computer Logic 2 | 5 ECTS   | (NC)   | ||
CIS1041 | Introduction to Databases | 4 ECTS   | (NC)   | ||
CPS1005 | Discrete Mathematics for Computing Science | 5 ECTS   | (NC)   | ||
CPS1012 | Operating Systems and Systems Programming 1 | 5 ECTS   | (NC)   | ||
ICT1018 | Data Structures and Algorithms | 5 ECTS   | (NC)   | ||
LIN1063 | Academic Reading and Writing in English | 2 ECTS   |   | ||
MAT1802 | Mathematics for Engineers 2 | 4 ECTS   | (NC)   | ||
SOR1232 | Hypothesis Testing and Statistical Modelling | 2 ECTS   |   | ||
  |
  | |||||
Year   (This/these unit/s start/s in Semester 1 and continue/s in Semester 2) | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CPS2009 | Team-based Software Engineering | 10 ECTS   | (NC)   | ||
  | |||||
  | |||||
Semester 1 | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CCE2203 | Signals and Systems | 5 ECTS   | (NC)   | ||
CCE2414 | Computer Networks | 5 ECTS   | (NC)   | ||
CPS2001 | Programming Paradigms | 5 ECTS   | (NC)   | ||
CPS2004 | Object Oriented Programming | 5 ECTS   | (NC)   | ||
CPS2005 | Formal Languages and Automata | 5 ECTS   | (NC)   | ||
  | |||||
  | |||||
Semester 2 | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CCE2014 | Microcontroller Based Systems | 5 ECTS   | (NC)   | ||
CCE2502 | Pattern Recognition and Machine Learning | 5 ECTS   | (NC)   | ||
CPS2000 | Compiler Theory and Practice | 5 ECTS   | (NC)   | ||
CPS2008 | Operating Systems and Systems Programming 2 | 5 ECTS   | (NC)   | ||
ICS2210 | Data Structures and Algorithms 2 | 5 ECTS   | (NC)   | ||
  |
  | |||||
Year   (This/these unit/s start/s in Semester 1 and continue/s in Semester 2) | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
ICT3907 | Final Year Project in Computing Science | 25 ECTS   | (NC)   | ||
  | |||||
  | |||||
Semester 1 | |||||
  | |||||
Compulsory Units (All students must register for this/these unit/s) | |||||
  | |||||
CCE2503 | Search and Optimisation Methods | 5 ECTS   |   | ||
CPS3230 | Fundamentals of Software Testing | 5 ECTS   |   | ||
CPS3239 | Computability and Complexity | 5 ECTS   |   | ||
  | |||||
Elective Units (Elective units are offered subject to availability, a minimum number of student registrations and time-table constraints) | |||||
  | |||||
CCE3015 | Programming Parallel Architectures | 5 ECTS   |   | ||
CCE3101 | Multimedia Signal Representation and Coding | 5 ECTS   |   | ||
CCE3206 | Digital Signal Processing | 5 ECTS   |   | ||
CCE3207 | Introduction to Computer Vision | 5 ECTS   |   | ||
CCE3311 | Communication Systems | 5 ECTS   |   | ||
CCE3503 | Practical Machine Learning | 5 ECTS   |   | ||
CPS3231 | Computer Graphics | 5 ECTS   |   | ||
CPS3232 | Applied Cryptography | 5 ECTS   |   | ||
CPS3235 | Data Science: From Data to Knowledge | 5 ECTS   |   | ||
CPS3236 | Concurrency, HPC and Distributed Computing | 5 ECTS   |   | ||
CPS3237 | Program Analysis | 5 ECTS   |   | ||
CPS3238 | Principles of Programming Languages | 5 ECTS   |   | ||
ICT3009 | Blockchain and Smart Contracts | 5 ECTS   |   | ||
LIN3012 | Data-Driven Natural Language Processing | 5 ECTS   |   | ||
SOR2321 | Queuing Theory and Markov Chains | 5 ECTS   |   | ||
  | |||||
  | |||||
Semester 2 | |||||
  | |||||
Elective Units (Elective units are offered subject to availability, a minimum number of student registrations and time-table constraints) | |||||
  | |||||
CCE3412 | Data Communications | 5 ECTS   |   | ||
  |
This programme of study is governed by the General Regulations for University Undergraduate Awards, 2019 and by the Bye-Laws for the award of the Bachelor of Science (Honours) - B.Sc. (Hons) - under the auspices of the Faculty of Information and Communication Technology.