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.


Contact

The University of British Columbia
Department of Computer Science
2366 Main Mall
ICICS Building, Office 341
Vancouver, BC V6T 1Z4
Canada

achreto [at] cs.ubc.ca
+1 604 827 2446