![logo](/static/images/ubc.jpg)
![logo](/static/images/systopia.png)
Reto Achermann
Assistant Professor
Systopia Lab
Department of Computer Science
University of British Columbia
Teaching: Complete List of Courses Taught
As Lecturer
2024 W2 - Graduate Operating Systems
University of British Columbia - CPSC 508
Link: CPSC 508 - Lecturer - Prof. Reto Achermann
Introduction to operating systems research (breath course). After completing this course, you should be able to: Read systems papers critically; Explain how modern systems research fits into the historical context; Identify open research problems in systems; Write constructive paper reviews; Design a research project to address an open research problem; Carry out a research project and present results both orally and in writing.
2024 W1 - Computer Hardware and Operating Systems
University of British Columbia - CPSC 313
Link: CPSC 313 - Lecturer - Prof. Reto Achermann and Prof. Steve Wolfman
Instruction sets, pipelining, code optimization, caching, virtual memory management, dynamically linked libraries, exception processing, execution time of programs.
2023 W1 - Graduate Operating Systems
University of British Columbia - CPSC 508
Link: CPSC 508 - Lecturer - Dr. Reto Achermann
Introduction to operating systems research (breath course). After completing this course, you should be able to: Read systems papers critically; Explain how modern systems research fits into the historical context; Identify open research problems in systems; Write constructive paper reviews; Design a research project to address an open research problem; Carry out a research project and present results both orally and in writing.
2022 W1 - Operating Systems Design and Implementation
University of British Columbia - CPSC 436A
Link: CPSC 436A - Lecturer - Dr. Reto Achermann and Prof. Thomas Pasquier
The course covers the design and implementation of various operating systems concepts such as memory management, scheduling, inter-process communication, inter-core synchronization, protection, device drivers, file systems, and networking. Moreover, the course pays particular attention to the design of system software architectures that differ from the traditional monolithic arrangements of Unix/Linux and Windows. During the course, the students will work together in small groups to build a fairly complete operating system.
2021 W2 - Operating Systems Design and Implementation
University of British Columbia - CPSC 436A
Link: CPSC 436A - Lecturer - Dr. Reto Achermann
The course covers the design and implementation of various operating systems concepts such as memory management, scheduling, inter-process communication, inter-core synchronization, protection, device drivers, file systems, and networking. Moreover, the course pays particular attention to the design of system software architectures that differ from the traditional monolithic arrangements of Unix/Linux and Windows. During the course, the students will work together in small groups to build a fairly complete operating system.
2020 W2 - Graduate Operating Systems
University of British Columbia - CPSC 508
Link: CPSC 508 - Lecturer - Prof. Margo Seltzer and Dr. Reto Achermann
Introduction to operating systems research (breath course). After completing this course, you should be able to: Read systems papers critically; Explain how modern systems research fits into the historical context; Identify open research problems in systems; Write constructive paper reviews; Design a research project to address an open research problem; Carry out a research project and present results both orally and in writing.
As Teaching Assistant
2020 Spring - Advanced Operating Systems
ETH Zurich - 263-3800-00L
Link: 263-3800-00L - Teaching Assistant - Prof. Timothy Roscoe
This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems.
2019 Spring - Application-Oriented Programming
ETH Zurich - 252-0840-02L
Link: 252-0840-02L - Teaching Assistant - Dr. Lukas Fässler
This course provides important basic concepts for interdisciplinary programming projects. The programming language is Python and Matlab.
2019 Spring - Advanced Operating Systems
ETH Zurich - 263-3800-00L
Link: 263-3800-00L - Teaching Assistant - Prof. Timothy Roscoe
This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems.
2019 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to systems programming. C and assembly language, floating point arithmetic, basic translation of C into assembler, compiler optimizations, manual optimizations. How hardware features like superscalar architecture, exceptions and interrupts, caches, virtual memory, multicore processors, devices, and memory systems function and affect correctness, performance, and optimization.
2018 Spring - Application-Oriented Programming
ETH Zurich - 252-0840-02L
Link: 252-0840-02L - Teaching Assistant - Dr. Lukas Fässler
This course provides important basic concepts for interdisciplinary programming projects. The programming language is Python and Matlab.
2018 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to systems programming. C and assembly language, floating point arithmetic, basic translation of C into assembler, compiler optimizations, manual optimizations. How hardware features like superscalar architecture, exceptions and interrupts, caches, virtual memory, multicore processors, devices, and memory systems function and affect correctness, performance, and optimization.
2017 Spring - Introductory Programming in MATLAB
ETH Zurich - 252-0840-01L
Link: 252-0840-01L - Teaching Assistant - Dr. Tomas Hruz
The lecture 'Introductory Programming in MATLAB' provides a basic knowledge about imperative programming. Additionally, the students learn how to apply imperative programming in modeling of domain specific systems.
2017 Autumn - Advanced Operating Systems
ETH Zurich - 263-3800-00L
Link: 263-3800-00L - Teaching Assistant - Prof. Timothy Roscoe
This course is intended to give students a thorough understanding of design and implementation issues for modern operating systems, with a particular emphasis on the challenges of modern hardware features. We will cover key design issues in implementing an operating system, such as memory management, scheduling, protection, inter-process communication, device drivers, and file systems.
2017 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to systems programming. C and assembly language, floating point arithmetic, basic translation of C into assembler, compiler optimizations, manual optimizations. How hardware features like superscalar architecture, exceptions and interrupts, caches, virtual memory, multicore processors, devices, and memory systems function and affect correctness, performance, and optimization.
2016 Spring - Introductory Programming in MATLAB
ETH Zurich - 252-0840-01L
Link: 252-0840-01L - Teaching Assistant - Dr. Tomas Hruz
The lecture 'Introductory Programming in MATLAB' provides a basic knowledge about imperative programming. Additionally, the students learn how to apply imperative programming in modeling of domain specific systems.
2016 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to computer architecture and system programming: Instruction sets, storage hierarchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered.
2015 Spring - Parallel Programming
ETH Zurich - 252-0024-00L
Link: 252-0024-00L - Teaching Assistant - Prof. Otmar Hilliges
Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness.
2014 Spring - Data Modelling and Databases
ETH Zurich - 252-0063-00L
Link: 252-0063-00L - Teaching Assistant - Prof. Donald Kossmann
Data modelling (ER and UML class diagrams), relational data model, relational design theory (normal forms), SQL, database integrity, security, transactions and data warehousing (OLAP)
2014 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to computer architecture and system programming: Instruction sets, storage hierarchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered.
2013 Spring - Operating Systems and Networks
ETH Zurich - 252-0062-00L
Link: 252-0062-00L - Teaching Assistant - Prof. Donald Kossmann
The course is intended as an introduction to operating systems and computer networking for computer scientists. Students will get a comprehensive overview of the key protocols and the general architecture of the Internet as well as basic principles of designing operating systems. The students will also have a chance to acquire hands-on experience in programming different aspects of operating systems and computer networks.
2013 Autumn - Systems Programming and Computer Architecture
ETH Zurich - 252-0061-00L
Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe
Introduction to computer architecture and system programming: Instruction sets, storage hierarchies, runtime structures with an emphasis on computers as engines for the execution of compiled programs. Interaction between system software and the hardware. Problems that arise from the final respresentation, performance measurement and tuning, and program portability issues are covered.