Live data from Hacker News

Teaching other teachers how to teach CS better

cacm.acm.org

61–70 of 93 posts

Re: Teaching other teachers how to teach CS better

#61

Overall good article but I was expecting an in depth assessment of how to actually teach CS. I was particularly interested in hearing how teaching CS might be different from teaching other subjects, particularly math, engineering, etc. Instead the article was more about why student reviews are not a good way to evaluate the teacher. It’s like letting your toddler decide what’s for dinner… “ice cream and candy, again?…

IMO the big difference between CS and other subjects like math, engineering etc. is big tech. No one goes into a math degree at 18 thinking they're going to be earning $200k in 4 years time. But in CS, this is the general expectation of students. They are obsessed with learning everything they need to know to pass Google's and Facebook's white board exams. Students demand prep sessions to help them pass, where we just give them interview questions to solve. They are not so interested in learning CS for the sake of learning CS.

Students and parents view our CS department like a trade school. They are very focused on us teaching "practical" skills that students will use when they enter the work force. I think that's something we should do, but that's not all we should do. But any time we try to teach more theoretical CS concepts, there's always a lot of push back like "How will I use this thing when I'm at FAANG, and if I won't then why am I even learning this?"

Then there are employers, who have in the past come to us trying to get us to teach their tech stack so they don't have to. They wanted us to convert our entire curriculum to .Net, because that's what they use. Would that ever happen in the math department? I don't think so.

Re: Teaching other teachers how to teach CS better

#62
post #51

Earlier quoted context omitted.

> in groups of two I wouldn't doubt there's good research showing pair programming is a great way to learn, but anecdotally/observationally I really have trouble believing it's effective. In my experience, in at least half of pairs there will be one more skilled programmer and one less skilled programmer and the better one does the lion's share (if not all) of the work -- this is doubly true if the partnerships are r…

I always felt cheated when teachers do this. Either I’m the better one in the pair, and I’m forced to waste my time doing the teacher’s job teaching simple concepts instead of learning anything new myself, or I’m the less knowledgeable in the pair, and instead of listening to a professional I’m stuck being tutored by an amateur who doesn’t know how to explain anything.

My first-year CS student self would have agreed with you; I had several experiences where I (a minority student in CS) had to work with overconfident white male students who always felt the need to explain things to me that I already knew. Looking back though, these experiences have made me a more resilient person when dealing with difficult colleagues and peers I'm forced to work with.

I've always loved teaching peers because it reinforces my knowledge of the concepts being taught and gives me a sense of satisfaction. On the flip side, I feel small and maybe a bit ashamed if I'm less skilled than my partner, but if my partner's nice enough to explain things to me, then I come out with a better understanding of the concepts and a good relationship with my peer. Either way, it's a win-win situation, even if it doesn't feel that way in the moment.

Re: Teaching other teachers how to teach CS better

#63
post #11
post #9

When I was in college --names are elided to protect the guilty-- the school of education was a hot mess. There was a verbal meme around the campus that went something like this: those who can do those who cannot do teach those who cannot teach teach teachers.

I thought this was true until I learnt bjarne did some teaching.

I thought this was true until I tried to teach. Then I realized you have to really know what you're talking about if you want to explain it to someone else.

Re: Teaching other teachers how to teach CS better

#64

Earlier quoted context omitted.

I only have anecdotal evidence. But in my lab we have tried all combinations (working in groups of n, for n=1 to 4, randomly assigned or not). All setups may fail, for different reasons, but the setup that is consistently less likely to fail is two students that get along well with each other. The case when one of them is more skilled is actually very good, because then they teach the other one. There's often other w…

> The case when one of them is more skilled is actually very good, because then they teach the other one. Right, I get that that's the theory, it's just that I've never personally seen it work out so well in practice. I can imagine how it's extremely useful and rewarding for both partners if you have two very motivated people, and the better one is keen to teach and even genuinely open to suggestions from the "worse"…

I don't know about C.S., but anecdotally, I studied with another student as an undergrad and taught him Zoology. It was good for me (I was forced to explain all the concepts thoroughly) and good for him (he did fairly well in the course). Win-win.

Re: Teaching other teachers how to teach CS better

#65
post #2

It's incredibly easy to learn how to hack, and not how to abstract good design in a problem. Anyone who opened a 1980s PC mag could be shown how to implement basic FOR or WHILE or if/then/else expression logic in BASIC and achieve huge outcomes: playable games, interesting solutions. Learning how to craft code so its "better" is really hard. Abstraction is a distinct skill. The mathematical underpinnings of code lie…

Any recommendations for getting more of the fundamental knowledge and not being the next store neighbor?

I feel like I'd be a much better programmer had I studied CS, but it's difficult to also self study when working so I'm trying to find some balance to learning. Like, easy reads that will show immediate improvement to keep me interested, instead of picking random dry textbooks.

Re: Teaching other teachers how to teach CS better

#67

Overall good article but I was expecting an in depth assessment of how to actually teach CS. I was particularly interested in hearing how teaching CS might be different from teaching other subjects, particularly math, engineering, etc. Instead the article was more about why student reviews are not a good way to evaluate the teacher. It’s like letting your toddler decide what’s for dinner… “ice cream and candy, again?…

If you follow through the links, you'll find this: https://www.lifescied.org/doi/10.1187/cbe.14-02-0023

It's actually got a table of teaching practices, which they presumably want to see. I went through them and it looks like good stuff to me. I do a lot of it, though some wouldn't fit my (non-CS) discipline well.

Re: Teaching other teachers how to teach CS better

#68

Teaching the course content through lectures is overrated, in my opinion. I rarely went to lectures, but the ones I did go to I was there not because I felt a need to learn the course material but because I could in some way engage with the lecturer. One lecturer would talk about how things looked in "real papers", and how new algorithms would get published even though they lacked certain key invariants, and how stup…

>> Learning is easy for me, I just sit down and engage with the material in earnest.

Fixed it for you. What is true for you is not true for all.

Re: Teaching other teachers how to teach CS better

#69
post #66

The simple solution to learning CS is to just start building something. The process of getting stuck and figuring out how to get un-stuck is where the learning actually happens.

CS and software development are different subjects, aren't they? Plenty of devs know little CS and CS academics often do no dev work. CS existed as a field before general purpose computers existed, when algorithms operated on room of women called computers.

Re: Teaching other teachers how to teach CS better

#70

As a university lecturer in a non-STEM subject who is currently self-learning both 'hard CS' and the more practical side of development, I have often thought about what an effective CS curriculum would be, and the thing I keep coming back to is something along the lines of guided self-learning. Nothing is as effective as curiosity, but having someone with broad knowledge and experience in the field can help guide stu…

> the thing I keep coming back to is something along the lines of guided self-learning. As a university lecturer in CS, I agree this would be a great thing for a lot of students. The thing about CS though is a lot of students hear that programming is a path to a high paying job, and they are really not motivated to learn the subject in the way that people who frequent HN might be. They don't want to self-learn, they…

Ooft …’trendiness’/hype to blame…(for want of a better way of describing it - nothing against trendiness per se… :) …short-sighted also as technology moves so fast and what garnered the highest salaries in this generation could easily change in the next… (esp. if over-subscribed)… I teach guitar/bass/music production (though trying to slowly educate myself about CS as much as I can), but I get what you’re saying about learning basics - you can go blue in the face trying to explain to someone that if they learnt eg. basic harmony or acoustics or how MIDI works etc etc that they would understand eg. how to make any style of music they happen to like potentially more quickly/effectively, or that instead of learning eg. only specific interfaces/ individual siloed DAWs/platforms, they would see that they all work on basically the same underlying principles and be able to pick up and use any they wish from then on/make their own… (…counter to a lot of ‘magic’ marketing speak/youtube vids etc…). Perhaps as CS ideas become more widely used/diffused/familiar to teachers/practitioners of all other subjects, and indeed programming etc. potentially becomes ‘higher level’/more abstracted/built on specialised API’s/libraries/AI/autocomplete/visual paradigms etc. those subjects will incorporate the teaching of CS/programming/AI and eg. biology will inevitably integrate teaching of what might at the moment be called ‘computational biology’, or literature will incorporate analysis of texts using AI as a standard component of the course etc. etc.? …that might then free your dept. to focus on core concepts/constructing the underlying platforms that all these other subjects use as a base? all the best! (good article btw.)
Post reply on HN