Wanted: Advice from CS teachers
-
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
โ
๏ธ -
My students aren't lazy, but they *can* be a little perfectionist: scared to take risks or sit with not having the answer right away.
They are really upset when their code won't run... but staying calm and *systematically* looking for the cause of the problem, knowing that if you just work through the tree of possible causes you will find it is not something they are good at.
I think I need to teach this.
Maybe I will give them some broken code and we will find the errors together.
@futurebird @ShaulaEvans yes! The constructive value of "I don't know" lies sitting with (using) the discomfort, and daring to try something that may not work (yet). I was a great debugger, if I say so myself ๐คญ.
-
"Error handling code is code."
It had not occurred to me that a student might not see it that way "some guy wrote code to try to tell you what went wrong" but I can see how this might not be how a student might see the errors.
It's like when I realized as a kid that all books are just ... written by people. A revelation. I think I thought, on some level, books were a natural product of the universe. When I realized they could have typos, bad ideas it was so exciting.
@futurebird @petealexharris @wakame
And sometimes its not even the code but instead something inside the device.
Recently decided to add a feature to a device I made for myself that added WiFi functionality to it. First thing noticed when the device started was it rebooting every 3 seconds
Since it had been fine before this my mind said dumbo you did something wrong. Spend time carefully going through the code and not finding any problem. Looked online and did not see complaints similar to what I was experiencing It was when I gave in and used someone else's library that the problem was found.
All I did was initialize the library and poof the every 3 second reboot started again. Was sure I had a bad device but went through the Github issues and found someone with the same complaint. Turns out the device works fine minus WiFi with 5v external power but needs 6v with WiFi. The WiFi bootup pulls the voltage down and the internal watchdog sees the low power and reboots. Ugg.
-
I think this meme captures a point I am trying to make very nicely.
@wakame @futurebird It's seems a contradiction but actually .. not

-
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 There's always the classic return: "Why?"
-
@futurebird @ShaulaEvans yes! The constructive value of "I don't know" lies sitting with (using) the discomfort, and daring to try something that may not work (yet). I was a great debugger, if I say so myself ๐คญ.
-
@futurebird There's always the classic return: "Why?"
Why what?
-
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 First of all, amazing somebody still teach programming.
40+ years experience in SW/FW developing here and the simple truth is that not everybody is cut to program computer.
Is not only matter of knowledge, is matter about how a person think and is curious about the world and things working.
Every single one person who interrupt and ask, will end up using google and AI to write a program.
No personal ideas, no spending hours trying to understand the problem and the nature of errors.
In my career I saw "new" generations of developers knowing less and less. Almost nobody of new generations knows what a computer is and how is working. It seems a useless information but is exactly what make you understand the errors.
Errors exists all along the "chain", from your code to code you are using (compiler/OS/drivers/etc.) up to the electronic.
Maybe the way you and others teach programming should change, making more like a mystery hour
-
Why what?
@futurebird "My code isn't working!" "Why?"
I realize that's a flip response to your inquiry, but, ultimately it is what you're looking to enable your students to do, right? They should be able to say more than "it isn't working" which is uninformative. So, it isn't working .. what else can you say about what is - or isn't - happening and what hypothesis can you give as to why? And if you have a hypothesis, how can you test it?
-
Things to Try:
* look for typos
* look at what the error message indicates.If these don't work consider reverting your last changes to the last working version of your code. Then try making the changes again, but be more careful.
If you can't revert the changes, start removing bits of the code systematically. Remove the things you think might cause the error and run the code again. Isolate the change or code that causes the problem.
You can be a great programmer.
2/2
@futurebird Just an idea but what about "switching" students around so they have to check someone else's code?
I used to do that with my students, asking them to "grade" each other papers.
It's always easier to see others' mistakes and it flatters their ego... I mean, self-confidence.Also it's a sneaky way to make them realize that teaching is NOT easy.

-
My students aren't lazy, but they *can* be a little perfectionist: scared to take risks or sit with not having the answer right away.
They are really upset when their code won't run... but staying calm and *systematically* looking for the cause of the problem, knowing that if you just work through the tree of possible causes you will find it is not something they are good at.
I think I need to teach this.
Maybe I will give them some broken code and we will find the errors together.
@futurebird I taught an Intro to R for Biologists course a few years ago and my students had the same problem... and the solution was exactly this, giving students a list of the most common errors for reference & fixing some broken code together.
More than anything it helped my students' confidence- I think a lot of them just needed a place to start. After a week or two they weren't even using the list I gave them and fixed errors on their own
-
Example of the problem:
Me: "OK everyone. Next we'll make this into a function so we can simply call it each time-"
Student 1: "It won't work." (student who wouldn't interrupt like this normally)
Student 2: "Mine's broken too!"
Student 3: "It says error. I have the EXACT same thing as you but it's not working."
This makes me feel overloaded and grouchy. Too many questions at once. What I want them to do is wait until the explanation is done and ask when I'm walking around.
@futurebird I have on occasion worked with software professionals who behave much the same way.
