Pipelining with a fixed number of stages per instruction: hardware resource utilization, interdependencies, bypassing, waiting, delayed branches, interrupts. Instruction set architecture: basic principles of computer system design, cost, performance, frequency of instruction usage. Performance evaluation using benchmarks. Study of various instruction set types and their components. Examples of machines and their instruction sets. Memory and I/O systems: cache memory, parameters (cache size, block size, associativity), and their effect on performance. Virtual memory, address translation, protection, TLBs. Page faults and pipelining. Physical/virtual-address cache memories (index/tag), aliasing, flushing. I/O and peripheral devices.
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; the second digit denotes the area of computer science to which the course belongs.
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
Second Digit
Computer Science Area
0
Introductory - General
1
Background (Mathematics, Physics)
2
Hardware Systems
3
Networks and Telecommunication
4,5
Software Systems
6
Information Systems
7
Computer Vision and Robotics
8
Algorithms and Theory of Computation
9
Special Projects
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.