Credits awarded on transcript
Precalculus completed with B- or better
UC A-G approval pending
90 minutes per class
8-10 students per class
Twice per week over 36 weeks
1649 per student, per semester
Self paced instructor-guided
Office hours on-demand
1199 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.
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, and webcam.|
|A high-speed internet connection with at least 10mbps download speed (check your Internet speed).|
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.
This course includes several timed tests where you will be asked to complete a given number of questions within a 1-3 hour time 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.