- Online Data Science Degree
- Third Party Classes

# Third Party Classes

datascience@berkeley seeks candidates who can perform at the highest level of academic excellence. Candidates in our Master of Information and Data Science (MIDS) must exhibit knowledge and background in, or clear aptitude for, math and programming. Requirements for this program include:

- A working knowledge of, or demonstrated aptitude for, fundamental concepts including: data structures, algorithms and analysis of algorithms, and linear algebra
- Exposure to object-oriented programming (including Python, C++, or Java) as demonstrated by work experience or coursework

If you feel that you do not have the foundational knowledge to succeed in MIDS, you may supplement your current experience by completing certain courses. Completion of coursework does not guarantee entry into the MIDS program, but successful performance in one or more of these classes may demonstrate your knowledge,aptitude, and commitment.

We have included a partial list of online courses that may fit your needs. This is only a sampling of courses that are currently available, and we encourage you to research other courses through extension programs and your local college. This list is divided into two sections: “New to Data Science” and “Data Science Refresher”. The courses listed in “New to Data Science” are intended for candidates who do not have a background in data science. The courses listed in, “Data Science Refresher” are intended for candidates with some experience in the subject(s) who simply need a refresher.

Please note that the class information below is subject to change. Refer to the class link in “More Information” for the most up-to-date pricing, prerequisites and availability.

- Algorithms Specialization
- Social Network Analysis Algorithms
- Introduction to Algorithms
- Elementary Data Structures
- Advanced Data Structures
- Single Variable Calculus (Units 1–3)
- Linear Algebra
- Introduction to Computer Science

- Essence of Linear Algebra
- Integral Calculus and Differential Calculus
- Learn Python
- Design and Analysis of Algorithms
- Think Python

## New to Data Science

### Algorithms Specialization

This specialization is an introduction to algorithms for learners with at least a little programming experience. The specialization is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. The primary topics in the four courses are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer, randomized algorithms (QuickSort, contraction algorithm for min cuts), data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), greedy algorithms, dynamic programming, shortest paths, NP-completeness and strategies for coping with computationally intractable problems (analysis of heuristics, local search).

**Provider:** Coursera

**Cost:** Free

**Prerequisites:** Knowledge of at least one programming language (such as C, Java, or Python), and familiarity with proofs, including proofs by induction and by contradiction. At Stanford, a version of this course is taken by sophomore, junior, and senior-level computer science majors. The course assumes familiarity with some of the topics from Algo 1 — especially asymptotic analysis, basic data structures, and basic graph algorithms.

**Availability:** TBD

**More Information:** Algorithms Specialization

### Social Network Analysis Algorithms

By the end of this class you will understand key concepts needed to devise new algorithms for graphs and other important data structures and to evaluate the efficiency of these algorithms.

**Provider:** Udacity

**Cost:** Free

**Prerequisites:** This class assumes an understanding of programming at the level of CS101, including the ability to read and write short programs in Python. It also assumes a comfort level with mathematical notation at the level of high school Algebra II or the SATs.

**Availability:** Self-paced

**More Information:** Social Network Analysis Algorithms

### Introduction to Algorithms

This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.

**Provider:** MITOpenCourseWare

**Cost:** Free

**Prerequisites:** Basic Computer Science

**More Information:** Introduction to Algorithms

### Elementary Data Structures

Upon successful completion of this course, the student will be able to:

- Identify elementary Data Structures using C/C++ programming languages.
- Analyze the importance and use of Abstract Data Types (ADTs).
- Design and implement elementary Data Structures such as arrays, trees, Stacks, Queues, and Hash Tables.
- Explain best, average, and worst-cases of an algorithm using Big-O notation.
- Describe the differences between the use of sequential and binary search algorithms.

**Provider:** Saylor

**Cost:** Free

**Prerequisites:** In order to take this course, you must:

- Have access to a computer
- Have continuous broadband internet access
- Have the ability/permission to install plug-ins or software (e.g. Adobe Reader of Flash)
- Have the ability to download and save files and documents to a computer
- Have the ability to open Microsoft files and documents (.doc, .ppt, .xls, etc.)
- Be competent in the English language
- Have read the Saylor Student Handbook.
- Have completed CS101: Introduction to Computer Science I and CS102: Introduction to Computer Science II

**Availability:** Self-paced

**More Information:** Elementary Data Structures

### Advanced Data Structures

Data structures play a central role in modern computer science. You interact with data structures even more often than with algorithms (think Google, your mail server, and even your network routers). In addition, data structures are essential building blocks in obtaining efficient algorithms. This course covers major results and current directions of research in data structure.

**Provider:** MIT Open Courseware

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information: **Advanced Data Structures

### Single Variable Calculus (Units 1–3)

This introductory calculus course covers differentiation and integration of functions of one variable, with applications. Topics include: Concepts of Function, Limits and Continuity Differentiation Rules, Application to Graphing, Rates, Approximations, and Extremum Problems Definite and Indefinite Integration, The Fundamental Theorem of Calculus, Applications to Geometry: Area, Volume, and Arc Length, Applications to Science: Average Values, Work, and Probability, Techniques of Integration, Approximation of Definite Integrals, Improper Integrals, and L'Hôspital's Rule.

**Provider:** MIT Open Courseware

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More information:** MIT Open Courseware

### Linear Algebra

This is a basic subject on matrix theory and linear algebra. Emphasis is given to topics that will be useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices. Here are key computations and some of the ideas behind them:

- Solving Ax = b for square systems by elimination (pivots, multipliers, back substitution, invertibility of A, factorization into A = LU)
- Complete solution to Ax = b (column space containing b, rank of A, nullspace of A and special solutions to Ax = 0 from row reduced R)
- Basis and dimension (bases for the four fundamental subspaces)
- Least squares solutions (closest line by understanding projections)
- Orthogonalization by Gram-Schmidt (factorization into A = QR)
- Properties of determinants (leading to the cofactor formula and the sum over all n! permutations, applications to inv(A) and volume)
- Eigenvalues and eigenvectors (diagonalizing A, computing powers A^k and matrix exponentials to solve difference and differential equations)
- Symmetric matrices and positive definite matrices (real eigenvalues and orthogonal eigenvectors, tests for x'Ax > 0, applications)
- Linear transformations and change of basis (connected to the Singular Value Decomposition – orthonormal bases that diagonalize A)
- Linear algebra in engineering (graphs and networks, Markov matrices, Fourier matrix, Fast Fourier Transform, linear programming)

**Provider:** MITOpenCourseWare

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** Linear Algebra

### Introduction to Computer Science

In this course you will learn key concepts in computer science, as well as how to write your own computer programs in the context of building a web crawler.

**Provider:** Udacity

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** Introduction to Computer Science

## Data Science Refresher

### Essence of Linear Algebra

This sequence is focused on the geometric intuitions underlying the subject, making the many matrix and vector operations feel less arbitrary.

**Provider:** Khan

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** Khan Academy

### Integral Calculus and Differential Calculus

How do you find the area under a curve? What about the length of any curve? Is there a way to make sense out of the idea of adding infinitely many infinitely small things? Integral calculus gives us the tools to answer these questions and many more. Surprisingly, these questions are related to a derivative, and in some sense, the answer to each one is the opposite of the derivative. Learn differential calculus–limits, continuity, derivatives, and derivative applications.

**Provider:** Khan Academy

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More information:** Integral Calculus, Differential Calculus

### Learn Python

This course is less structured and may serve more as a supplemental set of problems.

**Provider:** LearnPython.org

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** Learn Python

### Design and Analysis of Algorithms

This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.

**Provider:** MIT Open Courseware

**Cost:** Free

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** MIT Open Courseware

### Think Python

*Think Python* is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.

**Provider:** Green Tea Press

**Cost:** PDF Free; Buy Paper Copy

**Prerequisites:** None

**Availability:** Self-paced

**More Information:** Think Python

```
```## Get More Information!

```
{"admissionsEmail": "admissions@datascience.berkeley.edu", "degreeOffering": "ucb-mids", "fields": [{"hidden": false, "label": "Why are you interested in the Master of Information and Data Science?", "mountPoint": 1, "name": "why_are_you_interested_in_earning_a_mids", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "Advance my career", "value": "Advance my career"}, {"label": "Switch to a new career", "value": "Switch to a new career"}]}}, {"hidden": false, "mountPoint": 2, "name": "", "type": 7, "value": {"text": "Your personal data will be used as described in our [--link:https://datascience.berkeley.edu/legal/privacy-policy/ target:blank]privacy policy[link--]. You may opt out of receiving communications at any time. "}}], "grouping": "ucb-mids", "id": 314, "published": "2019-11-11T15:10:59.876Z", "screens": [{"allFields": [0], "conditional": {}, "out": {"0": ["$next", [{"data": "$valid"}]]}}], "version": "1.0.1"}
```

```
{"admissionsEmail": "admissions@datascience.berkeley.edu", "degreeOffering": "ucb-mids", "fields": [{"hidden": false, "label": "Why are you interested in the Master of Information and Data Science?", "mountPoint": 1, "name": "why_are_you_interested_in_earning_a_mids", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "Advance my career", "value": "Advance my career"}, {"label": "Switch to a new career", "value": "Switch to a new career"}]}}, {"hidden": false, "label": "What is your highest level of education completed?", "mountPoint": 1, "name": "level_of_education", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "High School", "value": "High School"}, {"label": "Associate\u0027s", "value": "Associates"}, {"label": "Bachelor\u0027s in progress", "value": "Bachelors in progress"}, {"label": "Bachelor\u0027s", "value": "Bachelors"}, {"label": "Master\u0027s in progress", "value": "Masters in progress"}, {"label": "Master\u0027s", "value": "Masters"}, {"label": "Doctorate", "value": "Doctorate"}]}}, {"hidden": false, "label": "What was your undergraduate GPA?", "mountPoint": 1, "name": "stated_gpa_range", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "4.00 and above", "value": "4.00 and above"}, {"label": "3.99 - 3.50", "value": "3.99-3.50"}, {"label": "3.49 - 3.00", "value": "3.49-3.00"}, {"label": "2.99 - 2.50", "value": "2.99-2.50"}, {"label": "2.49 and below", "value": "2.49 and below"}]}}, {"hidden": false, "label": "What is your educational background?", "mountPoint": 1, "name": "educational_background", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "Business/Economics", "value": "Business/Economics"}, {"label": "Computer Science", "value": "Computer Science"}, {"label": "Education/Teaching", "value": "Education/Teaching"}, {"label": "English/Writing", "value": "English/Writing"}, {"label": "Engineering", "value": "Engineering"}, {"label": "History/Government", "value": "History/Government"}, {"label": "Math/Statistics", "value": "Math/Statistics"}, {"label": "Physical Science", "value": "Physical Science"}, {"label": "Other", "value": "Other"}]}}, {"hidden": false, "label": "Have you taken the GRE or GMAT?", "mountPoint": 1, "name": "test_taken", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "Yes", "value": "Yes"}, {"label": "No", "value": "No"}, {"label": "Registered but not taken", "value": "Registered but not taken"}]}}, {"hidden": false, "label": "How many years of programming experience do you have?", "mountPoint": 1, "name": "years_of_programming_experience", "required": true, "type": 3, "value": {"defaultOption": "", "options": [{"label": "0", "value": "0"}, {"label": "1", "value": "1"}, {"label": "2", "value": "2"}, {"label": "3", "value": "3"}, {"label": "4", "value": "4"}, {"label": "5", "value": "5"}, {"label": "6", "value": "6"}, {"label": "7", "value": "7"}, {"label": "8", "value": "8"}, {"label": "9", "value": "9"}, {"label": "10+", "value": "10+"}]}}, {"hidden": false, "label": "First Name", "mountPoint": 1, "name": "first_name", "required": true, "type": 0, "value": {"text": ""}}, {"hidden": false, "label": "Last Name", "mountPoint": 1, "name": "last_name", "required": true, "type": 0, "value": {"text": ""}}, {"hidden": false, "label": "Email", "mountPoint": 1, "name": "email", "required": true, "type": 0, "value": {"text": ""}}, {"hidden": false, "label": "State", "mountPoint": 1, "name": "state", "required": true, "type": 5, "value": {}}, {"hidden": false, "label": "Zip/Postal Code", "mountPoint": 1, "name": "zip_code", "required": true, "type": 0, "value": {"text": ""}}, {"hidden": false, "label": "Country of Residence", "mountPoint": 1, "name": "country", "required": true, "type": 6, "value": {}}, {"hidden": false, "label": "Country of Citizenship", "mountPoint": 1, "name": "country_of_citizenship", "required": true, "type": 6, "value": {}}, {"conditionallyRendered": true, "hidden": false, "label": "Phone (country code - area code - phone number)", "mountPoint": 1, "name": "phone", "required": true, "type": 0, "value": {"text": ""}}, {"hidden": true, "label": "Degree Interest", "mountPoint": 1, "name": "degree", "required": false, "type": 3, "value": {"defaultOption": "MIDS", "options": [{"label": "MIDS", "value": "MIDS"}]}}, {"conditionallyRendered": true, "hidden": false, "label": "GDPR Marketing Consent \u00f0\u009f\u0087\u00aa\u00f0\u009f\u0087\u00ba", "mountPoint": 1, "name": "lead_share_opt_in", "required": true, "type": 8, "value": {"disclaimer": "This personal data is collected and processed by [--link:https://2u.com/ target:blank]2U, Inc.[link--], datascience@berkeley\u0027s technology partner.", "leadShareOptIn": {"email": "Please email me about these educational programs.", "leadShareValue": "UCB-MIDS Marketing", "phone": "", "sms": "", "text": "datascience@berkeley\u0027s technology partner, [--link:https://2u.com/ target:blank]2U, Inc., and the 2U family of companies[link--], work with multiple universities to offer educational programs in data science and other fields."}, "retailOptIn": {"email": "Email", "phone": "Phone", "sms": "", "text": "Yes, I want to receive additional information about datascience@berkeley. Please contact me via:"}}}, {"conditionallyRendered": true, "hidden": false, "label": "US Marketing Consent \u00f0\u009f\u0087\u00ba\u00f0\u009f\u0087\u00b8", "mountPoint": 1, "name": "lead_share_opt_in", "required": true, "type": 11, "value": {"checkboxText": "Please contact me about these educational programs.", "defaultChecked": true, "defaultRadio": "none", "disclaimer": "datascience@berkeley\u0027s technology partner, 2U, Inc., and its family of companies, work with multiple universities to offer educational programs in data science and other fields. ", "format": "checkbox", "optInValue": "UCB-MIDS Marketing", "smsHiddenConsent": false}}, {"hidden": false, "mountPoint": 2, "name": "", "type": 7, "value": {"text": "Your personal data will be used as described in our [--link:https://datascience.berkeley.edu/legal/privacy-policy/ target:blank]privacy policy[link--]. You may opt out of receiving communications at any time. "}}], "grouping": "ucb-mids", "id": 314, "published": "2019-11-11T15:10:59.876Z", "screens": [{"allFields": [0], "conditional": {}, "out": {"1": ["$next", [{"data": "$valid"}]]}}, {"allFields": [1, 2, 3, 4, 5], "conditional": {}, "out": {"2": ["$next", [{"data": "$valid"}]]}}, {"allFields": [6, 7, 8], "conditional": {}, "out": {"3": ["$next", [{"data": "$valid"}]]}}, {"allFields": [9, 10, 11, 12, 13, 14, 16, 15, 17], "conditional": {"13": [3, "", [{"data": "state.no_klondike_gdpr_only_consent"}, {"data": "true"}, {"op": 0}, {"data": "state.no_klondike_carmen_sandiego_region"}, {"data": "eu"}, {"op": 0}, {"op": 8}]], "15": [1, "", [{"data": "state.no_klondike_gdpr_only_consent"}, {"data": "true"}, {"op": 0}, {"data": "state.no_klondike_carmen_sandiego_region"}, {"data": "eu"}, {"op": 0}, {"op": 8}]], "16": [1, "", [{"data": "state.no_klondike_gdpr_only_consent"}, {"data": "true"}, {"op": 1}, {"data": "state.no_klondike_carmen_sandiego_region"}, {"data": "eu"}, {"op": 1}, {"op": 7}]]}, "out": {"-1": ["$next", [{"data": "$valid"}]]}}], "version": "1.0.1"}
```