‘18.C06: Linear Algebra and Optimization’

Table of contents

  1. Course Info
  2. Realistic Prerequisites
  3. Subject Matter
  4. Course Staff
  5. Lectures
  6. Problem Sets
  7. Exams
  8. Resources
  9. Grading
  10. Advice to Future Students

Course Info

Class Size 160
Hours/Week 10.7 (54 responses)
Instructors Ankur Moitra, Pablo A. Parrilo
Overall Rating 5.2/7.0

Realistic Prerequisites

  • Some programming background is highly recommended, such as Python in 6.100A.
  • General calculus, such as 18.01 and 18.02, is also recommended.

Subject Matter

  • Most felt that this class was deep and foundational.
  • Students generally agree that the class is mostly applied, but this didn’t translate to practical in some cases.

Course Staff

  • Reviews for the course staff were mixed.
  • Some students felt that the course staff were not approachable, and unhelpful at times on Piazza and in person, especially when it came to Julia programming questions.
  • Some students felt that the course staff were engaging and very understanding.


  • Students agree that the lectures were essential for learning the material.
  • Lectures were recorded.

Problem Sets

  • Challenging.
  • Lectures were generally not enough to fully prepare for the psets, and often felt too disconnected from the lecture material.


  • The exams were considered difficult to finish due to time pressure. However, the letter cutoffs were adjusted appropriately
  • Problems usually ranged from easy to very difficult.


  • Lectures were recorded, and lecture notes from a previous semester were made available on Canvas.
  • There is no textbook.


  • Students felt that grading was very fair and generous.
  • Students complained about the amount of time for grades to come out.

Advice to Future Students

  1. “Go to lecture and especially recitations, do not skip.”
  2. “Invest time into learning Julia at the very beginning.”
  3. “Consider taking plain 18.06 instead.”