Scientific Computing

Spring 2017
Tues & Thurs 2:35-3:50pm
Shanahan B442
Harvey Mudd College

Fiber optic illustration

Instructor: Professor Allon Percus

Contact information: CGU Math South, tel. 909-607-0744

Office hours: Thurs after class, or by appointment.

Course description: Math 164/264 aims at providing a broad range of mathematical and computational techniques for use in modeling and simulation. Topics include numerical methods for solving linear and nonlinear algebraic equations, algorithmic analysis, computer arithmetic, random number generation, Monte Carlo and optimization methods. The course is also cross-listed as CS 144 at HMC.

Format: Classes will consist of lectures, labs and student presentations.

Textbook: Detailed course notes, along with a number of other helpful materials, will be posted on sakai under the “Resources” section. You are also highly encouraged to have a copy (physical or electronic) of William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery, Numerical Recipes: the Art of Scientific Computing, 3rd ed. (Cambridge University Press, Cambridge, 2007).

Tentative schedule:

  • Jan 17-19: Algorithms and complexity
  • Jan 19-24: Computer arithmetic
  • Jan 24-26: Root finding
  • Jan 31: Interpolation
  • Feb 2-7: Numerical differentiation
  • Feb 7-9: Numerical integration
  • Feb 14-16: Solving linear systems
  • Feb 21-28: Singular value decomposition
  • Mar 2: Modeling of data
  • Mar 7: Random number generation
  • Mar 14-16: SPRING BREAK
  • Mar 21-28: Monte Carlo
  • Mar 30: LAB
  • Apr 4-13: Markov Chains
  • Apr 18: Simulated Annealing
  • Apr 20: LAB

Assignments and grading: There will be weekly or biweekly homework assignments (depending on the week) worth 60% of the grade, and a final project worth 40% of the grade. These assignments are intended not only as exercises in modeling and computing but also in scientific communication. Pay attention to clarity, grammar and spelling. All assignments will be posted on sakai, and must be submitted in PDF format, uploaded to sakai or e-mailed to the instructor, unless otherwise specified.

You are welcome to collaborate on assignments, subject to a few basic rules:

  • Collaborate to understand the problem better – not just to get the (right) answer.
  • Do not look at someone else’s code until you have written your own, and it works.
  • Write up your submission individually, and in your own words, unless the assignment specifically calls for a team submission.
  • Acknowledge all sources of help (people, books, websites, etc.) that you receive to complete your work.
  • Do not simply correct the work or debug the code of someone else: by offering to collaborate, you take responsibility for helping him or her understand what is involved.