Codingo: Learn to code anywhere, anytime, in your PHONE

This image shows the main learning process in the Codingo App

Project Description

Why do we have to learn programming languages on a computer? Why do we have to become proficient in programming languages? Why must we pay high prices to enroll in coding boot camps or courses and then lose our initial interest due to overwhelming workloads and tedious exercises? Why can’t we just use our spare time to learn a programming language easily?

What if we could turn learning programming languages into a form of daily self-directed informal learning, requiring just 15 minutes a day to learn and review new knowledge? The learning process would be easy and fun, much like playing a game and advancing through levels. When encountering problems, we could ask for help anytime from a teaching assistant. No programming course in the world can make us master computer science in a short period. Only by making learning computer languages a daily habit rather than a daunting task can we persist in the long run and continuously explore.

Codingo is such an app that allows learners to use their spare time on their phones to learn programming languages. Through easy, gamified, small-bite exercises, instant feedback, and an ever-ready AI tutor, Codingo will be the starting point for learners aged 12-23 to explore computer languages, not the endpoint.

From user research, I discovered two main reasons that deter or discourage programming learners: lack of interest and insufficient support. The former makes it difficult for beginners to be enthused, while the latter causes learners to get lost while debugging, hindering their persistence. To address these challenges, my final product adopted a gamified learning approach similar to Duolingo to stimulate beginners’ enthusiasm. Additionally, I introduced an AI character to provide 24/7 support, helping learners stay committed to their studies.

Learning Theories

My learning design progresses from behaviorism to cognitivism, and ultimately to constructivism. I incorporate instructional cues, practice, and reinforcement in the initial stages of my instructional design. I also apply cognitive theories in reasoning, problem-solving, information processing, and other advanced forms of learning. The matching game and Parsons game are used to reinforce learners’ understanding and application of previous knowledge. Codingo creates learning environments that encourage students to make connections with previously learned material, helping them build mental structures and integrate acquired skills to solve problems. Each module in Codingo consists of levels. Learners need to complete all levels and earn enough stars to unlock the next unit. The number of stars helps learners evaluate their learning level and whether they need more practice to consolidate knowledge. Meanwhile, if learners find the current content too simple, they can choose to “skip,” allowing them to personalize their learning. In the levels, I also incorporate constructivism—allowing learners to create meaning from experience. At the end of every module, the “treasure” and “champion” represent projects that students will engage in, such as designing programs to solve problems or creating small games using a computer language.

AI Tutor

My roommate once shared with me why she dropped her introductory CS course—she hated debugging blindly. Undoubtedly, providing sufficient scaffolding in learning design is crucial. Even when taking programming courses at school, we have large teams of teaching assistants to help us solve problems. However, no one knowledgeable in basic CS can live in a phone 24/7 to answer learners’ questions. So we need an AI tutor.

The AI tutor in Codingo can provide learners with assistance at any time. Whether dealing with unclear concepts, being unable to debug, or just wanting to “chat casually,” learners can “call” the AI tutor anytime from any interface to seek help.

You might be interested in …