3 groups of CS education students that learn to code
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.

Evie Christopher

Evie Christopher

Growth Hacker
Evie manages and creates content, and helps operations run smoothly here at CodeGrade. Trained in Linguistics, she is enjoying delving deeper into the world of Computer Science. In her free time you can find her drinking tea or practising yoga.

Continue reading

CodeGrade Success Story at the University of Nevada, Las Vegas

CodeGrade increases student performance and helps teachers at UNLV. Professors and e-learning experts from the University of Nevada, Las Vegas share how they adopted CodeGrade and how it made their lives easier.

New CodeGrade features now delivered continuously to you!

CodeGrade now uses Continuous Delivery (CD) to deploy new bug fixes, tweaks and features even quicker and smoother to our customers. We chat with CodeGrade CTO Thomas Schaper to learn more about this improvement!

5 reasons to use CodeGrade in your high school coding classroom

Coding education is growing, especially in high schools. Find out how CodeGrade can support K12 students.

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.

Sign up to our newsletter

Book a quick 30-minute demo and see how it works for you!