Bradfield offers courses covering core topics in computer science
Understand how a microprocessor works from logic gates up, and the interaction between hardware, user code and the operating system kernel.
Understand the protocols and technology enabling the Internet. Covers all layers of the OSI model, with a particular focus on understanding IP, TCP, UDP and common application layer protocols.
Go beyond a "textbook" understanding of the topic to see how data structures and algorithms work in real-world systems.
Learn about common algorithms, data structures, and techniques for algorithmic problem solving. This course is an accelerated view of what is commonly covered in an undergraduate algorithms course.
Learn the math that’s useful in software engineering, including combinatorics and probability theory, set theory, graphs, number theory for cryptography and basic linear algebra.
Learn about modern and historical innovations in data representation, and understand the architectures of both traditional relational DBMSs and modern distributed data stores.
Learn about languages generally, rather than one at a time. Covers compiler and interpreter architectures, and the key similarities between various languages and their implementations.
Learn about the fundamental problems solved by modern operating systems, and the decisions faced by operating system designers.
Understand common patterns in distributed systems design, and the tradeoffs we are forced to make between consistency and availability in the context of distributed data and computation.