Fall Hours • COVID-19 Update

The Silicon Valley Campus is open 4–9:30 p.m. on Monday–Friday and 8 a.m.–5 p.m. on Saturday.

All campus visitors must be vaccinated, wear a mask, & submit a COVID symptom check. Visit our COVID page for updates.


Data Structures and Algorithms Using Python | CMPR.X425

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

In this rare course, which teaches algorithms specifically for interviews, 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 progress to algorithm techniques like brute force, greedy, dynamic programming, and backtracking, and implement algorithms exploiting those techniques. Both time and space complexities will be analyzed for all the code we write in this class.

This course is a gold mine for job seekers. 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. Most importantly, you should be able to solve many common interview questions known as "algorithms for interviews" (AFI) on LeetCode and HackerRank websites and confidently attend Google, Amazon, and Facebook interviews.

Learning Outcomes:

At the conclusion of the course, the student should be able to:

  • Describe and use abstract data types including stacks, queues, lists, tree, hash, and graphs.
  • Implement different algorithmic techniques such as divide and conquer, greedy algorithms, dynamic programming, and backtracking.
  • Explain the asymptotic performance of the algorithms studied in this course and understand the practical implications.
  • Analyze complex Python programs written by another author.
  • Solve interview problems efficiently on the LeetCode and HackerRank interview websites.

Prerequisite(s): A course on C/C++/Java/Python.

Have a question about this course?
Speak to a student services representative.
Call (408) 861-3860
  • Save your seat and help us confirm course scheduling. Enroll at least seven days before your course starts.
  • ACCESSING CANVAS—Learn more about accessing your course on Canvas in our FAQ section.

Sections Open for Enrollment:

Open Sections and Schedule
Start / End Date Units Cost Instructor
01-20-2022 to 03-24-2022 3.0 $1020

Jagadeesh Vasudevamurthy



Date: Start Time: End Time: Meeting Type: Location:
Thu, 01-20-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 01-27-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 02-03-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 02-10-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 02-17-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 02-24-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 03-03-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 03-10-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 03-17-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE
Thu, 03-24-2022 6:00 p.m. 9:00 p.m. Live-Online REMOTE