Syllabus for Numerical Analysis
Professor: Mark McClure
Course purpose
Numerical analysis in the 21st century is largely the art of (approximately) solving the problems of applied mathematics on a computer. In this course we will:
- To learn the mathematics behind the fundamental algorithms of numerical computing By the fundamental algorithms of numerical analysis, we mean the computational techniques to find approximate solutions to elementary problems of applied mathematics. These include solving equations and systems of equations, interpolation of data, evaluating derivatives and integrals, and solving differential equations. These problems are central to a wide variety of applications.
- To learn the computational issues behind these algorithms Numerical analyisis has developed largely as a technique to solve applied problems on a computer. Thus, we will implement these algorithms on the computer using a procedural programming paradigm. Implementation introduces it's own complications. For example, given two mathematically equivalent expressions, one might be more numerically stable than the other. Even the representation of numbers on a computer introduces issues to study.
- To learn to use a powerful numerical tool We will implement some of the basic algorithms we learn in Python as part of our learning experience. We will will also learn how to use several, high level Python libraries for numerical analysis.
Materials
- Text: I will use a rough, open source text to assign problems and organize the class. Note that its contents will likely evolve throughout the semester. Much of that text is based on the outstanding Numerical Mathematics and Computing by Kincaid and Cheney. Any undergraduate student of numerical computing who might continue in the study should seriously consider acquiring that text! There is no particular edition required for this class, however, and you can find earlier editions online for quite cheap.
- Python: We will be programming a fair amount in Python this semester. I recommend that you download and install Continuum Analytic's Anaconda, which is the easiest way to get a full scientific Python distribution with all the libraries we'll need this semester.
- Discourse: I've set up a discussion forum for this class. Note that participation is mandatory. We'll talk about it in class and there is an onsite topic explaining it's use and role in the class.
Grades
- Quizzes: There will four to six labs spread throughout the semester - a couple of easier 20 point labs and a couple more involved 40 point labs.
- Quizzes: There will be two quizzes during
the semester worth about 40 points apiece. Likely dates for those quizzes are:
- Friday, February 5
- Friday, April 1
- Exams: There will be two exams during
the semester worth about 100 points apiece. Likely dates for the exams are:
- Friday, February 19
- Friday, April 22
- Final exam: There will be a comprehensive, final exam worth around 180 points at 8:00 AM on Wednesday, April 27.
- Discourse: You can earn up to 60 points by participating in our online discussion forum. Note that this is a course requirement; those 60 points are real. There will be a discussion on the site itself indicating exactly how it works.
- Homework: I will often assign problems from our text but rarely collect it.
- Final grades: I will determine final grades using a scale not more stringent than the standard 90-80-70-60 scale. You will be apprised of your standing as the term progresses.
- Late work: In general, I don't accept late work.
- Cheating: I don't deal with cheating. If I suspect cheating strongly enough, I simply refer you to the provost and fail you for the class.