Part I. Research Computing

Table of Contents

1. Computational Science
1.. Introduction
1.. Common Methods Used in Computational Science
1.. Venture Outside the Computer Science Bubble
1.. Practice
2. Where do I get the Software?
2.. But I Hate Programming...
2.. Buy It
2.. Download It
2.. Containers
2.. Finding Research Software
2.. Write It
2.. Running Your Software
3. Using Unix
3.. KISS: Keep It Simple, Stupid
3.. What is Unix?
3.. Unix User Interfaces
3.. Still Need Windows? Don't Panic!
3.. Logging In Remotely
3.. Unix Command Basics
3.. Basic Shell Tools
3.. Processes
3.. The Unix File System
3.. Unix Commands and the Shell
3.. POSIX and Extensions
3.. Subshells
3.. Redirection and Pipes
3.. Power Tools for Data Processing
3.. File Transfer
3.. Environment Variables
3.. Shell Variables
3.. Process Control
3.. Remote Graphics
4. Unix Shell Scripting
4.. What is a Shell Script?
4.. Why Write Shell Scripts?
4.. Which Shell?
4.. Writing and Running Shell Scripts
4.. Sourcing Scripts
4.. Shell Start-up Scripts
4.. String Constants and Terminal Output
4.. Shell and Environment Variables
4.. Hard and Soft Quotes
4.. User Input
4.. Conditional Execution
4.. Loops
4.. Generalizing Your Code
4.. Pitfalls and Best Practices
4.. Script Debugging
4.. Functions, Child Scripts, and Aliases
4.. Here Documents
4.. Scripting an Analysis Pipeline
4.. Solutions to Practice Breaks
5. Data Management
5.. What is Data Management?
5.. Why Worry?
5.. Storage Logistics
5.. Data Storage on the Cluster
5.. Data Transfer
5.. Practice