Computer ScienceComputing6th, 7th, 8thYear 7, Year 8, Year 9
How to support every student's own coding project in middle school computer science
How to let every student code their own project without the teacher having to debug 30 different programs at once.
Jemel Fanfan | Founding Member at Flint

"Flint was brilliant in supporting customization for students' design projects. It added an element of choice without overwhelming teachers, differentiating instruction effectively while ensuring students had support and clarity needed to succeed."
Kimberly Smith, Computer Science & Design Thinking / STEAM Teacher at St. Raphael SchoolWhy this matters
In one 7th grade computer science class, 28 students can pick 28 different programs to write. One student wants practice reminders for her soccer team, and the student next to her wants a pet care game. Each one hits a different error at a different time, but the teacher can only sit with one student at a time. Some projects stall at the first error, and the teacher has to wait for the programs to come in to find out whose did.
Strategies for student-chosen coding projects
Giving students a choice in their work raises their motivation, effort and performance, according to a meta-analysis of 41 studies (Patall, Cooper and Robinson, Psychological Bulletin, 2008).
- Let each student pick the problem
- Keep the steps and the rubric the same for everyone
- Help each student cut the idea down to one they can code
No teacher can debug 30 different programs at the same time. Sparky, Flint's AI tutor, coaches each one in the student's own chat.
The same coding steps, two different programs
Both students are in the same activity and follow the same four steps: problem, plan, code, and test and fix. They write Python in Flint's code editor, press Execute to run it, and send it to Sparky, who reads the code and what it printed. Sparky's first question is the same for the whole class. Everything after it is one student's own chat with Sparky.
Ruby
Understanding check
Ruby
My soccer team always forgets when practice is. I want an app that reminds them, and it also has team chat and scores and a map to the field.
Sparky
Ruby
The reminders. It should say hi to each player and tell them the new time.
Sparky
Ruby
Everyone's name on the team, and the new practice time.
Sparky

Ruby

Sparky
Ruby
I put quotes around the time, and now it prints a reminder for every player!Cut four apps down to one, then fixed her first error herself
Theo
Understanding check
Theo
My little brother wants a dog but we can't have one. I want to make a game where you feed it, walk it, give it baths and unlock new dogs.
Sparky
Theo
Feeding. If you forget, the dog gets hungry.
Sparky
Theo
A hunger number that goes down every minute and back up when you feed the dog. It prints the hunger every minute.
Sparky
Theo

Sparky
Theo
No, it should stop at 0. I'll add an if so hunger can't go below 0, and the dog says it's too hungry to play.Found a bug in his own output and planned the fix
Ruby is new to coding, so Sparky showed her a list and a loop on a different topic and explained her error in plain words. Theo has made Scratch games, so Sparky connected Python to Scratch blocks and let him spot the bug in his own output. Sparky didn't write either program or fix their code. The code pictures are Flint's code editor, where students run their code and send it to Sparky. The students and chats are examples we wrote for this page.
How to see whose program is stuck
Sparky grades each chat against your rubric. The activity page shows who needs help right now, what the class did well, and what to teach next.

Example activity page
After a class writes their programs
The school and students are made up for this page. In this example, most of the class planned what their program remembers, and the step to teach next is turning a number into text.
Set up the activity for free
The coding project is in Flint's public library, with Sparky's role, guidelines, greeting and a rubric already written. Open it, select Try this activity to copy it into a free Flint account, and move it to a class. Every student gets their own chat with Sparky, and the activity page fills in as they work. In the activity settings, select Try session myself to test it as a student before you assign it.
Students open the code editor with the Write code button under the message box. The editor starts in Java, so have students pick Python from its language menu the first time. Flint remembers their choice after that.
To use your own project, such as a game with different steps, replace the four steps in Guidelines for Sparky with yours and keep the rest, like this:
Example guideline
Every student picks their own problem and writes a small Python program for it, following these steps: [your steps]. When the student needs a new idea, show one short example on a different topic. When they share an error, name the line and explain the error in plain words. Never write or fix the student's program.
For high school, see how to differentiate instruction in computer science. For more computer science activities, see Flint for computer science.
Other use cases
See all use cases →MathematicsMaths4th, 5th, 6th, 7th, 8thYear 5, Year 6, Year 7, Year 8, Year 9

How to support productive struggle in middle school math
Productive struggle in math, in practice: give each student a problem that is a little hard for them, ask a question instead of fixing their mistake, and move them up when they're ready, shown with a ratios and proportions activity.
MathematicsMaths7th, 8thYear 8, Year 9

How to teach math to multilingual learners
Math strategies for multilingual learners: give the key terms in each student's home language, keep the problems in English, and match each question to the student's level, shown with a linear equations review.
Science6th, 7th, 8thYear 7, Year 8, Year 9

How to turn feedback into a conversation in middle school science
Students skim a comment in the margin and repeat the same gap in the next lab answer. Sparky asks each student about their own answer until they fix it, shown with a pendulum lab.
