Summaries of selected courses at ETH Zurich
If you find any mistakes, please drop me a line: [email protected]
First semester course introducing the basics. Main topics include:
- Basic properties: correctness and efficiency
- Asymptotic notation
- Divide and Conquer paradigm
- Sorting and Searching algorithms
- Data strucutres: Lists, queues, stacks, heps, (balanced) binary search trees...
- Graph algorithms: DFS, BFS, shortest paths, minimum spanning trees...
Second semester course. Concepts in Algorithms & Data Structures are expanded or rivisited, often in a slightly more theoretical/ proof oriented approach. Main topics include:
- More graph algorithms: matchings, coloring, network flows, Eulerian/ Hamilton circles, TSP...
- Introduction to discrete probability: random variables with their main properties, some notable distributions, coupon collector problem, famous inequalities and bounds (Markov, Chebishev, Chernoff).
- Randomised algorithms (Monte Carlo and Las Vegas). Examples include Min-Cuts, (short) longest paths, target shooting, hashing...
- Geometric algorithms: smallest enclosing circle, Jarvis March, convex hull...
First part of the core course on Distributed Systems. Topics include:
- Kernel
- Processes and inter-process communication
- Scheduling
- Memory Systems
- File Systems
First part of the Information Security course (core course in Theoretical Computer Science). Covered topics include:
- Basic concepts (encryption vs decryption, private vs public key cryptography, authentication...)
- Perfectly secret schemes (e.g. One Time Pad)
- Authentication alorithms and hash functions: CBC-MAC, NMAC, HMAC...
- Diffie-Hellmann and RSA algorithms
- Zero knowledge proofs
- Commitment schemes
Interdisciplinary course of the MSc Data Science Program. It covers important introductory topics in financial analysis, including:
- Forward contracts (hedging, speculation)
- Option contracts: long/ short put/ call and strategies in different scenarios.
- Pricing by arbitrage
- Market equilibria
- Choice under uncertanty
- Risk management models: Mean Variance Analysis, CAPM, consumption base CAPM
Largest course at ETH, it covers many crucial concepts in Machine Learning such as:
- Basics (regression vs classification, bias-variance trade-off, model selection, regularization, how to handle imbalanced datasets...)
- Support Vector Machines, Kernels, Polynomical regression...
- Neural Networks: backpropagation, optimizers, gradient descent, CNNs, GANs...
- Dimensionality reduction (PCA, autoencoders...)
- Miscellaneous: K-Means algorithm for clustering, Mixture models, generative models...
First year course, that covers many cool topics such as:
- Definition of thread, bad interleaving, race condition, task graph...
- Different ways to achieve mutual exclusion (locks, atomic operations, transactional memory) and their pros/cons
- Low-level implementation of a lock
- Theoretical perspective: Amdahl's and Gustafson's laws, linearizability, (sequential) consistency, consensus, parallel sorting...
- Message Passing Interface
Lecture I took during my time at Harvard. Topics include:
- Criteria to assess the reproducibility and replicability of a research
- Data Provenance
- Best practices to create a fully reproducible research project
- Computational and statistical tools
Second year course including many topics such as:
- Bit hacks
- Binary representation (two's complements, floating points...)
- Dynamic Memory allocation
- Assembly languages
- Computer Architectures
- Compilers
- Caches
- Memory
Core course. Topics include:
- Image segmentation
- Convolution with famous filters for template matching
- Fourier transform
- Optical flow
- Texture and rendering
- Physically based animation