CSE701

This course concerns scientific libraries as the most effective form of communication for advances in scientific computation. We will learn how to design, implement, test, distribute, and maintain a numerical library written in a higher level languages, such as C, Fortran, and Python. Emphasis will be placed on solving practical computational problems and providing insight to the user on code accuracy, performance, and tradeoffs. We will also cover basic techniques of algorithm design and implementation, project planning, source management, configuration and build tools, documentation, program construction, i/o, and visualization.

This will be a project course in which students will work in small groups (3-6) to produce a lasting community scientific library. Lectures will illustrate library design and implementation issues using examples from the PETSc library.

CSE 701 Course Information

Instructor: Matthew G. Knepley

Class times: 11:30am to 1:30pm on Thursday

Location: Davis Hall 113A

Office Hours: Instructor 12:30pm to 1:30pm Tuesday in Davis 334

Required and Recommended Reading

Class notes will be prepared by students after the lectures in order to digest the material. The following books are foundational for the software construction and documentation will be attempt in this class. However we will not follow them in any way, and they are intended for reference and outside reading.

Syllabus

Homework