The purpose of this course is to provide a substantive understanding of fundamental concepts related to software systems. Upon successful completion of the course, students will have an understanding of three key aspects of such systems:
● The machine model as seen by the programmer during execution and its relationship to the programming language.
● The design and implementation of programs and the corresponding mechanisms provided by programming languages to control the program execution environment.
● The tools that help us write and execute correct programs. The course primarily uses the C language and the Unix operating system environment.
Learning Outcomes
Knowledge:
What is the connection between programming language features and the generated program in unmanaged languages (by example of C).
How programs execute on actual systems.
How program memory evolves during execution.
What tools can assist with systems programming.
Understanding:
What is the need for different language features, their cost, and benefits.
How to track and resolve problems.
Application:
How to design (systems) programs that interact directly with the underlying system (without an extensive runtime system).
Analysis:
How to choose the appropriate programming approach for a new system.
Synthesis:
Designing and implementing complex systems that involve systems software components.
Evaluation:
The cost and benefits of different approaches for designing systems software components.
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; 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.