Teaching

University of British Columbia

Winter Term 1 2023 - Graduate Operating Systems

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.


Winter Term 1 2022 - Operating Systems Design and Implementation

Link: CPSC436A - 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.


Winter Term 2 2021 - Operating Systems Design and Implementation

Link: CPSC436A/CPSC538A - 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.


Winter Term 2 2020 - Graduate Operating Systems

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.


ETH Zurich

Spring 2020 - Advanced Operating Systems

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.


Autumn 2019 - Systems Programming and Computer Architecture

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.


Spring 2019 - Application-Oriented Programming

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.


Spring 2019 - Advanced Operating Systems

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.


Autumn 2018 - Systems Programming and Computer Architecture

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.


Spring 2018 - Application-Oriented Programming

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.


Autumn 2017 - Advanced Operating Systems

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.


Autumn 2017 - Systems Programming and Computer Architecture

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.


Spring 2017 - Introductory Programming in MATLAB

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.


Autumn 2016 - Systems Programming and Computer Architecture

Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe

Introduction to computer architecture and system programming: Instruction sets, storage hiearchies, 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.


Spring 2016 - Introductory Programming in MATLAB

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.


Spring 2015 - Parallel Programming

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.


Autumn 2014 - Systems Programming and Computer Architecture

Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe

Introduction to computer architecture and system programming: Instruction sets, storage hiearchies, 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.


Spring 2014 - Data Modelling and Databases

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)


Autumn 2013 - Systems Programming and Computer Architecture

Link: 252-0061-00L - Teaching Assistant - Prof. Timothy Roscoe

Introduction to computer architecture and system programming: Instruction sets, storage hiearchies, 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.


Spring 2013 - Operating Systems and Networks

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.


Contact

Reto Achermann

achreto [at] cs.ubc.ca

The University of British Columbia
Dept. of Computer Science
201-2366 Main Mall
Vancouver, BC V6T 1Z4
Canada