5_Capstone_Analysis_CassidyNewby

Author

Cassidy Newby

Published

October 24, 2026


Introduction

My educational problem that I choose was Scenario 5: Using past cohort data for course redesign. Throughout the courses I have taken in this Master’s program as well as my time as a High School teacher, I have realized that I would like to be a College instructor helping pre-service teachers, so this scenario fit the best. So, this learning analytics can help professors see where their students are falling off during their courses.



Data Overview

Before analyzing the data, I used the skills I have learned from my previous Hands-On homework. I added code into my file to check for missing values and duplicate records. If I did not do this, it could affect my data results and skew my interpretation.


library(tidyverse)
library(janitor)

data_lms <- read.csv(
  "40_students_LMS_time_spent.csv"
) |>
  clean_names()

head(data_lms)

Analysis

I used descriptive analytics to examine patterns in LMS activity across the semester. Descriptive analytics helps explain what happened in the dataset by showcasing measurements and presenting patterns visually. I created two visualizations Line Plot & Bar Plot to display the a average LMS hours and use it to examine when students are losing interest. This will help me learn more about student engagement.

Line Plot: It showcases the average amount of time students are spending in LMS from week to week throughout a whole semester. A line plot allows me to quickly see the trends and patterns that present within the data. This would help any instructor see exactly when students lose interest.

Bar Plot: This visualization displays 40 students average LMS hours each week of a semester. The height of the bars represent how much LMS hours are there. The tall bars show high LMS hours and the shorter bars are less LMS hours. It helps show instructors what each week will look at a simple glance.


average_time_table <- data_lms |>
  summarise(
    across(
      starts_with("week_"),
      ~ mean(.x, na.rm = TRUE)
    )
  ) |>
  pivot_longer(
    cols = everything(),
    names_to = "Week",
    values_to = "Average_Time_Spent"
  ) |>
  mutate(
    Week = factor(
      readr::parse_number(Week),
      levels = 1:16,
      labels = paste("Week", 1:16)
    )
  )

average_time_table

Line plot — trend over time

ggplot(average_time_table, aes(x = Week, y = Average_Time_Spent, group = 1)) +
  geom_line(color = "#185FA5", linewidth = 1.2) +
  geom_point(color = "#185FA5", size = 3) +
  labs(
    title = "Trend of Average Time Spent Across the Semester",
    x = "Week of Semester",
    y = "Average LMS Hours"
  ) +
  theme_minimal() +
  theme(
    plot.title  = element_text(size = 16, face = "bold", hjust = 0.5),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Trend of average LMS time across the semester
ggplot(average_time_table, aes(x = Week, y = Average_Time_Spent)) +
  geom_bar(stat = "identity", fill = "#1D9E75", color = "white") +
  labs(
    title = "Average Time Spent per Week",
    x = "Week",
    y = "Average LMS Time"
  ) +
  theme_minimal() +
  theme(
    plot.title  = element_text(size = 16, face = "bold", hjust = 0.5),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Average LMS time spent per week across all 40 students

Findings

The data shown average LMS hours across a semester for 40 simulated students. The two visualizations shown two different ways that a professor could use the data to see week to week instructional activity and student engagement.I believe this data needs to be look at more with non-generated data.