CS 323: Algorithms
This is an advanced course in computer science, studying different ways of processing data using various structures and algorithms. This course covers data structures such as heaps, trees, graphs as well as their applications in the construction of efficient algorithms for select, sort, balance, match, etc. Advanced topics such as dynamic programming, network flow, and linear programming are also discussed.
Course Website (Piazza)
CS 584: Advanced Computer Systems
This course covers advanced topics as well as seminal recent research papers across topics in distributed computer systems, with a focus on managing big data. Topics may include communication paradigms, process management, naming, synchronization, consistency and replication, fault tolerance, storage architectures, high-performance file systems, data provenance, and next-generation storage devices and architectures, including those at Google, Yahoo, and Amazon. Throughout the course, we will discuss the tradeoffs made between performance, reliability, scalability, robustness, and security.