Live data from Hacker News

Teaching other teachers how to teach CS better

cacm.acm.org

41–50 of 93 posts

Re: Teaching other teachers how to teach CS better

#41
post #21

Earlier quoted context omitted.

Working in IT but having a commercial pilot license, it's bizarre how continuing education in IT is non-existent, yet mandatory in the aviation world - and IT people don't even know it. To teach in aviation in the US, you need a Chief Flight Instructor (CFI) rating, where you demonstrate to an examiner how to teach the various maneuvers. IT could learn a lot from regulated industries like aviation. https://en.wikiped…

Education in IT is so continuous that people don't recognize that it's happening. Every use of google counts. You can either have a dynamic field or a mandatory curriculum. Once the curriculum is fixed, the field advances at the speed changes can be pushed into the curriculum, which is at best annually.

lmfao, pedagogical education is its own discipline and becoming a competent teacher takes proper education and training. Googling how to teach ain't going to do shit for you.

Re: Teaching other teachers how to teach CS better

#42
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…

> I studied CS over 40 years ago. I think I'm still deficient, at the end of my career. CS is hard. Name one system you worked on in your career that was “abstracted well” and built to the quality uncle bob thinks is good. I bet you can’t. Because they don’t exist. Not in the framework that this industry now measures “abstract well” in. It’s a square peg in a round hole. Writing software is more like composing music…

I don't think Bob's standards are preferable. Or, in the likeness of Yegge's Execution in the Kingdom of Nouns, I present:

void get_coffee() { /* ... */ }

void move_away_from_obstacles(auto what_to_move_away) { /* .... */ }

void place(auto object_to_place, auto to_be_placed_on) { move_away_from_obstacles(where_to_place); put_object_on(to_place, to_be_placed_on); }

void sit() { place(butt, seat); }

void prepare_mind() { get_coffee(); sit(); }

void get_opinion(int on_whom) { /* .... */ if (on_whom == UNCLE_BOB) { return create_opinion("too many short functions"); } }

void get_opinion_of_uncle_bob() { prepare_mind(); opinion my_opinion = get_opinion(UNCLE_BOB); return my_opinion; }

Re: Teaching other teachers how to teach CS better

#43

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…

How did you know to go to those lectures? Reputation or trying the first few lectures? Just the start of the course feels like it might not give a good enough sample.

Re: Teaching other teachers how to teach CS better

#44
post #5

From the title, I expected deepities. It failed to even meet that bar. It's a CS prof. Was the article generated?

This was printed in the articles section of CACM yet it has more citations than some peer-reviewed pieces. What article did you read?

Re: Teaching other teachers how to teach CS better

#45

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…

I also found courses that had discussions at lectures and prerequisite reading material to be the best, for more or less the same reason.

Re: Teaching other teachers how to teach CS better

#46
post #21

Earlier quoted context omitted.

Education in IT is so continuous that people don't recognize that it's happening. Every use of google counts. You can either have a dynamic field or a mandatory curriculum. Once the curriculum is fixed, the field advances at the speed changes can be pushed into the curriculum, which is at best annually.

lmfao, pedagogical education is its own discipline and becoming a competent teacher takes proper education and training. Googling how to teach ain't going to do shit for you.

Every time the "how did you get into programming" discussion comes up, a large chunk of people on HN report being autodidacts. It's far more widespread in programming than any other kind of profession or speciality. I feel this hasn't been seriously investigated or taken into account.

Not googling how to teach, but skipping the entire "teaching" process altogether.

Re: Teaching other teachers how to teach CS better

#47

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

I was swayed by the argument against working in pairs, then swayed back by your argument in favour of working in pairs. I think the key part that changed my mind was "two students that get along well with each other". I wonder if you emphasise this in your instructions to students? And if so, how?

Re: Teaching other teachers how to teach CS better

#48
post #46

Earlier quoted context omitted.

lmfao, pedagogical education is its own discipline and becoming a competent teacher takes proper education and training. Googling how to teach ain't going to do shit for you.

Every time the "how did you get into programming" discussion comes up, a large chunk of people on HN report being autodidacts. It's far more widespread in programming than any other kind of profession or speciality. I feel this hasn't been seriously investigated or taken into account. Not googling how to teach, but skipping the entire "teaching" process altogether.

The post is about teaching CS, not learning it. They are related but different disciplines.

Re: Teaching other teachers how to teach CS better

#49

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 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" one, and the "worse" one is keen to learn. That's the model for a good partnership that most people probably have in mind when they propose doing a project like this. I've just never actually seen a partnership work out like that -- it feels like it requires both members of the parternship have top ~quartile motivation/empathy/communication skills (which as you could imagine might end up being pretty rare among randomly selected CS students...).

In any case thanks for sharing your experience -- good to know that it actually can/does happen!

Re: Teaching other teachers how to teach CS better

#50

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

To me the key part is really this:

> There's often other work to do

IMO there needs to be somewhat of a give and take situation (which can also work on other angles with pairs that already like each other for whatever reasons).

When finding a balance is just hard, straight rewarding the more knowledgeable/faster half of the pair could work too, provided there is a reliable way to identify them and how much they helped their counterpart.

Post reply on HN