# Lessons

Nine core lessons, taken in order, build from open-science principles to reproducible, scalable computing; an extra lesson covers workflow managers.

## Open science and data

* [Introduction to Open Science](https://unm-carc.github.io/foss/lessons/01-open-science/) - What open science is, its six pillars (open access, data, educational resources, methodology, peer review, and source software), and why researchers practice it.
* [Data Management and Documentation](https://unm-carc.github.io/foss/lessons/02-data-management/) - The data life cycle, FAIR and CARE principles, data management plans, licensing, and tools for documenting research projects.

## Talking to machines

* [How to Talk to Computers](https://unm-carc.github.io/foss/lessons/03-talk-to-computers/) - An introduction to the Unix shell: navigating directories, working with files, and automating tasks with shell scripts.
* [How to Talk to LLMs](https://unm-carc.github.io/foss/lessons/04-talk-to-llms/) - How large language models work, prompt-engineering techniques such as priming, chaining, and the CRAFT framework, and AI coding tools for research.

## Reproducibility

* [Reproducibility I: Version Control](https://unm-carc.github.io/foss/lessons/05-version-control/) - Version control with Git and GitHub: repositories, the commit-push-pull cycle, branching, pull requests, and handling large files.
* [Reproducibility II: Software Environments](https://unm-carc.github.io/foss/lessons/06-software-environments/) - Computing environments, the system PATH, and using Conda, pip, and renv to create, share, and reproduce software environments.
* [Reproducibility III: Containers](https://unm-carc.github.io/foss/lessons/07-containers/) - Why containers matter for reproducible research, core Docker commands, running an example container, and writing, building, and pushing a Dockerfile.

## Remote computing

* [Remote Computing: HPC](https://unm-carc.github.io/foss/lessons/08-hpc/) - Logging in to a high-performance computing cluster, submitting Slurm batch and interactive jobs, loading modules, and running Apptainer containers.
* [Remote Computing: CyVerse](https://unm-carc.github.io/foss/lessons/09-cyverse/) - An overview of the CyVerse cloud platform: the Discovery Environment, Data Store, Data Commons, analysis apps, and the analysis dashboard.

## Beyond the core lessons

* [AI Models & Where to Find Them](https://tyson-swetnam.github.io/intro-gpt/){target=_blank} - Lesson 10 is taught from the separate GPT 101 generative-AI workshop: finding, running, and fine-tuning AI models for research.
* [Extra: Workflows with Nextflow](https://unm-carc.github.io/foss/lessons/extra-nextflow/) - A comparison of the Nextflow and Snakemake workflow managers and a hands-on RNA-seq tutorial that runs a Nextflow pipeline in a Conda environment.
