Data Structures and Algorithms for Data Science (304-0-20)
Instructors
Kaize Ding
Meeting Info
Harris Hall L07: Tues, Thurs 11:00AM - 12:20PM
Overview of class
This course will introduce students to a variety of data structures that are used to solve computational problems. Students will also learn the basic algorithmic techniques such as Recursion, Divide & Conquer, and Dynamic Programming and how to measure the efficiency of an algorithm using asymptotic analysis. Python will be used for this course. Students should be prepared for a significant amount of hands-on programming.
Registration Requirements
STAT 201-0 (or COMP_SCI 110) and STAT 202 (or STAT 210 or STAT 232) or consent of the instructor.
Enrollment in this course is restricted to Data Science majors
Learning Objectives
At the end of the course, students should be able to:
1. ANALYZE the complexity of an algorithm using asymptotic analysis(Big O Notation).
2. APPLY basic algorithmic techniques such as recursion, binary search, sorting, divide and conquer, and dynamic programming to solve programming challenges.
3. UNDERSTAND collection data types in Python deeply.
4. MASTER the strengths and weaknesses of a variety of data structures, so one can choose the best data structure for real data applications
5. ORGANIZE, STORE, AND PROCESS data efficiently using appropriate data structures and algorithms
Teaching Method
The majority of this course will follow a lecture format consisting of a combination of slides, live coding, and demos. The lectures are designed to be interactive, and students will want to code along as we work through examples and demos together.
Evaluation Method
a) Homework Assignments: Collection of coding and conceptual exercises/questions designed to explore core data structures and algorithms using Python.
b) Exams: Designed with a focus on conceptual concepts, but may also include a practical component such as building an algorithm to solve a problem or debugging an algorithm. There will likely be 2-3 exams.
Class Materials (Required)
Data Structures and Algorithms in Python by Roberto Tamassia, Michael H. Goldwasser, and Michael T. Goodrich (ISBN: 9781118290279).
ISBN-10: 1118290275
Class Materials (Suggested)
Introduction to Algorithms, 3rd Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (ISBN: 9780262033848).
ISBN-10: 9780262033848
Class Attributes
Formal Studies Distro Area
Enrollment Requirements
Enrollment Requirements: Registration in this course is reserved for Data Science Majors only
Prerequisite: STAT 201-0 or COMP_SCI 110-0 and STAT 202-0 or STAT 210-0 or STAT 232-0 or PSYCH 201-0 or IEMS 201-0 or IEMS 303-0 or equivalent.