More physicists today are taking on the role of software developer as part of their research, but software development isn't always easy or obvious, even for physicists. This practical book teaches essential software development skills to help you automate and accomplish nearly any aspect of research in a physics-based field. Written by two PhDs in nuclear engineering, this book includes practical examples drawn from a working kwledge of physics concepts. You'll learn how to use the Python programming language to perform everything from collecting and analyzing data to building software and publishing your results. In four parts, this book includes: Getting Started: Jump into Python, the command line, data containers, functions, flow control and logic, and classes and objects Getting It Done: Learn about regular expressions, analysis and visualization, NumPy, storing data in files and HDF5, important data structures in physics, computing in parallel, and deploying software Getting It Right: Build pipelines and software, learn to use local and remote version control, and debug and test your code Getting It Out There: Document your code, process and publish your findings, and collaborate efficiently; dive into software licenses, ownership, and copyright procedures
Anthony Scopatz is a computational physicist and long time Python developer, Anthony holds his BS in Physics from UC, Santa Barbara and a Ph.D. in Mechanical / Nuclear Engineering from UT Austin. A former Enthought employee, he spent his post-doctoral studies at the FLASH Center at the University of Chicago in the Astrophysics Department. He is currently a Staff Scientist at the University of Wisconsin-Maidson in Engineering Physics. Anthony's research interests revolve around essential physics modeling of the nuclear fuel cycle, and information theory & entropy. Anthony is proudly a fellow of the Python Software Foundation and has published and spoken at numerous conferences on a variety of science & software development topics. Kathryn Huff is a Nuclear Science and Security Consortium postdoctoral scholar at the University of California Berkeley. In 2013, she received her Ph.D. in Nuclear Engineering from the University of Wisconsin Madison. She also holds a bachelor's degree in Physics from the University of Chicago. She has participated in varied research including experimental cosmological astrophysics, experimental non-equilibrium granular material phase dynamics, computational nuclear fuel cycle analysis, and computational reactor accident neutronics. At Wisconsin, she was a founder of The Hacker Within scienti c computing group and has been an instructor for Software Carpentry since 2011. Among other professional service, she is currently an executive officer in two professional divisions of the American Nuclear Society and in 2014 she will serve a second consecutive year as the Technical Program Co-Chair of the Scientic Computing with Python (SciPy) conference.