Math 10 is the first dedicated programming class in the Data Science specialization designed mainly for Math majors at University of California Irvine. Some of current de facto algorithms will be featured, and some theorems in Mathematics behind in data science/machine learning are to be verified using Python, and the format can be adapted to other popular languages like R and Julia.
(Update Sep 2020): As I am not affiliated with UCI anymore, please refer to the UCI math website for the latest syllabi for Math 10.
MATH 2D Multivariate Calculus
MATH 3A Linear Algebra(can be taken concurrently)
MATH 9 Introduction to Programming for Numerical Analysis
MATH 130A Probabilty I
ICS 31 Introduction to Programming
There are two Labs per week. One is a Lab exercise, aiming to review and sharpen your programming skills. The other is a graded Lab assignment, which is like a collaborative programming quiz. Homework is assigned on a weekly basis, the later ones may look a mini project. Lab assignments' and Homeworks' solutions are available on Canvas.
No official textbook but we will use the following as references:
Scientific Computation: Python Hacking for Math Junkies. Version3, With iPython (Math 9 reference book)
Python Data Science Handbook. Online version
Python 3 and Jupyter notebook (iPython). Please install Anaconda. To start Jupyter notebook, you can either use the Anaconda Navigator GUI, or start Terminal on Mac OS/Linux, Anaconda prompt on Windows: in the directory of .ipynb
file, run the command jupyter notebook
to start a notebook in your browser (Chrome recommended). If Jupyter complains that a specific package is missing when you
run your notebook, then return to the command line, execute conda install <name of package>
, and re-run the notebook cell.
There is one final project using Kaggle in-class competition. A standard classification problem similar to the Kaggle famous starter competition Digit Recognizer based on MNIST dataset will be featured. You will use the techniques learned in class and not in class (e.g., random forest, gradient boosting, etc) to classify objects.
- Winter 2019 final project: Learn the handwritten characters in ancient Japanese
- Spring 2019 final project: Is your algorithm fashionable enough to classify sneakers?
A major portion of the first half of the course is adapted from Umut Isik's Math 9 in Winter 2017 with much more emphases on vectorization, and instead the materials are presented using classic toy examples in data science (Iris, wine quality, Boston housing prices, MNIST, etc). Part of the second half of this course (regressions, classifications, multi-layer neural net, PCA) is adapted from Stanford Deep Learning Tutorial's MATLAB codes to vectorized implementations in numpy
from scratch, together with their scikit-learn
's counterparts.