Skip to main content

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: 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.