Description of operating system procedures and their implementation: multiprogramming, process communication (synchronization, semaphores), context switching, process scheduling, system calls, interrupt handlers, deadlock, device independent I/O, device drivers, disk scheduling, memory management, virtual memory, paging algorithms, file systems, distributed operating systems. Laboratory exercises in modifying and augmenting a simple operating system.
Learning Outcomes
Knowledge: Having attended and succeeded in the course, the student is able to describe in detail the basic parts and functions of an Operating System, recognize the importance of individual parts, and select the appropriate techniques needed for scheduling or other operation of LS. Understanding: Having attended and succeeded in the course, the student is able to understand and explain the necessity and appreciate the use of the various parts of an OS. For example, it will be able to understand the components of an OS's memory management. Application: Having attended and succeeded in the course, the student is able to use his/her knowledge to solve new computational problems. For example he/she will be able to implement process synchronization constructs (such as semaphores) to solve complex synchronization problems. At the same time, knowing a solution in one OS (eg Linux) will be able to implement it in another OS (eg Windows). Analysis: Having attended and succeeded in the course, the student is able to analyze the operation of a program and its interaction with the various parts of an OS. In this way, the student will be able to analyze the effect of each subsystem on the operation of the OS. Synthesis: Having attended and succeeded in the course, the student is able to combine individual algorithms and functions to solve complex problems - such as process synchronization problems. Evaluation: Having attended and succeeded in the course, the student is able to compare the suitability of alternative solutions and algorithms for AI. For example the student will be able to choose which page replacement algorithm would be best in each case.
Student Performance Evaluation
Specific details on grading can be found on the course’ s website
The courses of the Computer Science Department are designated with the letters "CS" followed by three decimal digits. The first digit denotes the year of study during which students are expected to enroll in the course.
First Digit
Advised Year of Enrollment
1,2,3,4
First, Second, Third and Fourth year
5,6
Graduate courses
7,8,9
Specialized topics
Code
Computer Science Area
A1
Computer architecture and microelectronics
A2
Computer systems, parallel and high performance computing
A3
Computer security and distributed systems
A4
Computer networks, mobile computing, and telecommunications
B1
Algorithms and systems analysis
B2
Databases, information and knowledge management
B3
Software engineering and programming languages
B4
Artificial Intelligence and machine learning
C1
Signal processing and analysis
C2
Computer vision and robotics
C3
Computer graphics and human-computer interaction
C4
Βioinformatics, medical informatics, and computational neuroscience
The following pages contain tables (one for each course category) summarizing courses offered by the undergraduate studies program of the Computer Science Department at the University of Crete. Courses with code-names beginning with "MATH" or "PHYS" are taught by the Mathematics Department and Physics Department respectively at the University of Crete.