Live data from Hacker News

Teaching other teachers how to teach CS better

cacm.acm.org

31–40 of 93 posts

Re: Teaching other teachers how to teach CS better

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

You completely, fundamentally misunderstood what I said, and also the difference between IT and aviation

Companies should be doing continuing education - random web searches are not the same thing.

I never mentioned a "mandatory curriculum, although that's possible inside a company based on their use of technology.

Actually, you sound like just about any Dilbert IT manager.

Re: Teaching other teachers how to teach CS better

#32
post #28
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.

The ultimate source of this is Aristotle... the original is (from memory), something like this: Those who can, do; those who understand, teach.

"What I cannot create, I do not understand" -Feynman

Thus teachers must be creators first. Out of 100 teachers I had, that applies to... 3?

Re: Teaching other teachers how to teach CS better

#33
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 students to not get caught up in dead ends.

In my own academic studies the teachers that were the most valuable to me were ones who nudged me in the right direction, and then mostly stayed out of the way and let my hunger for knowledge and results do its thing. But now I perceive a fundamental shift in higher education, one towards spoon-feeding in order to satisfy a strict curriculum, and I worry strongly that this sort of model is very dishonest and doesn't produce good graduates.

The biggest problem that I see in present-day academia is the bureaucratic desire to quantify and measure things, which might be reasonable if you see universities as trade schools, but is in my opinion doing irreparable damage. I'm sure there are some bad teachers out there, but the bigger problem I see is institutions that prevent good teachers from doing their thing, until only the bad ones remain.

Re: Teaching other teachers how to teach CS better

#34

Earlier quoted context omitted.

Maybe not "IT" because IT includes printer toner replacing and stuff but software engineers? definitely.

"Definitely" what? The parent comment called it IT, so I called it IT, but if use the more specific term "software engineer" I'm still going to say that most software engineering projects aren't likely to injure people when they fail. Software engineering just doesn't seem to fall in the category of jobs where you'd want to mandate ongoing training... jobs like pilots or psychologists.

Definitely SE is kind of job where people are constantly learning

a lot of them even in their free time.

Re: Teaching other teachers how to teach CS better

#35

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…

> something along the lines of guided self-learning.

I don't know about the solution of this problem, but giving programming challenges to students (in groups of two) is extremely effective. Ideally, forcing the students to use a different language each time. The evaluation is automatic and both the correctness and the speed of the solution over large inputs need to be evaluated. I've seen groups of otherwise passive and uninterested students spent weekends working really hard on a problem to try to beat the challenge.

Re: Teaching other teachers how to teach CS better

#36

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…

> something along the lines of guided self-learning. I don't know about the solution of this problem, but giving programming challenges to students (in groups of two) is extremely effective. Ideally, forcing the students to use a different language each time. The evaluation is automatic and both the correctness and the speed of the solution over large inputs need to be evaluated. I've seen groups of otherwise passive…

> 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 randomly assigned. Even if the worse one is trying their best to stay engaged and follow along, it's just hard to do if the other person is faster than you, and you might even feel like you're being a bit of a useless nuisance by asking questions when the other person is clearly capable of working on their own. (I've been on both sides of this in different contexts, BTW.)

But I imagine my intuition must be wrong since this is such a popular teaching method -- interested to read any research/counterpoints on the subject.

Re: Teaching other teachers how to teach CS better

#37
In my university every new faculty member needs to go through 200 hours pedagogical training and further 50 hours of training every 5 years. But it is unfortunate that these training programs are same for all disciplines and designed by pedagogical theory people with no CS or even science background. It was a waste of time who focus mostly on theory of pedagogy which is hardly applicable for CS.

Re: Teaching other teachers how to teach CS better

#38

Earlier quoted context omitted.

> something along the lines of guided self-learning. I don't know about the solution of this problem, but giving programming challenges to students (in groups of two) is extremely effective. Ideally, forcing the students to use a different language each time. The evaluation is automatic and both the correctness and the speed of the solution over large inputs need to be evaluated. I've seen groups of otherwise passive…

> 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 work to do, like presenting the solution, or writing a short report, and they can share that work as they see fit.

As a student, many years ago, I have been in both situations: the more skilled of the group who taught the other, or the less skilled that was taught (and worked really hard because I was ashamed to be a "useless nuisance"). Both experiences have been very positive in my case.

Re: Teaching other teachers how to teach CS better

#39

    Computer science is essentially a management science, and vice versa.
    ---- Lin Pengcheng
         Creator of Computer Science Management School
         Creator of Management Science Computer School
Software and hardware are factories that manufacture data, so they have the same "warehouse/workshop model" and management methods as the manufacturing industry.

With more and more CPU&GPU&other cores, the communication, coordination, scheduling, and management of the cores have become more and more important, becoming a key factor in performance. This is the best field of management science, and "warehouse/workshop model" is the best practice.

Success stories: Apple M1 chip + MacOS

come soon: Qualcomm, MS, Intel, AMD, Samsung, etc.

Reference:

The Grand Unified Programming Theory: The Pure Function Pipeline Data Flow with Principle-based Warehouse/Workshop Model

https://github.com/linpengcheng/PurefunctionPipelineDataflow

Re: Teaching other teachers how to teach CS better

#40

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.
Post reply on HN