## CS 219 Spring 2018: Course Schedule and Assignments

Topics of future classes should be considered approximate!

• Mon 2 Apr: Introduction: model finite difference problem; graph Laplacians. [slides; Matlab diary; Matlab files]
Reading for next class: Review Davis chapter 1 (definitions). Read chapter 2 (you don't have to read all the code in detail) and chapter 3 (sparse triangular solves).
(Homework 1 assigned) [hw1.tex]

• Wed 4 Apr: Sparse Cholesky, fill, graph game, elimination orders. [slides; notes and proofs; Matlab diary; Matlab files]
Reading for next class: Davis sections 4.0-4.7 (skim the details of 4.4-4.5) (Cholesky, etrees) and 7.5-7.7 (nested dissection).

• Mon 9 Apr: Fill-reducing permutations; sparse data structures; matrix-matrix multiplication (SpGEMM); sparse triangular solve. [slides]
Reading for next class: Review Davis chapter 3 (sparse triangular solve). Read sections 6.1, 6.2, and 7.3 (LU and block triangular form).
(Homework 1 due, homework 2 assigned) [hw2.tex]

• Wed 11 Apr: More algorithms: Sparse-sparse triangular solve, LU, Cholesky. [slides]
Reading for next class: Davis chapter 8 (sparse direct solvers).

• Mon 16 Apr: Nonsymmetric matrices: Partial pivoting, fill-reducing permutations, direct methods grab bag. [slides1, slides2]
Reading for next class: Shewchuk paper sections 1-8 (CG), review Saad chapter 1 (linear algebra background).
(Homework 2 due, homework 3 assigned) [hw3.tex]

• Wed 18 Apr: Krylov subspace methods: Conjugate gradients. [slides]
Reading for next class: Shewchuk paper sections 9-12 (convergence of CG), Saad sections 10.1-10.6 (preconditioning).

• Mon 23 Apr: Convergence of CG in theory and practice. [slides; Matlab diary; Matlab files]
Reading for next class: Saad sections 6.5.1 – 6.5.4, 6.5.6 (GMRES), 6.7.1 (CG), and 7.4.2 (BiCGSTAB).
(Homework 3 due, homework 4 assigned) [hw4.tex]

• Wed 25 Apr: Preconditioning; nonsymmetric methods (GMRES and BiCGstab); high-performance implementation. [slides 1; slides 2; Matlab diary; Matlab files]

• Mon 30 Apr: Graphs, Laplacians, and support-theory preconditioning. [definitions etc. (items 1-16, 21, 23, 24, 26, 33-37, 65-67)]
Reading for next class: Spielman survey sections 1 (intro), 2 (what Laplacians are good for), 3 (review of methods), 4 (sparse graph approximation--just scan), 5 (support theory--Monday's class), 6 (low stretch methods--Wednesday's class).
(Homework 4 due, homework 5 assigned) [hw5.tex]

• Wed 2 May: Exotic Laplacian linear solvers. [slides; definitions etc. (items 30, 53-54, 72-78)]
Reading for next class: Multigrid Tutorial chapters 1 (intro), 2 (smoothers), and 3 (MG elements).

• Mon 7 May: Multigrid: basics. [my slides; tutorial slides]
Reading for next class: MG Tutorial chapter 4 (implementation), 5 (convergence), and optionally 8 (algebraic multigrid).
(Homework 5 due)
(Final project proposal due)

• Wed 9 May: Multigrid: analysis and extensions. [slides: tutorial part 2; Van Henson on AMG; Yiannis Koutis on CMG; Tristan Konolige on parallel AMG]

• Mon 14 May: Sparse eigenvector methods. [Matlab diary and demo code; eigenvalue templates book; ARPACK and Anasazi software]
Reading for next class: Eigenvalue templates book online nodes: Implicitly restarted Lanczos [nodes 117 through 130].

• Wed 16 May: More on eigenvector methods. [Matlab diary and demo code]
Reading for next class: Wolf et al. on triangle counting.
(Progress report due)

• Mon 21 May: (JRG travel, no class)

• Wed 23 May: Graph algorithms and linear algebra. [slides 1, slides 2]

• Mon 28 May: (Memorial Day holiday, no class)

• Wed 30 May: Final project presentations. [schedule]

• Mon 4 Jun: (JRG travel, no class)

• Wed 6 Jun: (JRG travel, no class)

• Wed 13 Jun: (Final project reports due)