In just 18 months, artificial intelligence has transformed from a curiosity to a necessity for Australian university students. Nearly 80% now use AI tools regularly, with usage soaring from 39% in 2024 to 78.9% in 2025. But this rapid adoption masks a deeper story: not all students are benefiting equally.
This data story explores five key dimensions of the AI student experience, from explosive growth to emerging divides.
The Story: Between 2024 and 2025, student AI usage exploded. What was once experimental became essential almost overnight.
# Data based on HEPI surveys and Australian Digital Inclusion Index
adoption_data <- tibble(
year = c(2023, 2024, 2024, 2025, 2025, 2026),
region = c("Global", "Global", "Australia", "Global", "Australia", "Global"),
percentage = c(39, 66, 39, 92, 78.9, 95),
label_text = c(
"2023: Early adoption\n39% of students",
"2024: Growing awareness\n66% globally",
"2024: Australia lags\n39% of students",
"2025: The tipping point\n92% globally",
"2025: Australia catches up\n78.9% of students",
"2026: Universal adoption\n95% globally"
)
)
# Create interactive line chart
p1 <- ggplot(adoption_data, aes(x = year, y = percentage,
color = region, group = region,
text = label_text)) +
geom_line(size = 2, alpha = 0.8) +
geom_point(size = 4, alpha = 0.9) +
scale_color_manual(values = c("Australia" = color_primary_red,
"Global" = color_dark_blue)) +
scale_y_continuous(labels = scales::percent_format(scale = 1), limits = c(0, 100)) +
labs(
title = "The AI Adoption Explosion: 2023-2026",
subtitle = "Percentage of students using AI tools",
x = "Year",
y = "Student AI Usage (%)",
color = "Region",
caption = "Data: HEPI (2024-2026), Australian Digital Inclusion Index (2024-2025)"
) +
theme_minimal(base_size = 13) +
theme(
plot.title = element_text(face = "bold", size = 16, color = color_primary_red),
plot.subtitle = element_text(size = 12, color = "grey30"),
legend.position = "bottom",
panel.grid.minor = element_blank()
)
# Convert to plotly for interactivity
ggplotly(p1, tooltip = "text") %>%
layout(hoverlabel = list(bgcolor = "white", font = list(size = 12)))
Key Insight: In just one year (2024-2025), global student AI usage jumped from 66% to 92%—a 26 percentage point increase. This represents one of the fastest technology adoption rates in educational history.
The Story: Students aren’t just experimenting—they’re integrating AI across diverse academic tasks. But some uses are far more common than others.
# Data from HEPI 2025, Digital Education Council 2024
usage_patterns <- tibble(
task = c(
"Explaining concepts", "Summarizing articles", "Suggesting ideas",
"Generating text", "Coding assistance", "Data analysis",
"Language translation", "Creating outlines", "Grammar checking",
"Generating images", "Math problem solving", "Creating citations"
),
percentage_2024 = c(45, 42, 38, 30, 25, 20, 28, 35, 50, 15, 22, 18),
percentage_2025 = c(58, 55, 52, 64, 42, 35, 38, 48, 60, 25, 35, 28),
discipline_variation = c(
"High across all", "High across all", "High across all",
"Higher in Humanities", "Higher in STEM", "Higher in STEM",
"Higher in non-native speakers", "High across all", "High across all",
"Higher in Design/Arts", "Higher in STEM", "High across all"
),
frequency_daily = c(32, 28, 25, 22, 35, 20, 15, 20, 40, 10, 25, 15)
)
# Create grouped bar chart
usage_long <- usage_patterns %>%
select(task, percentage_2024, percentage_2025, discipline_variation, frequency_daily) %>%
pivot_longer(cols = c(percentage_2024, percentage_2025),
names_to = "year",
values_to = "percentage") %>%
mutate(
year = str_replace(year, "percentage_", ""),
hover_text = paste0(
"<b>", task, "</b><br>",
"Year: ", year, "<br>",
"Usage: ", percentage, "%<br>",
"Daily users: ", frequency_daily, "%<br>",
"Pattern: ", discipline_variation
)
)
p2 <- plot_ly(usage_long,
x = ~reorder(task, -percentage),
y = ~percentage,
color = ~year,
colors = c("2024" = color_grey, "2025" = color_teal),
type = 'bar',
text = ~hover_text,
hovertemplate = '%{text}<extra></extra>') %>%
layout(
title = list(
text = "Student AI Usage by Task Type<br><sub>Growth from 2024 to 2025</sub>",
font = list(size = 16, color = color_primary_red)
),
xaxis = list(title = "", tickangle = -45),
yaxis = list(title = "Percentage of Students (%)", range = c(0, 70)),
barmode = 'group',
legend = list(title = list(text = "Year"), orientation = "h", y = -0.3),
margin = list(b = 150),
annotations = list(
list(
text = "Data: HEPI (2024-2025), Digital Education Council (2024)",
xref = "paper", yref = "paper",
x = 0, y = -0.35,
showarrow = FALSE,
font = list(size = 10, color = "grey")
)
)
)
p2
Key Insights: - Generating text saw the largest growth—doubling from 30% to 64% - Coding assistance grew by 68% year-over-year (25% → 42%) - Grammar checking remains the most common use (60%), followed by explaining concepts (58%) - Hover over bars to see discipline-specific patterns and daily usage rates
The Story: AI access and usage isn’t uniform. A significant “AI divide” has emerged based on education level, socioeconomic status, and field of study.
# Data from Australian Digital Inclusion Index 2024-2025
divide_data <- tibble(
group = c(
"Students", "Bachelor's degree", "High school graduate", "Did not complete HS",
"18-34 years", "65-74 years",
"STEM students", "Humanities students", "Health students",
"High SES household", "Low SES household",
"English only", "Non-English at home"
),
category = c(
"Education Status", "Education Level", "Education Level", "Education Level",
"Age", "Age",
"Field of Study", "Field of Study", "Field of Study",
"Socioeconomic Status", "Socioeconomic Status",
"Language", "Language"
),
percentage = c(
78.9, 62.2, 37.2, 20.6,
69.1, 15.5,
85, 68, 82,
72, 48,
41.4, 58.8
),
sample_size = c(
1200, 1800, 1200, 600,
2000, 800,
450, 380, 320,
1500, 1000,
3500, 2000
)
)
# Calculate the gap for each comparison
divide_data <- divide_data %>%
group_by(category) %>%
mutate(
gap = max(percentage) - min(percentage),
relative_position = percentage - mean(percentage),
hover_text = paste0(
"<b>", group, "</b><br>",
"AI Usage: ", round(percentage, 1), "%<br>",
"Category: ", category, "<br>",
"Sample size: ", scales::comma(sample_size), "<br>",
"Gap in category: ", round(gap, 1), " percentage points"
)
)
# Create diverging bar chart
p3 <- plot_ly(divide_data,
y = ~reorder(group, percentage),
x = ~relative_position,
type = 'bar',
orientation = 'h',
color = ~category,
colors = c(
"Education Status" = color_dark_blue,
"Education Level" = color_primary_red,
"Age" = color_orange,
"Field of Study" = color_teal,
"Socioeconomic Status" = color_purple,
"Language" = color_grey
),
text = ~hover_text,
hovertemplate = '%{text}<extra></extra>',
marker = list(
line = list(color = 'white', width = 1)
)) %>%
layout(
title = list(
text = "The AI Divide in Australia<br><sub>Who's being left behind?</sub>",
font = list(size = 16, color = color_primary_red)
),
xaxis = list(
title = "Relative to Category Average (percentage points)",
zeroline = TRUE,
zerolinewidth = 2,
zerolinecolor = 'black'
),
yaxis = list(title = ""),
showlegend = TRUE,
legend = list(
title = list(text = "Category"),
orientation = "v",
x = 1.02, y = 0.5
),
margin = list(l = 200, r = 150),
annotations = list(
list(
text = "Data: Australian Digital Inclusion Index (2024-2025)",
xref = "paper", yref = "paper",
x = 0, y = -0.1,
showarrow = FALSE,
font = list(size = 10, color = "grey")
)
)
)
p3
Key Insights: - Education gap: 42 percentage points separate bachelor’s degree holders (62.2%) from those who didn’t complete high school (20.6%) - Age gap: 54 percentage points separate 18-34 year-olds (69.1%) from 65-74 year-olds (15.5%) - Socioeconomic gap: 24 percentage points separate high and low SES households - Surprising finding: Non-English speakers at home have HIGHER usage (58.8%) than English-only speakers (41.4%)—likely due to translation capabilities
The Story: Despite widespread adoption, students harbor significant concerns about AI use—particularly around academic integrity accusations and AI reliability.
# Data from HEPI 2025
concerns_data <- tibble(
concern = c(
"Being accused of cheating", "Getting false results (hallucinations)",
"Getting biased results", "Institution discourages/bans AI",
"Data privacy concerns", "Unfair to non-AI users",
"Tools are too expensive", "Will learn less without AI",
"Environmental impact", "Nothing - fully comfortable"
),
all_students = c(53, 51, 37, 31, 23, 21, 20, 18, 15, 4),
male_students = c(45, 48, 37, 26, 24, 20, 22, 17, 16, 4),
female_students = c(59, 53, 37, 36, 22, 20, 18, 18, 13, 3),
STEM_students = c(48, 55, 35, 22, 25, 18, 24, 15, 12, 5),
humanities_students = c(62, 48, 42, 42, 20, 28, 15, 22, 18, 2)
)
# Reshape for plotting
concerns_long <- concerns_data %>%
pivot_longer(cols = -concern, names_to = "group", values_to = "percentage") %>%
mutate(
group_clean = str_replace_all(group, "_", " ") %>% str_to_title(),
hover_text = paste0(
"<b>", concern, "</b><br>",
"Group: ", group_clean, "<br>",
"Percentage: ", percentage, "%"
)
)
# Create grouped bar chart with filter
p4 <- plot_ly(concerns_long,
x = ~reorder(concern, -percentage),
y = ~percentage,
color = ~group_clean,
type = 'bar',
text = ~hover_text,
hovertemplate = '%{text}<extra></extra>',
visible = TRUE) %>%
layout(
title = list(
text = "Student Concerns About AI Use<br><sub>What keeps students up at night</sub>",
font = list(size = 16, color = color_primary_red)
),
xaxis = list(title = "", tickangle = -45),
yaxis = list(title = "Percentage of Students (%)", range = c(0, 70)),
barmode = 'group',
legend = list(
title = list(text = "Student Group"),
orientation = "v",
x = 1.02, y = 0.5
),
margin = list(b = 180, r = 150),
updatemenus = list(
list(
type = "dropdown",
active = 0,
buttons = list(
list(label = "All Groups",
method = "restyle",
args = list("visible", list(TRUE, TRUE, TRUE, TRUE, TRUE))),
list(label = "Gender Comparison",
method = "restyle",
args = list("visible", list(FALSE, TRUE, TRUE, FALSE, FALSE))),
list(label = "Field Comparison",
method = "restyle",
args = list("visible", list(FALSE, FALSE, FALSE, TRUE, TRUE)))
),
x = 0.17, y = 1.15
)
),
annotations = list(
list(
text = "Data: HEPI Student Generative AI Survey (2025)",
xref = "paper", yref = "paper",
x = 0, y = -0.38,
showarrow = FALSE,
font = list(size = 10, color = "grey")
)
)
)
p4
Key Insights: - Top concern: Being accused of cheating (53% of all students, 59% of women) - Gender gap: Women are more concerned about cheating accusations (+14 points) and institutional bans (+10 points) - Field gap: Humanities students more worried about cheating (62% vs 48% STEM), STEM more worried about hallucinations (55% vs 48%) - Only 4% are fully comfortable with no concerns—AI anxiety is nearly universal - Use dropdown to compare different student groups
The Story: Students have raced ahead, but universities are struggling to keep pace. A massive gap exists between student behavior and institutional support.
# Data from HEPI 2025-2026 and Digital Education Council
institutional_data <- tibble(
metric = c(
"Students using AI for assessments",
"Institution provides AI tools",
"Institution encourages AI use",
"Staff equipped to support AI",
"Clear AI policies in place",
"Students satisfied with AI integration",
"Students believe AI skills essential",
"Staff helping develop AI skills"
),
percentage_2024 = c(53, 9, 18, 18, 45, 12, 58, 22),
percentage_2025 = c(88, 24, 36, 42, 68, 20, 68, 35),
percentage_2026 = c(94, 38, 37, 48, 72, 25, 68, 48),
type = c(
"Student Behavior", "Institutional Support", "Institutional Support",
"Institutional Support", "Institutional Support", "Satisfaction",
"Student Belief", "Institutional Support"
)
)
# Reshape and calculate gaps
institutional_long <- institutional_data %>%
pivot_longer(cols = starts_with("percentage"),
names_to = "year",
values_to = "percentage") %>%
mutate(
year = str_remove(year, "percentage_"),
hover_text = paste0(
"<b>", metric, "</b><br>",
"Year: ", year, "<br>",
"Percentage: ", percentage, "%<br>",
"Type: ", type
)
)
# Calculate the gap between student behavior and institutional support
gap_2026 <- institutional_data %>%
filter(metric %in% c("Students using AI for assessments", "Staff helping develop AI skills")) %>%
select(metric, percentage_2026) %>%
pivot_wider(names_from = metric, values_from = percentage_2026) %>%
mutate(gap = `Students using AI for assessments` - `Staff helping develop AI skills`) %>%
pull(gap)
# Create line chart showing convergence/divergence
p5 <- plot_ly(institutional_long,
x = ~year,
y = ~percentage,
color = ~metric,
type = 'scatter',
mode = 'lines+markers',
line = list(width = 3),
marker = list(size = 8),
text = ~hover_text,
hovertemplate = '%{text}<extra></extra>',
colors = viridis(n = 8, option = "D")) %>%
layout(
title = list(
text = "The Institutional Gap<br><sub>Student adoption vs. university support (2024-2026)</sub>",
font = list(size = 16, color = color_primary_red)
),
xaxis = list(title = "Year", tickvals = c("2024", "2025", "2026")),
yaxis = list(title = "Percentage (%)", range = c(0, 100)),
legend = list(
title = list(text = "Metric"),
orientation = "v",
x = 1.02, y = 0.5,
font = list(size = 10)
),
margin = list(r = 300),
shapes = list(
# Highlight the gap
list(
type = "rect",
xref = "x", yref = "y",
x0 = "2026", x1 = "2026",
y0 = 48, y1 = 94,
fillcolor = color_primary_red,
opacity = 0.1,
line = list(width = 0)
)
),
annotations = list(
list(
text = paste0("GAP: ", gap_2026, " percentage points"),
x = "2026", y = 71,
showarrow = TRUE,
arrowhead = 2,
arrowsize = 1,
arrowcolor = color_primary_red,
font = list(size = 12, color = color_primary_red, weight = "bold"),
bgcolor = "white"
),
list(
text = "Data: HEPI (2024-2026), Digital Education Council",
xref = "paper", yref = "paper",
x = 0, y = -0.15,
showarrow = FALSE,
font = list(size = 10, color = "grey")
)
)
)
p5
Key Insights: - 46 percentage point gap: 94% of students use AI for assessments, but only 48% feel staff are helping them develop AI skills - Positive trend: Staff preparedness has more than doubled (18% → 48%) from 2024-2026 - But still inadequate: Despite improvements, most students feel unsupported - Policy vs. practice: 72% of institutions have AI policies, but only 37% actively encourage use
The data tells a clear story: AI has become essential to the student experience, but not all students have equal access, and institutions are struggling to keep pace.
Universities must move beyond policies and bans toward proactive AI literacy education. Students need guidance on ethical use, understanding limitations, and developing AI as a skill rather than a crutch. The alternative is a generation of students left anxious, unsupported, and unprepared for an AI-enabled workforce.
All data visualizations in this story are based on publicly available research:
HEPI (Higher Education Policy Institute). (2024-2026). Student Generative AI Surveys. https://www.hepi.ac.uk
Australian Digital Inclusion Index. (2024-2025). Australian Internet Usage Survey: GenAI Module. https://digitalinclusionindex.org.au
Digital Education Council. (2024). Global AI Student Survey. https://www.digitaleducationcouncil.com
The Conversation. (2026). “Almost 80% of Australian uni students now use AI.” https://theconversation.com
All percentages and statistics are drawn from the sources listed above. Where data was not available for specific years, reasonable interpolations were made based on observed trends. Sample sizes ranged from 1,041 (HEPI 2025) to 8,000+ (Australian university surveys).
```