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. Systems of linear equations
  4. Gaussian elimination
  5. Linear transformations
  6. Vector spaces
  7. Linear independence, bases
  8. Dimension, rank
  9. Coordinate systems and transformations
  10. Norms, orthogonality
  11. Gram-Schmidt, QR factorization
  12. Least squares
  13. Data fitting
  14. Classification
  15. Determinants
  16. Eigenvalues and eigenvectors
  17. Diagonalization
  18. Similarity transformations
  19. Markov chains, PageRank
  20. Discrete dynamical systems
  21. Spectral decomposition
  22. Singular value decomposition
  23. Pseudoinverses
  24. Principal component analysis
  25. Quadratic forms
  26. Constrained optimization