Welcome to EP476, "Scientific Computing for Engineering Physics". This course will focus on bringing important scientific software development skills to students primarily in the Engineering Physics department.
Scientific software development has transitioned from a field devoted almost entirely to numerical methods to one that increasingly relies on more advanced management of data and development of analysis workflows that involve multiple tools strung together in a sequence, and also numerical methods.
This course is designed to introduce a variety of concepts that will make engineers and scientists more effective at developing software that facilitates modern engineering analysis.
"Effective Computation in Physics", Anthony Scopatz & Kathryn Huff, O'Reilly, 2015
- approximately weekly
- continuation of in-class exercises
- develop skills and proficiency
- implement your own software and/or contribution to an open source software project
- should use a variety of skills learned in class
|
Intro, Shell, Filesystem & Environment | |
Lecture #1 | Lecture #2 | |
|
Managing your Environment & Intro to Version Control | |
Lecture #3 | Homework #1 | |
|
Version control: Local & Remote; Python Intro, Types | |
Lecture #4 | Lecture #5 , Project Intro | |
|
Python: Strings, Modules, Documentation, Containers | |
Lecture #6 , | Lecture #7 Homework #2 | |
|
Python: flow control, modularity with functions | |
Lecture #8 , | Lecture #9 | |
|
Python: Classes & Modules | |
|
Python: Debugging & Unit testing | |
|
Python: Integration & regression testing, Validation | |
|
Profiling & Compiled languages & Mixed languages | |
Mar 22 & 24: Spring Break | ||
|
Make files & build systems | |
|
Deployment & Collaboration | |
|
Continuous integration & Automation | |
|
Data management & metadata | |
|
String handling & Regular expressions | |
|
Numerical tools: Numpy, SciPy, Matplotlib | |
BONUS | Parallelism: HTCondor, MPI, OpenMP |