Method
Flexible
Term
SPRING
Units
3.0 QUARTER UNITS
Estimated Cost
$980

Skills you will gain

  • Abstract Data Types Mastery: Use and implement stacks, queues, lists, trees, hashes, and graphs.
  • Advanced Algorithm Techniques: Apply divide and conquer, dynamic programming, greedy algorithms, and backtracking to solve problems.
  • Complexity Analysis: Analyze time and space complexity of algorithms to ensure efficiency and performance.
  • Python Programming Efficiency: Write clean, readable Python code to solve data structure and algorithm problems.
  • Interview-Ready Problem Solving: Tackle common algorithmic challenges on platforms like LeetCode and HackerRank, preparing for top tech interviews.

Course Description

Deep knowledge of how to organize data and data structures, in addition to performing operations that result in meaningful algorithm answers, is essential in science and engineering.

In this course, students will use Python, a widely-used, general-purpose, high-level programming language, to learn a variety of data structures including array, list, stack, queue, heap, hash, binary trees, disjoint sets, and graphs. Python, which has a design philosophy that emphasizes code readability, has a syntax that allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. It is considerably easier to learn.

Students explore algorithm techniques like brute force, greedy, dynamic programming, and backtracking, and implement algorithms using those techniques. Both time and space complexities will be analyzed for all the code written in class.

By the end of the course, you will have experience with many data structures and algorithms and be able to implement them easily using Python. Mastering fundamental data structures and algorithms will help you confidently succeed in software engineering interviews at FAANG and other companies. 
 

Prerequisite(s):

A course on C/C++/Java/Python.

 

Additional Information

AI* - This course introduces AI midway through the term as a supervised enhancement tool, helping students refine their own handwritten coding assignments and reflect on the insights gained, while also evaluating how different GenAI systems support their work. 

Prerequisites / Skills Needed

Skills Needed:

  • A course on C/C++/Java/Python.
Currently no classes scheduled. Would you like to be notified when a class is available?

This course applies to these programs:

Demo