This class is an advanced course in Python programming for Data Science.
Topics include concepts of software engineering (modularization, design patterns, documentation, unit tests, version control), advanced features of the Python language (including Numpy, Scipy, Sympy, Matplotlib), performance aspects of programming (Cython/Numba, sparse matrix operations), 3D Graphics, elementary concepts of parallelization.
Introduction, root finding methods: Newton’s method, secand method, bisection for functions of a single variable (this set of lecture notes summarizes what was covered in class; for more information, see the Wikipedia articles on Newton’s method, the secant method, and the bisection method; the theory is covered in any basic textbook on numerical analysis)
No class due to admin meeting
Convergence rates for root finding methods
Implementation questions root finding methods
Discussion of Assignment 1; Basins of attraction,
meshgrid
-plotting (see, e.g., these
notes)
Newton’s method in several dimensions (see notes)
Broyden’s method, rank-1 updates
Open lab
Class interface for \(O(d)\) rank-1 updates
Class interface ctd.
Discussion of Assignment 2
No class