Guides · 16 min read

Arduino Project Rubric: Grading Sheet, Hand-in Form, Portfolio

Arduino project rubric for teachers: 6 criteria and 4 levels, weights, a hand-in form, a 5-minute desk checklist, self and peer assessment and a portfolio.

If you grade an Arduino project only by asking “does it work?”, you can end up giving the same mark to a student who copied a friend's code and to one who rebuilt the circuit three times and found the bug on their own. A fairer Arduino project rubric looks at five dimensions: the circuit (is it built correctly and neatly), the code (can the student change something on purpose), understanding (can they explain a line you pick), the debugging process (what did they do when it failed) and documentation and presentation (can they show what they did). Circuit, code and documentation measure the product; understanding and debugging measure the process. When more than half of the grade comes from the process, students stop hiding mistakes and start explaining them.

This post is a set of templates you can take to class tomorrow: a 6-criterion, 4-level main rubric, weights, a one-page project hand-in form, a 40-minute hand-in lesson, a 5-minute desk checklist, self and peer assessment forms, a term portfolio and a step-by-step grade calculation for one student. The examples assume a hypothetical class of 24 working in groups of three. If you want a shorter 3-level table for quick observation in weekly lessons, use the rubric in the 8-week robotics coding lesson plan; the set below is meant for the grade you give at the end of a project.

Breadboard used to build circuits in Arduino lessons
The circuit criterion starts at the breadboard: the shared GND rail, the direction of each LED and the resistor in front of every LED can be checked in half a minute.

Why “does it work?” is not enough: 5 dimensions

In Arduino projects the product and the learning do not always sit in the same place. A traffic light whose LEDs light up in order may mean the student uploaded the code without ever reading it. A night light that never turns on may be the attempt in which the student measured the sensor value in the Serial Monitor and found a badly chosen threshold, which is exactly what the lesson was about. That is why it helps to split the rubric into two families. On the product side you look at the circuit, the code and the documents handed in; that evidence sits on the desk, on paper and in a photo. On the process side you look at how the student talks and the path they follow while hunting a bug; you only see that by asking and watching. The table below sums up what to look at in each dimension and where the evidence comes from.

DimensionWhat do you look at?Where does the evidence come from?Product / process
CircuitDo the connections match the diagram, is GND shared, do the LEDs have resistors, can the wires be followedThe circuit on the desk, a photo taken from aboveProduct
CodeDoes it compile, has the student changed at least one value on purposeThe code on the board, “the part of the code I changed” on the formProduct
UnderstandingCan they explain a line you pick and say what happens if it changesThe “What does this line do?” question, oral checkProcess
DebuggingDo they follow an order when it fails, do they note the bug and the fixBug log, your observation notesProcess
Documentation and presentationIs the hand-in form complete, can they explain what they did in 2–3 minutesHand-in form, photo and video, short presentationProduct

The main rubric: 6 criteria, 4 levels and weights

We added a sixth criterion to the five dimensions: work habits, safety and teamwork. In an Arduino lesson taught in groups, swapping wires while the USB cable is plugged in or dropping your role and stepping aside is part of learning too. Every level is written as an observable behavior; instead of vague phrases like “understands well” you get things you can see at the desk, such as “explains the chosen line correctly and says what happens if it changes”. Seeing the behavior in a cell once is enough to place a student at that level. If you are torn between two levels, write down the lower one with a short note; it is the first thing you check in the next project.

Criterion (weight)1 – Beginning2 – Developing3 – Proficient4 – Advanced
Building the circuit (20%)Cannot build it without help even with the diagram; LED reversed or without a resistor, wires in the wrong rowBuilds from the diagram, fixes 1–2 wiring mistakes once they are pointed outBuilds it from the diagram without mistakes, uses meaningful wire colors (red 5V, black GND)Builds it neatly, gives the reason for every connection, moves a part to another pin and changes the code to match
Code and changes (15%)Uploads the code, changes nothing or the change does not compileChanges a number (a delay, a threshold) and sees the resultMakes the change the task asks for; the code compiles and behaves as expectedAdds a new behavior (a second LED, a new condition), names variables clearly, writes comments
Understanding and explaining (25%)Cannot answer “What does this line do?”Reads the line and says vaguely what it is for (“something with the LED”)Explains the chosen line correctly and says what happens if it changesWalks through the whole program, explains the difference between setup() and loop() and why the condition is needed
Debugging process (20%)Waits when it fails or tears everything down and starts overChecks things one by one with help; finds the bug but cannot say howFollows an order (power, wires, pin, code, Serial Monitor) and writes the bug in the logForms a guess, changes one thing at a time, explains the bug they found to another group
Documentation and presentation (10%)Hand-in form mostly empty, no photoForm filled in but the connection table or the bug section is missingForm complete, clear photo, explains what they did in 2–3 minutesPrepares the connection table on their own, shows the code before and after, answers questions
Work habits, safety, teamwork (10%)Changes the circuit with the USB plugged in, abandons their roleUnplugs the USB when reminded, does part of their roleFollows the rules, does their role, tidies the deskRotates roles, helps another group, spots a short-circuit risk and warns others

The weights are deliberate: 45% of the grade comes from the product (circuit, code, documentation) and 55% from the process (understanding, debugging, work habits). Understanding carries the most weight because in a lesson where code is easy to copy, the student's own explanation is the most reliable sign of what they really learned. In the first projects you can raise circuit building to 25% and lower code to 10%; in the early weeks students mostly upload ready-made code anyway. In the second half of the term, once they start combining two projects or adding their own behaviors, it makes more sense to raise code to 20% and lower the circuit to 15%. Keep the total at 100 and share the weights with students before the project starts; a student who knows what earns points fills in the hand-in form more carefully as well.

Do not use the whole rubric in every lesson. In weekly lessons focus on one criterion (debugging only this week, understanding only next week) and write the level number next to the student's name on your class list. By the end of the project these small observations turn into ready evidence, and you do not have to assess 24 students on six criteria from scratch on hand-in day.

Project hand-in form template

The hand-in form is one page, and the group fills it in before showing the project. It is not meant to be a fancy report but a single place that collects the rubric's evidence: the parts list and connection table support the circuit criterion, the changed line supports code, the bug and its fix support debugging, and the photo and video support documentation. You fill in the last row, “What does this line do?”, yourself. The example below is the form of a hypothetical group that built the free BlueGrays project Night Light with Ldr. The parts list comes from the project's Required Components section and the connections from the Circuit Diagram. Clear the third column when you copy the template.

FieldWhat the student writesExample: Night Light with Ldr
Project name and numberThe name in the app and the project numberNight Light with Ldr, Project #12
BoardBoard and cable usedArduino Uno, USB A-B cable
Group and rolesNames; builder, checker, readerAda: builder, Leo: checker, Sam: reader
Parts listPart and quantity1 LDR, 1 LED, one 330 Ω and one 10 kΩ resistor, breadboard, 5 jumper wires
Connection tablePart leg → Arduino pinLDR: 5V and A0; 10 kΩ: A0 and GND; LED long leg: through 330 Ω to D13; LED short leg: GND
The part of the code I changedOld and new version of the lineif (value < 50) → if (value < 300)
Result of the changeWhat did you observe?The LED now turns on when we cover the LDR with a hand
Bug I ran intoSymptomThe LED never turned on
How I found it, how I fixed itSteps tried, in orderWe turned the LED around, nothing changed; we added Serial.begin(9600) and Serial.println(value) to the code; the value was around 400 in the classroom and 200 when covered by hand; the threshold of 50 was too low
Photo and videoFile names12-night-light-group3.jpg, 15-second video
Which project did I start from?Source projectBlueGrays, Night Light with Ldr
What does this line do? (teacher writes)A different line for each memberAda: value = analogRead(A0); Leo: digitalWrite(13, HIGH); Sam: if (value < 300)

The power of the “What does this line do?” question is that it shows what a student really understands, even in copied code. Pick a different line for each group member and write the answer in the last row of the form. A good line is one that changes how the program behaves: a pinMode(), an analogRead() or digitalRead(), an if condition, a delay(). Do not pick a curly brace or an empty line. Ask in two steps: first “what does this line do?”, then “what happens if you change the 13 in this line to 12?” A student who answers the second question correctly lands on 3 for understanding; one who can walk you through the whole program lands on 4. When you pick lines in ready-made projects, the Step by step explanations in the project's Understand the code tab guide you to the lines at the heart of the program quickly. We covered how to read that tab through a student's eyes in Understand the code and Try it yourself.

Hand-in lesson: assessing 8 groups in 40 minutes

TimeTeacherGroups
Before the lessonPrepares printouts: 1 hand-in form and 1 checklist per group, 1 self and 1 peer form per student; 64 pages in total for 24 students and 8 groups, plus 1 rubric class listFinishes the project, takes the circuit photo and a 10–20 second video
0–5 minWrites the hand-in order on the board, gets the checklists and the rubric sheet readyChecks the circuit one last time, completes the hand-in form
5–37 minAbout 4 minutes at each group's desk in turn: checklist plus “What does this line do?” for every member (8 groups × 4 min)Waiting groups first fill in the self-assessment form, then try the next desk's project and write the peer form
37–40 minCollects the forms, fills in any missing levels on the rubricUnplug the USB, count the parts back into the box, tidy the desk
ExitAsks two exit questions at the door and collects the answers on paperEach student writes: “What did you learn most in this project?” and “What will you check first in the next project?”

5-minute desk checklist

Print this list on A4 and use one copy per group. The order is deliberate: power and circuit first, then code, oral questions last. If the project does not work, do not stop halfway; the remaining items collect evidence for the debugging criterion. Allow at most 5 minutes per group; after a few hand-ins most checks take 4 minutes.

  • Power: The board is powered over USB and its power LED is on.
  • Shared GND: The breadboard's minus rail is connected to the Arduino's GND pin; the sensor and the LED are on the same rail.
  • Parts: The LED faces the right way (long leg on the plus side), every LED has a resistor in front of it, the resistor values match the form.
  • Compared with the diagram: The pins used are exactly the same as in the connection table on the hand-in form.
  • Code: The code on the board contains the change on the form; if you are not sure, ask the group to upload it once more.
  • Behavior: The project does what it should; if not, the group can say why or which step they are trying right now.
  • Show the change live: The group sets the changed value back to the original and shows the difference.
  • What does this line do? Each member was asked about a different line and the answer is on the form.
  • Bug log: There is at least one entry for this project: symptom, what was tried, the fix.
  • Evidence: There is a clear photo of the circuit taken from above and a 10–20 second video of it working.
Never pull or plug a wire while the USB is connected during the check; unplug the USB first, make the change, then plug it back in. If the board or a part gets hot or you smell burning, pull the USB at once and check whether 5V and GND are joined directly. If you see a group pull the USB for safety, note it as a plus under work habits; shutting the circuit down is not a lost point, it is the right move. When you suspect a broken wire, use the multimeter's continuity beep, which we explained in the multimeter guide.

Self-assessment form

The self-assessment form helps students put a name to their own learning and gives you a second view to compare with your rubric. Every student fills it in individually; it is not a group form. The last column matters most: ask a student who ticks “Yes” to write down a piece of evidence. Self-assessment does not count toward the grade, but if the level you gave and the student's tick are two steps apart, that is a good cue for a one-minute talk with that student. Sometimes students sell themselves short, and sometimes they remember a moment you missed.

StatementNot yetPartlyYesMy evidence
I could build my circuit myself by looking at the diagram( )( )( )
I changed a value in the code on purpose and predicted the result beforehand( )( )( )
I can explain to a classmate what the important lines in the project do( )( )( )
When a bug shows up, I can write down what I did, in order( )( )( )
I did my role in the group and helped my classmates( )( )( )
One thing I will do better in the next project–––Write one sentence

Peer assessment form

The peer form is filled in while groups try each other's projects. Set the rule from the start: no points, only observations and suggestions. Students grading a classmate is neither fair nor good for the mood in the room, while a “two likes, one suggestion” structure teaches how to give useful feedback. If you like, you can use the quality of the suggestion a student writes as evidence for the teamwork criterion. Hand the completed form back to the group that owns the project; that is the copy that goes into the portfolio.

QuestionAnswer
Which group's project did you review?Group number and project name
Did the project work? What did you see?One sentence
Did the group explain a line to you? Which one?Write the line
First thing I liked…
Second thing I liked…
One suggestionUse the pattern “If you … it would …”
An idea I will try in my own project…

Portfolio: what to collect over the term

A portfolio tells the story of the term, not of a single project. Putting a student's hand-in form from their first LED project next to the form from their last project shows growth better than any single number. Paper or digital does not matter; what matters is adding the same items with the same naming in every project. For a digital portfolio, the cloud folder or learning platform your school already uses is enough: one folder per student, one subfolder per project, with file names starting with the project number, the project name and the version. For a paper portfolio, a ring binder with a divider per project does the job.

ItemWhen is it added?In the paper binderIn the digital folder
Hand-in formAt the end of every projectThe completed formA photo of the form or a fillable document
Circuit photoWhen the circuit worksA printout or a hand drawingA photo from above in which the wires can be read
Short videoWhen the project worksA still from the videoA 10–20 second video
Code versionsWith every changeA printout with the changed lines markedproject_v1.ino (original), project_v2.ino (changed)
Bug logWhenever a bug shows upA separate page in the notebookA single table, one row per bug
Self-assessmentAt the end of every projectThe formA photo of the form
Peer feedbackIn the hand-in lessonThe peer formA photo of the form
End-of-term reflectionIn the last week of the termOne pageOne page or a 1-minute audio recording

The most valuable part of the portfolio is the bug log, because that is where the evidence for the debugging criterion lives. Each row answers six questions: date and project, symptom (what happened?), first guess, what was tried (in order), the real cause and what I will do next time. A sample row: “12 November, Night Light with Ldr; the LED never turns on; guess: LED reversed; we turned the LED around, nothing changed, we printed the value to the Serial Monitor; real cause: a threshold of 50 was too low for the classroom light; next time I will measure the sensor value first.” A log that collects 10–15 rows over the term shows which mistakes a student no longer makes. Have them log compile errors too; they can look up the most common ones in Arduino compile errors and learn to read sensor values in how to use the Serial Monitor.

Data from the app: what BlueGrays gives you and what it doesn't

If your students use BlueGrays on their own phones, some parts of the app provide small but useful evidence for assessment. What they all have in common is that the student shows the information to you on their own screen; the app does not send it to the teacher separately. So use them not as a grade on their own but as evidence that starts a conversation and completes the portfolio.

  • I made it: When students finish a project they tap this tile on the project page, and the project lands in Workshop > Completed Projects. During a portfolio check, ask the student to open this list; it becomes a quick index of the projects they built over the term. Marking it takes one tap, so it is a claim rather than proof: for every project on the list, look for a hand-in form or a photo in the portfolio.
  • Oral check with Try it yourself: The Try it yourself task at the end of a project's Understand the code tab is one step beyond “What does this line do?”. Read the task aloud and ask the student to say, without looking at the phone, which line they would change and how; then let them make the change and upload it. Agree from the start that they say openly whether they used the Hint or Show solution: solving it with the hint can be a 3 for understanding, solving it without the hint and explaining why can be a 4.
  • If you get stuck and Troubleshooting: A group that works through the If you get stuck section in Understand the code, or the project's Troubleshooting list where there is one, is showing a method in debugging. Ask which item helped them find the bug and have them write it in the bug log.
  • Daily questions and My level: The question set that changes every day, the XP and the levels from A1 First Light to C2 Workshop Master are a good way to keep students busy with electronics between lessons, but do not turn them into grades. The questions are answered at home and alone, the level never drops and the result depends on how much time a student can spare. Use them for motivation: students who want to can share their new level with the class at the end of the week, and nobody is required to.
To be honest: BlueGrays has no panel that shows the teacher the progress of a class. You cannot see in the app which projects your students finished, which Try it yourself tasks they solved or their quiz results; you cannot assign homework or create a class. If you handed out Premium codes from an educator package, the My Codes screen only shows which code was used by whom, when it was activated and when it expires; that is not progress tracking. The evidence for assessment is always the circuit on the desk, the hand-in form and the student's own explanation. We explained how the codes are handed out in bulk Premium codes for a class.

Grade calculation example: one student's score

Say Sam is the reader in the group that built the Night Light with Ldr project. Your observations in the hand-in lesson are these: built the circuit from the diagram without mistakes (circuit 3); changed the threshold but did not add a new behavior (code 2); explained the if line, said that with a threshold of 600 instead of 300 the LED would turn on in less darkness, and walked through the whole program (understanding 4); suggested printing the value to the Serial Monitor when the LED did not light and wrote it in the log (debugging 3); the hand-in form had a photo but the connection table was missing (documentation 2); did the role and helped the group next door (work habits 4). There are two ways to calculate the score. With the linear method, each criterion scores its level divided by 4 times the weight. With the soft conversion, levels count as 1 = 50%, 2 = 70%, 3 = 85%, 4 = 100%, so a student who got started but struggled does not get close to zero on a criterion.

CriterionWeightLevelLinear scoreSoft conversion
Building the circuit2033/4 × 20 = 1585% × 20 = 17
Code and changes1522/4 × 15 = 7.570% × 15 = 10.5
Understanding and explaining2544/4 × 25 = 25100% × 25 = 25
Debugging process2033/4 × 20 = 1585% × 20 = 17
Documentation and presentation1022/4 × 10 = 570% × 10 = 7
Work habits, safety, teamwork1044/4 × 10 = 10100% × 10 = 10
Total10077.586.5

Sam's grade is 77.5 out of 100 with the linear method, 78 when rounded; with the soft conversion it is 86.5, so 87. Whichever method you choose, use the same one all term and explain it to students before the first project; you can then map the percentage onto your school's grading scale. The table tells you more than a number, it tells you what to do next: Sam's two lowest criteria are code and documentation. In the next project you can set the goals of adding a new behavior (for example a short buzzer beep in addition to the LED when it gets dark) and preparing the connection table without help. If you put the weights and the conversion into a spreadsheet, the grades of all 24 students appear as soon as you enter the levels.

Fair assessment: group work, circuits that don't work, copied code

  • Individual contribution in a group: Product criteria (circuit, code, documentation) can be given to the group as a whole, process criteria (understanding, debugging, work habits) are always individual. Asking every member about a different line with “What does this line do?” builds in that split. Rotate the roles (builder, checker, reader) in every project, so that by the end of the term every student has taken on each role at least once.
  • A circuit that doesn't work: If the project does not work at hand-in, give at most 2 for the circuit, but do not lower the process criteria. A student who searched for the bug systematically, logged it and can explain where they got stuck can get 3 or 4 for debugging. If you like, allow one correction until the next lesson and reassess the circuit score.
  • Copied or ready-made code: Starting from a ready-made project is not copying; lessons work with ready-made code anyway. The real question is what the student did with the code. Since the code criterion looks at the change and the understanding criterion looks at the explanation, code taken from another group but not understood stays low on those two rows by itself. The “Which project did I start from?” row on the form makes naming the source, instead of hiding it, a habit.
  • Code written with a chatbot: In projects done at home, the code may have been written with an AI tool. Instead of banning it, increase the oral check at hand-in: points go to the student who can explain and change the code, not to whoever wrote it.
  • Broken parts and absences: If a group's sensor is broken or a student is absent on hand-in day, do not fill in the rubric that day; complete it with a short desk check in the next lesson. A problem caused by the materials should not show up in a student's grade.
  • Everyone knows the same table: Read the rubric with your students before the first project and show one example of each level. Students who know the level descriptions ask what they need to do for the next level instead of disputing their grade.

You do not need to wait for a big project to try the rubric for the first time: start with a one-lesson project such as Night Light with Ldr or Traffic Light, use the hand-in form and the checklist once, then adjust the weights to your class. If you are placing the assessment at the end of a longer program, the 3-minute presentation template in the 5-day Arduino workshop post works well together with these forms. If your students open the projects in BlueGrays, the parts list, the circuit diagram and the Understand the code steps that feed the “What does this line do?” question are already there; you can start with 60 free projects, 20 per platform, and when you move on to Premium projects you can hand out codes from one-time, non-renewing 5- or 10-code packages under Profile > Educator Packages instead of having each student take out a subscription.

Frequently asked questions

How do you grade an Arduino project?

Look beyond whether the project works and assess five dimensions: circuit, code, understanding, debugging process and documentation. Rate each one with a 4-level rubric and turn the levels into a score out of 100 using weights. In the example in this post, 55% of the grade comes from the process and 45% from the product.

What is a rubric and how do you make one?

A rubric is a scoring table that describes criteria and their levels as observable behaviors. Pick 4–6 criteria, write 3–4 levels for each and use behaviors you can see at the desk instead of vague words like “good”. Set the weights in advance and share them with your students.

Should a non-working Arduino project get a grade?

Yes. The circuit score stays limited, but how the student searched for the bug, logged it and can explain where they got stuck earns points on the other criteria. Even in a project that does not work, a good debugging process is strong evidence of learning.

How do you give individual grades in a group project?

Give product criteria (circuit, code, documentation) to the group and process criteria (understanding, debugging, work habits) to each student individually. Ask every member to explain a different line of the code and rotate the roles in every project.

How do you build a portfolio for a robotics class?

Collect the same items in every project: the hand-in form, a circuit photo, a short video, the original and changed versions of the code, the bug log and the self-assessment. A ring binder or your school's cloud folder is enough; what matters is naming files consistently with the project number and version.

Can teachers see student progress in BlueGrays?

No, the app has no class progress panel, no homework assignment and no screen that shows a student's quiz results to the teacher. Students can show the projects they finished on their own screen in Workshop > Completed Projects. If you use an educator package, the My Codes screen only shows which code was used by whom.

See all projects
Night Light with Ldr
#12Beginner

Night Light with Ldr

A little night light that turns on by itself when it gets dark and goes off when morning comes. A light sensor measures how bright the room is, and the Arduino switches the LED on when it is dark enou

4.8(102)
205
Traffic Light
#3Beginner

Traffic Light

A tiny copy of the traffic light you see on the road every day. Red stays on for two seconds, yellow flashes for a moment, green stays on for two seconds, then it goes back to red through yellow again

4.8(131)
397
LED Blink
#1Beginner

LED Blink

The very first hello of electronics: switching a single LED on and off. The Arduino turns the LED on and off at short intervals, so the light blinks quickly. You see in the simplest way how the board

4.6(188)
1127
LED Control with a Push Button (Push)
#9Beginner

LED Control with a Push Button (Push)

Just like a doorbell: the light stays on as long as you press, and goes off when you let go. The Arduino keeps listening to the button; while it's pressed the LED is on, and the moment you lift your f

4.8(113)
229
Measuring Light Intensity with an LDR
#11Beginner

Measuring Light Intensity with an LDR

Want to see how bright your room is as a number? The LDR, a small part that reacts to light, measures the light around it, and the Arduino writes the value to your computer screen every half second. C

4.6(81)
139
LED Police Lights
#4Beginner

LED Police Lights

Just like the lights on a police car: the red LED flashes three times in quick succession, then the blue LED flashes three times, and the pattern keeps repeating without a break. All you need is two L

4.7(103)
258
LED Chaser
#5Intermediate

LED Chaser

Lights that switch on one after another, as if they were running. The Arduino lights six LEDs one at a time; each glows for a brief moment and goes out, so the light walks from start to end and then s

4.6(85)
207
HC-SR04 Distance Measurement (Serial Display)
#27Beginner

HC-SR04 Distance Measurement (Serial Display)

The HC-SR04 sensor works just like a bat finding its way in the dark: it sends out a sound you cannot hear, listens for the echo and measures how far away the object in front of it is. The Arduino wri

4.6(46)
71