Skip to content

Commit c604706

Browse files
committed
Updating structure and calendar dates
1 parent 2438019 commit c604706

3 files changed

Lines changed: 130 additions & 92 deletions

File tree

README.md

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,47 @@
44

55
Welcome to Advanced Programming in R and HPC! You can find the syllabus
66
[here](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/syllabus.md).
7-
Readings for the week can be found in the GitHub issues associated with
8-
them.
7+
Readings for each session can be found in the GitHub issues associated
8+
with them.
99

1010
## Contents
1111

12-
| Week | Title | Lecture | Lab |
13-
|:---|:---|:---|:---|
14-
| 8/20 and 8/22 | Intro to Git + Intro to classes + [quarto](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/quarto.html) ([source](01-git/quarto.qmd)) | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/01-git/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/01-git/lab.qmd)) |
15-
| 8/27 and 8/29 | R Essentials + [Homework 1](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/01-essentialsSimulations.html) ([source](02-essentials/01-essentialsSimulations.qmd)) | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/02-essentials/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/02-essentials/lab.qmd)) |
16-
| 9/03 and 9/5 | Debugging and profiling | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/03-debugging-and-profiling/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/03-debugging-and-profiling/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/03-debugging-and-profiling/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/03-debugging-and-profiling/lab.qmd)) |
17-
| 9/10 and 9/12 | Functions and data.table + [Homework 2](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/homework.html) ([source](04-more-functions-and-datatable/homework.qmd)) | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/04-more-functions-and-datatable/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/04-more-functions-and-datatable/lab.qmd)) |
18-
| 9/17 and 9/19 | Introduction to C++ | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/05-cpp/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/05-cpp/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/05-cpp/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/05-cpp/lab.qmd)) |
19-
| 9/24 and 9/26 | C++ in R Deliver a paragraph in abstract mode describing their projects for the midterm. | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/06-rcpp/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/06-rcpp/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/06-rcpp/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/06-rcpp/lab.qmd)) |
20-
| 10/01 and 10/03 | Parallel Computing | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/07-parallel-computing/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/07-parallel-computing/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/07-parallel-computing/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/07-parallel-computing/lab.qmd)) |
21-
| 10/08 and 10/10 | Fall Break | | |
22-
| 10/15 and 10/17 (presentations) | Midterm project [+ Homework 3 (vectorization and Rcpp)](https://UofUEpiBio.github.io/PHS7045-advanced-programming/09-midterm/homework.html) ([source](09-midterm/homework.qmd)) | | |
23-
| 10/22 and 10/24 | UofU’s CHPC ([CHPC overview slides](10-chpc-week/chpc_overview.pdf), [Linux slides](10-chpc-week/IntroLinux-RClass.pdf), [using R slides](10-chpc-week/using_r_at_chpc.pdf), [Slurm slides](10-chpc-week/RClass-Slurm.pdf)) | | |
24-
| 10/29 and 10/31 | Slurm + Homework 4 (Slurm) | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/11-slurm-week1/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/11-slurm-week1/slides.qmd)) | |
25-
| 11/05 and 11/07 | More practice with slurm + [Homework 4](https://UofUEpiBio.github.io/PHS7045-advanced-programming/12-slurm-week2/12-slurm-hw.html) ([source](12-slurm-week2/12-slurm-hw.qmd)) | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/12-slurm-week2/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/12-slurm-week2/slides.qmd)) | |
26-
| 11/12 and 11/14 | R packages I | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/13-rpkgs-i/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/13-rpkgs-i/slides.qmd)) | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/13-rpkgs-i/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/13-rpkgs-i/lab.qmd)) |
27-
| 11/19 and 11/21 | R packages II | | |
28-
| 11/26 and 11/28 (off) | Automatic Reports with GitHub Actions | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/15-autoreport/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming//tree/main/15-autoreport/slides.qmd)) | |
29-
| 12/03 and 12/05 (hybrid) | Final Prep (Hackathon) | | |
30-
| 12/10 (pkg) and 12/12 (talk) | Final ([Requirements](https://UofUEpiBio.github.io/PHS7045-advanced-programming/exams/02-final.html)) | | |
12+
| Week | Date | Session | Title | Materials |
13+
|---:|:---|:---|:---|:---|
14+
| 1 | 8/25/26 | Lecture | Intro to Git | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/01-git/slides.qmd)) |
15+
| 1 | 8/27/26 | Lab | Intro to classes | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/01-git/lab.qmd))<br>+ [quarto](https://UofUEpiBio.github.io/PHS7045-advanced-programming/01-git/quarto.html) ([source](01-git/quarto.qmd)) |
16+
| 2 | 9/1/26 | Lecture | R Essentials | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/02-essentials/slides.qmd)) |
17+
| 2 | 9/3/26 | Lab | R Essentials | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/02-essentials/lab.qmd))<br>+ [Homework 1](https://UofUEpiBio.github.io/PHS7045-advanced-programming/02-essentials/01-essentialsSimulations.html) ([source](02-essentials/01-essentialsSimulations.qmd)) |
18+
| 3 | 9/8/26 | Lecture | Debugging and profiling | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/03-debugging-and-profiling/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/03-debugging-and-profiling/slides.qmd)) |
19+
| 3 | 9/10/26 | Lab | Debugging and profiling | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/03-debugging-and-profiling/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/03-debugging-and-profiling/lab.qmd)) |
20+
| 4 | 9/15/26 | Lecture | Functions and data.table | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/04-more-functions-and-datatable/slides.qmd)) |
21+
| 4 | 9/17/26 | Lab | Functions and data.table | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/04-more-functions-and-datatable/lab.qmd))<br>+ [Homework 2](https://UofUEpiBio.github.io/PHS7045-advanced-programming/04-more-functions-and-datatable/homework.html) ([source](04-more-functions-and-datatable/homework.qmd)) |
22+
| 5 | 9/22/26 | Lecture | Introduction to C++ | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/05-cpp/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/05-cpp/slides.qmd)) |
23+
| 5 | 9/24/26 | Lab | Introduction to C++ | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/05-cpp/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/05-cpp/lab.qmd)) |
24+
| 6 | 9/29/26 | Lecture | C++ in R | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/06-rcpp/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/06-rcpp/slides.qmd)) |
25+
| 6 | 10/1/26 | Lab | C++ in R | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/06-rcpp/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/06-rcpp/lab.qmd))<br>Deliver a paragraph in abstract mode describing their projects for the midterm. |
26+
| 7 | 10/6/26 | Break | Fall Break | |
27+
| 7 | 10/8/26 | Break | Fall Break | |
28+
| 8 | 10/13/26 | Lecture | Parallel Computing | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/07-parallel-computing/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/07-parallel-computing/slides.qmd)) |
29+
| 8 | 10/15/26 | Lab | Parallel Computing | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/07-parallel-computing/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/07-parallel-computing/lab.qmd)) |
30+
| 9 | 10/20/26 | Lecture | Midterm project | |
31+
| 9 | 10/22/26 | Presentations | Midterm project | [Homework 3](https://UofUEpiBio.github.io/PHS7045-advanced-programming/09-midterm/homework.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/09-midterm/homework.qmd)) |
32+
| 10 | 10/27/26 | Lecture | UofU’s CHPC | [CHPC overview](https://UofUEpiBio.github.io/PHS7045-advanced-programming/10-chpc-week/chpc_overview.pdf)<br>[Linux slides](10-chpc-week/IntroLinux-RClass.pdf), [using R slides](10-chpc-week/using_r_at_chpc.pdf), [Slurm slides](10-chpc-week/RClass-Slurm.pdf) |
33+
| 10 | 10/29/26 | Lab | Slurm practice | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/10-slurm-practice/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/10-slurm-practice/lab.qmd)) |
34+
| 11 | 11/3/26 | Lecture | Slurm | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/11-slurm-week1/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/11-slurm-week1/slides.qmd)) |
35+
| 11 | 11/5/26 | Lab | Slurm | \+ Homework 4 (Slurm) |
36+
| 12 | 11/10/26 | Lecture | More practice with slurm | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/12-slurm-week2/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/12-slurm-week2/slides.qmd)) |
37+
| 12 | 11/12/26 | Lab | More practice with slurm | [Homework 4](https://UofUEpiBio.github.io/PHS7045-advanced-programming/12-slurm-week2/12-slurm-hw.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/12-slurm-week2/12-slurm-hw.qmd)) |
38+
| 13 | 11/17/26 | Lecture | R packages I | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/13-rpkgs-i/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/13-rpkgs-i/slides.qmd)) |
39+
| 13 | 11/19/26 | Lab | R packages I | [lab](https://UofUEpiBio.github.io/PHS7045-advanced-programming/13-rpkgs-i/lab.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/13-rpkgs-i/lab.qmd)) |
40+
| 14 | 11/24/26 | Lecture | R packages II | |
41+
| 14 | 11/26/26 | Off | Thanksgiving recess | |
42+
| 15 | 12/1/26 | Lecture | Automatic Reports with GitHub Actions | [slides](https://UofUEpiBio.github.io/PHS7045-advanced-programming/15-autoreport/slides.html) ([source](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/15-autoreport/slides.qmd)) |
43+
| 15 | 12/3/26 | Lab | R packages II | |
44+
| 16 | 12/8/26 | Hybrid | Final Prep (Hackathon) | |
45+
| 16 | 12/10/26 | Hybrid | Final Prep (Hackathon) | |
46+
| 17 | 12/15/26 | Package | Final | |
47+
| 17 | 12/17/26 | Talk | Final | [Requirements](https://UofUEpiBio.github.io/PHS7045-advanced-programming/exams/02-final.html) |
3148

3249
## Assignment workflow
3350

README.qmd

Lines changed: 57 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ embed-resources: true
55

66
# PHS 7045: Advanced Programming
77

8-
Welcome to Advanced Programming in R and HPC! You can find the syllabus [here](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/syllabus.md). Readings for the week can be found in the GitHub issues associated with them.
8+
Welcome to Advanced Programming in R and HPC! You can find the syllabus [here](https://github.com/UofUEpiBio/PHS7045-advanced-programming/tree/main/syllabus.md). Readings for each session can be found in the GitHub issues associated with them.
99

1010
## Contents
1111

@@ -17,61 +17,66 @@ library(data.table)
1717
dat <- fread("pages.csv")
1818
1919
urlgit <- "https://github.com/UofUEpiBio/PHS7045-advanced-programming/"
20-
urlraw <- "https://UofUEpiBio.github.io/PHS7045-advanced-programming"
21-
22-
dat[, has_lecture := file.exists(sprintf("%s/slides.html", id))]
23-
dat[, has_lecture_source := file.exists(sprintf("%s/slides.qmd", id))]
24-
dat[, has_lab := file.exists(sprintf("%s/lab.html", id))]
25-
dat[, has_lab_source := file.exists(sprintf("%s/lab.qmd", id))]
26-
27-
# Iterating through the weeks
28-
weeks <- sort(unique(dat$week))
29-
tab <- NULL
30-
for (i in 1:nrow(dat)) {
31-
32-
# Adding the entry to the table
33-
tab <- rbind(
34-
tab,
35-
with(dat[i,,drop=FALSE], data.frame(
36-
Week = date,
37-
38-
# Title of the week
39-
Title = fifelse(
40-
!is.na(issue),
41-
sprintf(
42-
"%s (Issue [%i](%s/issues/%i))",
43-
name, issue, urlgit, issue
44-
),
45-
sprintf("%s", name)
46-
),
47-
48-
# Lecture links
49-
Lecture = if (has_lecture & has_lecture_source) {
50-
sprintf(
51-
"[slides](%s/%s/slides.html) ([source](%s/tree/main/%s/slides.qmd))",
52-
urlraw, id, urlgit, id
53-
)
54-
} else {""},
55-
56-
# Lab links
57-
Lab = if (has_lab & has_lab_source) {
58-
sprintf(
59-
"[lab](%s/%s/lab.html) ([source](%s/tree/main/%s/lab.qmd))",
60-
urlraw, id, urlgit, id
61-
)
62-
} else {""}
63-
)
64-
))
65-
66-
if (!is.na(dat[i,,drop=FALSE]$extra) && (dat[i,,drop=FALSE]$extra != ""))
67-
tab[nrow(tab),]$Title <- paste(
68-
tab[nrow(tab),]$Title,
69-
dat[i,,drop=FALSE]$extra
20+
urlraw <- "https://UofUEpiBio.github.io/PHS7045-advanced-programming"
21+
22+
make_url <- function(path, base) {
23+
if (is.na(path) || path == "") {
24+
return(NA_character_)
25+
}
26+
27+
if (grepl("^https?://", path)) {
28+
return(path)
29+
}
30+
31+
sprintf("%s/%s", base, path)
32+
}
33+
34+
make_material <- function(link_text, link, source) {
35+
if (is.na(link) || link == "") {
36+
return("")
37+
}
38+
39+
out <- sprintf("[%s](%s)", link_text, make_url(link, urlraw))
40+
41+
if (!is.na(source) && source != "") {
42+
out <- sprintf(
43+
"%s ([source](%s))",
44+
out,
45+
make_url(source, paste0(urlgit, "tree/main"))
7046
)
47+
}
7148
49+
out
7250
}
7351
74-
knitr::kable(tab, row.names = FALSE)
52+
dat[, title := fifelse(
53+
!is.na(issue),
54+
sprintf("%s (Issue [%i](%s/issues/%i))", name, issue, urlgit, issue),
55+
name
56+
)]
57+
58+
dat[, materials := mapply(
59+
make_material, link_text, link, source, USE.NAMES = FALSE
60+
)]
61+
62+
dat[
63+
!is.na(extra) & extra != "",
64+
materials := fifelse(
65+
materials == "",
66+
extra,
67+
paste0(materials, "<br>", extra)
68+
)
69+
]
70+
71+
tab <- dat[, .(
72+
Week = week,
73+
Date = date,
74+
Session = session,
75+
Title = title,
76+
Materials = materials
77+
)]
78+
79+
knitr::kable(tab, row.names = FALSE, escape = FALSE)
7580
```
7681

7782
## Assignment workflow
@@ -122,4 +127,3 @@ git push -u origin master
122127
```
123128

124129
And you are done!
125-

0 commit comments

Comments
 (0)