I am doing my bachelors at the University of Michigan - Ann Arbor. Below are some courses that I have found useful and some projects I completed while taking those classes that I felt were valuable.
Some other classes I have taken: Machine Learning, Discrete Math, Computer Architecture, Computer Security
Class
Projects
EECS 498, Formal Verification of Distributed Systems
Distributed Sharded Key-Value Store: A programmatic proof in Dafny of a protocol for implementing a Distributed Sharded Key-Value store.
EECS 485, Web Dev
Map Reduce: A framework for processing and generating large data sets with a distributed algorithm on a cluster. Implemented with Python multiprocessing.
EECS 482, Operating Systems
Thread Library: A kernel-level library for managing threads and synchronization.
Virtual Memory Pager: A component that manages a virtual memory system, handling paging and memory allocation. Supports file and swap backed pages.
Multithreaded File System: A concurrent file system following the UNIX inode model and hand-over-hand locking.
EECS 390, Programming Paradigms
Meta-Circular Evaluator: A Scheme interpreter written in Scheme.
uC Transpiler / Compiler: A transpiler for uC - a small programming language - to C++.