01. Introduction to Data Science

INTRO Data Science Principles
INTRO Applications of Computational Science
INTRO ⦿  Computational Biology
INTRO   ⦾  go to Bioinformatics Workbook
INTRO ⦿  Geospatial Analytics
INTRO   ⦾  go to Geospatial Workbook
INTRO ⦿  Machine Learning Outlook
INTRO   ⦾  go to AI Workbook

02. Introduction to the Command Line

TUTORIAL Terminal, a text-based interface for command-line operations
TUTORIAL Introduction to UNIX Shell: shell variables, home dir, .bashrc
TUTORIAL ⦿  Basic Commands: Navigation, File Creation & Preview
TUTORIAL ⦿  Command Line Text Files Editors: nano, vim
TUTORIAL ⦿  System Info and Access Permissions
TUTORIAL ⦿  Superuser Command: sudo
TUTORIAL ⦿  Getting Started with UNIX + VIDEO + exercises
INTRO Useful Text Manipulation Programs
TUTORIAL ⦿  GREP – simple search for regular expressions
TUTORIAL ⦿  SED – replace pattern in stream text
TUTORIAL ⦿  AWK – advanced text processing
TUTORIAL ⦿  BIOAWK – biological data manipulation
CheatSheet UNIX Commands

03. Setting Up Computing Machine

INTRO Operating System Installation
TUTORIAL ⦿  Windows OS Installation
TUTORIAL ⦿  Linux OS Installation
INTRO Must-Have Software
INTRO ⦿  Basic Office Software
INTRO ⦿  Basic Developer Tools
INTRO ⦿  Basic Developer Libraries
INTRO Various Methods of Software Installation
TUTORIAL ⦿  Installations on MacBook Pro
TUTORIAL ⦿  Installations on Windows
TUTORIAL ⦿  Installations on Linux

04. Development Environment

INTRO Integrated & Interactive Development Environment (IDE)
TUTORIAL ⦿  Visual Studio Code: Multi-language Integrated DE
TUTORIAL ⦿  Jupyter: Interactive Web-Based Multi-Kernel DE
TUTORIAL   ⦾  Getting Started with JupyterLab on a local machine
TUTORIAL   ⦾  Getting Started with Jupyter Notebook on HPC systems
TUTORIAL   ⦾  Sharing Jupyter-based reproducible pipline via MyBinder
INTRO Python Programming Environment(s)
TUTORIAL ⦿  Online Console: simple Python code in a browser (without installation)
TUTORIAL ⦿  Online Notebook: interactive Python on Try-jupyter and Colab (no installation)
TUTORIAL ⦿  Local Python setup on your computing machine (installation needed)
TUTORIAL   ⦾  Shell & IDLE: create Python code in a terminal or simple IDE (beginner)
TUTORIAL   ⦾  Text editors: create Python code in terminal text files (intermediate)
TUTORIAL   ⦾  Jupyter Lab: create an interactive Python notebook (advanced)
TUTORIAL   ⦾  PyCharm: IDE for Professional Python Developers (professional)
INTRO R Programming Environment(s)
TUTORIAL ⦿  RStudio: Integrated Environment for R Programming
TUTORIAL   ⦾  Setting Up RStudio

05. Introduction to Programming

INTRO Basics of Algorithm Structure
TUTORIAL Introduction to Bash Scripting
TUTORIAL Introduction to Python Programming
TUTORIAL ⦿  Open-Close & Read-Write of Data Files
TUTORIAL ⦿  JSON Module - Encoding & Decoding JSON Data
TUTORIAL ⦿  Math Module - Various Mathematical Functions
TUTORIAL ⦿  Pandas Library - Data Structure Manipulation Tool
TUTORIAL ⦿  Numpy Library - Multi-Dimensional Arrays Parser
TUTORIAL ⦿  SciPy Library - Algorithms for Scientific Computing
TUTORIAL Introduction to R programming
TUTORIAL ⦿  Dplyr - R package for data manipulation and transformation
TUTORIAL ⦿  Ggplot2 - R package for customizable graphs and charts
TUTORIAL ⦿  Tidyverse - R packages set for advanced exploratory data analysis

06. High-Performance Computing (HPC)

INTRO Introduction to HPC infrastructure
INTRO ⦿  XSEDE Supercomputer
TUTORIAL   ⦾  XSEDE Supercell Storage
INTRO ⦿  SCINet Network
TUTORIAL   ⦾  Atlas Computing Cluster
TUTORIAL   ⦾  Ceres Computing Cluster
TUTORIAL   ⦾  Juno Storage
TUTORIAL   ⦾  Condo Computing Cluster
TUTORIAL   ⦾  Nova Computing Cluster
TUTORIAL   ⦾  LSS Storage
INTRO Remote Access to HPC Resources
TUTORIAL ⦿  Virtual Private Network (VPN) Connection (command line)
TUTORIAL ⦿  Secure Shell Connection (SSH) (command line)
TUTORIAL   ⦾  SSH shortcuts and password-less login
TUTORIAL ⦿  Open On Demand (OOD) Connection (web-based GUI)
MORE (see more in section 7: Data Acquisition: Remote Data Access ⤴)
TUTORIAL Setting up Your Home Directory for Data Analysis
TUTORIAL ⦿  .bashrc example file
TUTORIAL Software Available on HPC
TUTORIAL ⦿  Accessing pre-Installed Modules
TUTORIAL ⦿  Accessing Software via Package Manager
TUTORIAL ⦿  Installing Custom Programs in User Space
INTRO Introduction to Job Scheduling
TUTORIAL ⦿  SLURM: Basics of Workload Manager
TUTORIAL   ⦾  Introduction to SLURM
TUTORIAL   ⦾  Creating SLURM Job Submission Scripts
TUTORIAL   ⦾  Submitting Dependency Jobs using SLURM
CheatSheet   ⦾  SLURM Commands
TUTORIAL ⦿  PBS: Portable Batch System
TUTORIAL   ⦾  Creating PBS Job Submission Scripts
TUTORIAL   ⦾  Submitting Dependency Jobs using PBS
CheatSheet   ⦾  PBS Commands
TUTORIAL Introduction to GNU Parallel
INTRO Introduction to Containers
TUTORIAL ⦿  Singularity
TUTORIAL   ⦾  Creating Containers using Singularity
TUTORIAL   ⦾  Modifying Existing Containers
TUTORIAL   ⦾  Singularity on your Mac via Vagrant
TUTORIAL ⦿  Docker

07. Data Acquisition and Wrangling

TUTORIAL Remote Data Access
INTRO ⦿  Remote Data Transfer
TUTORIAL   ⦾  Copying Data using Graphical Interface: Globus
TUTORIAL   ⦾  Copying Data via SSH using Command Line: scp, rsync
TUTORIAL   ⦾  File Transfer using irods
INTRO ⦿  Remote Data Download
TUTORIAL   ⦾  Downloading Online Data using WGET
TUTORIAL   ⦾  Downloading Online Data using Python Web Scraping
TUTORIAL   ⦾  Downloading Online Repo using GIT [GitHub, Bitbucket, SourceForge]
TUTORIAL   ⦾  Downloading Single Folder from GitHub using SVN
INTRO ⦿  Remote Data Preview (without Downloading)
TUTORIAL   ⦾  Viewing Text Files using UNIX commands
TUTORIAL   ⦾  Viewing PDF Files using X11 SSH connection
TUTORIAL   ⦾  Viewing graphics in a terminal as the text-based ASCII art
TUTORIAL   ⦾  Mounting Remote Folder on Local Machine
INTRO Data Manipulation
INTRO ⦿  Manipulating Excel Data Sheets
TUTORIAL   ⦾  Create Workbook from Multiple Text Files
TUTORIAL   ⦾  Export Multiple Worksheets as Separate Text Files
TUTORIAL   ⦾  Create Index for All Worksheets
TUTORIAL   ⦾  Merge Two Spreadsheets using a Common Column
INTRO ⦿  Manipulating Text Files with Python
TUTORIAL   ⦾  Read, Write, Split, Select Data
TUTORIAL Data Wrangling: ready-made apps
TUTORIAL ⦿  Merge files by common column (python)
TUTORIAL ⦿  Aggregate data over slicing variations (python)

08. Data Visualization

INTRO Introduction to Scientific Graphic Design
TUTORIAL ⦿  Raster Graphics Tools
TUTORIAL ⦿  Vector Graphics Tools
TUTORIAL ⦿  Adobe Creative Cloud
TUTORIAL ⦿  Template-based Web Tools
INTRO Introduction to Scientific Graphing
TUTORIAL ⦿  Gnuplot: Creating Plots in the UNIX Shell
TUTORIAL ⦿  Plotly-Dash: Data Processing & Interactive Plotting with Python
TUTORIAL   ⦾  Introduction to Plotly (Python library)
TUTORIAL   ⦾  Introduction to Dash (Python library)
TUTORIAL   ⦾  Plotly Graphing - Interactive Examples in the JupyterLab
TUTORIAL     ⊙  Creating XY Scatter Plot
TUTORIAL     ⊙  Creating 1D Volcano Plot
TUTORIAL     ⊙  Creating Heatmap
TUTORIAL     ⊙  Creating Dendrogram
TUTORIAL     ⊙  Creating Clustergram (Heatmap with Dendrograms)
TUTORIAL ⦿  RStudio: Data Processing & Plotting with R
TUTORIAL     ⊙  Creating Boxplots in R
TUTORIAL     ⊙  Creating Heatmaps in R
TUTORIAL     ⊙  Creating Heatmaps in R using ComplexHeatmap

09. Project Management

INTRO Introduction to Project Management
TUTORIAL ⦿  A Practical Guide to Managing a Research Project
INTRO Storage & Version Control
TUTORIAL ⦿  GIT - a distributed version control system
CheatSheet   ⦾  GIT Commands
INTRO ⦿  Online Hosting Platforms for GIT Repositories
TUTORIAL   ⦾  Introduction to GitHub
TUTORIAL     ⊙  GitHub for advanced users
TUTORIAL   ⦾  Introduction to BitBucket
INTRO Documentation Improvement Tools
TUTORIAL ⦿  Introduction to Markdown
INTRO Collaboration & Communication
INTRO ⦿  Team Communication Tools
TUTORIAL   ⦾  Introduction to Slack
INTRO Resource Management & Productivity
TUTORIAL ⦿  Introduction to ZenHub
TUTORIAL ⦿  Research Reproducibility Guideline