Book description
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 knowledge 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
Publisher resources
Table of contents
- Foreword
- Preface
- I. Getting Started
- 1. Introduction to the Command Line
- 2. Programming Blastoff with Python
- 3. Essential Containers
- 4. Flow Control and Logic
- 5. Operating with Functions
- 6. Classes and Objects
- II. Getting It Done
- 7. Analysis and Visualization
- 8. Regular Expressions
- 9. NumPy: Thinking in Arrays
- 10. Storing Data: Files and HDF5
- 11. Important Data Structures in Physics
- 12. Performing in Parallel
- 13. Deploying Software
- III. Getting It Right
- 14. Building Pipelines and Software
-
15. Local Version Control
- What Is Version Control?
- Getting Started with Git
-
Local Version Control with Git
- Creating a Local Repository (git init)
- Staging Files (git add)
- Checking the Status of Your Local Copy (git status)
- Saving a Snapshot (git commit)
- git log: Viewing the History
- Viewing the Differences (git diff)
- Unstaging or Reverting a File (git reset)
- Discard Revisions (git revert)
- Listing, Creating, and Deleting Branches (git branch)
- Switching Between Branches (git checkout)
- Merging Branches (git merge)
- Dealing with Conflicts
- Version Conrol Wrap-Up
-
16. Remote Version Control
- Repository Hosting (github.com)
- Creating a Repository on GitHub
- Declaring a Remote (git remote)
- Sending Commits to Remote Repositories (git push)
- Downloading a Repository (git clone)
- Fetching the Contents of a Remote (git fetch)
- Merging the Contents of a Remote (git merge)
- Pull = Fetch and Merge (git pull)
- Conflicts
- Resolving Conflicts
- Remote Version Control Wrap-up
- 17. Debugging
- 18. Testing
- IV. Getting It Out There
- 19. Documentation
- 20. Publication
- 21. Collaboration
- 22. Licenses, Ownership, and Copyright
- 23. Further Musings on Computational Physics
- Glossary
- Bibliography
- Index
Product information
- Title: Effective Computation in Physics
- Author(s):
- Release date: June 2015
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491901533
You might also like
book
Math for Deep Learning
Deep learning is everywhere, making this powerful driver of AI something more STEM professionals need to …
book
Fundamentals of Physics
No other book on the market today can match the 30-year success of Halliday, Resnick and …
book
Practical Linear Algebra for Data Science
If you want to work in any computational or technical field, you need to understand linear …
book
Math for Programmers
To score a job in data science, machine learning, computer graphics, and cryptography, you need to …