So, serious question: Just how do you rapidly and accurately check over 10 million lines of code, submitted from students around the world, each and every week? On top of that, lets students know that they have made an error to fix before final submission, but does so in a way that helps the students learn and without giving the answer away?
For us, the answer is simple: Please meet Checker, our automated, scalable, accurate, and slightly devious testing tool, developed under the watchful eye of our CTO, Guillaume Salva.
Oh, and before we get too far, and in case you didn’t do the math, Checker analyzes tracks, and scores over half a billion lines of code a year. If we were to print out that code to A4 paper then stacks it up, we’d have a pile about 820m tall. Or, roughly, 3 Transamerica Pyramids stacked on top of each other.
Who is Guillaume Salva?
Let’s pause and think a little bit: What kind of person would be best suited for developing the technological front-end and back-end at school that’s dedicated to upsetting the status quo of tech education? If you’re picturing a six foot tall, long-haired half-coder-half-professional-chef with a cryptic sense of humor, then you’re correct. While Guillaume hails from France (“From Normandy, born and raised with cream and butter; Viking style” is a response you might get from him), he currently resides in San Francisco, CA, and it’s here that he became one of the original tech employees for Holberton School. “Why not?”, was Guillaume’s response when asked why he started working for Holberton School, “It’s the only place where I could have a direct, personal impact with people and help them change their lives.”
And it was here at Holberton that he ran into a very specific requirement: How could we scale and automate the correction of all of our projects in all of the languages we teach, while also allowing for student testing of code before project deadlines? And thus, Checker was born.
Checker: The code that checks code
The Holberton community and student body is a collection of seriously dedicated people who are, in just a short period of time, mastering the skills that will land them their dream career. Through our peer learning and project-based curriculum, they’re expected to not only learn and master the fundamentals of programming, but also the fundamentals of self-driven learning. And with a first “year” that completes in just nine months, at the end of which students are expected to develop and launch a wholly working software product, rapid and consistent feedback is critical.
Enter Checker. This platform allows students to submit their code for review, and through our proprietary software’s well-programmed magic, will check the students work, and alert them to any errors that may exist. And Checker is thorough. Not only does it check for proper functioning of code created by students, but it can check for dozens of other critical supporting elements like proper code documentation, code styling, code efficiency, and more.
Now, what happens if Checker detects an error? Well, it would be too simple for our program to tell the students what the exact error is: We’re training programmers and developers, and for these professions, you have to learn how to find and fix the errors on your own. If students submit their code before the deadline, they will be alerted with how many detected errors they have in their code. From there, with our students working hard to get the highest score possible, they will be expected to review and find those errors by looking at the instructions of the assignment, looking for errors in their code, and other troubleshooting steps.
In this sense, it’s good to think of Checker like that awesome teacher or professor that never gave the answers away on the test, but helped give you the tools to find out the solution on your own.
To illustrate this point, let’s look at this scenario: Two students, running the same project, where they each get different errors. One student gets errors on Check 1 and Check 2, and the other gets errors on Check 3 and Check 4. Our students are smart; they know this, and we know this. So, if things were easy at Holberton, they could just huddle together, compare their code, find the errors by comparing their work, then both submitting for a perfect score. But, at Holberton, we’re not training people to be good at gaming the system: We’re teaching them how to program and solve problems.
So, in Checker, each individual student’s Check results are randomized. Two students who share the same error number in Checker are unlikely to have the same problem with their code. The students will still benefit from group code review sessions, but they can’t just treat their projects as comparison tests. They have to develop the skills they will use for the rest of their career as programmers, find the error in their code, and fix it. They can also coordinate with their cohort to help others who are running into roadblocks, but they can’t just copy their work off each other and breeze through our curriculum. After all, our students didn’t come to Holberton to learn what they could learn at any other school; they came to Holberton to challenge themselves and learn how to truly develop the skills that will help them with their dream career.
In the end, if there are standing Checker errors even after deadline submission, students are given the specific Checker alerts that matched their caught errors. This feedback is so they can learn and prepare for the next lesson, but until they complete the project, they will have to figure out the issue with nothing more than an alert that there’s a wrong answer.
Through Checker, our students are getting real-world training they need. Checker gives us the ability to automatically scale and support more students around the world, to reduce human error and oversight issues, and to help our students develop skills that they would not find at any other school. And when you’re chatting with a Holberton graduate, whether they’re someone you’re meeting at a conference, a coworker, or someone who you’re interviewing, make sure to ask them about their favorite Checker experience; the one where they worked the hardest to get that Check 0 (aka, no errors). While you might get a thousand-yard stare, you’ll definitely get a story full of trials, tribulations, and a fantastic coding success.
Checker and Holberton School
Checker, at its core, sums up Holberton School quite well. It’s a homegrown tool, built to address a problem, designed to give its users a qualitative real-world learning experience, and does so with efficiency and scalability in mind. Checker pressures students to check their own work, by themselves and in a group, without the ability to copy-paste someone else’s work to get the solution. It prompts the students to solve their own problems, and if they can’t get a perfect score on the assignment, it still gives them feedback to help them grow more. And with Holberton students ending up with great careers in some of the best tech companies around, we’d say it’s working pretty well.
If you want to learn more about Holberton School, please visit www.holbertonschool.com.