Objectives: This course discusses the art to build numerical software, i.e.,
computer programs applying numerical methods for solving mathematical or
physical problems. We will be using the combination of Python and C++ and
related tools (e.g., bash,
git, make, etc.)
to learn the modern development processes. By completing this course, students
will acquire the fundamental skills for developing modern numerical software.
Prerequisites: This is a graduate or senior level course open to students
who have taken engineering mathematics or equivalence. Working knowledge of
Linux and Unix-like is required. Prior knowledge to numerical methods is
recommended. The instructor uses English in the lectures and discussions.
There are 15 or more lectures for the subjects of numerical software
developing using Python and C++.
There is usually homework given after a lecture to exercise the lectured
materials, and it usually requires students to write computer programs in
Python and/or C++.
Mid-term examination will be conducted to assess students' understandings
to the analytical materials.
Term project will be used to assess students' overall coding skills.
Presentation is required. Failure to present results in 0 point for this
part.
Grading: homework 30%, mid-term exam: 30%, term project: 40%.