Live data from Hacker News

Teaching other teachers how to teach CS better

cacm.acm.org

71–80 of 93 posts

Re: Teaching other teachers how to teach CS better

#71

Earlier quoted context omitted.

> 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 abou…

> Perhaps as CS becomes more used/diffused/familiar to practitioners of all other subjects

I think you're spot on here. You don't see people flocking to the English department because they had heard the ability to read and write is essential to landing a high paying job.

The same will be true for programming in the future; programming will be to the CS curriculum as reading and writing is to the English curriculum. No one is teaching English majors how to read and write English at my university. But we have 4 semesters devoted to reading and writing programs, because we can't assume any student knows these things like the English department can.

Re: Teaching other teachers how to teach CS better

#72

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.

I was hoping for something more CS specific as that list seems to all be fairly generic pedagogy; it's been known for a long time e.g. that quizzes help memory formation and that more immediate feedback aids learning.

One thing they mention that I think is a problem with CS is:

> connect with student prior knowledge and beliefs

I do not know how do do this in a group larger than about 6-8 (I'd say 2 pizza rule, but you need more than 2 pizzas to feed 8 college students :)

In particular since much computer related learning prior to joining a college level CS class is some combination of: informal, self-taught, and/or poorly taught. This leads to a very wide variety of prior knowledge and beliefs, most of which are subtly wrong in important ways.

In a small group it's trivial to address these as they come up, but I can't imagine trying to anticipate them for a larger group.

I switched to CS from Physics and immediately noticed this difference. At first I just thought it was because physics classes were smaller, but I had no classes with less than 10 people. Then I realized that there just wasn't that much variety in the misbeliefs my physics peers held; partly because we had fairly similar backgrounds (most had taken AP Physics in High School, and had read a selecton from a fairly small pool of pop-science physics books).

I'd actually be interested in seeing a taxonomy of specific misbeliefs in CS (or really any field). Such a summary would probably aid teachers as well; most good teachers will have an intuition for the categories, but organizing and naming things can help one think in a more structured way about them.

Re: Teaching other teachers how to teach CS better

#73
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.

You could sit down and build quite complicated things without ever learning a lick about big-O, time complexity, etc..

Re: Teaching other teachers how to teach CS better

#74
Teachers please use testing suites, include basic tests that can show student that they are making progress in the assignment. Have your own tests for grading (if you want).

For intermediate classes force students to use some type of version control, as in they need to submit assignments to a branch, and the branch will be graded.

Re: Teaching other teachers how to teach CS better

#75

I'm amazed at how teaching isn't a core competency of universities.

It's crazy that the people doing some of the most complex and demanding research on the planet are the ones who teach under graduates too, trying to get tons of papers published, etc, etc. Obviously the educational quality suffers when davulty have to do so many complex and different things at the same.

Some of that research is also unreproducable BS, but that's another rant. I agree, though. Combining teaching and research into one job makes no sense, especially for how much the students pay.

Re: Teaching other teachers how to teach CS better

#76

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 jus…

> "How will I use this thing when I'm at FAANG, and if I won't then why am I even learning this?"

Maybe college has changed since I went there, but a similar question was asked and the professor responded with "you are free to drop the class." It was a required class for a CS degree and when the student pointed this out, the professor said that it's still freshman year, feel free to switch majors and that they should shut up because they were interfering with everybody else who (unlike them) were actually trying to learn something.

Re: Teaching other teachers how to teach CS better

#77

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…

Out of interest, do you actually force them to follow pair programming best practice (e.g. periodic switching)? Or just put them in groups of two and let them at it?

Im not the person youre responding to but I have a similar experience and I usually let the pairs make their own decisions about how they work. I've found that to be many times more effective than "switch every x minutes" or interfering in any other way. Let them work it out. I only step in if there's a problem (students not showing up, refusing to work, etc -- which is very, very rare).

Re: Teaching other teachers how to teach CS better

#78
post #51

Earlier quoted context omitted.

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.

> I’m forced to waste my time doing the teacher’s job teaching simple concepts instead of learning anything new myself IMO you can't say you really understand a thing until you've taught it to someone else. Your teachers gave you the opportunity to hone your own teaching skill, something you will use your entire CS career. Just wait until you are a senior dev holding the hand of someone more junior than you. If you t…

> Your teachers gave you the opportunity to hone your own teaching skill

If I wanted a lesson in teaching, I would take a class in it. Teachers should teach the subject as advertised.

http://www.machall.com/view.php?date=2005-01-26

Re: Teaching other teachers how to teach CS better

#79
post #72

Earlier quoted context omitted.

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.

I was hoping for something more CS specific as that list seems to all be fairly generic pedagogy; it's been known for a long time e.g. that quizzes help memory formation and that more immediate feedback aids learning. One thing they mention that I think is a problem with CS is: > connect with student prior knowledge and beliefs I do not know how do do this in a group larger than about 6-8 (I'd say 2 pizza rule, but y…

I noticed that the pedagogical ideas were fairly generic too. That's why they work for me when I'm in a completely different discipline.

I think that taxonomy is a great idea. Maybe it's something that could be developed inside a department with a wiki?

Re: Teaching other teachers how to teach CS better

#80

Earlier quoted context omitted.

The analogy doesn’t really stack up, flying a plane is nothing like designing software or even managing software systems. Imagine if aviation had a few million kinds of planes to worry about where pilots were expected to modify their planes in flight, in might begin to resemble IT.

That's the reason why CS degrees teach core principles, not a collection of every possible platform and technology.

Yes, and teaching such very abstract things is very different from teaching flight.
Post reply on HN