If you have questions, please check the
FAQ,
then contact me (see the contact information above).
I welcome comments on the lecture notes from anyone, enrolled or not.
To help people communicate with each other, there is a
class bboard.
Please check this regularly since I will also post announcements there.
If you have questions or problems with the homework or notes, please
post them rather than emailing them to me. This way everyone can
see them. I will not use the Computer Science Department maintained
class mailing list.
See the
assignments
page.
This is a one semester graduate course covering the basics of practical
scientific computing for mathematicians, computer scientists, physical
scientists, and finance. Topics ranging from basic mathematical principles
and algorithms of numerical analysis to practical issues ranging from
software reliability to performance on modern computing hardware. The
outline below contains details of contents. The prerequisites are linear algebra, multivariate calculus, some
computer literacy, and (for the Monte Carlo part) some exposure to
elementary probability theory. Students are expected to program in
C/C++ from the beginning. With considerable effort, a student could
learn C/C++ while taking the course; see below for more on this. I write
C/C++ to indicate that students may use C or C++. For the scientific
computing software we build in this class, the distinction between C and
C++ is monor. Students will also be expected from the beginning to use
scientific visualization software. I highly recommend Matlab for this
purpose. It is very easy to learn and use and gives high quality plots.
A depricated alternative is Excel. Matlab for the PC is available to
NYU students through the NYU Computer Store for $99. Matlab and C/C++
environments are also available on the SUN workstation network maintained
by the Courant Institute. All students registered for the course are
entitled to use this system. The grade will be based on weekly homework assignments
the majority of which involve computing. Students are encouraged to
discuss and help each other with assignments with each other but must
write software individually. I estimate that the course will require
between 8 and 10 hours per week out of the classroom, depending on the
student's background. Students will be expected to hand
in printouts of the software together with some plots and possibly other
output. Students must also include some comments on the results. All
assignments must come to me as hard copy. I will not accept fax or
email submissions. Assignments will be graded partly on the basis of
the quality of the code, including the quality of the comments, clarity
of the control structure, modularity, etc. The text for the course is a series of lecture notes I am writing, which
will be posted on this page as they become available. These lecture notes are supposed to become a book soon
. I welcome comments,
positive or (especially) negative, from students and web surfers. I am
editing the notes so the posted versions may change. I will always date
the posted version so you can see when yours is superseeded. If you have
a Windows or Linux box, you can download a
Postscript reader
or an Acrobat reader Communication
Assignments
Course Description
Outline
Lecture notes