Computer systems, parallel and high performance computing
Description
The purpose of this course is to provide an understanding of issues in the design and implementation of embedded systems as well as related operating system and virtualization support. Topics include:
Communication and peripherals: interrupt controllers, LCDs, sound, serial interfaces, busses
Interrupts and interrupt handling
NAND FLASH and memory technologies
Concurrency, real-time characteristics
Operating systems support
Kernel drivers, memory management, network and storage I/O in the kernel
System virtualization: processor, memory, I/O
CS428 is a lab-oriented course with hands-on assignments that guide you through working with embedded processors and the Linux operating system. You will prototype working solutions in real systems and you will go through the steps of real system design and implementation. This year we will use the Lego NXT & Arduino platforms, as well as QEMU and ARM-based, Linux-capable boards for the assignments. The course will also include in-class sessions with low-level operating systems tweaking, driver development, and virtualization mechanisms using Linux.
Learning Outcomes:
1. Knowledge:
Communication and peripherals: interrupt controllers, LCDs, sound, serial interfaces, busses
Interrupts and interrupt handling
NAND FLASH and memory technologies
Concurrency, real-time characteristics
Operating systems support
Kernel drivers, memory management, network and storage I/O in the kernel
System virtualization: processor, memory, I/O
2. Understanding:
How embedded systems and their peripherals work.
How to design, develop, and debug programs for embedded systems.
3. Application:
How to design (embedded systems) programs that interact directly with the underlying system (without an extensive runtime system).
4. Analysis:
How to choose the appropriate approach for designing the software stack in a new embedded system.
5. Synthesis:
Designing and implementing complex systems that involve systems software components.
6. Evaluation:
The cost and benefits of different approaches for designing embedded 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.
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.