The courses that make up the Undergraduate Curriculum are classified into the following areas or components: Theory, Computer Systems, Problem Solving, and Applications.
The area of Theory covers the basics of theory and models of computation, the design and analysis of algorithms and in general, intends to cultivate a typical way of thinking, organizing and processing information. It also introduces Mathematical Logic and the role it plays as Computational Computing. The necessary Discrete Mathematics is taught through the relevant courses. Moreover, students attend courses offered by the Department of Mathematics and Statistics, which enable them to further develop the ability to abstract and formal meditation and acquire other useful mathematical abilities.
The area of Computer Systems deals with system hardware and software and develops the concepts of parallel and embedded systems. It includes basic principles of computer organization and architecture, operating systems, design and implementation of programming languages, microprocessor systems, data transfer, networks, distributed systems, parallels and new architectures.
The area of Problem Solving aims to develop algorithmic thinking with an emphasis on programming principles and the design of algorithms. The acquisition of competence in the use of various programming languages is, of course, a key objective of this area. In addition, students are taught various programming models (procedural or imperative, object-oriented, logical). The elective courses in this area cover advanced solving techniques problems based on parallelism and simultaneity. This area facilitates an understanding of the techniques required to design, implement, and evaluate solutions to relatively small but important problems. These techniques are used in the context of a broader methodology needed to solve realistic problems. This topic is also covered in the area of Applications through the analysis of systems and design techniques.
The Applications area intends to combine the knowledge and skills gained from courses in other areas, in order to develop useful applications to solve realistic problems. Important technological constructs, such as databases and knowledge bases, graphics and user-machine interface systems, are considered as applications in their own right, but also as tools for the development of higher-level applications. New software technology methodologies are examined that cover all stages of designing, developing, and maintaining high-quality applications. These methodologies are further used in the context of Professional Software Technology Practice. The factors that are important for the successful outcome of a project are also assessed, using current applications as examples. Finally, the main social and ethical issues regarding the relationship between Computer Science applications and society as a whole are raised and discussed.
The Undergraduate Curriculum includes Compulsory Courses that form its core, Restricted Elective Courses, which are offered by the Department and allow the student to focus on a specific specialization of Computer Science or to acquire knowledge that covers a wider scientific spectrum and Free Choice Courses, which are offered by other Departments. More specifically, the Undergraduate Curriculum includes a set of compulsory courses of the Department of Computer Science and compulsory courses from other Departments of the University of Cyprus (Compulsory Courses), 2 English language courses, 4 Free Options (Free Choice Courses), 5 Limited Options (Restricted Elective Courses), and a Diploma Project.
As of the academic year 2016/2017, the Department of Computer Science offers its students the following specializations:
- Computer Networks
- Fundamentals of Computer Science
- Big Data and Internet Computing
- Real World Computation
- Artificial Intelligence
- Software Engineering
- Digital and Embedded Systems
Each specialization is related to a set of courses. These specializations aim to give students the opportunity and motivation to focus, through the limited options they will choose and through their diploma project, on a specific area of Computer Science. In case a student chooses at least 3 limited options from the set of limited options of a specialization and prepares a Diploma Project from that specialization under the supervision of a member of the academic staff of the Department, then this specialization will be reflected in his/her analytical score. Requests for the recognition of specialization will be submitted in a special form to the Undergraduate Studies Committee after the additions of the students' last semester of studies. The Department is not obliged to offer, for the purposes of serving specializations, all Restricted Elective courses, nor will it change the limitations governing the audience sizes of the limited options and/or the subject selection process for the diploma thesis.
Some courses are a prerequisite for successful attendance of other courses. The dependencies between the lessons are shown here.