This course will continue on from the DeCART Python boot camp, by developing Python programming skills with an emphasis on problem decomposition, debugging, and profiling skills. This course will also move away from Jupyter notebooks and focus on using integrated development environments (IDEs) for writing Python scripts, modules, and packages. Programming problems will primarily be drawn from numeric linear algebra.
- Use of Spyder as an IDE for debugging
- Use of Python profiling code to identify code refactoring opportunities
- Use of Cython or solutions for improved performance
- pyTest
- PyLint
- vprof
- Vector representation
- Vector algebra
- Matrices
- Matrix multiplication
- Eigenvalues
- Matrix Inversion and SVD
Students should have prior Python programming experience (such as the boot camp or equivalent).
Students will need their own laptop with Anaconda installed.
- Creating Packages
- Introduction to Spyder
- Debugging Palindrome checking
- Vectors
- Profiling code with
timeit
- Representing vectors with lists or tuples
- Vector Equality
- Vector algebra
- Inner products
- Writing unit tests
- Profiling code with
- Matrices
- Row view of matrices
- Column view of matrices
- Matrix arithmetic
- Creating modules and packages
- Numpy
numpy.matrix
vsnumpy.ndarray
- Gaussian elimination
- Without pivots
- Pivoting with slicing
- Pivoting with permutation matrices
- Profiling with vprof
- Profiling pyConTextNLP
- Orthogonality
- Orthogonal and non-orthogonal basis vectors
- Grahm Schmidt
- Least Squares
- Eigen Vectors
- Sparse Vectors and Matrices
- Singular Value Decomposition and pseudo-inverse