Teaching

Courses

CS221 Computer Organization and Assembly Language Programming

This course introduces students to the basic concepts and methods of computer organization, which are fundamental for understanding how computers work. Students study the trends of various computer technology parameters. They learn about the concept of instruction set architecture, and practice programming in different instruction sets and assembly languages. They also learn how to design a pipelined datapath and study the basic principles of memory hierarchy. The course includes lab sessions and homework assignments that give students practical experience in developing and evaluating computing systems.

CS222 Operating Systems

This course teaches the basic principles that underpin the design and operation of modern operating systems, including concurrency, synchronization, and resource management (CPU, memory, I/O). The course includes lab sessions and homework assignments that give students practical experience in systems programming.

Spring 2024

CS325 Parallel Processing

This course introduces students to the concepts and skills of parallelism and parallel programming, which are essential for developing high-performance and scalable applications. Students learn how to exploit the parallel hardware features of modern processors, such as multicore, vector, and graphics processing units (GPUs) architectures. They also learn how to use various parallel programming models and techniques, such as implicit and explicit threading, shared memory and synchronization, data-parallelism, and single instruction multiple thread (SIMT). The course provides students with hands-on experience in parallel programming through lab sessions and assignments.

Spring 2023, Spring 2021, Spring 2020

CS452 Datacenter Computing

This course introduces students to the key principles and concepts that underlie a modern data center. Students conduct a vertical study of datacenter technology covering the entire system stack, including hardware architectures, systems software, and application programming frameworks. They also learn about cross-cutting concerns such as total cost of ownership, service level objectives, reliability and availability, energy efficiency, and privacy and security. The course includes lab sessions and programming assignments that give students practical experience in developing data center scale programs using state-of-the-art tools and platforms.

Spring 2024 Fall 2022

CS605 Advanced Computer Architecture

This course explores advanced topics in computer architecture. Students learn current methodology for performance evaluation and comparison of computer systems, basic and advanced concepts in the organization of modern microprocessors, and current trends in the computer architecture area. Also, with the use of different tools, presented in the course, students perform research projects in certain computer architecture topics.

Spring 2022

Theses

We offer Bachelor’s and Master’s theses for computer science students at the University of Cyprus. All topics are close to our ongoing research, giving you the opportunity to work on cutting-edge topics and to gain a deeper understanding of the field and our work. If you want to learn more about our currently available topics, please send an email to hvolos01@ucy.ac.cy. Please enclose in your mail your research interests and experiences so far. Knowing about your favorite courses, projects, and personal experiences helps us to find the right thesis topic for you.