01. Overview02. Research03. Ideation 04. Design Iteration05. Final Design06. Reflection

UrsaCoding

An code learning platform that helps young learners tackle professional coding through AI support and gamified practices.

Contribution

Product Design
UX Research

Team

UX/UI Designer x1  (Me!)
Product Manager x1
Engineers x2

Tools

Figma
FigJam
Adobe CS

Time

June - Sep 2023

01. Overview

Learning to code can be challenging, a single misplaced comma or bracket can lead to hours of troubleshooting. Moreover, with so many syntax rules and concepts to remember, to master it can feel like learning a new language.

To make coding more approachable, many young learners begin with visual programming languages. These block-based language allow users to drag-and-drop the code and practice coding concepts with ease.

Yet, the transition from block-based languages to professional text-based environments is still challenging. Many young learners struggle with syntax, abstract concepts, and debugging, lead to frustration and decreased motivation.

As the UX designer at UrsaTech, I collaborated with project managers and engineers to design UrsaCoding, an AI-powered code learning platform that helps young learners tackle professional coding with real-time supports and gamified practices.  

Design Goal

Create an engaging learning experience that helps K-12 code learners transfer from block-based to professional text-based coding language.

The Outcome

1. A professional text-based code editor

2. An AI chatbot assistant that provide real time assistant, feedback, and debugging support

3. Gamified practices and reward system

The code editor's performance in the incremental feature release:

7.3%

increase in User Satisfaction Rate

10.8%

increase in Task Completion Rate

02. Research

Design for Young Audiences

The platform's target user was K-12 students (ages 5 - 17) who were beginner in coding or coders who wish to transfer into text-based coding language.

To better understand this unique persona, I researched children's behaviors and learning habits. This helped me identify their specific characteristics, best learning methods, and pain points they have when studying coding.

Beneficial Learning Methods for Children

Active Engagement 🚀

Children learn best when they are actively engaged in the learning process (e.g., hands-on activities, interactive games, discussions).

Interaction & Feedback 💬

Interaction and feedback helps children understand their progress and stay engaged. It reinforces learning and encourages persistence.

Learn through Play 🕹️

Learning through play is highly beneficial for children because it aligns with their natural inclinations and developmental needs.

Social Interaction 👭

Collaborative learning, peer discussion, and group activities can enhance understanding and retention of concepts.

Challenges for Children

Short Focus Spans 😔

Children have short attention spans and less patient than adults. They need extra strategy to help keep focus.

External Motivation 👏

Young learners are still developing focus and intrinsic motivation, therefore they relying on external rewards and encouragement to stay engaged.

Personalized Support 🧒

Each student’s learning habit and ability can be different and need tailored support and teaching approach.

Market & Competitive Landscape

I also performed market research and competitive analysis to explore different approaches and features for young code learners. It helps me to ensure our product exceeded industry standards.

Industry Trends and Standards

Active Engagements

Leverage gamification elements, let users learn through various games and exercises.

Tutorials and Support

Use interactive tutorial videos, code examples, and notes to guide through learning process.

Professional Code Editors

Professional code editor features like auto code completion, error messages, and task running.

How might we provide text-based coding learning experience that is approachable and engaging for children?

03. Ideation

Active Learning & Engagement

After the research on young audiences' learning habits and coding education market, the team's initial approach was to build active learning experience through hands-on exercises and gamification mechanisms.

Gamify Hands-on Exercises

Users will learn and master coding concepts from practices. Through hands-on exercises, they can solve challenges and express their creativity.

Rewards and Engagement

Once users successfully solved the given challenges, they would collect points as rewards to keep them engaged in the learning process.

"I cannot fix the error and get stuck for an hour.
Finally I just give up."

- User Survey Feedback

04. Pivot to a New Approach

What Users Said

While working on the initial approach of this product, I sent out user surveys to our target users, aim to discover more specific pain points and needs during their code learning experience.

In the survey, I showcased our initial idea and asked young code learners about their experience on code learning. I recruited 70 participants in the process.

Key Pain Points & Insight

Fail to debug on their own

Debugging reveled to be the top frustration for users. A tiny misplacement can lead to hours of troubleshooting, especially when they are working on their own.

Lack of real time support

A majority of users stated it is hard to find support when they need real-time feedback to help them debug or understand concepts.

Misplace syntax & vocabulary

Block-based languages often eliminate syntax errors. While text-based languages require students to remember the correct syntax.

Personalized instruction

Users can learn better with personalized instruction and tailored learning materials.

How might we provide tailored, real-time supports to help users overcome challenges when they’re working on their own?

Solutions

The user survey revealed that users need "someone" or "something" to help them identify their errors immediately to keep moving forward and staying motivated.

I came up with different ideas and approaches and placed them into a matrix to identify the most efficient and usable solution for users.

Decision Matrix

05. Iterations

Features

Based on all of our findings shown above, we narrow down to three main features for our code editor.

Code Editor:
Allows users to code in professional text-based programming languages and run tasks.

AI Assistant:
Provides real-time personalized feedback, hints, notes, and other supports to help users understand errors and solutions.

Engagement Elements:
Provides coding exercises and reward system to encourage users to learn from solving interesting challenges.  

User Flow

Iterations

Lo-Fi Iteration #1

Lo-Fi Iteration #2

Hi-Fi Iteration #1

Final Iteration

06. Final Design

View Prototype in Figma

Coding Panel

AI Assistant

Console Panels

Style Guide

07. Reflection

Impact

The code editor's performance in the incremental feature release:

7.3%

increase in User Satisfaction Rate

10.8%

increase in Task Completion Rate

Next Steps

1. The team is progressing with the coding and structuring of the online editor.
2. Design onboarding experience for the editor to lower learning curve, especially for first time user.
3. Giving the AI assistant characteristics to help form more engaging learning experience.
4. The team is planning on extending the AI assistant functions over the entire platform's ecosystem.