COMS 3251 Fall 2022 (Computational Linear Algebra)

This is the website for COMS 3251, which is taught during Fall 2022.

Essential information

About the course

This course is an introduction to linear algebra and its use 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 use of Python (and libraries such as NumPy) are essential components of the course, as is the development of basic skills of computational programming.

Homework schedule

Quiz schedule

Lecture & reading schedule

Course calendar


This syllabus is still under construction! Currently, it is almost completely lifted from Tony Dear’s COMS 3251 webpage.

Course description


Instruction modality


Course objectives

  • Identify properties of and perform algebraic operations using vectors and matrices.
  • Formulate systems of linear equations and interpret their solutions.
  • Identify and use 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.


  • Calculus I (MATH 1101) and Discrete Math (COMS 3203) are required
  • Calculus III (MATH 1201) is strongly recommended
  • Programming experience at the level of COMS 1004 or COMS 1006 is required


  • Python and NumPy
  • Vectors, vector operations
  • Matrices, matrix operations
  • Systems of linear equations
  • Gaussian elimination
  • Vector spaces, matrix subspaces
  • Linear independence, basis, dimension
  • Fundamental subspaces, change of basis
  • Linear transformations
  • Graphics and homogeneous transformations
  • Orthogonality, projections
  • Orthonormal bases, Gram-Schmidt
  • Least squares
  • Determinants
  • Eigenvalues and eigenvectors
  • Diagonalization
  • Dynamical systems, Markov chains
  • Symmetric matrices
  • Singular value decomposition
  • PCA and SVD applications
  • Data and covariance matrices
  • Linear programming





Homework policy




Disability services

In order to receive disability-related academic accommodations for this course, students must first be registered with their school’s Disability Services office. Detailed information is available online for both the Columbia and Barnard registration processes. Refer to the appropriate website for information regarding deadlines, disability documentation requirements, and drop-in hours (Columbia) / intake session (Barnard).

Academic rules of conduct

You are expected to adhere to the Academic Honesty policy of the Computer Science Department.


Getting help