top of page

C

O

D

E

Screenshot 2025-10-14 at 11.31.31 AM.png

Building belonging and peer connection in Code.org’s Python high school course

Overview

With Python’s relevance on the rise, Code.org sought to improve their initial iteration of a Python curriculum aimed towards high school students with various levels of coding experience. Their main goal was to create a more engaging curriculum that got students excited to code. After months of research, we gained an understanding of current best pedagogy, barriers to learning, ways to address those barriers, and the current market space. This knowledge informed our mid-fi design creation, resulting in a two part design solution involving a personalized onboarding experience and a collaborative group project.

My role

UX Researcher & UX Designer

Timeline

March to August

Team size

4

Tools

Figma, Maze, & Optimal Workshop

How can we get high school students excited and engaged in learning Python?

This was the initial question we asked ourselves. 5 months later, this was our creation!

Avatar

To build connectedness

AI CodeMate - Step 1.jpg

Learning preferences quiz

To know how they learn best

Screenshot 2025-09-10 at 2.05.23 PM.png

Customized lessons

To adjust to their pace

Quiz Results.jpg

Group coding activity

To imbed relevance & collaboration

Screenshot 2025-09-10 at 2.18.36 PM.png

Wondering how we got to this?

Let’s back up and dive into how our research findings informed each section.

Research finding #1

Underrepresentation in computer science can undermine belonging, lowering growth mindsets and making students less likely to see themselves in the field.

Building representation through avatars

AI CodeMate - Step 1_edited.jpg

We saw an opportunity to strengthen students' representation by allowing them to design avatars (CodeMates) that reflected themselves, fostering belonging.​

Skin tone wheel allows for a highly customized complexion.

Option to randomize avatar's features.

Can customize hair, headwear, expressions, pronouns, etc.

Testing shows that avatars might not be the answer for representation but they do strengthen connectedness

In a quantitative test of 30 participants, we asked:

How well does your CodeMate represent you? 
Do you feel more connected to the platform?

Round 1 testing:

33.3%

Answered "well" or "very well"

53.3%

Answered "more connected"

Iterations:

We assumed people wanted greater self-representation, so we added more customization options such as:

Screenshot 2025-09-10 at 4.02.23 PM.png

More skin tones

Screenshot 2025-09-10 at 4.03.52 PM.png

More hairstyles

Screenshot 2025-09-10 at 4.04.15 PM.png

More accessories

Round 2 testing:

-3.3%

In representation

+20%

In connectedness

The takeaway: Representation is still important, but avatars might not be the best way to acheive it. Instead, avatars may best serve to strengthen the connection users feel to the platform through customization.
Next steps: More research into alternative avatars, such as animals, could tell us more about what connects users to the platform best.

Research finding #2

Personal surveys that capture students’ interests and goals help tailor projects to their lives, making computer science more engaging and accessible.

Understanding learning preferences to tailor the environment

Screenshot 2025-09-10 at 2.05.23 PM.png

We designed a learning preferences self-assessment to ensure students learn in supportive environments, with results shared to teachers for personalized guidance.​

Answers can be multi-selected.

Free form answer boxes are available.

In the future: This data could inform how the course adapts and presents material.

Customizing lessons to meet every learner’s level

Group 78.jpg

One of Code.org’s biggest challenges was supporting learners at different coding levels.

 

To address this, we created a coding knowledge assessment that shaped each student’s customized lesson.

An assessment determines which lessons students receive and at what level of detail.

Curriculum changes are always visible and reversible to give students control over their learning.

In the future: Futhur research could investigate how adaptive lessons that tailor content based on student responses impact learning outcomes and engagement.

Customization resonated well with users

On round 1 & 2 of testing, 60 users rated how useful the customized lesson was on a 5-point Likert scale:

86.7%

Chose "useful" or "very useful"

[Customization] allows me to feel more connected since it shows...[my] experience will be different from another person’s experience.

- Maze participant, round 1 testing

Research finding #3

Abstract, test-heavy curricula can reinforce stereotypes of innate talent. Connecting lessons to students’ interests and emphasizing teamwork makes computer science more meaningful, engaging, and collaborative.

Combining music and coding to get learners engaged

Group project intro.jpg

We leaned into music to connect students’ interests with coding, drawing inspiration from EarSketch, a music coding program shown to boost engagement, especially among underrepresented learners.

​

In this activity, groups apply Python constructs like loops and functions to animate shapes in sync with music on a shared canvas.

Shapes are assigned based on Python knowledge to match each student’s skill level

A group coding challenge allows students to reach a shared goal

Group Coding-1.jpg

Shared canvas shows teammates' shapes interacting 

Their CodeMate from onboarding is available in an AI Chatbot form

Task timer keeps teammates on track

Each person has their own coding workspace as well as access into their group's code

Task tracker keeps teammates aligned on their goals

This project got users excited to code!

On round 2 testing, 30 users rated how inviting the group challenge felt on a 5-point Likert scale:

80%

Chose "inviting" or "very inviting"

“The group challenge felt fun and creative, especially with the band theme and shared canvas. It encouraged collaboration and self expression.”

- Maze participant, round 1 testing

The takeaway

Getting students engaged and interested in Python deserves a multi-tactic approach. Students have many different backgrounds, interests, and learning styles. The best way to cater towards those differences is to make a curriculum that is flexible enough to mold to their needs! 

bottom of page