Wanted: Advice from CS teachers
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird I think someone else already mentioned teaching it backwards.
Start with working code - a small program that fits on a page, it doesn't really matter what it does.
Then give them the same code with a single syntax error - tell them it's broken and have them discover what the issue is. Keep going until they can find most of the problems easily, by looking at the error messages.
Teaching programming is damned hard in a classroom setting - I'm old enough to have learned programming in uni, and class time was for lectures, homework was the programming (in a lab where you could get help).
After they are good at syntax errors, move on to bug hunting.
I know, it sounds boring, but I am sure you can come up with some kind of ant related game to make it fun

We need a new way to teach programming because many of the existing methods don't work. Or we need to understand why it doesn't work with school age kids and whether we should be teaching them programming instead of something else
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird back in 1984, during my first computer class in high school, I can totally recall all of us students being the exact same way. Only difference was, the teacher would say "questions at the end" or ignore people calling out, and just get on with the entire lesson. Seriously.
And when it came to the walking around part, all you got was questions about what you were trying to do, or questions to make you think, you NEVER got the work done for you.
That was actually a fun teacher.
-
@futurebird You probably already know @b0rk‘s Pocked Guide to Debugging. The thing I love so much about it is how she cherishes the bug, instead of squashing it (in the illustrations too). I love this attitude. Not sure if students can learn to think that way? There is a beautiful poster too:
https://wizardzines.com/zines/debugging-guide/
️ https://store.wizardzines.com/products/poster-debugging-manifesto -
@wavesculptor @futurebird what does change in brain states mean in this context?
@semitones @futurebird rather than eeg-waveforms, I'd think hunting-defending vs. socializing-exploring. one's polite, the other's time and response critical, manners dont matter. think of a cat doing these different things.
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird
I just made it a rule that they had to give it the old college try before they called me. I don't remember if I had any formal time limit or number of tries or anything. Probably not. I also encouraged them to help each other, with the caveat that they needed to make sure the person they were helping understood the help. And I really really emphasized asking for help when they needed it, after giving it the old college try, of course. -
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird An old mentor of mine introduced me to a useful acronym: KMAFYOYO
'Kiss My Ass Fella, You are On Your Own'
It is even phonetic.
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird Maybe give them a homework assignment: Pay close attention to how many times in a day you hear somebody misspeak and correct themself, no matter how small it is. We all do this a lot, but it happens so fast and so often that we rarely notice.
When it happens in a computer program, we call that a bug. But the computer won't have the zillion shared context clues that human language enjoys. It can't work out what you mean by itself. And it has very limited ways to ask for help.
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird @nicklockwood to me that’s one of the fundamental truths of programming (or doing real math or science). Most of the time you’re wrong and trying to figure out how to fix it or address it. We do t spend much time on our successes we go on to the next thing that isn’t working. So I agree with your thoughts
-
Wanted: Advice from CS teachers
When teaching a group of students new to coding I've noticed that my students who are normally very good about not calling out during class will shout "it's not working!" the moment their code hits an error and fails to run. They want me to fix it right away. This makes for too many interruptions since I'm easy to nerd snipe in this way.
I think I need to let them know that fixing errors that keep the code from running is literally what I'm trying to teach.
@futurebird
Thank you for asking this. It made me feel useful, and brought back good memories now that I'm retired. Something else it made me think of was students' reaction when I'd come over to help with a problem they'd been struggling with for a while and point right at it. They would be all amazed and say how did you do that, and I'm like, well I've seen it hundreds of times.
-
I think they become anxious when their code isn't working the same as what I have up on the projector and they want to get it fixed RIGHT AWAY so they won't fall behind.
Then when one of them starts calling out they all do it.
I may take some time to explain this.
This never happens when I'm teaching math. Something about coding makes them forget some of their manners, and become less self-sufficient. "It's broke! I'm helpless!"
What is that about?
@futurebird Some of it may be the lack of confidence in being able to fix it. I have seen devs who, as soon as they hit an issue, immediately look to make it someone else’s problem, so I fully support teaching them how to debug.
I like the idea of giving them buggy code. A lot of being a developer is finding the mistake the past developer (often yourself) made.

-
@futurebird my student tutor had an annoying habit of answering questions like that with "try doing it right instead of wrong", which was pretty obviously just a way to not get flooded with this exact type of comment.
On the one hand, it's smarmy and unhelpful. On the other hand, sometimes it's useful to tell someone to sit down and not panic in your face so you can continue doing your thing (for their benefit)
@fortunos @futurebird pretty funny if you can pull it off. Can destroy some kids though.
-
I do this with my older students and with those with more experience. This is the one course that I teach that EVERYONE must take. So there are kids there who have never programmed anything. Kids who were confused when I had them use a computer with a mouse since they'd never seen one in person before.
I'm glad we have such a course. But they just don't know enough to do this yet.
And I have an agenda: I want them to have fun.
@futurebird oh I see, indeed this was with university students, I've never teached computer science to younger students so I'll read what others have suggested. But at any stage of learning, I completely agree that some fun being involved greatly greases the wheels

-
@futurebird I usually have clear me/them speaking parts in the course. While I speak, they listen, which I enforce up to the last whisper.
Also, the "me" parts only take 15-20 minutes each, then it's time for questions, https://github.com/ineiti/livequiz, or other interactions.
For the exercise sections, the "me" parts are of course much shorter.
Yes, that's exactly what I did! I already posted a couple of answers, but after looking at the whole thread I realized I didn't really understand the question. Yes, I think this is the answer to the question.
-
This is helpful for me. I had a hard time understanding why one student was upset, almost to the point of tears (they are very sensitive) that the error message said "error on line 32" but, really the problem was the way they originally named the variable.
"Why couldn't it just say the error was on line 4?
I tried everything I could to fix line 32. 🥺
"My sweet child... it's just not that smart, not like you.
@futurebird i think Microsoft in the 90s set up this attitude towards computers that still lives today: “it’s your fault if it doesn’t work”.
I never had to use Windows — ever — and every time I would sit down to try, something glaringly bad would be right there interfering.
And I’ve been a dev and UX person for nearly 40 years.
-
@futurebird Maybe give them a homework assignment: Pay close attention to how many times in a day you hear somebody misspeak and correct themself, no matter how small it is. We all do this a lot, but it happens so fast and so often that we rarely notice.
When it happens in a computer program, we call that a bug. But the computer won't have the zillion shared context clues that human language enjoys. It can't work out what you mean by itself. And it has very limited ways to ask for help.
@futurebird Also, I tell junior devs to think back to science class. Every change you make to code is an experiment; your hypothesis is that the new code will be somehow better than the old. But you can't put too many variables in an experiment, or you won't know which changes mattered and why.
So test often. Test after every line of code if you have to. It sounds annoying but it's much easier than the avalanche of bugs you get when running 1000 new lines the first time.
Go slow to go fast.
-
@futurebird I’m pivoting off this just to share a funny story. An old CS prof shared this with me when I was staff in a CS department at a university.
One of his undergrads had come to him with a big printed listing of their code (back when that was how you did that! It was probably FORTRAN printed on fan-fold paper). They obviously wanted him to find the problem in their code. It became clear quickly that they hadn’t done anything to debug it themselves.
He started point at various places in the listing. “Right here, add PRINT ‘I am a dumbass’. And here: PRINT ‘I am a dumbass’” and so on. “Then run it and see how many dumbasses you get.”
Now, did he really do that? Is that just how he tells the story? Who knows. But it’s funny. And anyone who has ever written code will agree that this works sometimes.
@paco @futurebird
I've had problems so frustrating I've ended up addingprint("1")
print("2")
print("3")
print("4")
It's rare, but sometimes everything else fails.
-
@semitones @futurebird rather than eeg-waveforms, I'd think hunting-defending vs. socializing-exploring. one's polite, the other's time and response critical, manners dont matter. think of a cat doing these different things.
@semitones @futurebird because someone is in a similar physical environment doing extremely abstracted thinking in both [school] cases, easy to forget the brain-activity modulation system [i'd have to look it up for proper name - ¿limbic system? just sprung up, thank you my brain!] is in utterly different state
-
@futurebird This is an excellent exercise and most of your students will get a lot out of it. Be prepared though for the 3-6 who simply will not believe you. Especially if they've used ChatGPT. My CS friend has students who don't believe him when the thing in front of them differs from ChatGPT just like my language students will not accept that the machine translation is not correct/common usage.
@That’s a moray
Preference for belief in computer output, compared to human specialist, is now standard behaviour amongst the "yoof" -
Sometimes I have them write the code on paper with the computers closed. And this is fine, but I'd rather have them using the IDE or textedit and there is a limit to how much fun you can have with code on paper.
And it does tend to be the weaker students who are almost happy to find something to stop the onslaught of information "see it doesn't work! we can't go on!" and that obviously makes me very grouchy.
I need them to see this is like saying "Teacher my pencil broke! Stop the lesson!"
@futurebird
In Carpentries instructor training, they teach you to handle this by giving everyone two colors of sticky notes. You have the students put the green note sticking up like a flag on their laptop when things are going well, and the red note when they are dealing with a problem and need help.
Works very well in the context of Carpentries workshops! -
@futurebird
In Carpentries instructor training, they teach you to handle this by giving everyone two colors of sticky notes. You have the students put the green note sticking up like a flag on their laptop when things are going well, and the red note when they are dealing with a problem and need help.
Works very well in the context of Carpentries workshops!@futurebird
Of course, in that setting, there are several "helper instructors" who can go and troubleshoot while the main instructor continues the presentation... Not sure the post-its by themselves will solve things
️