3 groups of CS education students that learn to code
Articles
January 6, 2022

Do you know the 3 types of coders and their needs?

In 30 seconds...

  • There are three main groups of coders: those coding to understand, those coding as a skill, and those learning coding as a career.
  • These groups have different needs - novice programmers benefit from fast feedback and a non-distracting coding environment, whereas more experienced coders need to use specialised libraries and tools, such as git. 
  • An autograder can be used for all levels, and helps ease the burden of grading. This is especially effective when paired with a student support system.

We are living in a digital age, where a certain level of ‘digital literacy’ - the ability to utilise technology in order to live, learn and work - is crucial. Shopping, banking and, especially in recent years, education, increasingly take place online. 

As having knowledge about technology becomes more essential, coding is set to become a key part of this literacy. However, the role coding will take differs from person to person. Learning about different types of coders and their needs is crucial to ensure that all students, at whatever level, can excel. In this article, I’ll go over the three basic types of coding students, what level they work at and which features and tools will assist both teachers and learners. 

Before we start, it is worth noting that all the tools mentioned can benefit coders at every level! However, some can be especially helpful at different stages of learning.

The three types of coders and the tools they need in CodeGrade

Group 1: Coding to understand

The first group is those who use coding to understand. These are learners who won’t work in coding-heavy job roles, but will require basic knowledge of coding. For example, someone working in sales for a tech company, although they aren’t engineering the product themselves, would need a basic understanding of coding to help fulfill their role of selling the product and understanding the market. Or, take, say, a consultant in a tech company can use coding to understand their revenue models and risks.

Now we’ve established who Group 1 are, let’s move on to what they should learn. These novice coders will need to become familiar with basic coding concepts, as you have to start with the foundations. They focus on only one programming language and one paradigm. This is because it’s far easier to get to grips with one than try to master them all. Now, which language should you teach first? That’s a whole other question! Check out our take here.  Importantly, you cannot talk about code or work in relation to it, without learning how to write it first, so as always, practice is key.

How can this group be assessed effectively? After all, this is the most difficult stage of a coder's learning journey - they are faced with completely new concepts and must adjust  to frustratingly specific learning. In the midst of this confusion, fast feedback can be a lifesaver. If a student submits their first few lines of code and has to wait a week to receive feedback, the learning process becomes long and painful. Getting feedback (almost) instantly allows students to see their mistakes, correct them, and resubmit. This iterative process works and applies to all coders! (Check out our discussion on transformative feedback here).  Additionally, assignments for this beginner group should be simple, small and automated.

Students in Group 1 require a lot of feedback
CodeGrade has exciting plans for an assignment bank with language-specific assignments all in one place, giving CS educators more time to teach! Learn more about language-specific assignments on our blog!

The need for small, automated assignments increases teacher workload. A sophisticated grading platform, equipped with autograding and customizable features, is essential in order to ease the grading workflow and deliver fast feedback to students. However, this alone is not enough! Students also need a reliable support system, where they can communicate with their professors.

Lastly, beginners can easily get overwhelmed by the coding environment - downloading a program, installing packages and compiling and running the programming language are all necessary before you even start to code! These are very useful skills, but may be too much to grasp as a novice coder, who just wants to understand the basics of coding. A user-friendly environment lets students focus on the assignment at hand. CodeGrade has its very own easy-to-use editor, coming Q2 2022!

Giving learners these tools lays the groundwork on which more advanced knowledge can be built. Without them, the difficulty and frustration of learning to code can lead to a lack of motivation and turn people away from the subject, which we know is a real problem in CS education (Flinders, 2019). These features help learners grow in terms of both skill and confidence!

CodeGrade has all the tools you need to give the best possible learning experience for any type of coder!

Group 2: Coding as a skill

Let’s move on to the second group - those coding as a skill. This group will code regularly but alongside other skills. Examples of this are those in the applied sciences field - data scientists, analysts and engineers. 

What does Group 2 learn? This group applies their basic knowledge of coding in a specific domain. They should be familiar with domain-specific libraries and be able to write small scripts and programs to solve problems, create dynamic models or automate processes. 

How do we help them reach this level? Just as with Group 1, iterative feedback is immensely useful and the correctness of code is extremely important. With this group, assignments at this level become more complex, thus educators often create them themselves. A sophisticated and flexible grading system ensures that these more detailed assignments can be graded effectively on a large scale. 

Additionally, Groups 1 and 2 (beginners and those more familiar) both benefit from self-paced assessment. Many people learn to code outside of mainstream education, such as taking part-time courses or electives. Self-paced learning makes coding education much more accessible.

As these coders grow more confident with programming, the environment should be usable outside of school or university, allowing them to improve and use their coding skills on their own time as well. This group also benefits from being able to use specialized libraries, as they are familiar with, but not restricted to, certain frameworks. 

Specific tools can help this group, as they start to dig deeper into the vast-ranging world of code. Take a data science course, for example. Jupyter Notebooks is a great tool to use. For professors check out our blog posts and webinars on Jupyter here!)

Coding as a skill or coding as a career

Group 3: Coding as a career

The final coder group consists of those coding as a career. This group will code daily and learn to apply domain knowledge to build efficient and reliable software. They are proficient in multiple programming languages and paradigms, they can implement testing, organize code and deliver it to a high quality. Also, this group should be able to set up and optimize their programming environment themselves, whereas Group 1 will benefit more from a web editor.  

Alongside the iterative feedback that benefits all groups, automated feedback for Group 3 plays more of a supportive role - as assignments become more individual and complex, the feedback this group requires is more personal and complex too. It especially helps if they can get expert personalized feedback from a grader themselves, to give more in-depth help and alternative approaches. 

So, what features can help? An integration with GitHub and GitLab helps get students ready for a career in coding, as it is the industry standard. Students upload from Git and work together, bringing us to the next feature - peer feedback! Assignments at this level are unlikely to have a single correct answer; in fact, different takes on a problem should be encouraged! This way, students can learn from each others’ answers.  

Another area that deserves attention is maintaining academic integrity, especially for professors.  Many plagiarism detection systems aren’t sufficient for assignments at an advanced level, where answers can vary hugely in code structure.

CodeGrade’s plagiarism software is designed specifically for code structure. By parsing code before checking for plagiarism, it spots tricks commonly used to get around traditional checks (such as changing variable and function names, altering documentation or changing line order).

Education tailored to types of coders

The principal feature that helps coders across the board is autograding. It is practically useful for teachers, easing the burden of downloading, running, assessing and re-uploading hundreds of assignments. But, the flexibility of the autograder is crucial too. For beginner coders, a relentless stream of error messages is not fun. Say you submit your code, which is almost completely correct besides a minor syntax error, and see yet another ‘ERROR’ message. This can be quite disheartening. A flexible autograder should be able to break down where errors were made and determine how important each error is to the final mark. For group 2, an autograder should also support a wide range of domain-specific frameworks and libraries. Autograders should also function for more advanced assignments with multiple acceptable outputs. In this category, autograding often plays a more supportive role, leaving space for personalized and peer feedback too. 

As the world becomes increasingly tech-focused, we have a vital role to play in preparing learners to meet the new challenges and possibilities that undoubtedly await them. Correctly assessing the level of students, and truly understanding their coding needs, will make every step of the journey a lot easier.

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!