Skip to content

soelmicheletti/eth-summaries

Repository files navigation

ETH-Summaries

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...

Alt text

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...

Alt text

First part of the core course on Distributed Systems. Topics include:

  • Kernel
  • Processes and inter-process communication
  • Scheduling
  • Memory Systems
  • File Systems

Alt text

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

Alt text

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

Alt text

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...

Alt text

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

Alt text

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

Alt text

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

Alt text

Core course. Topics include:

  • Image segmentation
  • Convolution with famous filters for template matching
  • Fourier transform
  • Optical flow
  • Texture and rendering
  • Physically based animation

Alt text