Programming platforms that automatically grade students' code.
Articles
January 31, 2022

Teaching coding? Here's what to look for in a learning platform.

In 30 seconds...

Deciding on the right tools for your coding classroom is a complex task. From grading flexibility and ease of use, to support and licensing, there are many factors to consider. In this blog, we discuss some important things to look out for when choosing a learning tool.

The expansion of the technology sector has seen an obvious rise in tech jobs, with a predicted growth to 12.4 million employees in the US alone and it is further set to grow. Learning to code can help supply this demand. Besides this societal benefit, it also pays to learn how to code, as this increase has been met with a rise in wages. In fact, in the US, average tech job salaries increased by 6.9% from 2020 to 2021.

To meet this demand, scaling up technology-based education (such as Computer Science degrees) is essential. This puts professors in a pivotal position, as they help future tech talent evolve. This is certainly the case for those teaching coding. Learning to code is a difficult process and takes a lot of persistence, so the way we frame students’ learning experiences has a significant impact on their success. 

Unfortunately, CS majors have a high dropout rate - 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. Learn more about this topic in our previous blog here. How can we remedy this? Tools that students use in their educational journeys can be a huge factor contributing to their success. 

The learning tool or platform that a teacher uses to teach coding has to be able to give students the opportunity to make mistakes and also have the ability to learn from it. A continuous stream of error messages can be quite disheartening for a novice programming student, thus having some flexibility on the grading system is key. At the same time, it has to be easy to use by the students and the teachers. How do we choose a tool that both suits their educational goals, and is able to scale with increased demand? As Head of Growth at CodeGrade, I spend a lot of time speaking to teachers all around the world looking for an instructional learning tool that will help ease the burden of grading and improve the quality of assignments. Here are some of the top questions I get asked. 

Q: What learning environment should I choose? 

Having the ideal learning environment in mind is important when assessing tools. Do you want your students to code in an editor that's in the browser? Do you want your students to learn how to set up an editor locally? Did you have another idea in mind? How are the students submitting their work? How much work will it be for me to set this all up? What is the price?

Some teachers prefer to have their students code in the browser, making the initial set-up not as intimidating for the student. This is something I commonly come across, especially in programs that are aimed at groups that are just learning how to code and learn how to understand programming better (for a more in-depth look, check out this blog!).

A lot of the teachers I speak to prefer to have students set up an editor locally, as it would be a transferable skill if the student chooses to further their studies in programming. This also gives the students the option to choose the editor that they prefer best - this might be the editor they choose to use for the rest of their careers! As using Git is important for those looking to pursue careers in software development, some teachers are looking for a seamless Git integration, with the ability to assess students' work more easily. The answer to this question really depends on the professor’s preference and learning goals of the course!

Find the right tools for your coding classroom with CodeGrade!

Q: How easy would it be for the students to submit assignments?

As a teacher, you are looking for the best solutions that will save time when grading. A lot of teachers I speak to love having a seamless Learning Management System integration. This means students are submitting their work directly into the Learning Management System, ensuring all the assignments and grades will be in one place. This makes it easier for their students, as they don’t need to go into another browser or create any secondary accounts. For the teacher, it ensures their students’ work can be easily located and all the submissions are on one platform.

Q: How easy is it to set up the assignments for my students?

There is a ‘learning curve’ period, where students and teachers learn how to use a novel tool and gradually start to feel comfortable administering it themselves. Like with any tool, professors want to know how best to start. The follow up question I ask is, what do you want to achieve? If you are looking into simple black box testing (give an input, what’s the expected output), there are many tools on the market that could do that for you. The user experience, when it comes to setting up test cases, can vary. The level of flexibility when it comes to student submissions can also vary. Some products require exact text/numerical matching to be correct, others allow for flexibility. Having the flexibility also ensures students don’t get discouraged even if their solutions were correct. If you are looking into more advanced testing, a lot of teachers like to go the unit testing approach. Some systems can be cumbersome to set up unit testing, as you might have to set up each individual case. While others will have a smoother User Interface. Some systems might also not be able to support the framework that you would like to use, or the programming language you might be interested in teaching. 

With any system, there will always be a learning curve setting up the environment to be ideal for you and the students. Having the support and well documented guides is crucial to ensure a successful adoption. Which leads me to the next question you might ask yourself. 

Q: What support will I receive when it comes to licensing? 

Some products might have limited support and this may very well only be offered on higher paid models. Others will ensure the best teacher experience possible regardless of licence size. This is always something to consider as well, as you never know what questions might come up while setting the system up, or what might happen during the duration of your course.

Q: How much will this cost? 

Different tools will have different price points, especially given the different capabilities and levels of support. There are a lot of free resources that teachers can use, but of course with free options, support, further development and features might be limited. There are many paid for products out there, and those might have more features, the ability to continuously develop and improve and better customer support. While budgeting comes down to what you have available, you have to think about what would be worth the investment for you and your students to get the maximum benefits and learning experience.

Overall…

With a multitude of aspects to consider and a range of products out there, the search for the ideal instructional tool for coding can be a complex one. And, these are only some of the main points that I tend to come across when I speak to teachers who are exploring new tools. Every teacher is in a different situation. As computer science education grows, we hope this can help educators find the solution that is right for them! 

Lena Hong

Lena Hong

Head of Growth
Lena is the Head of Growth, and is often the first person you meet on the CodeGrade team. Lena's educational background is in biomedical sciences and she previously worked as a university instructor in nutrition. She has since delved into the world of technology and education technology. In her free time she is often cooking, or reading about places to explore.

Continue reading

Teaching Intro to Python with CodeGrade

The CodeGrade Introduction to Python course is an 8-week basic Python course. Students are not required to have any prior knowledge on programming or Python. This course will cover the basic concepts of programming up to Python specific modules and OOP design. It is available for all instructors now.

New release CodeGrade QuietStorm.1!

Find out about all the features and updates coming with our latest release, QuietStorm.1!

New release CodeGrade QuietStorm.1!

Automatically grading Haskell code assignments

Learn about autograding Haskell coding assignments for Computer Science education courses. CodeGrade can help you use tools like input and output checking, Quickcheck, Tasty and HUnit unit test autograding, HLint code quality checking and code structure autograding using semgrep.

Top tips for teaching programming

The most efficient ways to teach students how to code, by defining your target audience, designing your assignments in a meaningful way and eliminating distractions in the classroom.

Top tips for teaching programming

Learn more about CodeGrade!

Grow your coding classroom
without compromise.