Anna Fergusson
banner
annafergusson.bsky.social
Anna Fergusson
@annafergusson.bsky.social
Statistics & data science education researcher
And chaos. Like default setting of automatically posting grades. Fun for when you need to publish final marks and forget to change the setting to manual 🤣
July 18, 2025 at 4:18 AM
Reposted by Anna Fergusson
Click this link to learn more about this year's RoSE econference and to submit your own abstract:

www.rose-network.org/events/rose-...
RoSE Network - RoSE eConference 2025
RoSE e-CONFERENCE 2025
www.rose-network.org
April 23, 2025 at 1:44 PM
A couple of days ago, because I was writing a chapter on probability modelling, I tried asking for the meaning of "sayings" that started with "As random as a ...... ". Um, yeah .....
April 24, 2025 at 9:07 AM
If only it was a perfect straight line ...
December 12, 2024 at 1:16 AM
I was just thinking that when I followed you back 😀😀 I’ve been busy but we should catch up again soon. Going to get RLadies Auckland back up and running in 2025 🤞🤞
December 11, 2024 at 6:09 AM
Oh I didn't think to exclude the ones that were already OK. Added that in, and now my part B solution only takes around 10 seconds, with no parallelism. My code (see alt text) is hilariously "confused" though - embracing vectors, for loops, and dataframes/dplyr, and other quirks or redundancies.
Huh GIF
Alt: R code used Day 7 Part B library(tidyverse) options(scipen = 999) data <- readLines("day7_input.txt") %>% tibble(lines = .) %>% separate(lines, into = c("answer", "parts"), sep = "\\:") %>% mutate(answer = as.numeric(answer), answer_id = row_number()) next_step <- function(a, b, ans){ test <- c(a + b, a * b, as.numeric(paste0(a,b))) return(test[test <= ans]) } total_sum <- 0 for(i in 1:nrow(data)){ stuff <- data %>% filter(answer_id == i) %>% separate_rows(parts, sep = " ") %>% filter(!parts == "") %>% mutate(parts = as.numeric(parts)) ans <- stuff$answer %>% unique() min <- stuff$parts %>% sum() max <- stuff$parts %>% prod() # check these ones first might get lucky # ok is vector of valid lines from part A if(min == ans || max == ans || i %in% ok){ total_sum <<- total_sum + ans } else { step <- 1 cur_sum <- stuff$parts[step] for(step in 2:nrow(stuff)){ next_num <- stuff$parts[step] cur_sum <<- next_step(cur_sum, next_num, ans) } if(sum(cur_sum == ans) > 0){ total_sum <<- total_sum + ans } } } total_sum
media.tenor.com
December 7, 2024 at 8:44 PM
I had success using parallelograms until .. duh .. loops can happen other ways 🙁 I still feel there's something geometric to exploit ....
December 6, 2024 at 10:05 PM
Eeek. In the past I have complied by creating a single pptx slide with a link to my HTML slides. But that relies on having internet access from the supplied laptop 😀
July 17, 2024 at 11:41 PM
Hugest congratulations Jenny!! ⭐️🎉✨🥂⭐️
June 28, 2024 at 8:44 PM
This task became one of the first I used with high school teachers as part of my PhD research into integrating statistical and computational thinking, and now the task and associated research have recently been published: www.tandfonline.com/doi/full/10....
Using Grayscale Photos to Introduce High School Statistics Teachers to Reasoning with Digital Image Data
Statistics teaching at the high school level needs modernizing to include digital sources of data that students interact with every day. Algorithmic modeling approaches are recommended, as they can...
www.tandfonline.com
June 17, 2024 at 9:56 PM
Google slide with edit access to anyone with link, scribble pen tool = chaos 😀
February 1, 2024 at 5:48 PM