library(tidyverse)
library(here)
library(ggeasy)
library(janitor)

theme_set(theme_classic())
options(digits = 2)

MOODLE LOG

Read in log data from 1A and 1B, add week and chapter as factors and bind 1A and 1B together.

log1A <- read_csv(here::here("research_conferences", "ScienceMoodleWellbeing", "clean1Alogs.csv")) 
log1A <- log1A %>%
  mutate(week = factor(week, levels = c("week0", "week1", "week2", "week3", "week4", "week5", "week6", "week7", "week8", "week9", "week10", "week11", "week12"))) %>%
  mutate(chapter_no = factor(chapter_no, 
                                     levels = c("1_intro", "2_time", "3_study", "4_ps", "5_feedback", "6_stress", "7_health", "8_learnmore", "9_money", "10_academics")))

# PSYC1B

log1B <- read_csv(here::here("research_conferences", "ScienceMoodleWellbeing", "clean1Blogs.csv")) 
log1B <- log1B %>% 
  mutate(week = factor(week, levels = c("week0", "week1", "week2", "week3", "week4", "week5", "week6", "week7", "week8", "week9", "week10", "week11", "week12"))) %>%
  mutate(chapter_no = factor(chapter_no, 
                                     levels = c("1_intro", "2_time", "3_study", "4_ps", "5_feedback", "6_stress", "7_health", "8_learnmore", "9_money", "10_academics")))

log1A1B <- rbind(log1A, log1B)

Views by week

log1A1B %>%
  group_by(date, week) %>%
  count() %>%
  ggplot(aes(x = date, y = n, label = week)) +
  geom_line() +
  labs(y = "Chapter views") +
  scale_y_continuous(limits = c(0,400)) +
  geom_text(data = data.frame(x = as.Date("2021-06-01"),y = 350, label = "Week 1"),mapping = aes(x = x, y = y, label = label),inherit.aes = FALSE) +
  geom_text(data = data.frame(x = as.Date("2021-06-13"),y = 85, label = "Week 3"), mapping = aes(x = x, y = y, label = label), inherit.aes = FALSE) +
  geom_text(data = data.frame(x = as.Date("2021-07-04"),y = 75, label = "Week 6"),mapping = aes(x = x, y = y, label = label),inherit.aes = FALSE) +
  geom_text(data = data.frame(x = as.Date("2021-08-08"),y = 85, label = "Week 11"),mapping = aes(x = x, y = y, label = label),inherit.aes = FALSE) +
    labs(x = "Date", title = "PSYC1A & PSYC1B: total views over time", subtitle= "N=357 students (36% total enrolment)")

View by chapters

log1A1B %>%
  count(chapter_no) %>%
  ggplot(aes(x = chapter_no, y = n, fill = chapter_no)) +
  geom_col() +
  labs(y = "Chapter views") +
  easy_remove_legend() +
  scale_y_continuous(expand = c(0,0), limits = c(0,1000)) +
  labs(x = "Chapter number", title = "PSYC1A & PSYC1B: total views per chapter")

students_accessed <- n_distinct(log1A1B$studentid)

total_students <- 496+487

proportion = students_accessed / total_students

Only 357 of all enrolled (N = 983) accessed the Moodle Book during the term. This represented only 0.36 of the cohort.

Total enrolments T2 2021 - PSYC1A 496 - PSYC1B 487

FEEDBACK TOOL

X1A_feedback <- read_csv(here::here("research_conferences", "ScienceMoodleWellbeing", "1A-feedback.csv")) %>%
  clean_names() %>%
  select(autoalerts = "have_you_received_automated_alerts_from_this_course_i_e_occasional_small_textbox_that_pops_up_when_you_enter_moodle_with_resource_suggestions", agreement = "please_rate_your_agreement_with_the_following_statements", 
        useful = "the_alerts_were_useful" , 
        annoying = "the_alerts_were_annoying" , 
        other = "any_other_feedback_comments" ) %>%
  mutate(course = "PSYC1A")

X1B_feedback <- read_csv(here::here("research_conferences", "ScienceMoodleWellbeing","1B-feedback.csv")) %>%
  clean_names() %>%
  select(autoalerts = "have_you_received_automated_alerts_from_this_course_i_e_occasional_small_textbox_that_pops_up_when_you_enter_moodle_with_resource_suggestions", agreement = "please_rate_your_agreement_with_the_following_statements", 
        useful = "the_alerts_were_useful" , 
        annoying = "the_alerts_were_annoying" , 
        other = "any_other_feedback_comments" ) %>%
  mutate(course = "PSYC1B")

psyc_feedback <- rbind(X1A_feedback, X1B_feedback)

yesno <-  psyc_feedback %>%
  tabyl(autoalerts) %>%
  adorn_totals()

seen <- yesno$n[2]

seen_prop <- (seen/total_students)*100

Of the 118 students who responded 65 said they had seen the autoalerts. These represents 6.61 % of the enrolled cohort. Unfortunately we don’t know when during the term they completed the feedback tool, so can’t tell whether they didn’t see the alerts just because they hadn’t been scheduled yet.

Remove missing responses (go from 118 to 99 responses), filter for just those who said they had seen the alerts (N = 64).

psyc_complete <- psyc_feedback %>%
  filter(autoalerts == "Yes") %>%
  select(course, autoalerts, useful, annoying) %>%
  na.omit()

psyc_complete$useful <- factor(psyc_complete$useful, levels = c("Strongly disagree", "Disagree", "Neither agree or disagree", "Agree", "Strongly agree"))

psyc_complete$annoying <- factor(psyc_complete$annoying, levels = c("Strongly disagree", "Disagree", "Neither agree or disagree", "Agree", "Strongly agree"))

plots

useful

psyc_complete %>%
  ggplot(aes(x = useful, fill = useful)) +
  geom_bar() +
  labs(title = "Responses to feedback question N= 64", subtitle= "The autoalerts were useful") +
  easy_remove_legend() +
  scale_y_continuous(expand = c(0,0), limits = c(0,50)) 

annoying

psyc_complete %>%
  ggplot(aes(x = annoying, fill = annoying)) +
  geom_bar() +
  labs(title = "Responses to feedback question N=64", subtitle= "The autoalerts were annoying") +
  easy_remove_legend() +
  scale_y_continuous(expand = c(0,0), limits = c(0,50)) 

TAKE HOME: in psych courses the feedback tool data suggests most students who saw the alerts found them useful and not annoying.