Method
Flexible
Term
FALL
WINTER
Units
3.0 QUARTER UNITS
Cost
$980

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.

 

  • Flexible Attend in person or via Zoom at scheduled times.
Schedule
Date
Start Time
End Time
Meeting Type
Location
Sat, 09-27-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 09-27-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-04-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-04-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-11-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-11-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-18-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-18-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-25-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
Sat, 10-25-2025
9:00am
3:30pm
Flexible
SANTA CLARA / REMOTE
 

黑料不打烊

Students may still enroll if they missed the 1st class session. However, they need to communicate with the instructor via Canvas and catch up on all missed work prior to the 2nd class meeting.

9/17/2025: Schedule change. Please review full schedule for details.

This class meets simultaneously in a classroom and remotely via Zoom. Students are expected to attend and participate in the course, either in-person or remotely, during the days and times that are specified on the course schedule. Students attending remotely are also strongly encouraged to have their cameras on to get the most out of the remote learning experience. Students attending the class in-person are expected to bring a laptop to each class meeting.

To see all meeting dates, click "Full Schedule" below.

Electronic Course Materials: You will be granted access in Canvas to your course site and course materials approximately 24 hours prior to the published start date of the course.

Required Tools and Materials: PyCharm

  • Flexible Attend in person or via Zoom at scheduled times.
Schedule
Date
Start Time
End Time
Meeting Type
Location
Tue, 01-20-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 01-20-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 01-22-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 01-22-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 01-27-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 01-27-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 01-29-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 01-29-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-03-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-03-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-05-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-05-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-10-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-10-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-12-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-12-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-17-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Tue, 02-17-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-19-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
Thu, 02-19-2026
6:30pm
9:30pm
Flexible
SANTA CLARA / REMOTE
 

黑料不打烊

This class meets simultaneously in a classroom and remotely via Zoom. Students are expected to attend and participate in the course, either in-person or remotely, during the days and times that are specified on the course schedule. Students attending remotely are also strongly encouraged to have their cameras on to get the most out of the remote learning experience. Students attending the class in-person are expected to bring a laptop to each class meeting.

To see all meeting dates, click "Full Schedule" below.

You will be granted access in Canvas to your course site and course materials approximately 24 hours prior to the published start date of the course.

Recommended Text:
"Data Structures and Algorithms in Python", Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser. ISBN-13: 978-1118290279

Required Software: Python 3.7.4 and above. Jupyter notebook

Demo