Skip over navigation

Course Offerings

Course Evaluation Results

Course Details

Fall 2016-2017
APC 524 / MAE 506 / AST 506   No Audit

Software Engineering for Scientific Computing

James M. Stone

The goal of this course is to teach basic tools and principles of writing good code, in the context of scientific computing. Specific topics include an overview of relevant compiled and interpreted languages, build tools and source managers, design patterns, design of interfaces, debugging and testing, profiling and improving performance, portability, and an introduction to parallel computing in both shared memory and distributed memory environments. The focus is on writing code that is easy to maintain and share with others. Students will develop these skills through a series of programming assignments and a group project.

Sample reading list:
Kernighan and Pike, The Practice of Programming
Bentley, Programming Pearls
McConnell, Code Complete

Reading/Writing assignments:
Approximately five programming assignments, plus a final project. The project will be undertaken in groups, and will involve creating a major piece of software related to scientific computing.

Design Project - 50%
Programming Assignments - 50%

Other Requirements:
Not Open to First Year Undergraduates.

Schedule/Classroom assignment:

Class numberSectionTimeDaysRoomEnrollmentStatus
20577 L01 11:00:00 am - 12:20:00 pm T Th   Jadwin Hall   A10   Enrolled:39 Limit:80