Code 501: Intro to Data Structures & Algorithms


Preparing for whiteboarding interviews that test your ability to understand and apply data structures and algorithms to a specific problem set? Need a more in-depth study of these core computer science topics? If you're new to the world of algorithms or just need a refresher, this course will train you with the most widely used CS concepts.

In this course, developers will dive into the world of data structures, Big O notation, computational thinking, whiteboarding, and much more.


At the end of this course students will:

  • Be able to correctly evaluate the efficiency of common modern algorithms.
  • Build their own data structures from scratch to solve code challenges, in the approved programming language of their choice.
  • Demonstrate the parallel whiteboarding skills of communication, coding, problem solving, and analysis to correctly solve challenges at the whiteboard.
  • Correctly identify what data structures to use for common code challenges.
  • Write common algorithms for data structures like arrays, linked lists, trees, and graphs.
  • Demonstrate the command of computer science vocabulary to be able to speak like a professional software developer.
  • Get a personalized mock interview, followed by coaching and guidance on where to focus further study time for optimal interview success.


So that everyone is starting at relatively the same point, students enrolling in this course should have:

  • Solid knowledge of how to write code.
  • Proficiency in at least one of the following languages:
    • Java
    • C, C++, or C#
    • Python
    • Javascript
    • Ruby


Each lesson will include coding exercises and a whiteboard challenge.

Data Structures

  • Arrays
  • Linked Lists
  • Stacks & Queues
  • Hash Tables
  • Trees & BSTs


  • Search
  • Sort
  • Traversals


  • Whiteboard Exercises
  • Testing
  • Resume Review
  • Mock Interview with Instructor
  • “Big O” Analysis of time and space efficiency

Learn with Stacked Modules

Concepts in each of our courses are taught using stacked modules, where a new concept is introduced in each class session, building upon what came before it. This is a challenging style that requires persistence, practice, and collaboration, but allows more concepts to be introduced over the length of the course. This method helps students learn and retain more information in a short period of time. Learn more about stacked modules »

Computer Requirements

Students are required to bring their own laptop with plenty of free space on the hard drive. Most students use Macs, simply because they are easy to work with. Others install Linux on their laptops. By the first day of class, students will need:

  • macOS, Linux, or Windows:
    • Fully updated operating system
    • Working dev environment in the approved language of your choice
  • The latest version of Google Chrome
  • A text editor, such as Visual Studio Code
  • A GitHub account

If you would like to set up your Windows machine to dual boot to Linux, check out these guides: