Lessons
Introduction
Unit I:
The Unix Shell
Introducing the Shell
Files and Directories
Creating Things
Pipes and Filters
Loops
Shell Scripts
Finding Things
Reference…
Unit II:
Version Control with Git
Automated Version Control
Setting Up Git
Creating a Repository
Tracking Changes
Exploring History
Ignoring Things
Remotes in GitHub
Collaborating
Conflicts
Reference…
Unit III:
Programming with Python
Analyzing Data with NumPy
Repeating Actions with Loops
Storing Multiple Values in Lists
Analyzing Data from Multiple Files
Making Choices
Creating Functions
Errors and Exceptions
Defensive Programming
Debugging
Command-Line Protrams
Reference…
Unit IV:
Distributed High Throughput Computing
Introduction to Open Science Grid
Submitting Jobs - HTCondor
Scaling Up Resources - R and MATLAB runtime examples
Troubleshooting
Data Storage and Transfer
Handling Job Dependencies - DAGMan
Large Scale Computation with Pegasus (optional)
Further Materials
Recommended Reading
Glossary