*All courses, faculty listings, and curricular and degree requirements described herein are subject to change or deletion without notice. *

*For course descriptions not found in the *UC
San Diego General Catalog 2019–20*, please contact the department
for more information.*

DSC 10. Principles of Data Science (4)

This introductory course develops computational thinking and tools necessary to answer questions that arise from large-scale datasets. This course emphasizes an end-to-end approach to data science, introducing programming techniques in Python that cover data processing, modeling, and analysis. ** Prerequisites:** none.

DSC 20. Programming and Basic Data Structures for Data Science (4)

Provides an understanding of the structures that underlie the programs, algorithms, and languages used in data science by expanding the repertoire of computational concepts introduced in DSC 10 and exposing students to techniques of abstraction. Course will be taught in Python and will cover topics including recursion, higher-order functions, function composition, object-oriented programming, interpreters, classes, and simple data structures such as arrays, lists, and linked lists. ** Prerequisites:** DSC 10.

DSC 30. Data Structures and Algorithms for Data Science (4)

Builds on topics covered in DSC 20 and provides practical experience in composing larger computational systems through several significant programming projects using Java. Students will study advanced programming techniques including encapsulation, abstract data types, interfaces, algorithms and complexity, and data structures such as stacks, queues, priority queues, heaps, linked lists, binary trees, binary search trees, and hash tables. ** Prerequisites:** DSC 20.

DSC 40A. Theoretical Foundations of Data Science I (4)

This course, the first of a two-course sequence (DSC 40A-B), will introduce the theoretical foundations of data science. Students will become familiar with mathematical language for expressing data analysis problems and solution strategies, and will receive training in probabilistic reasoning, mathematical modeling of data, and algorithmic problem solving. DSC 40A will introduce fundamental topics in machine learning, statistics, and linear algebra with applications to data analysis. DSC 40A-B connect to DSC 10, 20, and 30 by providing the theoretical foundation for the methods that underlie data science. ** Prerequisites:** DSC 10, Math 20C or Math 31BH, and Math 18 or Math 20F or Math 31AH. Restricted to students within the DS25 major. All other students will be allowed as space permits.

DSC 40B. Theoretical Foundations of Data Science II (4)

This course will introduce the theoretical foundations of data science. Students will become familiar with mathematical language for expressing data analysis problems and solution strategies, and will receive training in probabilistic reasoning, mathematical modeling of data, and algorithmic problem-solving. DSC 40B introduces fundamental topics in combinatorics, graph theory, probability, and continuous and discrete algorithms with applications to data analysis. DSC 40A-B connect to DSC 10, 20, and 30 by providing the theoretical foundation for the methods that underlie data science. ** Prerequisites:** DSC 40A. Restricted to students within the DS25 major. All other students will be allowed as space permits.

DSC 80. The Practice and Application of Data Science (4)

The marriage of data, computation, and inferential thinking, or “data science,” is redefining how people and organizations solve challenging problems and understand the world. This course bridges lower- and upper-division data science courses as well as methods courses in other fields. Students master the data science life-cycle and learn many of the fundamental principles and techniques of data science spanning algorithms, statistics, machine learning, visualization, and data systems. ** Prerequisites:** DSC 30 and DSC 40A.