Visualizing Student Time Spent Coding vs. Debugging

4:25 PM on August 9, 2022 | computer science programming

How do students spend their time during an assignment?

Time-on-task or time spent metrics give a pretty good estimate of how much time students are spending on an assignment. However, it is more interesting to see how students spend their time working on an assignment.

To take a step toward integrating Student Process-Focused Insights in our Learning Insights Ecosystem, we have launched Coding vs. Debugging Time as a visualization in our Assignment level Learning Insights.

Classifying Coding and Debugging Time

A simple way to start unpacking how students spend their time is to divide the time spent into time spent coding or writing new code and time spent debugging or addressing error messages.

In the example above, we see that time spent after a run with errors is classified as debugging since it is probable that the student’s next step is to address the presented errors. This means that the rest of the time, or the time spent after an error-free run, is classified as coding.

Note: We only have and use the compile/run events from Custom Buttons. To take advantage of this visualization, add these buttons to let students test their code as often as they want before submitting it.

Coding Visualization vs. Debugging Time

For any assignment in Codio, instructors can see a bar graph, with each column representing a student. Additionally, each bar consists of two segments. The bottom green segment of a column represents a student’s coding time. The top red segment of a column represents a student’s debugging time.

The columns are sorted in descending order of the total time spent:

The tiny bars at the bottom of the chart give instructors an at-a-glance view of the entire class and their coding-debugging activity, allowing them to scroll through and focus on any particular areas of interest.

Hovering on any of the red or green columns displays the debugging and coding time of the students, respectively.

Interpreting Coding vs. Debugging Time

Coding vs. debugging give instructors a better picture of the student process. Specifically, it allows instructors insight into important questions like:

1. Were students struggling to resolve/debug their code for too long?


.

This example shows the students that took the longest to complete their assignments, with really high debugging time compared to the rest of the cohort. This can be interpreted as a set of students that may have found the assignment more challenging than the rest of their cohort and might have struggled with its difficulty.

2. Did the entire cohort face similar resolving/debugging challenges or is it a small subset of students that need help?

This example shows the students who took the longest time to complete the assignment, with students 4 and 6 spending a relatively higher time debugging than the rest of the cohort. But, again, this can be interpreted as an artifact of a smaller group of students that may need help.

3. Did some students cruise through the assignment and need a challenge?

This example shows students who took less time to complete the assignment and spent the least time debugging.

Is There Coding In Data Visualization?

Coding visualization is the process of creating visual representations of data using code. Data visualization has the power to tell data-driven stories while allowing people to see patterns and relationships found in data.

There are many coding languages that can be used for data visualization, but some of the most popular ones include R, Python, and JavaScript. Check out our intro to Python course, intro to Java course, and intro to C++ course to learn more.

What Is Python Visualization?

Python visualization is a type of coding visualization that enables one to create visual representations of data using the Python coding language.

There are many different types of Python visualization libraries, but some of the most popular ones include Matplotlib, seaborn, and Python Tutor.

How Do You Visualize A Code In Python?

To use coding visualization in Python, you can use online tools such as Python Tutor and Matplotlib. Matplotlib is a 2D plotting library that allows us to create publication-quality plots, interactive figures, and custom visual layouts that can be easily embedded in web applications.

If your students are just getting started with coding visualization, we recommend using Python Tutor for visualizing code. Python Tutor is an online tool that allows you to step through your Python code line-by-line and see what's happening at each stage. It's a great way to see how your code is working and to debug your code if you're stuck.

Once your students are comfortable with coding visualization, they can move on to using Matplotlib to create more sophisticated visualizations.

Pandas and Seaborn are also great tools for data visualization in Python. Pandas allows you to easily manipulate data, and Seaborn makes it easy to create beautiful visualizations.

How Do I Visualize Code In Vscode?

If you're looking to use coding visualization in Vscode, try the VsCode Debug Visualizer. This extension allows you to visualize data structures in your editor. This can be useful for visualizing watched values during a coding and debugging activity.

Diving Deeper into a Student’s Process

We believe that student process-based metrics and tools will help instructors identify students who may need help and enable them to understand students’ thought processes while they code.

With Coding vs. Debugging time, coupled with our Code Playback tool that takes snapshots of students’ code creation from beginning to end, we are paving the way for instructors to get a deeper insight into how their students work.

Mohit Chandarana

Mohit is a Data Science and AI specialist at Codio. From generating insightful learning analytics for CS Educators to prototyping novel product features and algorithms, he believes in bridging the gap between cutting-edge academic research and its application in the industry.