Post B2B0wmCCL4klchToxc by semitones@tiny.tilde.website
(DIR) More posts by semitones@tiny.tilde.website
(DIR) Post #B2Ap5lPfQ52KLsIbc8 by futurebird@sauropods.win
2026-01-11T11:16:47Z
0 likes, 0 repeats
Wanted: Advice from CS teachersWhen 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.
(DIR) Post #B2ApO9tX8UILUd2YRE by futurebird@sauropods.win
2026-01-11T11:20:06Z
0 likes, 1 repeats
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.
(DIR) Post #B2ApcAf35E3LvLwl0a by futurebird@sauropods.win
2026-01-11T11:22:39Z
0 likes, 0 repeats
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?
(DIR) Post #B2ApjHRUGkEuyzzeb2 by freequaybuoy@mastodon.social
2026-01-11T11:23:52Z
0 likes, 0 repeats
@futurebird This winds me up at work too, particularly in demos, maybe because people think it appears clever but really demonstrates a lack of perhaps the most vital skills in any profession, especially tech. Focus, patience, listening.
(DIR) Post #B2ApzHYBdR1lx2l0lM by futurebird@sauropods.win
2026-01-11T11:26:47Z
0 likes, 0 repeats
@freequaybuoy "I have the exact same thing as you but it's not working"99 times out of 100 no, no you do not have the "exact same thing" you've made a typo. Because the whole point of it being a computer is that if you have the exact same code it always does the exact same things.
(DIR) Post #B2Aq7MCuCmgqi7eaeG by DavidAmes@social.linux.pizza
2026-01-11T11:28:12Z
0 likes, 0 repeats
@futurebird have a look at some of the stuff Phill Bagge wrote about Learnt Helplessness https://philbagge.blogspot.com/2015/02/eight-steps-to-promote-problem-solving.html?m=1 and ways to work around it. I remember him doing lots of related work on it about 10 years ago.
(DIR) Post #B2AqFJmP7919Uz3OvQ by Bumblefish@mastodon.scot
2026-01-11T11:29:41Z
0 likes, 0 repeats
@futurebird I work closely with a CS teacher snd I am a language teacher and just this past Friday we had a conversation about this exact phenomenon, which we both experience. I think because they can use their first language 'perfectly' and I think because their devices work 'perfectly' they think it should be easy to do right the first time and panic when they can't. They don't know what 'perfect' looks like in math so maybe they're more patient with it. 1/2
(DIR) Post #B2AqHdLnJzIKm9iBRQ by futurebird@sauropods.win
2026-01-11T11:30:06Z
0 likes, 1 repeats
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.
(DIR) Post #B2AqOWtZih22mZngsS by jenesuispasgoth@pouet.chapril.org
2026-01-11T11:31:17Z
0 likes, 0 repeats
@futurebird i have freshmen with the same behavior. I think the immediate feedback of the computer is a double edged sword. I don't know about your students, but mine don't even read carefully what the error message is (not even talking about the fact that the errors are written in English, not French đą). All they see is "I did like the teacher and it's not working. Therefore the computer must be right."
(DIR) Post #B2Aqe0uUPMB8DPbyaG by Flisty@mstdn.social
2026-01-11T11:34:08Z
0 likes, 0 repeats
@futurebird maybe reiterate at the start of the demo, and even put up a short statement on the wall so you can point at it rather than answer! Should drum it in quickly
(DIR) Post #B2Aqeh6fWSsP5LdIOm by futurebird@sauropods.win
2026-01-11T11:34:13Z
0 likes, 1 repeats
So Your Code Won't Run1. There *is* an error in your code. It's probably just a typo. You can find it by looking for it in a calm, systematic way.2. The error will make sense. It's not random. The computer does not "just hate you"3. Read the error message. The error message *tries* to help you, but it's just a computer so YOUR HUMAN INTELLIGENCE may be needed to find the real source of error. 4. Every programmer makes errors. Great programmers can find and fix them.1/
(DIR) Post #B2AqhHgKVYTH6HY2CG by AbramKedge@beige.party
2026-01-11T11:34:44Z
0 likes, 0 repeats
@futurebird > Maybe I will give them some broken code and we will find the errors together.I think this is an excellent idea!
(DIR) Post #B2AqmkSCxdbRmeY2ka by RosyMaths@mathstodon.xyz
2026-01-11T11:35:42Z
0 likes, 0 repeats
@futurebird Maybe some direct instruction troubleshooting lessons?Distribute code broken in specific ways and show them how to tell which problem is showing up?The calling out is definitely contageous, I recognise that. Can you structure in class troubleshooting time as you go - perhaps each kid has a visual token so you can see at a glance who needs help and who can give it? Something like a card with different colours front and back for đ/đ?
(DIR) Post #B2Aqv7YWx62bkYUvA0 by tadbithuman@mastodon.social
2026-01-11T11:37:15Z
0 likes, 0 repeats
@futurebird When I have conducted software training at work for a diverse age complement, same thing would happen. I think, if you let them know in advance that it happened to classes in the past and you will be walking around to see what's going, that will reduce it. It did reduce the 3d modeling training disruptions I faced.
(DIR) Post #B2AqvsoRFlh0JVImyu by futurebird@sauropods.win
2026-01-11T11:37:21Z
1 likes, 0 repeats
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.
(DIR) Post #B2AqxoUOIYxTU4qTOS by RogerBW@discordian.social
2026-01-11T11:37:44Z
0 likes, 0 repeats
@futurebird So Your Code Won't Run: great! Errors like this that stop it running completely are much easier to track down than errors that just give you the wrong answer. Or give you the wrong answer _sometimes_.
(DIR) Post #B2ArNxbB3IYZGXUHWS by futurebird@sauropods.win
2026-01-11T11:42:27Z
0 likes, 1 repeats
@wakame 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.
(DIR) Post #B2Arhi60OuUmybKBVY by rpsu@mas.to
2026-01-11T11:45:56Z
0 likes, 0 repeats
@futurebird I think CS students and also everyone else should use the list, but in reverse order. 1). Calm down, youâll get over it and find a fix in no time. Everyone does. 2) Read the error and read it again. It tells you pretty much where, or sometimes even what exactly is the problem. Fix is right there. 3) The error makes sense, it is not magic. Ever. 4) It is probably a typo, youâll find it after competing the first 3 points. Go to 1).
(DIR) Post #B2Arkg9w3cy7q4ZvBA by fubaroque@mastodon.social
2026-01-11T11:46:33Z
0 likes, 0 repeats
@futurebird Kids donât know how to fail anymore. How did that happen? đ¤
(DIR) Post #B2Arlr7emXWO894dGK by mansr@society.oftrolls.com
2026-01-11T11:46:44Z
0 likes, 0 repeats
@futurebird > The error will make sense.Have you heard of this thing called C++?
(DIR) Post #B2Arsv0MkHwQCN1zhw by futurebird@sauropods.win
2026-01-11T11:48:04Z
0 likes, 0 repeats
@mansr Yeah...what I'm trying to convey is that there is a *reason* why the code isn't working and it will make sense in the context of the rules the got dang computer is trying to follow. It might be annoying or silly, but it will "make sense"
(DIR) Post #B2As4LipkgC0FJHVJY by itgrrl@infosec.exchange
2026-01-11T11:50:07Z
0 likes, 0 repeats
@futurebird assigning code broken in specific ways & having a rubric for teaching the troubleshooting sounds like it should be SOP for coding courses, is this not normally part of the curriculum? đ¤ (def not dumping on you, asking as an Old who is a self-taught potato coder who never did a CS degree & feels like the way I learned basically anything that I do know was: type it in from a magazine or other source / modify working code thatâs similar to what I need -> make mistakes in transcription / tweaks -> code doesnât run or runs with errors -> troubleshoot the mistakes -> learn stuff đ)
(DIR) Post #B2AsKofFuezUdsSYzI by ligasser@social.epfl.ch
2026-01-11T11:53:03Z
0 likes, 0 repeats
@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.
(DIR) Post #B2AsMC40OuIHVFh1rk by voltagex@aus.social
2026-01-11T11:53:18Z
0 likes, 0 repeats
@futurebird this sounds fantastic - very keen to hear how it goes. I often find myself and others not able to break down an error message or missing a key part that's right in front of me.Some languages, frameworks and IDEs make it easier than others.
(DIR) Post #B2AsMysgtlMGuLmBX6 by aliengasmask@mas.to
2026-01-11T11:53:22Z
0 likes, 0 repeats
@futurebird in my experience the jump from teaching scratch, where there are no syntax errors, to python is huge.None of the courses ive taught (not my own) included anything covering how to deal with parser errors and i think its an entire lesson in itself. Not sure any students i had would have the patience to follow that lesson as it would be hard to jave the "i msde the computer do somethong" pay off.Maybe a parser error cheatsheet is the answer?
(DIR) Post #B2AsRNhSZ3aP2ZcZQe by mansr@society.oftrolls.com
2026-01-11T11:54:16Z
0 likes, 0 repeats
@futurebird I know what you mean, and you're perfectly right when it comes to sane programming languages. However, C++ compilers have a habit of spewing out error messages the size of a Tolstoy novel in response to mistakes as trivial as a missing comma. Now I assume you're not teaching the kids C++ as that would be quite irresponsible.
(DIR) Post #B2AsVNMnkGQ1AJrZey by futurebird@sauropods.win
2026-01-11T11:55:01Z
0 likes, 0 repeats
@ligasser "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"This is how I normally teach (although with middle school students I keep "me" bits to under 8 min each) this is why it's so annoying when they call out during these sections. Something they wouldn't ever do normally. Something about coding and seeing the error makes them not see it as "time to listen"
(DIR) Post #B2AsYiYfPduDl40TOS by mensrea@freeradical.zone
2026-01-11T11:55:28Z
0 likes, 0 repeats
@futurebird @wakame I'm not a teacher but I have given interns and others learning projects. Like "here is some code that should do <the thing> but it doesn't work. find why it's not doing <the thing>". I also used to come into the room and ask "what's broken?" making the framing, there's always something not working and we're here to find out way. and always starting my help with "what have you tried"
(DIR) Post #B2AsrXHfYOiiII1sQ4 by voltagex@aus.social
2026-01-11T11:58:59Z
0 likes, 0 repeats
@futurebird apologies for replying to so many parts of this but one thing I can think of (noting I am not a trained teacher)Are there any particular high performers or people who are normally finished before others in your class?Can you enlist them to help out? I get this may go against wanting them to wait but it may stop or slow the barrage, or even encourage problem solving in the group.I am definitely looking forward to hearing how it all goes. Best of luck - it's kind of endearing to hear students haven't changed that much since I was one.
(DIR) Post #B2AsxLnhA6FAPrmXJo by Bumblefish@mastodon.scot
2026-01-11T12:00:00Z
0 likes, 0 repeats
@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.
(DIR) Post #B2Asz3SmJKUm7goKQq by cavyherd@wandering.shop
2026-01-11T12:00:22Z
0 likes, 0 repeats
@futurebird It's probably a missing or extra comma, quote, or paren.
(DIR) Post #B2At9CKiBgmeWosGga by ligasser@social.epfl.ch
2026-01-11T12:02:11Z
0 likes, 0 repeats
@futurebird I'm also interested how to add LLMs to the mix: how to use them in a way we use IDEs now: we still know how to program/read code, but IDEs are so useful. This will add another level to the me/them, where sometimes I'd want them to use LLMs, other times not. But first I need to convince the school it's a good approach: I'm an external teacher, and as such have very little influence...
(DIR) Post #B2AtSO6gdYdsXvSs2S by Ulan_KA@social.tchncs.de
2026-01-11T12:05:39Z
0 likes, 0 repeats
@futurebird give them code that is flawed and without/withbad commentary to fix from the beginning. Also to teach them that this is the default state of *any* code they will encounter in real life.
(DIR) Post #B2AtVsH6vfK8yo0FH6 by cavyherd@wandering.shop
2026-01-11T12:06:17Z
0 likes, 0 repeats
@futurebird Speaking for myself only, I've had some success actually budgeting for the innevitable freakout. It's â˘gonna⢠happen. It's just a matter of whether or not it produces the meta-freakout....
(DIR) Post #B2AtX94lwtOXNPq0Vk by hoertauf@mastodon.social
2026-01-11T12:06:18Z
0 likes, 0 repeats
@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
(DIR) Post #B2AtdjESQxZJFbVVFg by GustavinoBevilacqua@mastodon.cisti.org
2026-01-11T12:07:41Z
0 likes, 0 repeats
@futurebird When "teaching Internet" (to adults), to explain algorithms I asked "describe what you do between you boot (wake up) and go to work".A high % went to work wearing their pajamas, according to their algorithm :blobfacepalm: It was my way to teach "don't take anything for granted".
(DIR) Post #B2AtefyY1ktnRLW892 by futurebird@sauropods.win
2026-01-11T12:07:46Z
0 likes, 1 repeats
Sometimes when you are teaching you need to stop the lecture, change the plan because there is an error in the worksheet, or the problem is too hard. What's really annoying me is that some students think that when their code doesn't run this is "a problem with the lesson" I should stop everything until we fix it. But, my lesson is fine. The student just made a typo. They are so focused on the code running they aren't listening to the lesson which would teach them WHY it's not running.
(DIR) Post #B2Atl9t7j5QBww4TVA by jenesuispasgoth@pouet.chapril.org
2026-01-11T12:09:03Z
0 likes, 0 repeats
@futurebird I like to say that when students are in front of a computer, their ears disappear. :)
(DIR) Post #B2AtmACQ3RhBCjZlBY by oneloop@mastodon.xyz
2026-01-11T12:09:05Z
0 likes, 0 repeats
@futurebird > 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. Isn't this the whole problem? Maybe they intuit from you that the class is "keep up with the projector", when in reality the valuable skill is "if you're lost or confused, come up with hypothesis and critically explore them by yourself until you figure out what's going on".
(DIR) Post #B2AtrYm66wgws6pyAS by futurebird@sauropods.win
2026-01-11T12:10:14Z
0 likes, 1 repeats
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!"
(DIR) Post #B2Au0YDfXqhpkv1LyS by mguhlin@zirk.us
2026-01-11T12:11:49Z
0 likes, 0 repeats
@futurebird Maybe follow a writing workshop approach. 10 minute mini lesson, students work on applying coding concept, you conference with them individually after checking on what they are doing, group share at the end where they show their code and what they have done while others make a positive remark or suggestion. End each week or whatever time range with a culminating project that shows their knowledge of three core ideas taught. A suggestion from a writing teacherâŚmay not work.
(DIR) Post #B2AuKUHHuS0hK4DhDM by futurebird@sauropods.win
2026-01-11T12:15:26Z
0 likes, 0 repeats
@charette These are middle school kids. I don't think they need someone to rush over and help them. I want them to think about "my code won't run" in a different way.
(DIR) Post #B2AuS03a9dw5uVOKY4 by futurebird@sauropods.win
2026-01-11T12:16:49Z
0 likes, 0 repeats
@charette Like if someone offered me an assistant I'd say "that's OK." the class size is reasonable 12-18 students. I just need to help them understand errors better.
(DIR) Post #B2AuatQKBaWRwbGlzk by petealexharris@mastodon.scot
2026-01-11T12:18:23Z
0 likes, 0 repeats
@futurebird @wakame The thing I keep saying is: an error message is not a person telling you what specifically went wrong this time. It's a string somebody writing the program months or years ago thought would describe what they *guessed* back then might cause the code to reach that state unexpectedly.1. Code can always be wrong, sometimes in ways the programmer hadn't thought of (in fact often since they probably handled the ways they'd thought of) and,2. Error handling code is code.
(DIR) Post #B2AuhooxhG8NhF60SO by ReCyclist@toot.community
2026-01-11T12:19:38Z
0 likes, 0 repeats
@futurebird Maybe a change of emphasis focussing on "getting it working" as the task, while entering the code becomes a more mechanical step that just has to be done?
(DIR) Post #B2Auj4YgfdSinM56v2 by paco@infosec.exchange
2026-01-11T12:19:53Z
0 likes, 0 repeats
@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.
(DIR) Post #B2AutHL60ThxKVah7I by futurebird@sauropods.win
2026-01-11T12:21:44Z
0 likes, 0 repeats
@petealexharris @wakame "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 thought on some level that books were a natural product of the universe. When I realized they could have typos, or bad ideas it was so exciting.
(DIR) Post #B2Av0DnJaJmMMY6Ing by futurebird@sauropods.win
2026-01-11T12:23:01Z
0 likes, 0 repeats
@paco My students are too hard working and sensitive to deserve such things.But. Well, I have met other people in my life.
(DIR) Post #B2Av4SB82yVI8HG1IG by Zwifi@framapiaf.org
2026-01-11T12:23:44Z
0 likes, 1 repeats
@futurebird a teacher of mine had a nice trick for this, that I reused when teaching: he would reply "I won't help you until you have drawings of what the code should do, and comments everywhere". Having the students make diagrams (if they didn't start there) helped them find architectural issues in the code logic, and writing comments had them be their own rubber ducks, and forced them to re-read things. In a lot of cases, they figured the issue out before being ready to call ^^.
(DIR) Post #B2AvLO4MZsz2JMARWa by futurebird@sauropods.win
2026-01-11T12:26:50Z
0 likes, 0 repeats
@Zwifi 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.
(DIR) Post #B2AvUJQ7ETxyUxb7ho by MCDuncanLab@mstdn.social
2026-01-11T12:28:22Z
0 likes, 0 repeats
@futurebird Thanks this is really helpful. We teach a graduate class on quantitative cell biology based in python. Many ppl donât have prior coding experience, we probably need a section like this.
(DIR) Post #B2AvX23yDrfXXDXK9Q by jgrg@mstdn.science
2026-01-11T12:28:53Z
0 likes, 0 repeats
@futurebird This is what I would have suggested. Introduce the compiler, explain that you will encounter errors, but the error messages are designed to be as helpful as they can be.(If you're using Python, error messages have been worked on over the last few major releases, with teaching particularly in mind, so it's worth using the most recent.)
(DIR) Post #B2Ava30ZAJ3fKoNkJ6 by pete@mas.to
2026-01-11T12:29:26Z
0 likes, 0 repeats
@futurebird Test Driven Development can help, although there are skills needed, and you can have errors in your tests!But the skills needed to write/troubleshoot a good test are more focused/limited than being able to codeTests also encourage you to write testable code, which is usually modular/functional, and broken code elsewhere is less likely to affect it.Monolithic code is hard to test/debug.
(DIR) Post #B2AvfSuUI1qD7G7dTs by paco@infosec.exchange
2026-01-11T12:30:25Z
0 likes, 0 repeats
@futurebird Of course. I wouldnât ever say that to someone trying to learn. But you could tell them the story about the grumpy professor who was a jerk, and they can laugh while learning what printf() debugging is. đ
(DIR) Post #B2AvkC5cFtq2OcaA0O by LappenjammerDieZweite@social.vivaldi.net
2026-01-11T12:31:17Z
0 likes, 0 repeats
@futurebird Can I just say: reading this makes me aware ehat a great teacher you are. Your overall approach and your thoughts about finding the bugs are inspirational. Also they demonstrate in themselves how to try and find the error that causes your students to act differently to their standard.
(DIR) Post #B2AvyBP5bPZUK5MSEC by az@post.lurk.org
2026-01-11T12:33:46Z
0 likes, 0 repeats
@futurebird caveat: Not a teacher!I'm not sure what level your students are at, what specifically you are teaching them or how much control you have over the course but...If you've not seen it already you might like to look at https://hedy.org . It's a language designed for teaching that gradually adds syntax as you explore concepts until you reach a subset of syntactically valid Python. The error messages are also very useful, thoughtfully designed and tested in classroom settings.Excellent talk by the creator here www.youtube.com/watch?v=6ED36HvQSvkHonorable mention to Elm and Rust for having excellent error messages too!
(DIR) Post #B2AvzjHz6Qvhhqm8Tw by catselbow@fosstodon.org
2026-01-11T12:34:06Z
0 likes, 0 repeats
@futurebird Also: If you see pages and pages of errors, start by looking at the first error message. Often, that's the cause of all the others,
(DIR) Post #B2Aw2tCQiEwjJNgT2G by jhavok@mstdn.party
2026-01-11T12:34:39Z
0 likes, 0 repeats
@futurebird I guess this was an advantage of punch cards for teachers. We had to take our deck down to the mainframe and put it in the queue to find out if it ran, then figure out why it didn't on our own. Maybe try having the students debug for themselves instead of begging for handholding.
(DIR) Post #B2Aw6Riyo1hfG2bZJY by willyyam@mastodon.social
2026-01-11T12:35:18Z
0 likes, 0 repeats
@futurebird @wakame The metaphor I use with line numbers in error messages is "I fell down on line 32. I don't know where I tripped, but this is where I fell."It is a hint, and you can find it from there, but the cause could be before. Students understand that tripping and falling are distinct, causal actions, and that knowing what you tripped on may be unknowable until you go back and look.
(DIR) Post #B2AwK7HJcZRPtoBRvU by press_rouch@mastodon.green
2026-01-11T12:37:46Z
0 likes, 0 repeats
@futurebird This is a great idea. As a software engineer I would love to see debugging being actively taught as a skill. There are plenty of professionals who are lacking in that area.
(DIR) Post #B2Ax1lIchQLSTTbheS by jhaas@a2mi.social
2026-01-11T12:45:40Z
0 likes, 0 repeats
@futurebird My employer at the ISP I worked for in the 90s used to say that, "Working with computers requires a huge ego. The computer is always telling you that YOU ARE WRONG."The thing you're trying to teach is harder because it's two things at the same time: Learning how the language parser reports errors. The student learning to debug how they think. I've been coding for years. Parser errors are hard enough and are often obscure in some languages.
(DIR) Post #B2AxXiH1U78mMB5tgm by hanscees@ieji.de
2026-01-11T12:51:26Z
0 likes, 0 repeats
@futurebird @Pollinators to nerd snipe. Yet another concept has entered the fediverse
(DIR) Post #B2AxdlqR7VHpAbXyS0 by richpuchalsky@mastodon.social
2026-01-11T12:52:31Z
0 likes, 0 repeats
@futurebird "The error message *tries* to help you": the error message was written by people who had no interest in helping you
(DIR) Post #B2Axifnn0vnhsQe9Wy by iris@neuromatch.social
2026-01-11T12:53:24Z
0 likes, 0 repeats
@futurebird @Zwifi how are you currently teaching that debugging is a skill and part of what they're learning? Do they take notes on, or see presentations of, how bugs (including typos) were identified and fixed? Maybe even presenting to each other the problems they each got stuck on, or debugging as a class on occasion so they can see the process in real time while they're not currently panicking?
(DIR) Post #B2AyGDrbOYkZ4aQZFY by jonquass@techhub.social
2026-01-11T12:59:29Z
0 likes, 0 repeats
@futurebirdI've been a professional software engineer for over a decade now. I still make errors.What's interesting is that at a certain level it's possible to write code that in isolation works exactly as you want it to, but it doesn't work in combination with the rest of the existing code.But I also have tools to help me. My IDE checks for typos or syntax errors for me and flags them. It suggests solutions and offers to apply them. I have build tools written by other engineers to catch problems I might not have ever thought about. No one person knows everything, but anyone can learn enough to be effective
(DIR) Post #B2AyNNS68wAMq3uT8i by wwkudu@c.im
2026-01-11T13:00:47Z
0 likes, 0 repeats
@futurebird What a great set of discussions and thanks for being a teacher! (They pretty much make the world go round, imho.)I'm not one, but have taught some people coding over the years. Most recently I've seen that LLMs compound the problem you describe, because when the student has posted hundreds of lines of code to answer some fairly standard coding assignment, they have jumped so far into the deep end, that it's very hard for them to get out. The pasted code does all sorts of things they don't yet know about. Hopefully not your situation. Hopefully a lesson in its own right, but getting this young person to slow down and *do it themselves* was non-trivial.On a different tack, a project manager I knew once said energy project needs a project teddy bear. Any coding issues have to be explained to the bear first before getting senior help. The bear apparently solves 60%+ of the issues. Apocryphal, maybe.
(DIR) Post #B2Ayz73tWxC10caBHs by jerojasro@col.social
2026-01-11T13:07:36Z
0 likes, 0 repeats
@futurebird when I bumped on that problem with my students, I made a lesson focused on:* provoking error messages* reading them, learning where in stacktraces is the info about them* correcting the errorand categorizing them systematically: oh, NameError: this means I'm using a var that does not exist, maybe this is a typo here, or a typo there when I defined it.It helped them not panic when seeing errors and gave them tools to fix common ones on their own.
(DIR) Post #B2Az041SJfIZs8tZB2 by coolcoder360@mastodon.gamedev.place
2026-01-11T13:07:41Z
0 likes, 0 repeats
@futurebird not a teacher, so take with a cup of salt, but maybe having them not coding during your speaking parts could help?Like, locking their screens or all looking at you rather than typing at the machine.My guess is that anyone calling out like that got distracted with the coding and was not strictly paying attention to what was being said, so when they get the error, they may not see or hear anything aside from the error in front of them.
(DIR) Post #B2AzFcz0cFjAe0Ajq4 by GhostOnTheHalfShell@masto.ai
2026-01-11T13:10:34Z
0 likes, 0 repeats
@futurebird Present them or a piece of code and tell them this piece code has a problem with it and ask them to figure it out if you can find a fun thing all the better.Have them perform a code review and look at code and say well figure out the failure modes of this piece of code.I would actually have code refuse be part of your class.
(DIR) Post #B2B0WhhqPOH4AaqlI8 by bigz@ohai.social
2026-01-11T13:24:52Z
0 likes, 0 repeats
@futurebird I teach physics, but I know what you mean. I usually start by saying that 500 years ago ppl. like Leonardo da Vinci would easily have understood how the (classical) physics of a modern car works, but they would never have believed we could manufacture the parts with such precision. So the class is more about error control than new concepts.I also remember it being quite a mental leap for me as a student.
(DIR) Post #B2B0wmCCL4klchToxc by semitones@tiny.tilde.website
2026-01-11T13:29:29Z
0 likes, 0 repeats
@futurebird @freequaybuoy "works for me/on my machine"
(DIR) Post #B2B0y5b9gbqU5YmObg by relache@woof.group
2026-01-11T13:29:49Z
0 likes, 0 repeats
@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.
(DIR) Post #B2B1M3LxgWeC4l6FEW by TBYG@mastodon.sdf.org
2026-01-11T13:34:02Z
0 likes, 0 repeats
@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.
(DIR) Post #B2B1NmOpgnWO4eGY40 by lemgandi@mastodon.social
2026-01-11T13:34:29Z
0 likes, 0 repeats
@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.
(DIR) Post #B2B1aKYIXJMnTIg5pY by naptowncode@mastodon.online
2026-01-11T13:36:43Z
0 likes, 0 repeats
@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.
(DIR) Post #B2B1cpIjBS0hPtaLa4 by dimsumthinking@mastodon.social
2026-01-11T13:37:10Z
0 likes, 0 repeats
@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
(DIR) Post #B2B1hOJuvQ7DBXJnE0 by TBYG@mastodon.sdf.org
2026-01-11T13:37:57Z
0 likes, 0 repeats
@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. đ
(DIR) Post #B2B1jpv1HmW1MKq3WK by Zwifi@framapiaf.org
2026-01-11T13:38:28Z
0 likes, 0 repeats
@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 :)
(DIR) Post #B2B26L4U8pyILezoRs by godofbiscuits@sfba.social
2026-01-11T13:42:31Z
0 likes, 0 repeats
@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.
(DIR) Post #B2B29QOymMqzkX3NPU by nerb@techhub.social
2026-01-11T13:43:04Z
0 likes, 0 repeats
@futurebird @petealexharris @wakame And sometimes its not even the code but instead something inside the device. O 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 rebootiing every 3 seconds
(DIR) Post #B2B2r24wZbUr3QTYae by deborahh@cosocial.ca
2026-01-11T13:50:57Z
0 likes, 0 repeats
@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 đ¤.
(DIR) Post #B2B2xBIxBU5RPCxcp6 by nerb@techhub.social
2026-01-11T13:52:05Z
0 likes, 0 repeats
@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 secondsSince 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 watchdog sees the low power and reboots. Ugg.
(DIR) Post #B2B3gMuMtDJuQN0YW8 by jmht@theatl.social
2026-01-11T14:00:09Z
0 likes, 0 repeats
@futurebird There's always the classic return: "Why?"
(DIR) Post #B2B40LUfrFxXpTW1z6 by futurebird@sauropods.win
2026-01-11T14:03:53Z
0 likes, 0 repeats
@jmht Why what?
(DIR) Post #B2B46NmKHCIseWePQG by thefwguy@techhub.social
2026-01-11T14:04:56Z
0 likes, 0 repeats
@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 đ¤
(DIR) Post #B2B4Ra1fw3KyidwDmC by jmht@theatl.social
2026-01-11T14:08:46Z
0 likes, 0 repeats
@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?
(DIR) Post #B2B57s7h2c670av3BI by aSweetGentleman@mstdn.social
2026-01-11T14:16:24Z
0 likes, 0 repeats
@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.đ
(DIR) Post #B2B5RjqFXaB37GEW2K by BeasTheBiologist@ecoevo.social
2026-01-11T14:19:58Z
0 likes, 0 repeats
@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
(DIR) Post #B2B5l4TL3rH8bPjeHw by kbm0@mastodon.social
2026-01-11T14:23:29Z
0 likes, 0 repeats
@futurebird I have on occasion worked with software professionals who behave much the same way. đ
(DIR) Post #B2B5xOJ98f4tb2qITI by gray17@mastodon.social
2026-01-11T14:25:43Z
0 likes, 0 repeats
@futurebird I've never taught a class, but my first thought is to try starting with a live-coding session where I make mistakes myself
(DIR) Post #B2B60IWr54zqXgdmpU by futurebird@sauropods.win
2026-01-11T14:26:14Z
0 likes, 0 repeats
@kbm0 Well perhaps they have nostalgia for those responsibility-free middle school days.
(DIR) Post #B2B69Zupo4ph4ZHYXI by MFolschette@mamot.fr
2026-01-11T14:27:55Z
0 likes, 0 repeats
@futurebird I try to separate clearly the moments when they code and the moments when I explain stuff. When I explain, they have to listen (not look at their computers). They naturally tend to not interrupt with âit doesn't workâ comments, and usually ask interesting questions. For this to work, I always promise that I will share with them the code I typed I front of them (for that, I use my institution's platform).
(DIR) Post #B2B6OBKJVhwt9fABOa by dianshuo@mstdn.io
2026-01-11T14:30:34Z
0 likes, 0 repeats
@futurebird can I ask : is this a ârecentâ phenomenon? I donât really recall this behaviour except as an outlier when I did CS (which was a while agoâŚ)
(DIR) Post #B2B6WcId6sML7tOisi by futurebird@sauropods.win
2026-01-11T14:32:07Z
0 likes, 0 repeats
@dianshuo It's always been a thing though I do think it's been getting a little better.
(DIR) Post #B2B6YxzXQjq2yxaXOS by dougwade@mastodon.xyz
2026-01-11T14:32:31Z
0 likes, 0 repeats
@futurebird Iâve mostly taught adults, so this might not work for you, but I would try explaining that at the end of the lecture, you donât need them to have working code, you need them to have a working understanding. Theyâre missing the important part of class, the learning, to focus on an unimportant part of class, producing a working program. If itâs not working, focus up and wait until we have a pause. To me, this sounds more like an etiquette question than a programming one.
(DIR) Post #B2B72p9SrSbuFlT6Lg by Cat_LeFey@pagan.plus
2026-01-11T14:37:53Z
0 likes, 0 repeats
@futurebird That does sound frustrating, especially if you have a good flow with the lesson and then have to stop suddenly. I'm not a school teacher, but I mentor a robotics team, and we always code in pairs with one student "driving" and the other just observing for errors. It means we stop less for small silly things like typos, but also enforces the idea that there *will* be errors, it's just how coding works. I'll say, "it takes four eyeballs," and then they don't feel too bad about messing up. Usually then the students can check in with their partner first if something is wrong, and not just immediately call an adult over. I don't know how this would translate to a classroom setting though, might get loud.
(DIR) Post #B2B7dMFTHkErKIhNfk by david_chisnall@infosec.exchange
2026-01-11T14:44:31Z
0 likes, 0 repeats
@futurebird Iâve taught programming like this, but Iâm an increasingly huge fan of the debugging-first approach that a few people have been trying more recently. In this model, you donât teach people to write code first, you teach them to fix code first.Iâve seen a bunch of variations of this. If you have some kind of IDE (Smalltalk is beautiful for this, but other languages usually have the minimum requirements) then you can start with some working code and have them single-step through it and inspect variables to see if the behaviour reflects their intuition. Then you can give them nearly correct code and have them use that tool to fix the issues.Only once theyâre comfortable with that do you have them start writing code.Otherwise itâs like teaching them to write an essay without first teaching them how to erase and redraft. If you teach people to get stuck before teaching them how to unstick themselves, itâs not surprising that they stop and give up at that point.
(DIR) Post #B2B8CJOFu7rIb4TUie by futurebird@sauropods.win
2026-01-11T14:50:49Z
0 likes, 1 repeats
@david_chisnall Tangentially related:"AI can write code so why teach how to code?""Great point! It can write an essay too, so why teach how to read."Like. We've had calculators for decades and still teach arithmetic. And functionally the average person needs to know probably more about mathematics and needs to read more than they did a century ago. The same will apply for code.
(DIR) Post #B2B8ZjeQQvXuhhCuVk by mhoye@mastodon.social
2026-01-11T14:55:03Z
0 likes, 0 repeats
@futurebird @david_chisnall I mean⌠if AI could do what it promises, why are these companies hiring?
(DIR) Post #B2B9OVYaavMdlCghSy by dahukanna@mastodon.social
2026-01-11T15:04:14Z
0 likes, 0 repeats
@futurebird do your students think that writing code is like writing a word document and you are the âauto-correctâ typo utility? đ¤Śđžââď¸
(DIR) Post #B2BACpqtPZr3BTFNA0 by dahukanna@mastodon.social
2026-01-11T15:13:15Z
0 likes, 0 repeats
@futurebird @david_chisnall Yes! AI-LLM is a âword calculator for grammatically correct responsesâ. No intelligence presentIntelligence = ability to acquire and apply knowledge and skills.
(DIR) Post #B2BAdN1kgoyHbVylyC by raymaccarthy@mastodon.ie
2026-01-11T15:18:07Z
0 likes, 0 repeats
@futurebird @david_chisnall Except only Marketing believes that LLM / Generative AI can write code or write essays.It's either plausible junk or plagiarism.
(DIR) Post #B2BBAM6l8150JF39Bw by dx@social.ridetrans.it
2026-01-11T15:24:05Z
0 likes, 0 repeats
@futurebird I used to teach machine learning to Masters students â Masters students who did not have a coding background. So we were basically starting from square 1. The were older so they didnât interrupt, instead they would sit there with non-functional code and do nothing until I came around and asked how they were getting on. I have a puzzle solving/tinkering nature, so it was eye opening to me to see that a lot of people donât share that at all; and must learn it as a skill instead.
(DIR) Post #B2BCCjUrEyjrNi1FLM by scott@sfba.social
2026-01-11T15:35:43Z
0 likes, 0 repeats
@futurebird Wow! A touchy bunch. You already have a ton of replies here AND know what youâre doing so you donât need me (random internet person but former professor with lots of experience teaching anxious undergrads coding) to chime in. FWIW when teaching I tried to normalize âerrorsâ even by referring to them as âmessagesâ because calling it an error feels like âoh I already did something wrongâ. But âerrorsâ only happen because computers are truly not very smart; an error is when it canât understand our instructions, what we are telling it to do. The human canât make an âerrorâ; only the computer does. Anyway Iâd also shorten the cycle between coding and compiling - having students re-compile/run the program after every tiny little change shortens the feedback loop, normalizes âerrorsâ (like exposure therapy), and makes troubleshooting easier. Again you donât need my input at all â thanks for the flashback to my teaching days! đ
Best of luck with this group! â¤ď¸
(DIR) Post #B2BDnHqP7AQeHt5jCy by peterdrake@mstdn.social
2026-01-11T15:53:24Z
0 likes, 0 repeats
@futurebird Huh -- I have the opposite problem. Many of my students seem to think, "Everyone understands this but me. I'd better not say anything to avoid embarrassment." This happens even during the part of class when I'm just answering questions.
(DIR) Post #B2BEZfjNbjMEGqsTlQ by abucci@buc.ci
2026-01-11T15:46:35Z
0 likes, 0 repeats
@futurebird@sauropods.win I don't know your class or students, and all of this might be stuff you already do or not relevant at all, but here are some things that popped into my mind from my own experiences, in case it's of any use:Recent CS education research suggests that functions are one of the hardest intro programming concepts for most students, and shouldn't be introduced till some other concepts are mastered first (search "concept inventories for introductory computer programming"). It can help to first practice associative arrays/hashtables/dictionaries. Modularization into functions is harder still. The fact that many of your students are struggling with creating a function might indicate that they haven't mastered the concept yet and you might do well to back up a bit. If they need some remedial work, I cannot praise Parson's puzzles enoughWhen running a lab-style section, where students are actively working on something with your support, I think it helps to interleave lecture time, work time, and debrief time. When you lecture, lecture rules (including controlling when interruptions can happen) apply. Work time is when you let interruptions happen more freely as you walk around to see how folks are doing. When I run such things I tell the students at the beginning of the section what the plan is. After a week or two they get it. I think it's useful to keep each work session on the shorter side, 10-15 minutes, with a well-scoped task and well-defined goal, and then have a debrief afterward where students can describe their experience, vent, brag, what have you. That way they know they'll have opportunities to talk and might be less inclined to shout out randomlyIf you don't have assistants to help you, recruiting other students to help field questions can be very effective. In the past I've had success dividing students into pods of 2 or 3, but only after observing the class for a few weeks. I strategically designed each pod to have at least one student who seemed to be on top of the material and another who seemed to be struggling. This setup requires communicating with the students regularly and adjusting the group assignments throughout the course, but it can lighten the load quite a bit, especially after the students get to know each other. I design classes such that the first few weeks are for setting the stage and warming up, and for me to get to know the studentsI've found it can be helpful to tell students some variation of "I know it's frustrating that your code doesn't work. Even today, code I write doesn't usually work the way I want on the first go. This is an experience you're likely to have the rest of your life when writing code. One thing to take away from this course is how not to be set back by this feeling. It's a normal part of the experience of coding, and it's telling us something". If that lands you can follow up by asking them what they think their frustration/struggle/what have you is telling them. The self reflection can be helpful and you can learn important things about your students this way (it can also lead to awesome discussions). Some students react very positively to hearing that this is a normal part of the process (they think there's something wrong with them, or that they are doing something wrong, if they're feeling frustrated).Hopefully something in there is of use. I have references for concept inventories and Parson's puzzles if those would help. Good luck!
(DIR) Post #B2BEZgeSBX0l7ra3iy by futurebird@sauropods.win
2026-01-11T16:02:16Z
0 likes, 0 repeats
@abucci I'm kind of shocked that functions are hard. Are they hard for students who understand functions in the context of mathematics?
(DIR) Post #B2BEiTElQdI880kjqa by NonPlayableClown@postnstuffds.lol
2026-01-11T16:03:57.390502Z
0 likes, 0 repeats
You could run the error code on chatgpt assuming it's something generic đ
(DIR) Post #B2BEoduodjuGz3MiQa by DevWouter@mastodon.social
2026-01-11T16:04:59Z
0 likes, 0 repeats
@futurebirdSoftware developer trainer here. Silly question, but do they read the *entire* error description? And once they solved it do they understand the relationship between the cause, the message, and the fix?It might be worthwhile to force them to slow down by asking them to write down the entire message on paper.Try making a game out of it: Who can generate the strangest error message with the fewest amount of âbadâ code.
(DIR) Post #B2BEr1l0y20PVVuyhM by futurebird@sauropods.win
2026-01-11T16:05:27Z
0 likes, 1 repeats
@EricLawton @david_chisnall "Now I'm curious about whether LLMs' code compiles and executes error-free on their first attempt."At first it did not, but they have added a routine to run it through a compiler until it at least runs without syntax errors and probably produces output that seems like what you asked for for a limited example of input. This is a bolted on extra check, not some improvement in the base LLM. But some people are acting like it does represent advances in the LLM.
(DIR) Post #B2BEs0w7VM8NFcaCye by purrperl@noc.social
2026-01-11T16:05:26Z
0 likes, 0 repeats
@futurebird When they reach more advanced levels, you will have to teach them to step even farther back, look outside the frame of the monitor, and account for a different layer of the stack.What if your code works, so well in fact, that it threatens the empires of incumbent elites? What if they break down your door, unperson you, arrest you illegally dozens of times, jail you, brutalize you, deny you legal and medical care, and leave you in pain? 1/n
(DIR) Post #B2BF5k1tA3OirwpKcK by futurebird@sauropods.win
2026-01-11T16:08:07Z
0 likes, 0 repeats
@DevWouter They are middle school kids totally new to programming so reading the whole thing is a challenge and they will encounter too many words they are still learning. And really their errors are nearly always typos. Or not putting their function call in main body of the program. Or using a variable they have not defined. So, for them reading deep isn't that important IMO. The responses can be very verbose and technical.
(DIR) Post #B2BFll31lV9cBqOWYa by silvermoon82@wandering.shop
2026-01-11T16:15:40Z
0 likes, 1 repeats
@futurebird @EricLawton @david_chisnall "I have improved my LLM"*looks inside**improvement is 100% classical handcrafted algorithmic code*
(DIR) Post #B2BFoWSSSy6LoEbkR6 by futurebird@sauropods.win
2026-01-11T16:16:12Z
0 likes, 1 repeats
@ben @david_chisnall They've added some new feature that will pull up a little virtual machine and it will let you run the code in there. It also seems to test that the code will at least compile first. I worry that people seem to think that the LLM just... "evolved" these features when clearly a human person had to add them.
(DIR) Post #B2BFtDNCqlo84DOA9Q by raganwald@social.bau-ha.us
2026-01-11T16:16:59Z
0 likes, 0 repeats
@futurebird Software engineering is the stuff around software coding. The AI-vangelists have decided to re-discover the field from scratch, while expressing increasingly hubristic contempt for the lived experience of the entire field.@EricLawton @david_chisnall
(DIR) Post #B2BGB7uZta2oL9XUH2 by cubeofcheese@mstdn.social
2026-01-11T16:20:14Z
0 likes, 0 repeats
@futurebird a couple things I do. (It sounds like you're already doing some of these with slight variation):1. Tell them I make errors when programming. My former boss who worked for 30 years as a programmer still makes errors.Errors are not a bad thing. They are part of programming. Part of the process.Errors are hints. They are clues to figure out how to make the program work.
(DIR) Post #B2BGk1BisvyXchCDnU by Avner@anticapitalist.party
2026-01-11T16:26:34Z
0 likes, 0 repeats
@futurebird đ¤ maybe you already do something like this, but I wonder if some sort of preamble to set expectations around errors will help? Something like "computer programming can look like math but the the instant feedback makes it feel very different. Eventually that will feel like a good thing, but know that you may get error messages when you dont expect them and that a large part of learning to code is learning how to read and understand what those error messages are saying."
(DIR) Post #B2BHXaK92VdQmhlq40 by DevWouter@mastodon.social
2026-01-11T16:35:32Z
0 likes, 0 repeats
@futurebird I like to compare learning to code to learning a foreign language with a native of that language that doesnât speak my native language. Similar process with similar challenges. I would recommend starting with collecting the most common errors, simplifying the problem area, and categorizing them. That should help with pattern recognition, give them a vocabulary to describe their issue beyond just âIâm error,â and provide them with a direction in which to search for a solution.
(DIR) Post #B2BHXhZI6auTFhuX8y by DevWouter@mastodon.social
2026-01-11T16:35:33Z
0 likes, 0 repeats
@futurebirdAnd without knowing the group and situation that is the best advice I can provide. After all, Software development is a language puzzle.
(DIR) Post #B2BHjEHcoOcRty91NI by wesley@theatl.social
2026-01-11T16:37:34Z
0 likes, 0 repeats
@futurebird To be fair there are a lot of professional software engineers I know who have essentially this same problem. The second anything is wrong they go on slack and start asking for help immediately and go straight to helplessness.
(DIR) Post #B2BJ3roNejokF5s1BI by jztusk@mastodon.social
2026-01-11T16:52:32Z
0 likes, 0 repeats
@futurebird This might be a bit too far (my teaching has been of older kids), but what if instead teaching them "coding" of "programming", you teach them "debugging"? I mean start referring to that class exclusively as "debugging". "Okay class, it's time for debugging. Open your....". That way if they write something that doesn't work it's not a mistake - they've produced something that's important for the next step, which is understanding error messages, locating the place in the code ....
(DIR) Post #B2BJIuq4gOXpyWq2r2 by elplatt@greatjustice.net
2026-01-11T16:55:16Z
0 likes, 0 repeats
@futurebird I've seen this too. Even in one-on-one instruction. Errors cause the students to panic and jump around quickly without stopping to think. Teaching students to stop and take a breath can be helpful. Sometimes the problem is the students are trying to learn by rote and don't have a mental model of what the code is doing, which takes a lot of time to address.
(DIR) Post #B2BJjbXWXq4twFt6DA by sgharms@techhub.social
2026-01-11T17:00:04Z
0 likes, 0 repeats
@futurebird a powerful conceptual tool that I have after working in Boot Camp and in professional training is this: your code has billions of configurations, all of them except one are incorrect. Therefore youâre going to spend the majority of your time with not working code. When it does work, that is the exception.Therefore, your goal will be to learn how to gather information and diagnose the nature of the wrongness so that you can get it to the one working state this blunts the Instagram effect.
(DIR) Post #B2BKiG7Ko6qjA9Yn32 by Feralhousewife@mastodon.social
2026-01-11T17:11:03Z
0 likes, 0 repeats
@futurebird "That's great! Your journey into coding really begins now, with the debugger!!!!"
(DIR) Post #B2BM4yJfG1MIZHinQW by futurebird@sauropods.win
2026-01-11T17:26:24Z
0 likes, 0 repeats
@aredridel @EricLawton @david_chisnall @maco I've had so many people say "it knows how to write code now" as if this is somehow ... new and different from generating text. As if there as been some foundational advancement and not just the same tool applied again.
(DIR) Post #B2BMWi735xGGQF30Yi by maco@wandering.shop
2026-01-11T17:31:04Z
0 likes, 1 repeats
@aredridel @futurebird @EricLawton @david_chisnall Iâve heard pricing on these is based on âtokens,â which I understand is in the tokenization/lex/yacc sense. I think thatâs based on the number of tokens output, not input. When it has to make two or three tries at generating code that actually compiles, does each attempt get charged, or just one?
(DIR) Post #B2BMhjFVD6ql8FFu3k by futurebird@sauropods.win
2026-01-11T17:33:25Z
0 likes, 0 repeats
@maco @aredridel @EricLawton @david_chisnall I've only ever used free offers including a few I experienced in workshops, so I don't know about the pricing.
(DIR) Post #B2BMjWrcEII7IawPNQ by paul_ipv6@infosec.exchange
2026-01-11T17:33:43Z
0 likes, 0 repeats
@futurebird treat it like a video game. each error is a life but you have to burn all your lifes to get assistance. start with 5 lives?
(DIR) Post #B2BMr3QTYv46JeppPU by Michal_Young@mstdn.plus
2026-01-11T17:35:04Z
0 likes, 0 repeats
@futurebird I teach intro courses at a university, which could be a little different but probably not completely. We often do "live coding" in class, with either me or a student at the keyboard while we solve a problem. Regardless of whether it's me or a student "driving", there are always lots of errors to fix, so it's an opportunity to model error-fixing as a normal, expected, creative activity. I always thank students for pointing out my boo-boos, which are plentiful.
(DIR) Post #B2BN4ZJiIta4zM7GDI by futurebird@sauropods.win
2026-01-11T17:37:32Z
0 likes, 0 repeats
@maco @aredridel @EricLawton @david_chisnall I strongly suspect they are vastly undercharging and counting on building dependency and jacking up the prices later. The free workshops seem to be all about that and didn't impress me much. But, I did get to play with the tech so I could better understand it which was worth it despite all of the sales pitch infused through the process.
(DIR) Post #B2BNN0WJtvocZRny3E by maco@wandering.shop
2026-01-11T17:40:50Z
0 likes, 0 repeats
@futurebird @aredridel @EricLawton @david_chisnall oh yes, I had the impression there was some of that going on. Some of the services did jack their prices up some time a year or two ago; I remember there being sticker shock. I think people expected what was free at first to go to like $20/mo and it actually went much higher.But I have no details. I havenât used any of it.
(DIR) Post #B2BO3vOAr5Q36lSXIG by Goopadrew@infosec.exchange
2026-01-11T17:48:36Z
0 likes, 0 repeats
@futurebird not a cs teacher, so feel free to disregard, but maybe you could split lectures up with students just taking notes during some examples, and following along with others? My favorite coding professor also often intentionally put in common errors to the examples he was doing, then asked the class what needed to be done to fix them
(DIR) Post #B2BOJUY8PXlyV6XcIK by Flyingmana@phpc.social
2026-01-11T17:51:23Z
0 likes, 0 repeats
@futurebird i remember to have read the current prices are only 1% of what it would need to cover the cost.And thats not yet including the increased energy prices caused by the co2 tax increses now coming.(not that any of the big companies would pay this)
(DIR) Post #B2BOmCizlK6ZcFJQLg by nyates314@mstdn.social
2026-01-11T17:56:35Z
0 likes, 0 repeats
@futurebird Not much to add you haven't already thought of, but I agree with a lot of what you said and feel your frustration. If I need to keep going with the instruction like in your example (turning into a function next), I would tell the students with errors to shift to copying the new stuff down as notes, so they don't compound multiple errors if they continue to try coding along with me, ...
(DIR) Post #B2BP1pTDzOFk7wO0nY by geeksam@ruby.social
2026-01-11T17:59:24Z
0 likes, 0 repeats
@futurebird @quixoticgeek if you can put a student's screen on the projector, maybe walk each one in turn through "read the error aloud, ask what it might mean, see which line it's complaining about, read that line aloud," and so on?Could help reinforce that these problems can be worked through. Also changes the social calculus from "I cast Summon Help From Authority Figure!" That part could go either way, but handled well, it could build camaraderie ("see, we all make mistakes")...
(DIR) Post #B2BP8fWPNOjVIb8Xcu by loopspace@mathstodon.xyz
2026-01-11T18:00:36Z
0 likes, 0 repeats
@futurebird I will venture an answer - I haven't read all the replies to your post so I may be saying things that are already said.I'm a UK-based secondary (aka high school) maths teacher who also teaches CS, including introducing students to programming (usually python).Here's some thoughts of things to try.1. Practise finding errors. Give them code with errors and ask them to find them. Set problems to generate particular error messages. eg Can they write code where the mistake is on line 3 but the error message says line 33?2. Have a list of general prompts that you will say. If the error is on a different line, just say "Take a look at line N" then walk away to the next student. If they've named a variable badly, say "variable names can't have spaces". Make them do some work here.3. Clearly delimit demonstration time and coding time. "Fingers off keyboards and mice" is a common phrase in my classrooms (and I will stop the entire demo if I hear a clicking).4. Make them keep notes. I use Google Colab so that they can interweave notes with code snippets (at least in the early days) to encourage this.5. Partner up. It's often easier to find the error in someone else's code than in your own. Could even have a "walk around time" when all the students go and look at others' screens to both get ideas and see if they can spot errors.That's what springs to mind on reading your thread. I hope some of it's useful! As with all advice on the internet - keep what helps and ignore what doesn't.
(DIR) Post #B2BPZsaIuvEddCvyPg by apontious@dice.camp
2026-01-11T18:04:49Z
0 likes, 0 repeats
@wakame @Catfish_Man @futurebird The stat I heard was that you introduce two bugs for every line of code you write.
(DIR) Post #B2BPZtjCfJwpB66avI by futurebird@sauropods.win
2026-01-11T18:05:28Z
0 likes, 0 repeats
@apontious @wakame @Catfish_Man đ đ đ
(DIR) Post #B2BRI8tZjd7mukcO5w by ersatzmaus@mastodon.social
2026-01-11T18:24:46Z
0 likes, 0 repeats
@futurebird I'd respond with a few key questions:- In what way is it not working?- Why do you think that is?- If you can see errors, what do they tell you?- How can you find out more about what is or is not happening?And there's the all-important "What are your assumptions, and are they correct?"
(DIR) Post #B2BSTkVyJ85ojCfywi by llewelly@sauropods.win
2026-01-11T18:38:05Z
0 likes, 0 repeats
@futurebird @EricLawton @david_chisnall there are certain languages (such as C) in which that would be a cruel trick; lots of code which contains subtle undefined behavior bugs that don't show easily will compile without errors, or in many cases, often without warnings as well. Not all undefined behavior is detectable at compile time.
(DIR) Post #B2BT1kC00meZZhXnTk by everyopsguy@infosec.exchange
2026-01-11T18:44:14Z
0 likes, 0 repeats
@futurebird one recommendation - one rule that worked when I was learning programming and my teacher didn't like when I interrupted her - if you've got an issue because you're ahead or behind others, wait till the teacher is available. Till then, muck around, debug, try random things.
(DIR) Post #B2BVewNWq1oYZSksBE by burnitdown@beige.party
2026-01-11T19:13:42Z
0 likes, 0 repeats
@futurebird yes, do that. i'm not a coder, nor a CS teacher, but teaching debugging is crucial to learning how to program. it's necessary to understand why anything works at all, instead of just copying code and not understanding why it doesn't work.
(DIR) Post #B2BW3NW5ahqfgjPbMG by burnitdown@beige.party
2026-01-11T19:18:09Z
0 likes, 0 repeats
@futurebird in trade school, we always wrote pseudocode before writing actual code, which is like a kind of outline of how the program will work. it's not always easy to translate between pseudo and real code, but it helps to understand the process of what you're doing.
(DIR) Post #B2BYpFGblZ4duW7heS by vepr_jako_pepr@mastodon.social
2026-01-11T19:49:08Z
0 likes, 0 repeats
@futurebird i think the institutional guidance is the thing itself which removes self sufficiency, it punishes own goals and forces alignment with a program
(DIR) Post #B2BZ2sHC2ccsf1tbNY by Thib@mamot.fr
2026-01-11T19:51:39Z
0 likes, 0 repeats
@futurebird @tito Yes, I started to teach how to fix broken code in some classes: read and understand errors, where to look, etc. These are skills they really need but we let them figure them out by themselves. By teaching them how a code can be broken and how to fix it they figure out what is correct code. It's much better this way than the other way around IMHO.And yes they are scared to do mistakes, it's even worse in electronics classes!
(DIR) Post #B2BcNKksARu2dkE2j2 by asilata@mathstodon.xyz
2026-01-11T20:28:57Z
0 likes, 0 repeats
@futurebirdWonderful. I would suggest a small change to 4. Even though the rest of your message explains how to become a great programmer, students may get hyper-fixated on #4. They may think "oh I'm just not a great programmer" before even reading ahead, or even after. So may I suggest something like: "Finding and fixing the errors is an essential step towards becoming a great programmer." This frames it as a process from the get-go, rather than a binary.
(DIR) Post #B2Bi2h9YIRJdkZJLZQ by morten_skaaning@mastodon.gamedev.place
2026-01-11T21:32:28Z
0 likes, 0 repeats
@futurebird random : don't do big changes. Do small changes and validate with compiler or tests. That usually solves 90% of problems.
(DIR) Post #B2Bq3NRLsCoGXCTNaq by k4gi@aus.social
2026-01-11T23:02:12Z
0 likes, 0 repeats
@futurebird ive been having the exact same problem haha. i think maybe it helps to have moments where, if everything goes right, the program will crash in a particular way, and we can look at what the error is saying and then at what that actually means. perhaps?
(DIR) Post #B2BrKs7b9ajaZI8hcW by amyworrall@mastodon.social
2026-01-11T23:16:30Z
0 likes, 0 repeats
@futurebird reminds me of the helpful guides in the Usborne books I learnt programming from.
(DIR) Post #B2CewLgd5dsgjO1bbU by david_chisnall@infosec.exchange
2026-01-12T08:32:24Z
0 likes, 0 repeats
@futurebird I would make a slightly different point, I think.When I was at university, doing a degree in computer science, the first language they taught us was Pascal. The second was Prolog. I canât remember which order the third and fourth were taught in, but they were Java and Haskell.Of these, Java was the only one widely used in industry. In my subsequent career, I have rarely used any of these. But I have used the concepts I learned repeatedly.The tools change. Eventually, modern IDEs will catch up with 1980âs Smalltalk in functionality. But the core concepts change far more slowly.And this matters even more for school children, because theyâre not doing a degree to take them on a path where the majority will end up as programmers, theyâre learning a skill that they can use in any context.I spent a little bit of time attached to the Swansea History of Computing Collection working to collect oral histories of early computing in Wales. Glamorgan university was the first to offer a vocational programming qualification. They had one day of access to a computer at the Port Talbot steelworks (at the time, the only computer in Wales) each week. Every week, the class would take a minibus to visit the computer. They would each take it in turns to run their program (on punch cards). If it didnât work, they would try to patch to code (manually punching holes or taping over them) and would get to have another go at the end.Modern programming isnât really like that (though it feels like it sometimes). The compile-test cycle has shortened from a week to a few seconds. Debuggers let you inspect the state of running programs in the middle. Things like time-travel debugging let you see an invalid value in memory and then run the program backwards to see where the value was written!But the concepts of decomposing problems into small steps, and creating solutions by composing small testable building blocks remain the same. The hard part of programming hasnât been writing the code since we moved away from machine code in punched tape. Itâs always been working out what the real problem is and expressing it unambiguously. In many ways, LLMs make this worse. They let you start with an imprecise definition of the problem and will then fill in the gaps based on priors from their training data. In a classroom setting, those priors will likely align with the requirements of the task. The same may be true if youâre writing a CRUD application that is almost the same as 10,000 others with a small tweak that you put in the prompt. But once it has generated the code then you need to understand that itâs correct. LLMs can generate tests, but unless youâre careful they wonât generate the right tests.The goal isnât to produce children who can write code. Itâs to empower the children with the ability to turn a computer into a machine that solves their problems whatever those problems are and to use the kind of systematic thinking in non-computing contexts. The latter of these is also important. Iâve done workflow consulting where the fact that the company was operating inefficiently would be obvious to anyone with a programming background. It isnât just mechanical systems that have these bottlenecks.And this should feed into curriculum design (the Computer Science Unplugged curriculum took this to an extreme and produced some great material). Thereâs no point teaching skills that will be obsolete by the time that the children are adults, except as a solvent for getting useful transferable skills into their systems. A curriculum should be able to identify and explain to students which skills are in which category.(And, yes, I am still bitter my schools wasted so much time on handwriting, a skill I basically never use as an adult. If I hand write 500 words in a year, itâs unusual, but I type more than that most days)
(DIR) Post #B2CfrELJ4DVSScAsXQ by simon_brooke@mastodon.scot
2026-01-12T08:42:39Z
0 likes, 0 repeats
@futurebird @david_chisnall When I was at school, back in the 1960s, the careers advisors told us "don't learn programming, within four years computers will be intelligent enough to program themselves."I suspect school careers advisors will still be saying the same thing in the 2060s.
(DIR) Post #B2Ct0YWogYdf4kKqZs by quinn@social.circl.lu
2026-01-12T11:10:01Z
0 likes, 0 repeats
@futurebird my first thought is pair them up and give them problems/coding puzzles to work through? Get them used to banging their head against the problem.
(DIR) Post #B2CzwxVOZwGJ3ru0fY by grob@mstdn.social
2026-01-12T12:27:48Z
0 likes, 0 repeats
@futurebird maybe include exercises with intentionally broken code and the task to fix it on their own? Maybe they then see that there are typical problems exactly like the ones they complain about that are part of programming and not problems of the teaching format.
(DIR) Post #B2DmDDqCPHdm9sSCjA by jameswarlock@theforkiverse.com
2026-01-12T21:28:35Z
0 likes, 0 repeats
@futurebird I teach CS and sometimes get the same issue. One thing I do is immediately ask the nearest student if they can spot the problem with the first students code - encourage them to help each other out (even encouraging light competitiveness about spotting easy mistakes that they should have seen right away). Second, I always start with a question -e.g. âwhere is the problem most likely to be?â - until they learn to ask that question themselves.
(DIR) Post #B2H8m2NBoi5BBzlrOa by RosyMaths@mathstodon.xyz
2026-01-14T12:25:32Z
0 likes, 0 repeats
@futurebird I mean, sometimes the computer really does just hate you đ¤Ş
(DIR) Post #B2H8w6OrhQC0ZtM0dk by RosyMaths@mathstodon.xyz
2026-01-14T12:27:23Z
0 likes, 0 repeats
@futurebird Also, I've noticed that learner programmers very rarely read the error messages with any level of attention.Ooh, you could do a reverse challenge.... provide them with the error message and have them write the code that produces it!
(DIR) Post #B2QB39uSzt9BoyGdPM by LibreFaso@hostux.social
2026-01-18T21:03:27Z
0 likes, 0 repeats
@futurebird Not sure that can qualify as a CS teacher (I only taught a few informal classes, mostly Scratch) but as a user I can relate.There is some existential dread in having your basic tools not working without warning.A bit like physicists in the three-body problem start despairing when physics starts to behave in an unpredictable way.I have this when I work on Arduino and a thingy doesn't work as it should.1/?
(DIR) Post #B2QEHiz1guSCW52MQS by LibreFaso@hostux.social
2026-01-18T21:39:43Z
0 likes, 0 repeats
@futurebird There's a famous anecdote about Yachar Kemal, the uber-famous turkish author : one day when he was visiting the countryside, a shepherdš asked what was all the ruckus.Another villager answered "you don't know ? the guy who wrote 'Memed, my hawk' is here, he's visiting !".And the shepherd was completely puzzled :"but... nobody wrote 'Memed, my hawk' ?" (in the sense of "it exists, it hasn't been created, and especially not by a mere human").šIIRC