This course begins with an overview of Big-O analysis, complexity classes, and the math required to complete the course. Next, we code some of the most common sorting algorithms right in the browser and determine their Big-O complexity. Finally we dive into the basics of complexity theory – polynomial vs nondeterministic polynomial time.

The majority of *Big-O Algorithms* consists of multi-choice style questions accompanied by explanatory excerpts, though there are many hands-on coding exercises as well. The coding projects in this course are all written in Go, a language becoming more and more important for backend systems engineers. If you are new to Go, take the Go Mastery course first.