Course History

See what classes I've taken.

Randomized Algorithms

COMPSCI 614 (Spring 2024)

Randomized complexity, polynomial identity testing via Schwartz–Zippel, concentration inequalities, random hashing, Rabin-Karp pattern matching, ℓ0 sampling, distributed/streaming graph sketches, approximate matrix multiplication, low-rank approximation, stochastic trace estimation, subspace embedding via Johnson-Lindenstrauss, epsilon nets, Hanson-Wright, matrix concentration bounds, spectral graph sparsification, Markov chains, Markov chain Monte Carlo methods, Metropolis-Hastings, convex relaxation, randomized rounding, probabilistic method

More Info

Algorithms for Data Science

COMPSCI 514 (Fall 2023)

Probability, hashing, exponential concentration bounds, Bloom filters, distinct elements estimation via Flajolet-Martin and HyperLogLog, frequent elements estimation via locality-sensitive hashing, randomized embedding via Johnson-Lindenstrauss, low-rank approximation via singular value decomposition and principal component analysis, spectral clustering, power and Krylov methods, (projected) gradient descent

More Info

Formal Language Theory

COMPSCI 501 (Spring 2023)

Regular languages, regular expressions, finite automata, Kleene's theorem, Myhill-Nerode theorem, context-free languages, pushdown automata, Pumping lemma, Turing machines, Church-Turing thesis, recognizability, decidability, reducibility, recursion theorem, Kolmogorov complexity, time complexity, P, NP, NP-completeness, space complexity, L, circuit complexity, NC classes, branching programs

More Info

Honors Research/Thesis

COMPSCI 499P/T (Spring/Fall 2024)

Randomized algorithms, sampling algorithms, sublinear algorithms, numerical linear algebra, eigenvector approximation, approximate spectral clustering, NumPy, SciPy

Computer Networks

COMPSCI 453 (Fall 2023)

Application layer protocols (HTTP, email, DNS), P2P protocols, video streaming, CDNs, transport layer protocols (UDP, TCP), (de)multiplexing, checksums, pipelining, flow control, congestion control, network layer protocols (IPv4, NAT, IPv6), router internals, OpenFlow forwarding, middleboxes, routing algorithms (link-state, distance-vector), routing protocols (OSPF, BGP, ICMP), software-defined networking, net neutrality, link layer protocols (ARP), MAC addresses, error detection/correction, multiple access protocols, LANs, switches

More Info

Search Engines

COMPSCI 446 (Fall 2023)

Web crawling, duplicate detection, text statistics, tokenization, stopping, stemming, internationalization, inverted indices, query processing, spellcheck, query expansion, (pseudo-)relevance feedback, boolean retrieval models, vector space retrieval models, probabilistic models (BM25), language models (QL), machine learning models, effectiveness metrics (recall, precision, F-measure, averaging, interpolation)

Compilers

COMPSCI 410 (Fall 2024)

Scanning, finite automata, parsing, top-down parsing (LL(1)), bottom-up parsing (LR(1)), intermediate representations, symbol tables, virtual addressing, procedure calls, activation records, data-flow analysis (reaching definitions, live variables, available expressions), local value numbering, instruction selection, register allocation via graph coloring

More Info

Artificial Intelligence

COMPSCI 383 (Spring 2023)

Uninformed search, heuristics, A* search, constraint satisfaction problems, local search, game trees, Markov decision processes, reinforcement learning, Bayesian networks, hidden Markov models, particle filters, machine learning, perceptrons, kernel methods, clustering, deep learning, ethics

More Info

Operating Systems

COMPSCI 377 (Fall 2022)

Processes, system calls, limited direct execution, CPU scheduling algorithms (FIFO, SJF, round robin, MLFQ), threads, concurrency primitives (locks, semaphores, conditional variables), I/O devices, file systems, virtual memory, address translation, address segmentation, free space management, page tables, TLBs

Computer Graphics

COMPSCI 373 (Spring 2023)

Displays, color, images, dithering, mosaics, convolution, Bézier curves, B-splines, Hermite splines, surfaces, Loop subdivision, transformations, projection, rasterization, visibility testing (painter's algorithm, Z-buffering, binary space partitioning trees), hierarchical scenes, shading (Lambertian, specular), ray tracing, texture mapping via perspective-correct interpolation

Databases

COMPSCI 345 (Spring 2024)

SQL (PostgreSQL), entity-relationship models and diagrams, functional dependence, normalization, indexes, transactions, concurrency, database programming, MongoDB

Web Programming

COMPSCI 326 (Spring 2024)

JavaScript, object-oriented programming, HTML, DOM surgery, CSS, single-page applications (SPAs), HTTP, event model, asynchrony, REST APIs, routing, Express, authentication

More Info

Algorithms (Honors)

COMPSCI 311H (Fall 2022)

Stable matching, runtime analysis, graph search algorithms (BFS, DFS), bipartiteness, connectivity, DAGs, topological ordering, greedy algorithms, interval scheduling, Dijkstra's algorithm, minimum spanning trees, Prim's algorith, Kruskal's algorithm, divide-and-conquer, merge sort, master theorem, dynamic programming, weighted interval scheduling, subset sum, knapsack problem, sequence alignment, network flow, Ford-Fulkerson algorithm, reductions, P, NP, NP-completeness, network algorithms, triangulation, convex hulls

More Info

Discrete Math (Honors)

COMPSCI 250H (Spring 2022)

Propositional logic, predicate logic, proof techniques, sets, relations, functions, modular arithmetic, fundamental theorem of arithmetic, Chinese remainder theorem, induction, strong induction, structural induction, BFS, DFS, uniform-cost search, A* search, game trees, regular languages, regular expressions, finite automata (DFAs, NFAs, ε-NFAs), Kleene's theorem, Myhill-Nerode theorem, Turing machines, recognizability, decidability, halting problem, formal systems, self-reference, Gödel's incompleteness theorem

More Info

Probability

COMPSCI 240 (Fall 2022)

Probability axioms, conditional probability, Bayes' rule, (conditional) independence, combinations, permutations, discrete random variables, expectation, variance, functions of random variables, continuous random variables (uniform, Bernoulli, binomial, geometric, Poisson, exponential, normal), Markov's inequality, Chebyshev's inequality, law of large numbers, central limit theorem, joint distributions, covariance, correlation, Nash equilibria, Markov chains, Bayesian networks

More Info

Computer Systems Principles

COMPSCI 230 (Spring 2022)

Binary, programming in C, system calls, file descriptors, von Neumann architecture, CPU pipelining, branch prediction, registers, x86 assembly, memory hierarchy, caching, eviction and replacement policies, processes, signals, threads, synchronization mechanisms (semaphores, mutexes), socket API

Programming Methodology

COMPSCI 220 (Spring 2023)

TypeScript, higher-order functions, closures, unit testing, property-based testing, linked lists, object-oriented design, fluent design, builder pattern, streams, observer pattern, SOLID principles, asynchronous programming, program correctness, interpreters

Programming in C

COMPSCI 198C (Fall 2021)

C basics, gcc, gdb, arrays, functions, strings, structs, enums, binary/hexadecimal, pointers, pointer arithmetic, linked lists, dynamic allocation, preprocessor, file I/O, extern/static, linking, header files, Make

Data Structures

COMPSCI 187 (Fall 2021)

Java generics, runtime complexity, linear search, binary search, quadratic sorting, merge sort, quicksort, radix sort, linked lists, stacks, queues, binary search trees, AVL trees, B-trees, heaps, treaps, priority queues, hash tables, graphs, BFS, DFS

Scientific Computing I

MATH 551 (Spring 2024)

Taylor polynomials, floating point representation, roundoff error, bisection method, fixed point iteration, Newton's method, secant method, Gaussian elimination, LU decomposition, partial pivoting, Cholesky decomposition, condition number, Jacobi iteration, Gauss-Seidel iteration, successive over-relaxation, monomial interpolation, Lagrange interpolation, Newton interpolation, divided differences, quadrature algorithms (trapezoid, Simpson, midpoint, and composite variants of each)

Linear Algebra for Applied Mathematics

MATH 545 (Fall 2024)

Gaussian elimination, LU decomposition, matrix conditioning (condition numbers), polynomial interpolation, differential equations via finite differences, orthogonality, fundamental subspaces, QR decomposition, least squares approximation, diagonalization, singular value decomposition

More Info

Abstract Algebra II

MATH 412 (Spring 2023)

Rings, fields, commutativity, zero divisors, units, ideals, direct sums, homomorphisms, isomorphism theorems, prime ideals, integral domains, maximal ideals, principal ideal domains, unique factorization domains, polynomial rings, irreducible polynomials, minimal polynomials, field extensions, finite fields, automorphisms of field extensions, Galois theory

Abstract Algebra I

MATH 411 (Fall 2022)

Binary operations, groups, powers, orders, cyclic groups, subgroups, direct products, functions, permutations, symmetric groups, alternating groups, equivalence relations, cosets, Lagrange's theorem, normal subgroups, homomorphisms, isomorphism theorems, finite abelian groups

Ordinary Differential Equations

MATH 331 (Fall 2023)

Linear first-order differential equations, separable differential equations, Euler's method, exact differential equations, second-order differential equations, Wronskian determinants, mass-spring systems, Laplace transformations, step functions, Dirac delta function, systems of differential equations, eigenvalues and eigenvectors

Linear Algebra I

MATH 235 (Spring 2022)

Systems of equations, matrices, row reduction, linear independence, linear transformations, invertible matrices, invertible matrix theorem, determinants, vector spaces, subspaces, column spaces, null spaces, coordinate systems, rank, rank-nullity theory, change of bases, eigenvalues and eigenvectors, diagonalization, inner products, orthogonality, orthogonal projections, Gram-Schmidt process

Multivariable Calculus

MATH 233 (Fall 2021)

Vectors, dot product, cross product, equations of lines and planes, vector functions, arc length, curvature, partial derivatives, chain rule, gradients, directional derivatives, extrema, Lagrange multipliers, double/area integrals, polar coordinates, triple/volume integrals, cylindrical coordinates, spherical coordinates, vector fields, line integrals, Green's theorem, curl, divergence, surface integrals, Stoke's theorem, divergence theorem

Statistics I

STAT 515 (Fall 2022)

Set theory, probability axioms, counting, random variables, discrete random variables, expectation, variance, Markov's inequality, Chebyshev's inequality, moment-generating functions, continuous random variables, joint distributions, independence, covariance, conditional expectation, functions of random variables, sampling, law of large numbers, central limit theorem

© 2024 Dominic Rutkowski