COMS 3251, Computational Linear Algebra

This course is an introduction to linear algebra and its usage in 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. This course emphasizes 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 properties of and perform algebraic operations using vectors and matrices.
  • Formulate systems of linear equations and interpret their solutions.
  • Identify and utilize representations and properties of vector spaces, including bases, dimension, and orthogonality.
  • Formulate and solve least squares problems, particularly in the context of data fitting.
  • Solve for and understand the interpretation of eigenvalues and eigenvectors.
  • Solve for decompositions of matrices, including diagonalization and singular value decomposition.
  • Formulate and solve problems in computer science applications, including 2D transformations, linear regression, Markov chains, and principal components analysis.
  • 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; Discrete Math (COMS 3203) and an additional calculus course strongly recommended
  • Programming experience: COMS 1004 or COMS 1006 or equivalent 

List of Topics

  1. Python and NumPy
  2. Vectors, vector operations
  3. Matrices, matrix operations
  4. Systems of linear equations
  5. Gaussian elimination
  6. Vector spaces, matrix subspaces
  7. Linear independence, basis, dimension
  8. Change of basis
  9. Linear transformations
  10. Graphics and homogeneous transformations
  11. Orthogonality, projections
  12. Orthonormal bases, Gram-Schmidt
  13. Least squares
  14. Determinants
  15. Eigenvalues and eigenvectors
  16. Diagonalization
  17. Dynamical systems, Markov chains
  18. Symmetric and PSD matrices
  19. Singular value decomposition
  20. PCA and SVD applications