The undergraduate studies program in Computer Science consists of core courses, which are compulsory, two groups of elective courses, of which the student must pass a prescribed number, and other courses to be taken at the student's discretion. The elective courses allow the student’s specialization within a particular branch of Computer Science.
The weight of each course is measured in Course Credits (CC). The semester work load of a student is the sum of the CCs of the courses in which he/she has enrolled during that semester. The recommended course work-load is approximately nineteen (19) CCs per semester The maximum allowable load is thirty five (35) CCs per semester and sixty five (65) CCs per academic year. In addition to this maximum allowable load, a student is allowed to enroll in one (1) additional course per semester for the purpose of improving his/her grade in that course (presuming that he/she has already passed that course).
For each course in the undergraduate studies program, we list below the year of studies to which it normally corresponds, the area to which it belongs, its weight in course credits, whether it is a core or elective course, as well as its prerequisite courses that a student must have passed in order to be able to enroll in and attend that course.
As the vast majority of the computer science literature is in the English language, technical fluency in that language is an absolute necessity for studying computer science. The students should take the corresponding required English courses during the first two years of their studies (unless of course they already know English to the point where they can pass the corresponding examinations without attending the courses), given that during the 3rd and 4th years of study English literature is widely used.