PHS 7045: Advanced Programming — Fall 2026

Authors

George G. Vega Yon, Ph.D.

Thi-Mui Pham, Ph.D.

Jonathan Chipman, Ph.D.

Welcome to Advanced Programming in R and HPC! The instructors are George G. Vega Yon, Ph.D. and Thi-Mui Pham, Ph.D..1 You can find the Fall 2026 syllabus. Readings for each session can be found in the GitHub issues associated with them.

Contents

Week Date Session Title Materials
1 8/25/26 Lecture Intro classes AI slides (source)
1 8/27/26 Lab How to use AI in the class slides (source)
2 9/1/26 Lecture Intro to Git slides (source)
2 9/3/26 Lab Git and Github exercises lab (source)
+ [quarto](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/quarto.html){target="_blank" rel="noopener"} ([source](01-git/quarto.qmd){target="_blank" rel="noopener"})
2 9/8/26 Lecture Functional programming slides (source)
2 9/10/26 Lab Functional programming lab (source)
+ [Homework 2](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/homework.html){target="_blank" rel="noopener"} ([source](04-more-functions-and-datatable/homework.qmd){target="_blank" rel="noopener"})
3 9/15/26 Lecture Debugging and profiling slides (source)
3 9/17/26 Lab Debugging and profiling lab (source)
4 9/22/26 Lecture Introduction to C++ slides (source)
4 9/24/26 Lab Introduction to C++ lab (source)
5 9/29/26 Lecture C++ in R slides (source)
5 10/1/26 Lab C++ in R lab (source)
Deliver a paragraph in abstract mode describing their projects for the midterm.
6 10/6/26 Lecture Parallel Computing slides (source)
6 10/8/26 Lab Parallel Computing lab (source)
7 10/13/26 Break Fall Break
7 10/15/26 Break Fall Break
8 10/20/26 Lecture and Lab Bonus Track 1: More on AI
8 10/22/26 Lecture and Lab Bunus Track 2: Ollama
9 10/27/26 Lecture Midterm project: Hackathon
9 10/29/26 Lab Midterm project: Presentations (lightning talk) Homework 3 (source)
10 11/3/26 Lecture and Lab UofU's CHPC intro CHPC overview
Linux slides, using R slides, Slurm slides
10 11/5/26 Lecture and Lab UofU's CHPC coding agents lab (source)
11 11/10/26 Lecture Slurm slides (source)
11 11/12/26 Lab More practice with slurm slides (source)
12 11/17/26 Lecture R packages I slides (source)
12 11/19/26 Lab R packages I lab (source)
13 11/24/26 Lecture TBD
13 11/26/26 Lab Thanksgiving recess
14 12/1/26 Lecture Automatic Reports with GitHub Actions slides (source)
14 12/3/26 Off TBD (maybe something about agents orchestration or whatnot)
15 12/8/26 Lecture Final Prep (Hackathon)
15 12/10/26 Lab Final Prep (Hackathon)
16 12/15/26 Lecture Final
16 12/17/26 Lecture Final Requirements

Assignment workflow

Assignment materials will be distributed in a single compressed file (usually zip) for each assignment. Once the assignment materials are available, the students are required to do the following:

  1. Download the compressed file and extract its contents into an empty folder.

  2. Initialize the folder as a git repository, add its contents, and make the first commit.

  3. Create a new repository in Github.com (under your account) and push your local repo into it. The name of the repository should be [name of the compressed file]-[your GitHub username]

You can start working on your assignment! We recommend pushing your changes as much as possible (it is good practice). As soon as you finish your assignment, you will have to ping one of the instructors in your commit message, for example:

git commit -a -m "Assignment done @gvegayon and @tm-pham"

This way the course instructors, George G. Vega Yon (@gvegayon) and Thi Mui Pham (@tm-pham), will receive a notification about this assignment. Furthermore, we encourage you to use other GitHub resources, such as adding the URL of GitHub issue regarding that assignment, for example, if you include the following link in your commit message:

git commit -a -m "Assignment done https://github.com/UofUEpiBio/PHS7045-advanced-programming/issues/17"

Issue #17 in the PHS7045 website will now include a link to your commit. A similar thing can be done by cross-referencing an issue; this is, if you create a new issue in your repository and include the same link (https://github.com/UofUEpiBio/PM566/issues/17), the issue will be shown in #17 as cross-referenced.

Example

For week #3, we will distribute a zip file named week3-assignment.zip. Using the command line, you can do all the previous steps as follows:

cd ~
wget github.com/UofUEpiBio/PHS7045-advanced-programming/raw/master/assignments/week3-assignment.zip
unzip week3-assignment.zip -d week3-assignment-gvegayon
cd week3-assignment-gvegayon
git init
git add .
git commit -a -m "Initial commit"

You still need to go to Github.com to create the new repository. Assuming you do that successfully, we continue:

git remote add origin git@github.com:gvegayon/week3-assignment-gvegayon.git
git push -u origin master

And you are done!


  1. This course was first offered in Spring 2023 by George G. Vega Yon and Jonathan Chipman.↩︎