Instructor: Paul Heckbert, email@example.com, Doherty 4301A, phone 8-7899, meetings by appointment (please phone or email)
Time: TR 10:30-11:50
First class is 15 Sept., last class is 3 Dec. (First class meets on Sept. 15, three weeks into the semester, because of the CS immigration course.)
Place: Wean 5409A
Description: This course will cover hierarchical methods for simulating physical phenomena. In recent years, the development of n-body algorithms, multigrid methods, and wavelets have permitted very large simulation problems in science and engineering to be solved. We will study these algorithms and implement some of them.
Primary emphasis will be on scientific computing, that is algorithms, data structures, and mathematics; but application problems from science and engineering will also be studied to motivate and test the ideas, and methods from graphics will be used for visualization. Although the registrar lists the full title of the course as "Advanced Topics in Theory: Hierarchical Methods for Simulation", this is a practically-oriented, not theory-oriented, course.
Audience: The course is intended for graduate students interested in scientific computing of any form, including students in computer science (e.g. graphics, robotics, algorithms), and students in other areas of science and engineering. Advanced undergraduates may also take the course, with permission of the instructor.
Prerequisites: Undergraduate classes in algorithms (e.g. 15-212) and linear algebra, and some knowledge of C++. Knowledge of calculus (partial differential equations) and basic Newtonian physics.
Textbooks and Readings:
Programming assignments can be done in C++, C, Java, or almost any other language. Starter code in C++ will be provided for most assignments. Where necessary, this code will use Xforms for user interface and OpenGL for graphics, but students are free to use other libraries and systems, e.g. tk, fltk, DirectX, Maple, Matlab, or Mathematica. See the summary of software libraries for the class. We will discuss and implement sequential, not parallel, algorithms, mostly.
If you need a public machine, Suns with 24 bit graphics are in Wean 5201, PC's running Linux are in Wean 5203, and SGI Indy's are in Wean 5205. See the Wean cluster information. There are also some more powerful SGI machines (Octanes) in the College of Fine Arts building.
Students are expected to do the programming by themselves unless group collaboration or use of public software is approved by the instructor. Late policy: 14% off per school day late (weekends aren't on the clock).
There is a news group for the class, cmu.cs.class.cs859e, that students are invited to read and contribute to. It will be particularly useful for programming assignments.
Registrar's info about this course
Related courses at CMU