Numerical Computation, CMSC 655

Spring 1999 Course Syllabus (DRAFT)

Goals

The goal of this course is to give students an introduction to numeric and algorithmic techniques used for the solution of a broad range of mathematical problems, with an emphasis on computational issues and parallel processing. In addition, students will become familiar with one or more array-oriented numeric programming environments: Matlab, Scilab, or some similar package.

Relevance

For computer science students, there is intrinsic interest in the particular blend of mathematical, algorithmic, architectural, and software-engineering that makes up numerical computation. In addition, familiarity with numeric methods can open up new realms of interesting applications in the area of scientific computation, and much of the material covered here is directly relevant to computer graphics.

For students in electrical engineering, the significance of numerical methods goes without saying. Issues of architecture and parallelism become significant when, as is very often the case, realistic analysis, modeling, and simulation are limited by the speed of computation.

Prerequisites

To quote the text's author, "the prerequisites for the course and the book have been kept to a minimum: basic familiarity with linear algebra, multivariate calculus, and a smattering of differential equations. No prior familiarity with numerical methods is assumed. The book adopts a fairly sophisticated perspective, however, and the course moves at a rather rapid pace in order to cover all of the material, so a reasonable level of maturity on the part of the student (or reader) is advisable."

In particular, note that CMSC 455, the corresponding undergraduate course in numerical computation, is not a formal prerequisite to 655 (though it certainly would not hurt), and this will be taken into account in planning the course. Undergraduate architecture, CMSC 411, is a formal prerequisite, as architecture can be critical to performance. Some familiarity with the methods of algorithmic analysis is desirable, and while not a formal prerequisite, the undergraduate algorithms course, CMSC 441 or equivalent, is recommended.

Students with varied backgrounds who are interested in CMSC 655, and in particular EE students without the CMSC prerequisites, are encouraged to discuss their particular situation with the instructor.

Outline

The course will follow the organization of the text fairly closely. This is the first time this text has been used in CSEE, and there is considerable room for flexibility with regards to pacing and the material covered, in response to student feedback.

The text's introductory chapter will be supplemented with a brief survey of sequential and parallel architecture, and an introduction to Matlab, after which issues of performance and potential parallelization will be integrated with the remaining material. The use of a relatively high-level language such as Matlab makes it possible to express numeric algorithms in a natural way; in addition, it is useful for for prototyping lower-level parallel code, and is amenable to automatic parallelization.

Tentatively, the course outline is as follows.

As time permits, selected topics from the following areas will also be covered.

Grading

Exercises will be assigned regularly, and there will be several small- to moderate-sized projects; in addition, some of the "exercises" may be short projects. The midterm exam is tentatively set for the end of the chapter on non-linear equations. The final exam will cover the remaining material and will not be explicitly cumulative, though the material in the later chapters may not be entirely independent from that in the earlier.

Points are given for projects, exams, and homework, with your final grade depending on the total number of points you have accumulated. Tentatively, points will be allocated as follows.

             exercises              50  points        
             projects              100  points
             midterm exam          100  points
             final exam            100  points
             -----------------     -----------
             Total                 350  points

Further Information

Course material, including class announcements, project and homework assignments, a list of due dates, and possibly a partial set of lecture notes, will be available online at http://umbc.edu/~motteler/teaching.

Selected References