something I've been thinking about is how, when I teach a class, I tell the TAs to never, ever touch the keyboard when they're helping a student with an assignment. not even once! because as soon as someone else is driving, it becomes real easy for the student to stop thinking and just let things happen.

kind of like what happens when we use a coding assistant.

@regehr

Gotta have that friction 🧐

@regehr i wonder how much of this is because students don't really want to be there, and how much is because they don't (yet?) know how to zealously fight for understanding

@whitequark @regehr well I think it’s also quite easy to overestimate how well you understand something if you’re not forced to recreate it from scratch

kinda like that study where people knew what a bicycle looked like but not how to draw one

@jyn @whitequark @regehr Regarding coding assistant: I guess this is only true if you assume the assistant is better than you.
@wiedmama @whitequark @regehr I don’t like the framing of programming as a linear scale from bad to good. AI can legitimately be good at creating prototypes while being bad at ongoing maintenance. being better than a single person in a single dimension isn’t that hard.
@wiedmama @whitequark @regehr also like, half the way you get good at programming is by struggling with problems until you understand them better
@jyn @regehr that would fall under the second half of my question
@whitequark @regehr I don’t disagree, but by that standard I think very few people in the world live up to your standard of ā€œzealousā€
@whitequark for sure there's a lot going on!
@regehr @whitequark I've encountered this as a senior developer mentoring juniors who really are motivated. They learned so much more hands on, I just had to swallow my frustrations, be patient, and not take over.

@whitequark @regehr in my experience as a TA (experimental physics) it's mostly the second; yes there are students who don't want to be there but there are also plenty who do. The problem is that troubleshooting is a skill you need to learn and practice, and that's something that they've had basically no exposure to until they get to their first intro lab.

In my department this is well understood to be basically the entire point of the intro lab and we very intentionally make the instructions less and less detailed as the year goes on

@whitequark I went back to university at age 38 because I *zealously* wanted a bachelor's degree to partially tame my impostor syndrome.

I was older and more experience than my instructors, but they knew so much I did not.

I got my first instructor fired, learned as fast as I could, graduated three years later, and that CS department was much improved by the time I left.

@regehr other people's keyboards are lava ĀÆ\_(惄)_/ĀÆ

@regehr a friend and I gave a free python programming course once and followed it up with a paid course (with exceptions for anyone that couldn't afford it)

The free course was attend by kids with a real curiousity, whereas in the paid course we found many students that took the course because their parents thought it was a good idea. Though I'm entirely for that in some instances, I did find that several of them didn't engage as much with the course work.

I teach by asking reflective questions, explaining fundamentals and nudging, surely much to the frustration of the student, but ultimately those aha moments are more powerful when you come to them from your own side.

Further to this, I found the fear of failure, not to "break" things, and not to be "wrong" prevented several of the kids from making steady progress.

In the end I know of at least two of these students that pursued programming, with one actually studying CompSci :)

@regehr That's why pair programming is a very important skill to learn, and we try to do it as often as we can. And it's very important to do it right by giving each person a turn to drive and a turn to navigate, because it forces both parties to stay fully engaged.

I feel like people who are good at pair programming might be more likely to use a coding assistant responsibly, because they're used to reading and understanding code as it's being written.

@regehr We had that rule when I was a TA. There was one exception, though. Sometimes, when a student had finished a task, we'd test them by deleting a random line of code and having them recreate it. If they failed, it showed a lack of understanding.
@mansr @regehr that is an interesting and good idea! Maybe it could even help the LLM fight.

@regehr
šŸ™šŸ» So true, so well said, so best practice: helpers should ā€œnever, ever touch the keyboard when they're helping a student with an assignment. not even once! because as soon as someone else is driving, it becomes real easy for the student to stop thinking and just let things happen.ā€

AND, the corollary or by extension:

ā€œkind of like what happens when we use a coding assistant.ā€

#CodingAssistant #AI #teaching #students

@regehr I have trained many people to do many things. show how to do it once then never again. always make them do the thing with verbal guidance and warnings. when they've gotten the basics down, have them write out/say outloud their steps. this helps cement perpetually forgotten steps and is a reference for them that's theirs. minimum 3 times in a row, 3 days a week.

@regehr
something I've been thinking about is how, when I teach a class, I tell the TAs to never, ever touch the keyboard when they're helping a student with an assignment. not even once! because as soon as someone else is driving, it becomes real easy for the student to stop thinking and just let things happen.

Thanks Yes,
I always do that when helping anyone with linux installation or other computer problems.
Users need to get in to there heads that they can take control of their devices.

@regehr All backed by research. Some schools looking to address impact of phones see fit to allow them to be carried but switched off. Research clearly shows that the simple presence of a phone - even switched off - impacts the owner.
@regehr didn't get a TA this semester 😭 however, that just means it's good advice for myself šŸ˜šŸ‘

@floe @regehr Yikes, are there not enough students interested in working as a TA or is it a funding problem?

I was only able to find 2(.5) TAs for my course in the summer semester (intro to computer architecture and OS with ~150 students) but I have funds for four.

@me_ @regehr Indirectly, a funding problem - at AAU, you automatically get funding for a TA when your course has > 50 registered students, but mine has 48. šŸ˜‘ And my new grant only starts in April, so I just happened to fall into a stupid little funding gap. 🤷
@floe @regehr Ah, that's unfortunate...
@me_ @floe are these only grad TAs or can you hire undergrads too? at my place it's the undergrad TAs who often do the best job
@me_ @regehr It's also undergrads, and yes, they generally do a very good job as well šŸ‘
@floe @me_ @regehr I was an undergrad, and I like to think I did a good job.
@regehr @floe We mostly have undergrads as TAs, too. They usually do a pretty good job. However, there are too many open positions for TAs, so there's quite some competition for the few students who want to work as TAs. Perhaps we should pay a bit more than ~50ct./h above minimum wage...
@me_ @floe we tend to get a lot of applications! but we do pay pretty well. of course not competitive with them getting a full-time job, but definitely better than most random hourly jobs an undergraduate would get
@regehr Probably because grad students are required to be a TA at least once and often haven’t taken that undergrad class, whereas undergrads will do it because they want to and did well in that specific class.
@thalia there are even more reasons than these, but yes
@regehr I do that when I help a person. I tell them they are in the driver's seat and I give directions and at times ask them what they need to do next.

ā¬†ļø @regehr

>> as soon as someone else is driving, it becomes real easy for the student to stop thinking and just let things happen… kind of like what happens when we use a coding assistant.

Nice sentiment against #AI, but faulty analogy regarding assistant.

A coding assistant assists the coder… kind of how a teaching assistant assists the teacher.

@regehr oh please spare me. This is the same chicken little, the sky is falling, rhetoric I heard when calculators came into classrooms. My dad taught math. He didn't worry about the calculators. He didn't worry about the students getting answers "right" with or without those calculators because, as he said, "the point of teaching is to teach students to think."
@regehr
I do HPC support and the rule is that the user does everything. They may simply do what I tell them but when they do it themselves they will remember what they did and at least something about why.
@regehr whoever does the work does the learning
As an IT professional for much of my career, the patience required to coax a user into letting go of the controls and letting me actually help them, is a delicate thing; but like: "please, you called me for help, let me help you." (I do not think I ever actually said that, so much as thought it, a lot).

Wasting our collective time with them in the "driver's" seat continuing to flail while I stand beside exasperated when they should probably go back to a class if they want the delicate treatment? They never paid me well enough for that.

Still, the results could be hilarious at times!

I'll never forget the time when someone at a previous employer came up to the IT area to ask for help in how to use the scanner. He showed me a bunch of documents he had printed out: they were all screen shots.

I showed him how, in the future, he could use "print screen" functionality and simply save a screen shot/frame buffer to a file electronically, rather than wasting paper and then scanning it back in for a digital copy.

The users: I have fought for them! Sometimes, I wonder why. It seems as if they need less fighting and more fundamentals. ;)

But yeah, if you're in a school? Let the students suffer through the hard stuff with guidance, make them better users, please. Exasperated IT folks, ultimately, really want our users to become self sufficient.

I had already leveled up to being invited to Co-SysOp in my teens and I have been toiling in the realms of libre/free open source software for so long, that to me: if you are using a computer, and can't compile code from source: what are you even doing with a computer?! There is so much stupendous source code, just out there, waiting for folks to utilize it, and instead too many are wasting too much money paying big corporations for binaries that stink.