These are just ideas  please see me if there's something else
you'd like to work on, or if you'd like to discuss any of these.
Let me know by next Monday 7 May what your project will be and
who will be working on it.
Each project must turn in a onepage progress report by Wednesday 16 May,
and a final report of 1015 pages by Wednesday 13 June.
Each project will give a short presentation in the nexttolast week of class
(signup sheet).
We can also arrange for experimental projects to present a demo in the lab.
Experimental and application projects can be solo or a group of two students.
Survey projects must be solo.
Algorithm experiments.
For an algorithm experiment, you will implement and compare
different approaches to a sparse algorithm. Here are a couple of
possibilities; email me if you're interested in something not on the list.

Use the Graph BLAS (as implemented in SuiteSparse)
to implement one or more of the graph algorithms used in sparse Cholesky factorization,
for example:
 Symbolic factorization (given a graph, compute the filled graph).
 Symmetric elimination orders: minimum degree, nested dissection, reverse CuthillMcKee.
 Elimination tree (given a graph, compute the elimination tree without computing the filled graph).

Use sparse matrices to implement some of the graph algorithms from
Jon Berry's challenge list,
first in Matlab and then using SuiteSparse GraphBLAS.

Devise and experiment with hillclimbing strategies that take a
specified sparse Cholesky elimination order and try to improve it.

Write a levelsoffill incomplete factorization preconditioner
for Matlab, and experiment with using it in an iterative method.
Application experiments.
An application experiment is any problem that comes from
computational science and has a challenging linear system in it;
you will experiment with methods for the sparse computation.
The application should be one you are already familiar with,
from your research or another class or a collaboration.
Talk to me if you'd like to do this.
Survey projects.
For a survey project, you will read a few research papers
on a sparse matrix topic not covered in class.
Here are some possibilites.
Some of them come with a link to a paper,
and I can give you references for the others if you'd like.
In each case you will end up reading a few related papers
for background and comparison as well.
Email me if you're interested in something not on the list.

Nearlylineartime algorithms for solving linear systems using supporttheory preconditioning.
(See CS 219 reference page.)

Quantum computing for solving linear equation systems.
(paper: Harrow, Hassidim, and Lloyd)

Symmetric indefinite factorization: A = L*D*L' where D is block diagonal with 1by1 and 2by2 blocks.

Sparse QR factorization and least squares problems.

The real details of UMFpack, Tim Davis's unsymmetric multifrontal method.

Mesh partitioning algorithms: geometric, spectral, multilevel.

Parallel multifrontal algorithms, e.g. MUMPS.

Graph coloring for sparse Jacobian estimation.

Ordering methods for preconditioned conjugate gradient methods
applied to unstructured grid problems.
(paper: D'Azevedo, Forsyth, and Tang)

Ordering, anisotropy, and factored sparse approximate inverses.
(paper: Bridson and Tang)

Preconditioning symmetric indefinite systems using weighted bipartite matching.
(paper: Hagemann and Schenk,
paper: Duff and Koster)

Maximumweight basis preconditioners.
(paper: Boman, Chen, Hendrickson, and Toledo)

Preconditioning symmetric indefinite systems from optimization problems.
(paper: Haws and Meyer)