-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathcourse_info.R
More file actions
101 lines (88 loc) · 3.3 KB
/
course_info.R
File metadata and controls
101 lines (88 loc) · 3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
######## Course info ########
library(tidyverse)
# Start of semester
start_semester <- "2026-03-02"
# Week of mid-semester break
mid_semester_break <- "2026-04-06"
# Schedule
schedule <- tribble(
~Week, ~Topic, ~Reference, ~Reference_URL,
1, "Open data: definitions, sources and examples", "", "",
2, "Introduction to data collection methods", "", "",
3, "Case Study: Natural Hazards and Impact Warnings", "", "", #US airline traffic
4, "Case Study: Australian census", "", "",
5, "Case Study: Australian election data", "", "",
6, "Case Study: Combining census and election data", "", "",
7, "Case Study: PD model and credit risk", "", "",
8, "Case Study: Data ethics", "", "",
9, "Case Study: Data ethics and privacy", "", "",
10, "Case Study: TBC", "", "", #Introduction to webscraping
11, "Case Study: TBC", "", "", #Large Language Models for preparing data in R
12, "Revision: Proper care and feeding of wild caught data", "", "",
)
# Assignment 1: details
# ...
# Assignment 4: details
all_dates <- seq(as.Date(start_semester),
by = "week",
length.out = 13)
selected_dates <- all_dates[all_dates != mid_semester_break]
# Add mid-semester break
calendar <- tibble(Date = selected_dates) |>
mutate(Week = row_number()) |>
bind_rows(data.frame(Date = as_date(mid_semester_break),
Week = NA)) |>
arrange(Date)
# Add calendar to schedule
schedule <- schedule |>
full_join(calendar, by = "Week") |>
mutate(
# Week = if_else(Date == mid_semester_break, NA, Week),
Topic = if_else(Date == mid_semester_break, "Mid-semester break", Topic),
# Reference = if_else(Date == mid_semester_break, NA, Reference),
# Reference_URL = if_else(Date == mid_semester_break, NA, Reference_URL)
) |>
select(Week, Date, everything()) |>
arrange(Date)
# Add assignment details
lastmon <- function(x) {
7 * floor(as.numeric(x - 1 + 4) / 7) + as.Date(1 - 4, origin = "1970-01-01")
}
assignments <- read_csv(here::here("assignments.csv")) |>
mutate(
Date = lastmon(Due),
Moodle = paste0("https://learning.monash.edu/mod/assign/view.php?id=", Moodle),
File = paste0("assignments/", File)
)
schedule <- schedule
# full_join(assignments, by = "Date") |>
# mutate(Week = if_else(is.na(Week) & Date > "2024-05-20", 13, Week))
show_assignments <- function(week) {
ass <- schedule |>
filter(
Week >= week & (week > Week - 3 | week > 8),
!is.na(Assignment),
) |>
select(Assignment:File)
if (NROW(ass) > 0) {
cat("\n\n## Assignments\n\n")
for (i in seq(NROW(ass))) {
cat("* [", ass$Assignment[i], "](../", ass$File[i], ") is due on ",
format(ass$Due[i], "%A %d %B.\n"),
sep = ""
)
}
}
}
submit <- function(schedule, assignment) {
ass <- schedule |>
filter(Assignment == assignment)
due <- format(ass$Due, "%e %B %Y") |> stringr::str_trim()
url <- ass$Moodle
button <- paste0(
"<br><br><hr><b>Due: ", due, "</b><br>",
"<a href=", url, " class = 'badge badge-large badge-blue'>",
"<font size='+2'> <b>Submit</b> </font><br></a>"
)
cat(button)
}