Surviving UMich CS Major
A compilation of tips, warnings, and strategies for navigating undergraduate Computer Science (EECS) coursework at the University of Michigan. Compiled by an alum who lived to tell the tale.
Programming & Intro Data Structures
Basic programming concepts, OOP, recursion, dynamic memory management, functional programming pointers, and object lifetimes in C++.
Data Structures & Algorithms
The gateway course for CS. Explores complexity analysis, sorting, search algorithms, stacks, queues, trees, graphs, and dynamic programming.
Intro to Computer Organization
Bridging hardware and software. Covers assembly code, machine code instruction sets, CPU datapath pipelines, caches, and virtual memory.
Foundations of Computer Science
Theoretical boundaries of computing. Explores automata theory, Turing machines, decidability, NP-completeness, and basic cryptography.
Introduction to Operating Systems
Multithreading, concurrency control (locks, condition variables), virtual memory systems, physical memory mapping, and file system layouts.
Web Systems
Modern web architectures. Includes client-server setups, REST APIs, templates, relational databases, security, search engineindexing, and MapReduce.