Code
::drive_auth(email = "rick.o.gilmore@gmail.com") googledrive
Final project presentations start this Thursday. Please complete SEEQs.
April 23, 2025
April 23, 2025
Tentative schedule as of 2025-04-23 09:23:05.990896.
This page documents how the presentation schedule can be automatically generated from the student survey.
File downloaded:
• 'PSYCH 490.001 Spring 2025 Project Info (Responses)'
<id: 1Ze4xudTH0WbuPw1gXbf61f2tCLui3Fvr0-w-HBB8ny8>
Saved locally as:
• 'csv/psych-490-2025-spring-presentations.csv'
new_names <-
c(
"Timestamp",
"Authors",
"Title",
"Format",
"Give_talk",
"Preferred_date"
)
# Make new data frame with long and short names for reference
presentation_qs <- tibble::tibble(q_long = names(presentations_df), q_short = new_names)
# Swap out old (long) names for new (short) names
names(presentations_df) <- new_names
Timestamp | Authors | Preferred_date |
---|---|---|
2/25/2025 8:54:04 | Saada Wing | Tue April 29 |
3/4/2025 10:09:09 | Kendall Morgan | No preference |
3/6/2025 23:19:37 | Anabella Finol | No preference |
4/1/2025 9:09:09 | Annalise Chang | No preference |
4/1/2025 9:10:19 | Jasmine Upchurch | Thu April 24 |
4/1/2025 9:10:20 | Hunterr Quintana and Ashley Tweedle | Tue May 01 |
4/10/2025 9:16:09 | Olivia Verdino, Sean Wang, Alina Antonucci, Jasmine Merritt | Thu April 24 |
4/15/2025 10:08:33 | Zhen Wang | Thu May 01 |
4/3/2025 10:28:06 | TJ DeFrancesco | No preference |
4/3/2025 9:22:09 | Edmond Yu & Zihan Huang | Thu April 24 |
4/6/2025 22:54:16 | Angel Chen | Tue April 29 |
4/7/2025 21:56:12 | Samantha Sellmann | Thu May 01 |
4/7/2025 22:56:12 | Rand Alkhunaizi | Tue April 29 |
4/8/2025 9:12:50 | Olivia Verdino, Sean Wang, Alina Antonucci, Jasmine Merritt | Thu April 24 |
The Verdino et al. team is duplicated, so let’s remove the duplicate.
I assigned students by preferred date and the date they completed the survey. Students who indicated no preference were added to open spots in the schedule in the order that they completed the survey.
presentations_df <- presentations_df |>
dplyr::filter(!stringr::str_detect(Authors, "Gilmore")) |>
dplyr::mutate(assigned = FALSE)
thu_24_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "24"),
Give_talk == "Yes")
tue_29_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "29"),
Give_talk == "Yes")
thu_01_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "01"),
Give_talk == "Yes")
no_pref <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "No preference"),
Give_talk == "Yes")
times <- c("09:10", "09:25", "09:40", "09:55")
n_thu_24_df <- dim(thu_24_df)[1]
n_no_pref <- dim(no_pref)[1]
n_thu_24_slots_free <- length(times) - n_thu_24_df
if (n_thu_24_slots_free > 0) {
new_thu_24_df <- rbind(thu_24_df, no_pref[1:n_thu_24_slots_free,])
} else {
new_thu_24_df <- thu_24_df
}
#new_thu_24_df <- rbind(thu_24_df, no_pref[1:n_thu_24_slots_free,])
new_thu_24_df$Time <- times
no_pref$assigned[1:n_thu_24_slots_free] <- TRUE
new_thu_24_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
Time | Authors | Title | Format |
---|---|---|---|
09:10 | Jasmine Upchurch | An Exploration of EEG | In-class talk |
09:25 | Edmond Yu & Zihan Huang | Visualizing Apex Legends Player Trends Across Seasons | In-class talk |
09:40 | Olivia Verdino, Sean Wang, Alina Antonucci, Jasmine Merritt | Choosing The Right Data Visualization | Poster (& in-class presentation) |
09:55 | Kendall Morgan | Data Visualization in Colorblind Individuals | In-class talk |
n_tue_29_df <- dim(tue_29_df)[1]
no_pref_remaining <- no_pref[no_pref$assigned == FALSE,]
n_tue_29_remaining <- length(times) - n_tue_29_df
index_to_assign <- c(1:length(no_pref_remaining))[1:n_tue_29_remaining]
new_tue_29_df <- rbind(tue_29_df,
no_pref_remaining[index_to_assign,])
new_tue_29_df$Time <- times
no_pref_remaining$assigned[index_to_assign] <- TRUE
new_tue_29_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
Time | Authors | Title | Format |
---|---|---|---|
09:10 | Saada Wing | Acts of kindess | Poster (& in-class presentation) |
09:25 | Angel Chen | Data Visualization of Dance | Poster (& in-class presentation) |
09:40 | Rand Alkhunaizi | Use of Mind Maps in Research and Learning: A Cognitive and Functional Perspective | Research project (& write-up) |
09:55 | Anabella Finol | Uncovering Patterns in Music Streaming: A Data Visualization Approach | In-class talk |
no_pref_remaining <- no_pref_remaining[no_pref_remaining$assigned == FALSE,]
thu_01_times <- c("09:05", "09:20", "09:35", "09:50", "10:05")
n_thu_01_remaining <- length(thu_01_times) - n_tue_29_df
index_to_assign <- c(1:length(no_pref_remaining))[1:n_thu_01_remaining]
new_thu_01_df <- rbind(thu_01_df,
no_pref_remaining[index_to_assign,])
new_thu_01_df$Time <- thu_01_times[1:dim(new_thu_01_df)[1]]
# no_pref$assigned[index_to_assign] <- TRUE
new_thu_01_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
Time | Authors | Title | Format |
---|---|---|---|
09:05 | Hunterr Quintana and Ashley Tweedle | Sports Visualizations | Poster (& in-class presentation) |
09:20 | Samantha Sellmann | Data Visualizations and Industrial-Organizational Psychology | Research project (& write-up) |
09:35 | Zhen Wang | Visualizing Gamer Classification and Motivational Patterns in Video Gaming Behavior | In-class talk |
09:50 | Annalise Chang | Making Meaningful Visualizations with Moment-to-Moment Data in R | Tutorial |
10:05 | TJ DeFrancesco | A History of Colorblind Settings in Video Games | Poster (& in-class presentation) |
---
title: "Presentation schedule"
---
Tentative schedule as of `r Sys.time()`.
## Background
This page documents how the presentation schedule can be automatically generated from the student survey.
## Download data
```{r}
googledrive::drive_auth(email = "rick.o.gilmore@gmail.com")
```
```{r}
if (!dir.exists('csv')) {
dir.create('csv')
}
csv_fn <- "csv/psych-490-2025-spring-presentations.csv"
googledrive::drive_download(
file = 'PSYCH 490.001 Spring 2025 Project Info (Responses)',
path = csv_fn,
type = 'csv',
overwrite = TRUE
)
```
```{r}
if (file.exists(csv_fn)) {
presentations_df <- readr::read_csv(csv_fn, show_col_types = FALSE)
} else {
message("File not found: ", csv_fn)
presentations_df <- NULL
}
```
## Clean the data
```{r}
new_names <-
c(
"Timestamp",
"Authors",
"Title",
"Format",
"Give_talk",
"Preferred_date"
)
# Make new data frame with long and short names for reference
presentation_qs <- tibble::tibble(q_long = names(presentations_df), q_short = new_names)
# Swap out old (long) names for new (short) names
names(presentations_df) <- new_names
```
## Show all presenters
```{r}
presentations_df |>
dplyr::filter(!stringr::str_detect(Preferred_date, "Not presenting")) |>
dplyr::arrange(Timestamp) |>
dplyr::select(Timestamp, Authors, Preferred_date) |>
kableExtra::kable(format = 'html')
```
The Verdino et al. team is duplicated, so let's remove the duplicate.
```{r}
presentations_df <- presentations_df |>
dplyr::filter(!stringr::str_detect(Timestamp, "4/10/2025 9:16:09"))
```
## Select subsets by preferred date
I assigned students by preferred date and the date they completed the survey.
Students who indicated no preference were added to open spots in the schedule in the order that they completed the survey.
```{r}
presentations_df <- presentations_df |>
dplyr::filter(!stringr::str_detect(Authors, "Gilmore")) |>
dplyr::mutate(assigned = FALSE)
thu_24_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "24"),
Give_talk == "Yes")
tue_29_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "29"),
Give_talk == "Yes")
thu_01_df <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "01"),
Give_talk == "Yes")
no_pref <- presentations_df |>
dplyr::filter(stringr::str_detect(Preferred_date, "No preference"),
Give_talk == "Yes")
times <- c("09:10", "09:25", "09:40", "09:55")
```
## Day 1: Thursday, April 24
```{r}
#| label: tbl-thu-apr-24
#| tbl-cap: "Presenters for April 24, 2025"
n_thu_24_df <- dim(thu_24_df)[1]
n_no_pref <- dim(no_pref)[1]
n_thu_24_slots_free <- length(times) - n_thu_24_df
if (n_thu_24_slots_free > 0) {
new_thu_24_df <- rbind(thu_24_df, no_pref[1:n_thu_24_slots_free,])
} else {
new_thu_24_df <- thu_24_df
}
#new_thu_24_df <- rbind(thu_24_df, no_pref[1:n_thu_24_slots_free,])
new_thu_24_df$Time <- times
no_pref$assigned[1:n_thu_24_slots_free] <- TRUE
new_thu_24_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
```
## Day 2: Tuesday, April 29
```{r}
#| label: tbl-tue-apr-29
#| tbl-cap: "Presenters for April 29, 2025"
n_tue_29_df <- dim(tue_29_df)[1]
no_pref_remaining <- no_pref[no_pref$assigned == FALSE,]
n_tue_29_remaining <- length(times) - n_tue_29_df
index_to_assign <- c(1:length(no_pref_remaining))[1:n_tue_29_remaining]
new_tue_29_df <- rbind(tue_29_df,
no_pref_remaining[index_to_assign,])
new_tue_29_df$Time <- times
no_pref_remaining$assigned[index_to_assign] <- TRUE
new_tue_29_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
```
## Day 3: Thursday, May 1
```{r}
#| label: tbl-thu-may-01
#| tbl-cap: "Presenters for Thursday, May 1, 2025"
no_pref_remaining <- no_pref_remaining[no_pref_remaining$assigned == FALSE,]
thu_01_times <- c("09:05", "09:20", "09:35", "09:50", "10:05")
n_thu_01_remaining <- length(thu_01_times) - n_tue_29_df
index_to_assign <- c(1:length(no_pref_remaining))[1:n_thu_01_remaining]
new_thu_01_df <- rbind(thu_01_df,
no_pref_remaining[index_to_assign,])
new_thu_01_df$Time <- thu_01_times[1:dim(new_thu_01_df)[1]]
# no_pref$assigned[index_to_assign] <- TRUE
new_thu_01_df |>
dplyr::filter(!is.na(Authors)) |>
dplyr::arrange(Time) |>
dplyr::select(Time, Authors, Title, Format) |>
kableExtra::kable(format = 'html') |>
kableExtra::kable_classic()
```