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.

New to Data Science

Data Science Refresher

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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

Return to Top

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