Problem Solving with Algorithms and Data Structures

It is foolish to answer a question that you do not understand. It is sad to work for an end that you do not desire.

George Polya

We agree with decades of conventional wisdom that familiarity with common algorithms and data structures is one of the most empowering aspects of a computer science education. This is also a great place to train one’s general problem solving abilities, which pays off in every other area of technical study.

In this course you will learn a number of important ways to model data (data structures) and answer interesting questions about them (algorithms). We are sure these will prove useful throughout your career. More importantly however, you will develop a stronger ability to understand, break down and solve novel problems, whether inventing your own techniques or repurposing those which we teach you.

Classes

  1. Technical Problem Solving and Analysis
  2. Data Structure Implementation
  3. Divide and Conquer, Sorting and Searching
  4. Graph Search
  5. Weighted Graphs, Dijkstra’s Algorithm and A*
  6. Backtracking and Constraint Satisfaction
  7. Dynamic Programming
  8. Rapid Fire Problem Solving

Projects and exercises

This class is oriented around hands-on problem solving. While your instructor will spend some time helping you better understand certain concepts, you will mostly be solving small problems on the whiteboard and by writing code in your language of choice, to build a better intuition for the subject matter. You will also be given practice problems to work on between classes.

Assumed knowledge

This course assumes confident programming ability in any language.

Schedule and price

Problem Solving with Algorithms and Data Structures will next run 5:30pm-8:00pm Wednesdays and 10:00am-12:30pm Saturdays, 24 Oct - 17 Nov 2018. The total price is $1800.

Apply now Still have questions? Contact us.

I thought this class would just be a refresher on concepts I had already learned, but it was so much more! To really understand how data structures and algorithms work down to caching and memory constraints made these concepts so much more applicable to my every day work. Tyler did an amazing job outlining the considerations we should make when approaching different types of problems, and I finished the course feeling extremely confident I could transfer these skills to any problem.

Martine Ehrlich, Software Engineer at FutureAdvisor Martine Ehrlich, Software Engineer at FutureAdvisor

Bradfield’s algorithms course greatly exceeded my expectations. I feel like I came away with an entire new mental framework for understanding, modeling, and solving difficult things in computer science. Strong recommend!

Ben Goldhaber, Application Developer at Google Ben Goldhaber, Application Developer at Google

Yes, this course will help you get better at whiteboarding interviews, but that’s not the point. This is a life skills course! I learnt how to explore, model, and tackle problems in the real world. Take this course if you want to improve your mental models and become one with the age-old problem solving process: understand, plan, execute, and review.

Charlie Harrington, Software Engineer at LendUp Charlie Harrington, Software Engineer at LendUp

More so than any specific algorithm or data structure, this class ingrained a problem solving process in me that I now take with me wherever I go.

Tiger Shen, Software Engineer at Braintree Tiger Shen, Software Engineer at Braintree