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.
This course applies to these programs: