CS3220: Introduction to Scientific Computing
Spring 2009


20 Apr HW9 has been posted.

18 Apr PA3 has been posted.

7 Apr HW8 has been posted.

27 Mar PA2 has been posted.

23 Mar HW7 has been posted.

9 Mar HW6 has been posted.

24 Feb HW5 has been posted.

18 Feb HW4 has been posted.

4 Feb PA1 has been posted.

3 Feb HW3 has been posted.

27 Jan HW2 has been posted.

21 Jan HW1 has been posted.

16 Jan Welcome to CS 3220.

About CS3220

Steve Marschner, srm at cs.cornell.edu
  ofc hrs W 3:30-4:30; F 4:00-5:00 in 5159 Upson

TA hours:
Wenzel Jakob, wenzel at cs.cornell.edu
 ofc hrs Th 2:30-3:30 and F 3:30-4:30 in 5132 Upson
Kan Li, likan at cs.cornell.edu
 ofc hrs W 12:00-1:00 and F 2:30-3:30 in 328 Upson
Manuel Vargas, mev25 at cornell.edu
 ofc hrs Sa 3:00-5:00 in CSUGlab (316 Upson)

Time and place:
Lectures: MW 10:10–11:00, 203 Thurston
Sections: R 12:20–01:10, 165 Olin
   R 03:35–04:25, 110 Hollister
   F 10:10–11:00, 111 Upson

Cheney & Kincaid, Numerical Mathematics and Computing (required)

Electronic communication:
Staff List: cs3220-staff-l at lists.cs.cornell.edu
News group: cornell.class.cs3220 on newsstand.cit.cornell.edu (SSL is required, click here for more information about newsgroups)


You'll need to know calculus, including basic multivariable calculus, and linear algebra. The standard Engineering math sequence is fine, or Math 1110-1120-2210, or other courses covering the same material.

You'll also need to know the basics of the Matlab programming language and environment. If you have never used Matlab, consider taking or just following CS 1132, Transition to Matlab, a one-credit self-paced web course intended to quickly teach Matlab to students who have already learned another programming language, such as Java.



There will be (usually) weekly homeworks, due in class on Mondays, 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 making plots. Some homeworks will be computer-based problems to be done in Matlab.

The homweworks may be handwritten or printed and are to be turned in at the beginning of class. After they are graded, the grades are posted on CMS, and the papers can be picked up in 363C Upson between 10am and noon or between 2pm and 4pm, weekdays. Regrade requests must be submitted within one week of receiving the graded homework.


There will be three projects as part of CS3220, in which you'll apply some of the methods we learn to practical problems involving cool pictures:

  1. Root Finding: Compute pictures of 3D blobby objects and simulation data by finding roots of functions.
  2. Shadow Box: Discover the mystery lights that cast complex shadows by analyzing them using SVD.
  3. Springies: Build an interactive mass-spring simulation using a variety of differential equation solvers.

These projects may be done individually or in teams of two. If you want to work with a partner but can't find one, please contact the course staff and we will help.

You'll implement the projects in Matlab based on the code we hand out. The CSUGlab machines are set up to support this course. You are free to work on whatever computer you like, using any programming environment, but your code must run on the machines in the 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, you can find the exams and solutions on the exams page.


The tutorial sections will review material from lecture, go over solutions to additional example problems, and provide additional help for the programming assignments.


Your final grade in CS3220 will be computed from the grades on the assignments and exams using the following weights:

Due dates and late projects

Homework assignments are due at the start of class on the due date (normally Monday), and are not accepted late. The lowest homework grade will be dropped in computing your final score.

Projects are due at 11:59pm on the due date (normally Thursay) and are accepted with a late penalty two days after the due date (normally Saturday). Programs are accepted late as follows:

  1. Hand in by late deadline: 10% off score (about a leter grade)
  2. Hand in within one week of due date: graded pass/fail; pass receives 50% credit
  3. More than one week late: no credit

Assignments that are handed in under option 2 will not be graded carefully and may be returned very late. That option is just intended to give you a chance to reduce the effect of zeros averaged into your grade.



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 (or even gives you the whole solution), that's fine, but it's imperative that you credit that fact 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.