This course provides an introduction to algorithms, including their design, analysis, implementation, and application. It is designed for use in an intermediate-level introduction to algorithms course. We provide the Python implementations for almost all data structures and algorithms discussed. Two major types of algorithms are covered in this course: the basic algorithms (such as traditional searching and sorting) and several classic data mining algorithms used in data science.
This course has several goals for students, including a) being familiar with Python programming language, b) using Python to implement several basic data structures (such as stack, queue, tree) and several basic algorithms (such as different types of sorting and searching algorithms), c) understanding the implementing data mining algorithms, and d) applying the algorithms to real-world problems.
Students are required to demonstrate their capability to solve real-world problems by using appropriate data structures and algorithms. Students are encouraged to practice and solve problems in LeetCode. Note that you need to submit your homework and assignments via an online submission system, and you should do the homework and assignments by yourself alone without discussing with your classmate.