coursework

list of courses I've taken over the years at UFMG (and a few extra ones from other places)

This post is essentially a non-exhaustive list of the courses related to CS and mathematics I’ve taken over the past few years. Introductory and intermediate courses such as Calculus, Probability, Algorithms, etc, will not be listed as they are mostly standard amongst CS programs worldwide. You can find all of the mandatory courses for the CS BSc at UFMG here.

Courses marked with “(grad)” mean that they are graduate-level courses, whereas courses without this indication are undergraduate-level. Courses marked with “(online)” mean that I’ve taken them online. Courses marked with “(todo)” are ones I’m certain I will attend in the future.

Maths courses

Courses taken at UFMG

  • Graph Theory (2022/2) (grad)
    • Introduction to graphs, matchings, connectivity, flows and cuts, planarity, vertex and edge coloring, flows and tensions over the integers and over finite fields, perfect graphs, extremal theory, ramsay theory, probabilistic method;
    • Bibliography: Prof. Coutinho’s Lecture Notes, Diestel’s Graph Theory, Bondy and Murty’s Graph Theory.
  • Real Analysis I (2023/1)
    • Sequences and series of real numbers, topology of the real line, continuity, differentiation, integration, sequences and series of functions;
    • Bibliography: Elon’s Análise Real Vol. 1, Rudin’s Principles of Mathematical Analysis.
  • Linear Algebra II (2023/1)
  • Rings and Modules (2023/2)
    • Introduction to rings, ideals and quotients of rings, ring homomorphisms, integral domains, rings of polynomials of one or more variables, introduction to modules over a ring, direct sums, module homomorphisms, noerthian and arthinian modules;
    • Bibliography: Lecture Notes by Prof. Ana Cristina Vieira, Gallian’s Contemporary Abstract Algebra.
  • Groups and Fields (2024/1)
    • Groups, normal subgroups, homomorphisms, products and quotients of groups, group actions and the orbit-stabilizer theorem, conjugacy classes and the simplicity of the alternating group, sylow theorems, abelian groups, solvable groups, free groups, field extensions, splitting fields and finite fields, normal and separable extensions, the Galois group and Galois extensions, the fundamental theorem of Galois theory, Galois correspondence and Abel-Ruffini’s theorem;
    • Bibliography: Prof. Csaba’s Lecture Notes, Gallian’s Contemporary Abstract Algebra, Martins and Tengan’s Álgebra Exemplar.
  • Introduction to Topology (2024/1)
    • Metric spaces, continuity, open and closed sets, sequences, topological spaces, bases, product and quotient topology, connectedness, compact spaces, spaces of functions;
    • Bibliography: Munkre’s Topology: A first course, Bredon’s Topology and Geometry.
  • Real Analysis II (TODO)
  • Lie Algebras (TODO)

Courses taken elsewhere

  • MIT 18.102: Introduction to Functional Analysis (2023/2) (online)
    • Introduction to banach spaces, bounded linear operators, quotient spaces, Hahn-Banach Theorem, introduction to measure theory, sigma algebras, lebesgue measurable functions and \(L^p\) spaces, introduction to Hilbert Spaces, Fourier Series, Riesz Representation Theorem, compact operators, self-adjoint operators;
    • Bibliography: Prof. Melrose’s Lecture Notes, Prof. Rodriguez’s Lecture Notes.

Computer Science courses

Courses taken at UFMG

  • Deep Learning Algorithms (2021/2) (grad)
    • Introduction to neural networks, backpropagations, optimization algorithms, stochastic gradient descent, adam optimizer, adagrad optimizer, convolutional neural networks, recurrent neural networks, transformers, applications;
    • Bibliography: Goodfellow, Bengio and Courville’s Deep Learning.
  • Information Theory (2022/1)
    • Introduction to shannon entropy, Source Coding Theorem, symbol and stream codes, communication over a noisy channel, decision theory, introduction to kolmogorov complexity and universal probability, advanced information measures;
    • Bibliography: MacKay’s Information Theory, Inference and Learning Algorithms.
  • Quantum Computing (2023/1) (grad)
    • Introduction to quantum mechanics, qubits, quantum states, quantum entanglement, quantum information, quantum circuits, Shor’s algorithm, Grover’s algorithm, contextuality, applications to graph theory. Students were asked to present a seminar and write a survey related to specific fields within QC;
    • The seminar I presented in this class can be found here
    • Bibliography: Nielsen and Chuang’s Quantum Computation and Quantum Information.
  • Advanced Seminars in Mathematical Aspects of Deep Learning (2023/2) (grad)
    • This course consists of a series of seminars in mathematical aspects of deep learning. The covered aspects are: introduction to functional analysis, approximation theorems for neural networks, exact learning, vc-dimension, information theory for neural networks, output manifold of a neural network, statistical manifolds and optimization, universal approximation theorem, spectral clustering, dimensionality reduction;
    • My seminar can be found here.
  • Semidefinite Programming on Graphs (2024/1) (grad)
    • Orthogonal representations of graphs, strong duality for linear and conic programs, Lovász’s theta function, unitary representations, Goemans-Williamson’s formulation for maxcut, perfect graphs and polytopes, gauge duality, copositive formulations for optimization problems, Hazan’s algorithm for solving SDPs;
    • I presented a seminar about gauge duality and maxcut at the end of this course, and it can be found here;
    • Bibliography: Lovász’s Graphs and Geometry, Laurent and Vallentin’s Semidefinite Optimization, Prof. Coutinho’s Lecture Notes.

Courses taken elsewhere

  • Stanford CS224N: NLP with Deep Learning (2021/1) (online)
    • Introduction to neural networks, introduction to supervised and unsupervised learning, word embeddings, recurrent neural networks, transformers;
    • Bibliography: Prof. Manning’s Lecture Notes and Online Material.