Bradfield offers courses covering core topics in computer science, as well as a variety of specialty courses.
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.
Understand the fundamentals of machine learning and modern deep learning techniques from an engineer’s perspective.
Learn the theory and mechanics behind cryptocurrencies, from the core data structures of blockchains through to practical aspects of smart contract development.
Learn the foundational ideas and technical elements of effective engineering leadership, from communication and team building through to process and organization design.
Learn what good API design looks like across a variety of program boundaries, through case studies and exercises.