About CodeWorkout

Rudimentary programming skills are essential to developing fundamental proficiency in computer science. However, learning programming techniques can be challenging and frustrating for many students. Without interventions to curb these frustrations, introductory computer science courses will suffer from attrition and poor retention rates will follow. While drill-and-practice tools are emerging to help students develop basic programming techniques and improve their confidence, they still have limitations.

CodeWorkout aims to address this problem by providing full-spectrum drill-and-practice support while actively and adaptively assisting students when they require help on exercises. Likewise, CodeWorkout aims to bring the potential for peer learning into the mix, while effectively leveraging modern social collaboration mechanisms online.

CodeWorkout is a free, open-source system where students can practice programming with the assistance of adaptive, social scaffolding. The system includes a rich interface where students: program their exercise solutions, run their code and view results, receive adaptive hints, and review relevant code examples. The code examples also provide an opportunity not only to review demonstrated techniques, but also to actively explore how the techniques work by observing how the provided code executes, even with modifications. Additionally, when students struggle to solve an exercise, CodeWorkout provides hints to overcome obstacles in learning. These hints are vetted by the system and adaptively selected to help students based on their progress on the solution. This design offers substantial scaffolding to foster growth in programming skills while alleviating frustrations.

In addition to hosting moderated exercises written by content area experts, CodeWorkout also encourages students to contribute content by authoring both hints and exercises. Creating content encourages students to reflect on their understanding of problem solving techniques so they can help their peers. These contributions advocate social responsibility and productive education through peer learning. Furthermore, the system automatically assesses the quality and effectiveness of exercises and hints to continuously improve the learning experience while minimizing the administrative burden of editing and removing poor content.

Send Us Your Exercises!

While CodeWorkout allows you to author your own exercises, not all educators want to take the time to do this. If you have exercises you want to share, in the form of written tests, quizzes, or question banks, We will import them for you as long as you are willing to share them publicly with others. E-mail your exercises to questionbank@vt.edu and we'll convert them for you!

All exercises you submit must be your own work, and will be released to others under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

Want to Contribute to CodeWorkout's Source Code?

Find us on github at: https://github.com/web-cat/code-workout.