Bradfield's Data Structures and Algorithms course is designed for software engineers looking to go beyond a "textbook" understanding of the topic and confront the challenges and opportunities at the intersection of computer science theory and software engineering.
We agree with decades of conventional wisdom that familiarity with algorithms and data structures is one of the most empowering aspects of a computer science education. For a software engineer, such familiarity becomes dramatically more useful when attained and applied in the context of real-world systems. For this reason, we've structured the course around an exploration of data structure and algorithms that appear in industry applications
Examples of the topics that may be covered include:
This class is oriented around hands-on exploration. While your instructor will spend some time helping you better understand certain concepts, you will mostly be translating key ideas into code and then comparing your results to open-source implementations, to build a strong intuition for the subject matter.
This course assumes general familiarity with algorithms and data structures (e.g. asymptotic analysis, sorting, graphs, recursion, dynamic programming) as would be covered in a typical introductory algorithms course or MOOC. You should also be a confident programmer in any language.
This course will next be taught by
Elliott is a tech lead at Triplebyte. Previously he was an engineer at Dropbox, where he worked on a distributed search engine. In addition, Elliott has been a mentor for the Google Summer of Code, a section leader in Stanford's intro CS course, and a tutor at Stanford's Center for Teaching and Learning.