CS 322 Introduction to Scientific Computing
Spring 2008
Cornell University

Course Catalog Description:  An introduction to elementary numerical analysis and scientific computation. Topics include interpolation, quadrature, linear and nonlinear equation solving, least-squares fitting, and ordinary differential equations. The MATLAB computing environment is used. Vectorization, efficiency, reliability, and stability are stressed. Special lectures on parallel computation.

Doug James, djames@cs.cornell.edu
Office Hours: Tues 2-4,  Fri 10-noon  (Upson 5146)

Teaching Assistants:
Jeff Chadwick
Office Hours: Tues 4:30-5:30 (Upson 4161)

Jeffrey Pang
Office Hours: Mon 1-3pm (657 Rhodes Hall)

Haibo Lu
Office Hours: Tues 11-noon (CSUGLab)

Time and Place :
Lecture: MW 10:10–11:00, ROOM CHANGE: 165 OLIN HALL
Sec 1, Thursday 12:20 - 1:10 pm, 314 Hollister - Jeff Chadwick
Sec 2, Thursday 3:35 - 4:25 pm, 216 Olin Hall - Jeffrey Pang
Sec 3, Friday 2:30 - 3:20 pm, 307 Phillips Hall - Jeff Chadwick & Jeffrey Pang
Sec 4, Friday 10:10 - 11 am,  Haibo Lu 
ROOM CHANGE: 314 Hollister

Class Schedule


Numerical Mathematics and Computing
by Ward Cheney, David R. Kincaid 
(Required text)

Other books (not required):
    * Scientific Computing: An Introductory Survey, by Michael Heath

Expert Voices BLOG: http://expertvoices.nsdl.org/cornell-cs322     There is a class weblog that we will be maintaining as part of the course, and posting to the blog will be part of the graded coursework, as described in the accompanying handout. The blog is hosted at Cornell, as part of the Expert Voices Gateway of the National Science Digital Library.

Course Newsgroup: news://newsstand.cit.cornell.edu/cornell.class.cs322



There will be (usually) weekly homeworks, due in class on Wednesdays, consisting of one or two problems. See the schedule for the exact due dates. They will involve things like working out numerical or other short answers (which should always be backed up by some brief reasoning), answering "why" questions, and drawing graphs or other pictures.

The homweworks may be handwritten or printed and are to be turned in at the beginning of class. Some homeworks may include Matlab parts to be turned in on CMS. After they are graded (normally by the following week) the grades are posted on CMS, and the papers can be picked up in 360 Upson between 10am and noon or between 2pm and 4pm.

Programming assignments

You will get to enjoy three projects:
  1. Root Finding (or "Rendering Implicit Surfaces and Fluids")
  2. ShadowBox (or "Monte Carlo Rendering and the SVD-Powered X-Ray Glasses")
  3. Advection (or "Making Explosions at Home")
These programs are to be done in teams of two--unless specified otherwise. If you really want to work by yourself, that is OK but you will still have to do all the work. If you want to work with a partner but can't find one, please contact the course staff and we will help.

The projects are to be done in Matlab. The CSUGLab in Upson 330 is set up to support this course. You are free to work on whatever computer you like, using any programming environment, but your code must work on the machines in our lab. You will hand in your source code using CMS.


There will be two evening prelims and a final exam:

Together the two prelims cover the first 2/3 of the course. The final is comprehensive, so it covers all material from the whole course.

All three exams are closed book, but you're allowed to bring one letter-sized piece of paper with writing on both sides, to avoid the need to memorize things.

After the fact, the exams and solutions will be posted.


Your final grade will be computed from the grades on the assignments, exams, and the course blog as follows:

Due dates and late assignments

Homework assignments are due at the start of class on the due date (normally Wednesday), but will be accepted up to 48 hours late at a 20% deduction. If you will not be able to attend that class, then it is your responsibility to submit the assignment earlier. The lowest homework grade will be dropped in computing your final score.

Project source code, results and writeup (e.g., PDF) are due at 11:59 pm on the due date. Projects are accepted up to 48 hours late with a one-point (out of 4) late penalty.



The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.

You are welcome (encouraged, even) to discuss the homeworks and projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone (or only with your partner if you are doing a project as a pair). In particular, it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.

You're also welcome to read any published sources—books, articles, public web sites—that help you learn. If you find an idea in one of these sources that becomes part of your solution, that's fine, but it's imperative that you give credit on your homework or in a comment in your code. Otherwise you would be falsely claiming to have invented the idea yourself.

Academic Integrity

In this course we expect complete integrity from everyone. School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see Cornell's Code of Academic Integrity .