Give adaptive immediate feedback on code assignments for better results.
Articles
November 17, 2021

How better feedback will prepare the tech talent of the future

I recently came across a journal article that drew my attention to the importance of feedback [3]. It explored how giving instant feedback on students’ code made an impact on their desire to continue studying and working in the field of Computer Science. While educational institutions are slowly taking this more seriously, CS degrees still suffer from a lack of quality formative teaching methods and resources. As someone who has personally struggled with getting the help I needed with my programming assignments, I wanted to know more.

The Information Technology sector is currently in desperate need of tech talent. According to U.S. labor statistics, there were 1.4 million unfilled computer science vacancies by the end of 2020 while there were only 400,000 graduates. This issue exists in part because a high percentage of CS students end up dropping out before receiving their degrees. The Higher Education Statistics Agency found that almost 10% of students enrolled in Computer Science degrees in the UK dropped out of their programs, the highest of any field of study. Of those students, 49% said they didn’t enjoy it and 33% said it was too hard.

“Why”, I thought, “is there such an exodus of students from Computer Science majors and why are they finding it so difficult?” In comparison to the unimaginably long nights slaving away on engineering coursework, or the mind-numbing dredge that is reading through Law or medicine textbooks, coding all day and checking Stack Overflow once in a while doesn’t sound too bad. 

Well, educators are finding that the metrics by which we once measured the success of high-school and university courses no longer sufficiently (at least not by themselves) explain student retention, learning success, and student satisfaction. A study by the Computing Research Association found that access to academic resources, the quality of technical content, and the availability of professors outside of class were the 3 things most likely to affect student satisfaction in Computer Science courses and, clearly, these factors are the biggest struggle for teachers too. 

Start giving your students powerful adaptive immediate feedback with CodeGrade now!

One of the underlying issues here is how Computer Science is taught. Teachers understand the importance of learning through practice and experience, but aren’t able to provide coursework-based programs with the tools at their disposal. They find it difficult to create these assignments, not because they don’t know how, but because they’re already strapped for time without having to grade hundreds of submitted code files that need to be compiled and run locally.

Although many instructors have found ways to make it work, when they are provided with an all-in-one platform for creating assignments, receiving submissions and subsequently grading these submissions, they have more time to provide feedback for the students that need it most (*cough* me *cough*).

However, it’s not just that teachers have more time to give feedback, they can provide better formative feedback - which is non evaluative, supportive, timely, and specific. This form of feedback is indispensable when striving for the best learning outcomes [4].

Picture this: your student is almost there but can’t find the right solution? Nudge them in the right direction without revealing the answer. They have the answer but the code is inefficient? Explain how code structures can be shortened. Common programming misconceptions? Link them to an external resource like progmiscon.org. And because this feedback is delivered during the learning process, students can immediately implement the feedback in their work and feel more confident.

This is exactly what Marwan et al. found in their paper. The researchers created an “Adaptive Immediate Feedback” (AIF) system for a beginner programming course [3]. The idea was to provide real-time feedback that was engaging and encouraging. Their system used color-coded objective banners that would light up when an objective was met or if it was broken. Additionally, the students would get pop-up messages encouraging them to keep going if they were stuck or celebrate if they achieved an objective.

Unlike with traditional learning, this type of workflow rewards students for trying to find their own answers and allows them to learn from the problems they encounter. When an instructor is able to give timely, constructive feedback, students can use it to reframe their way of thinking about the subject matter. This effect is amplified when students are able to apply this feedback directly to their coursework in an iterative process. Research has shown that this form of reinforcement learning achieves better learning outcomes than feedback given at the end of the workflow and reveals the answers [1].

There are also profound personal consequences. Formative feedback boosts students’ belief in their own ability to code, giving them more motivation [2]. Moreover, Marwan’s paper concluded that students that used the AIF system performed better and had greater intentions to continue studying or working in Computer Science compared to a control group that didn’t use the system.

We’ve received feedback from teachers and students using CodeGrade that learning to program is significantly more effective and enjoyable when these practices are put into place. It creates an atmosphere of reinforcement, showing that a student's ability isn’t cut and dry. Your ability to program isn’t defined by the ridiculous expectation that your code should compile on the first try. Rather, a student can iteratively problem solve and learn through experimentation.

Preparing students not just with a skill but with a mentality for success will benefit them, their future employers, and the universities that teach the computer scientists of the future.

Bibliography

  1. Dessai, K. G., & Kamat, M. S. (2012). Improving Learning Outcome through Iterative Teaching/Learning Methodology. International Journal of Advances in Computing and Management, 1(1), 7–11.
  2. Giannakos, M. N. (2014). Exploring students' intentions to study computer science and identifying the differences among ICT and programming based courses . The Turkish Online Journal of Educational Technology, 13(3), 68–78. 
  3. Marwan, S., Gao, G., Fisk, S., Price, T. W., & Barnes, T. (2020). Adaptive immediate feedback can improve novice programming engagement and intention to persist in Computer Science. Proceedings of the 2020 ACM Conference on International Computing Education Research. https://doi.org/10.1145/3372782.3406264 
  4. Shute, V. J. (2008). Focus on formative feedback. Review of Educational Research, 78(1), 153–189. https://doi.org/10.3102/0034654307313795

Continue reading

Best Practices for Rubric Design in Coding Assignments

Discover best practices for rubric design in coding education. Learn to align rubrics with learning objectives, use automated tests, and explore ungrading for fairer, growth-focused assessments

Watch now! How to teach Python

Watch our 2024 webinar for updates on the Introductory Python course, including new modules, knowledge checks, and grading automation with CodeGrade.

Follow A New User!

See how CodeGrade streamlines grading and improves assignment design in programming courses.

How to configure an AI Assistant for code

CodeGrade’s AI Assistant offers a flexible way to support coding education through tailored guidance and feedback. This guide explains how to configure and customize the assistant to fit your teaching goals, from helping students debug code to providing conceptual explanations.

Sign up to our newsletter

Transform your Jupyter Notebooks course today!