COMS 3251, Computational Linear Algebra

This course is an introduction to linear algebra with an emphasis on computational applications. The study of linear equations, linear functions, and their representations pervades numerous fields of study. Students will learn and practice fundamental ideas of linear algebra and simultaneously be exposed to and work with real-world applications of these ideas. As the complementary course to COMS 3203, this course will continue emphasizing a rigorous approach to mathematics, which will serve as a foundation for future courses like computer graphics, machine learning, and robotics. The learning and usage of Python and libraries such as NumPy is an essential component of the course, as is the development of basic skills of computational programming.

Course Objectives

  • Identify and utilize properties of linear functions to manipulate and operate on them.
  • Perform fundamental matrix operations and understand their interpretation as systems of linear equations and  linear transformations.
  • Identify and utilize properties of vector spaces, including bases, norms, projections, and orthogonality.
  • Perform decompositions of matrices and their representations, including eigendecomposition, singular value decomposition, and spectral decomposition.
  • Formulate and solve example applications in computer science and engineering for which linear algebra is used, such as Markov chains, regression, principal components analysis, and spectral graph theory.
  • Demonstrate proficiency in Python for elementary programming tasks.
  • Demonstrate proficiency in NumPy and related libraries for scientific computational tasks involving real data.

Prerequisites

  • Calculus I; Calculus II or Calculus III or equivalent strongly recommended
  • Programming experience: COMS 1004 or COMS 1007 or equivalent 

List of Topics

  1. Vectors, linear functions
  2. Matrices and matrix operations
  3. Advanced matrix operations
  4. Systems of linear equations
  5. Linear transformations
  6. Vector spaces
  7. Linear independence
  8. Coordinate systems, dimension, rank
  9. Inner products and norms
  10. Orthogonality
  11. Gram-Schmidt, QR factorization
  12. Least squares
  13. Data fitting
  14. Classification
  15. Eigendecomposition
  16. Symmetric matrices, diagonalization
  17. Spectral decomposition
  18. Markov chains, Pagerank
  19. Singular value decomposition
  20. Principal components analysis
  21. Pseudoinverses
  22. Determinants
  23. Quadratic forms
  24. Quadratic optimization