Data Structures and Algorithms

  11-12 graders

  Credits awarded on transcript  

  Pre-calculus completed with B- or better

  UC A-G approved for [C] Mathematics credits

  2 hours per day (summer)  

  8-10 students per class

  4 days per week 2, 4, or 6 weeks

  749 per student, per week  

  Self paced instructor-guided  

  Personalized 1-1 support

  Office hours 1 hour per week

  2099 per student, per semester  

  90 minutes per class

  4-8 students per class

  Twice per week over 36 weeks

  2099 per student, per semester  

The Data Structures and Algorithms course helps students build their understanding of the basics of data structures and how algorithms are implemented in high-level programming languages. We will explore common algorithms to the practice problems programmers face every day. These practical applications include sorting and searching, divide and conquer, greedy algorithms, and dynamic programming. A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. This course goes deeper into the theory about how to break a large problem into pieces and solve them recursively.

This course provides students with practice problems that will allow them to solidify their understanding of the new data structures and algorithms. During every unit students will be given challenges where they need to deconstruct a series of open-ended problems into smaller components (inputs, outputs, series of functions). Students will also get a chance to build larger programs through projects that leverage the new ideas and methods that they learn in each unit. By the end of the course students will be able to identify which data structure and algorithm best fits their programming needs.

This is one of the most advanced courses at 2Sigma School, and students are required to have taken an advanced programming course such as AP Computer Science A, or Advanced Computer Science with Python before enrolling in this course. It is also recommended that students have completed Precalculus as there are many connections to math problem solving throughout the course.


   University of California A-G approved for [C] Mathematics credits.      NCAA Approved.

Course Outline

    hide details
  1. Why data structures?
    There are numerous measures of code quality, but one that shows up more and more is code efficiency. Data is a broad term that refers to all types of information and is present in every program. In this unit students will learn how data structures can help write efficient code and their relationship to the processing logic known as algorithms.
  2. Analysis of Algorithms
    An algorithm refers to the set of instructions given to a computer to achieve a particular task. In this unit we will explore the different ways to measure the performance of algorithms. This includes time complexity, space complexity, asymptotic analysis and notation methods.
  3. Recursion
    Recursion is the process of defining a problem, or the solution to the problem, in terms of a simpler version of itself. This unintuitive algorithm is often one of the most efficient ways to solve complex problems. In this unit students will learn how recursion works, when it helps them and why it can be a powerful abstraction.
  4. Searching and Sorting Algorithms
    Searching and sorting are two of the most important ideas in computer science that underlies entire areas of the field and current research. Students will learn how to define a search space, find a solution within the space, and understand time and resource complexity for various search and sort algorithms.
  5. Node-Based Data Structures
    Students will learn how data structures such as Linked Lists address the limitations of fixed memory structures such as arrays and different variants of linked lists that are well-suited to the domain, from single-linked, double-linked, to circular lists. Students will write algorithms to manipulate nodes within these lists.
  6. Stacks, Queues, and DEques
    Students will learn simple abstractions of stacks, queues, and double-ended queues that facilitate operations such as last-in-first-out and first-in-first-out. These structures are foundational in how machine instructions and operating systems operate.
  7. Trees, Binary Trees, Binary Search Trees
    Trees are data structures that make it possible to represent data that grows exponentially. Students will learn common types of trees and how arranging data in trees can help provide efficient lookup operations for large data sets.
  8. Priority Queues, Heaps, and Graphs
    Students will learn data structures that form the cornerstone of advanced optimization use cases in most computational fields. In addition to learning basic properties and operations of these graphs, priority queues, and heaps, students will learn some key optimization algorithms that are enabled by these data structures.
  9. Capstone Project
    In the final unit students will put all of their data structures and algorithms knowledge into action. They will identify a problem area of interest that can be solved effectively and efficiently using data structures and algorithms covered in this course. Students will build a large scale programming project from scratch that will serve as their portfolio as part of this capstone project.

Summer of Code
    see detailed summer schedule

To take any of our courses, students must be familiar with opening a browser, navigating to a website, and joining a Zoom meeting.

Students must have a quiet place to study and participate in the class for the duration of the class. Some students may prefer a headset to isolate any background noise and help them focus in class.

Most course lectures and content may be viewed on mobile devices but programming assignments and certain quizzes require a desktop or laptop computer.

Students are required to have their camera on at all times during the class, unless they have an explicit exception approved by their parent or legal guardian.

Our technology requirements are similar to that of most Online classes.

A desktop or laptop computer running Windows (PC), Mac OS (Mac), or Chrome OS (Chromebook).
Students must be able to run a Zoom Client.
A working microphone, speaker, webcam, and an external mouse.
A high-speed internet connection with at least 15mbps download speed (check your Internet speed).

This course includes several timed tests where you will be asked to complete a given number of questions within a 60-90 minutes limit. These tests are designed to keep you competitively prepared but you can take them as often as you like. We do not proctor these exams, neither do we require that you install special lockdown browser.

In today's environment, when students have access to multiple devices, most attempts to avoid cheating in online exams are symbolic. Our exams are meant to encourage you to learn and push yourself using an honor system.

We do assign a grade at the end of the year based on a number of criteria which includes class participation, completion of assignments, and performance in the tests. We do not reveal the exact formula to minimize students' incentive to optimize for a higher grade.

We believe that your grade in the course should reflect how well you have learnt the skills, and a couple of timed-tests, while traditional, aren't the best way to evaluate your learning.

FAQ

Your questions. Our answers.

2Sigma School offers three flexible enrollment formats so students can learn in the way that best fits their schedule:

Independent Study is our most popular format and is offered year round. An assigned instructor guides the student through the course with weekly 1-on-1 office hours for teaching new concepts, reviewing work, and giving personalized feedback. At a standard pace, students complete one semester in about 18 weeks or the full course in 36 weeks. Students who want to move faster can set an accelerated goal and their instructor will provide additional office hours to match. This format works well for students with busy schedules or those completing coursework started in another format.

Summer of Code is our accelerated summer program. Students meet 2 hours per day, 4 days per week in an intensive format that allows them to complete a full-year course in as few as 6 weeks. This is ideal for students who want to earn credits quickly or get ahead before the school year starts. It requires a significant time commitment and is best suited for students who can dedicate themselves fully to the program during the summer.

Live Classes are our year-round, cohort-based format. Students attend live online sessions (90 minutes, twice per week) over 36 weeks in small groups of 10–14 students. This format provides consistent interaction with instructors and peers throughout the academic year, with time between sessions to work on projects and assignments. These classes are subject to cohort formation and may have limited availability.

Independent Study offers the most flexibility. During the application process, students provide their availability and we match them with an instructor whose schedule aligns. Sessions are then scheduled directly between the student and their instructor.

Summer of Code and Live Classes are cohort-based. Students indicate all of their available time slots when applying, and we form cohorts based on the collective availability of enrolled students. This approach gives families flexibility while ensuring each cohort has a consistent meeting time that works for everyone in the group.

As an accredited institution, 2Sigma School can award high school credits for our courses on a transcript, just like your child's regular school. Some high schools may accept these credits as part of their graduation requirements, and even use them to calculate your child's GPA. This policy varies by school, so we recommend you check with your child's school counselor.

Regardless of your local school's decision, students can submit our transcript to colleges as college applications allow additional transcripts to be submitted. This can help your child stand out in the college application process.

We are accredited by Cognia and most of our courses are not only NCAA approved, they are also approved for A-G credits by the University of California. Our AP courses are approved by the College Board.

In addition, 2Sigma School is an approved online course provider in multiple states, including California, Washington, Oklahoma, and Florida. See our accreditations page for more details.

Our instructors vary by course as well as by availability. Some of our instructors are high school teachers with deep expertise in computer science, teaching credentials in multiple states, and years of classroom experience. Others are professionals with an undergraduate degree in Computer Science with deep experience in the subject matter and a demonstrated ability and aptitude to teach teenage students.

All of our instructors undergo a rigorous screening process for content and pedagogical expertise. They are background checked as per local and state regulations, and are trained in online instruction and classroom management.

Students need a desktop or laptop computer running Windows (PC), Mac OS (Mac), or Chrome OS (Chromebook), along with a working microphone, speaker, and webcam. A high-speed internet connection with at least 10 Mbps download speed is required.

Students should be familiar with opening a browser, navigating to a website, and joining a Zoom meeting. Most course content can be viewed on mobile devices, but programming assignments and certain quizzes require a desktop or laptop computer.

Yes. All formats include access to instructor support. In Live Classes and Summer of Code, students can ask questions during class and instructors are available to provide additional guidance. In Independent Study, students have dedicated weekly office hours with their assigned instructor.

If a student needs additional 1-on-1 support beyond what is included, we offer tutoring sessions that can be arranged through our team. Contact us at admissions@2sigma.school for details.