- Lecturer
Graduate Seminar Course: MAT696, Computational tools and techniques for STEM, Spring 2019
Course Description: Computation is now an integral part of the advancement of science, alongside theory and experiment. Computational modeling, analysis and visualization capabilities offer widespread applications across many disciplines. In this course, a quick and practical introduction to writing reliable and sustainable software in Python utilizing good practices and standard development tools will be presented. This includes main principles of object oriented programming, unit testing, version control, debugging, and performance optimization tools. The course will provide a basic understanding of computer architecture and memory hierarchy, data structures, including external libraries in the code, and handling large datasets. Some standard software in computational science, such as VisIt for data visualization and Numpy and Scipy for post-processing will be used. Additionally, an introduction to parallel programming through the use of Message Passing Interface (MPI) will be covered using mpi4py.