This repo contains the materials for IB 516 Analytical Workflows co-developed by Mark Novak and Ben Dalziel at Oregon State University.
The repository's most relevant folders are:
- course_info - grading rubrics and the course syllabus;
- classes - sub-folders for each course topic;
- readings - pdfs of the required and suggested readings.
Have you proposed a modeling chapter for your dissertation but need support getting things up and running? Are you sitting on a data set ready for analysis and visualization but don't know how or where to begin? Maybe you're far along in some series of analyses and feel ``lost in the trees.''
This course will help you with these challenges by practicing the development and implementation of efficient, reproducible workflows for your projects. Every project should (and can) be modular and fully automated, hence reproducible, portable and easily modified. Rerunning a model under a different set of parameters should (and can) be as simple as a few keystrokes. Regenerating all analyses, figures and tables after finding a typo in your code or dataset should (and can) be painless.
Efficient workflows start at project conception and end only if the project idea is itself a dead end. Thus, in this course, we'll work to practice (1) refining and articulating project ideas and goals, (2) creating modular and automated analyses, and (3) using best-practices in coding and project management. We'll learn how to use Git, GitHub, LaTeX, and Markdown. Instructors will mostly use R or Python, in VS Code or RStudio, but users of other programming languages and text editors are welcome and encouraged. You will need either (1) a large dataset or (2) a dynamical model or simulation. For either, you'll need to have a goal and a well-developed vision for achieving it. (We won't be learning statistics or mathematics.) The use of other people's data or published models is acceptable, but working on your own thesis work / projects is strongly encouraged.
If you find a broken link or typo, please create an Issue to let me know where it is! You can also create an Issue to leave feedback, pose questions, or suggest new or alternative materials (e.g., new publications) to include. You can also write to me at benjamin.dalziel@oregonstate.edu.
For Spring 2026, we are meeting on Mondays & Wednesdays 10-11:50am in Cordley 2406.
Click on a topic to see the day's to-do's (required before-class reading and set-up).
| Wk | Day | Date | Topic |
|---|---|---|---|
| 1 | Mon | Mar 30 | Course overview & Philosophy |
| Wed | Apr 1 | Structuring projects | |
| 2 | Mon | Apr 6 | Git w/ GitHub - Part 1 |
| Wed | Apr 8 | Git w/ GitHub - Part 1 continued | |
| 3 | Mon | Apr 13 | Implementation & Troubleshooting |
| Wed | Apr 15 | Project proposals | |
| 4 | Mon | Apr 20 | Coding best practices |
| Wed | Apr 22 | Git w/ GitHub - Part 2 | |
| 5 | Mon | Apr 27 | Implementation & Troubleshooting |
| Wed | Apr 29 | Implementation & Troubleshooting | |
| 6 | Mon | May 4 | Large Language Models |
| Wed | May 6 | Typesetting with Markdown | |
| 7 | Mon | May 11 | Faster computing |
| Wed | May 13 | High Performance Computing | |
| 8 | Mon | May 18 | Implementation & Troubleshooting |
| Wed | May 20 | Typesetting with LaTeX | |
| 9 | Mon | May 25 | No class (Memorial Day) |
| Wed | May 27 | Implementation & Troubleshooting | |
| 10 | Mon | Jun 1 | Project presentations |
| Wed | Jun 3 | Project presentations & Wrap-up |