CS 111
Introduction to Computational ScienceIntroduction to scientific computing, emphasizing basic numerical algorithms and the informed use of mathematical software. Matrix computation, systems of linear equations, differential equations. Students will learn and use the Matlab language. 

You'll use Matlab for all your programming in the course. It works on the Linux computers in CSIL and on the Windows computers in the ECI labs. To run Matlab from your personal machine, you can log in to CSIL remotely and forward the graphics, or else buy a copy of the "student version" at the bookstore.
The course will also use the "NCM" software, which you can put on your Matlab path at CSIL in any of several ways:
For the ECI lab machines or your personal machine, you can download your own copy of NCM from the textbook web site.
All homework must be submitted in hard copy, on paper. We strongly encourage you to write up your homework using LaTeX, which is the standard markup language for mathematical documents. To get you started, here is the LaTeX for the review quiz.
When a homework exercise requires a Matlab program, turn in four things:
If you have questions about grading of homework, talk to the grader or the t.a. first. If you are unable to reach an agreement, make an appointment to talk to me. The statute of limitations for regrades is one week  that is, any requests for regrades must be made no later than one week after the homework (or exam) was returned in class.
Mon Sep 27: Introduction. The fractal fern.
[diary]
Reading: Sections 1.1 through 1.6 (intro to Matlab).
Wed Sep 29: Systems of linear equations.
[diary (you
will also need to put the file
temperature.mat
in your home or Matlab directory)]
Reading: Sections 2.1 through 2.7 (Linear equations, backslash, LU).
Mon Oct 4: Solving Ax=b, LU factorization.
[diary]
Reading: Same as last time, sections 2.1 through 2.7.
Wed Oct 6: LU factorization, partial pivoting, permutation vectors.
[diary
(requires LU.mat and
temperature.mat)]
Reading: Sections 2.10 through 2.12 (Sparse matrices, PageRank).
Mon Oct 11: Permutations, diagonal matrices, indexing.
[diary,
testmat.m,
LU.mat]
Reading: Same as last time, sections 2.10 through 2.12.
Wed Oct 13: Sparse matrices, graphs, PageRank.
[diary,
slides,
temperature.mat]
Reading: Sections 2.8 and 2.9 (Error and residual, norm and condition number).
Mon Oct 18: Markov chains and PageRank.
[diary,
slides]
Reading: Section 1.7 (Floatingpoint arithmetic).
Wed Oct 20: Norms and condition numbers.
[diary]
Reading: Same as last time, section 1.7.
Mon Oct 25: How floatingpoint arithmetic works. [diary]
Wed Oct 27: Roundoff error. [diary]
Mon Nov 1: Least squares and curve fitting.
Wed Nov 3: Midterm.
Mon Nov 8: Iterative methods for solving linear systems.
[diary,
roomtemp.mat,
jacobitest1.m,
jacobitest2.m,
jacobitest3.m]
Reading: Sections 5.1  5.5 (least squares) and 7.1  7.2 (ODEs).
Wed Nov 10:
Ordinary differential equations.
Standard form, LotkaVolterra equations.
[diary,
f.m,
mylotka.m]
Reading: Sections 7.7, 7.4, 7.5, 7.6, 7.8 (ODE examples and algorithms).
Mon Nov 15:
Adam Lugowski, guest speaker:
Parallel computing on graphs and matrices.
[slides]
Reading: Sections 7.3, 7.7, 7.10.
Wed Nov 17:
ODEs: Forward Euler and BS23 algorithms.
[diary,
weightf.m,
ode1.m,
Top500,
SCEC]
Reading: The rest of Chapter 7: sections 7.9 and 7.11  7.15.
Mon Nov 22:
ODEs: Stiff problems.
[diary,
valleyf.m]
Reading: Sections 10.1  10.3 (eigenvalues and SVD),
10.5 (eigenvalues of symmetric matrices),
10.11 (PCA).
Wed Nov 24: All questions answered. [diary, ptf.m, eventfunction.m, event1.m]
Mon Nov 29: Eigenvalues, eigenvectors, and SVD. [diary]
Wed Dec 1: SVD and principal component analysis. [diary, approximation.m, spynum.m, spyimg.m, mycmap.m]
Thu Dec 9: Final exam, 8:00 to 11:00 am.