I always thought you haven’t learned something until you know it so well you can teach it. But I can’t remember where I got that from, and it’s possible I’m just parroting something that I never learned. Hmmm.
Either way, the lamentation over learning how to program by getting “examples of variables, methods, operations, program flow, classes, etc.” and then crossing one’s fingers that the learner can make the “unassisted leap over a wide chasm”—viz. a person can be introduced to the main elements of a programming language and then somehow figure out how to write programs—was a motivating factor for the approach in the book htdp. I would recommend it for anyone interested in programming pedagogy.
I consider that I have learned something when my value judgments have changed, and I am capable of changing them through actions. For example, if I get a compiler error, I am able to make the judgment of whether the error is relevant or not, and I can change its relevance by modifying the code in ways that make it more or less relevant. If changes to me turn a previously relevant error irrelevant, or a previously irrelevant error relevant, it is because I have learned something.
In a way, this approach is actually epistemically vague because the “something” is generic. I cannot say whether I’ve learned [thing], but only that I’ve learned something. The definition for whether [thing] has been learned is most likely undecidable. I used to (~10 years ago) have a bunch written on that subject elsewhere, but couldn’t find it just now, and don’t want to talk out of my ass on the subject from memory.
I am reminded of this Feynman quote: “What I cannot build, I cannot understand.” Also, this story, also about Feynman:
Feynman was a truly great teacher. He prided himself on being able to devise ways to explain even the most profound ideas to beginning students. Once, I said to him, “Dick, explain to me, so that I can understand it, why spin one-half particles obey Fermi-Dirac statistics.” Sizing up his audience perfectly, Feynman said, “I’ll prepare a freshman lecture on it.” But he came back a few days later to say, “I couldn’t do it. I couldn’t reduce it to the freshman level. That means we don’t really understand it.”
I’ve also found that some concepts in Computer Science are couched so heavily in jargon to make it sound more impressive than they typically are (I’m looking at you, monads!)
There are two moments in which I feel that I’ve truly learnt something.
The first would be, when I make connections between two concepts which I learnt independently. For example, first I learned what a function was, then I learnt what a callback function is and then how to do an inline function. Then realizing I could define callback functions inline.
I also like to explain a concept to a imaginary person in my head or just myself. When I can’t answer my own curious questions I research and repeat the process. Also combining the explaining with using metaphors is a cool symbiosis of both moments.
They seem like a really cool teacher
I am being challenged, I am looking foolish, uncertain, and it is fantastic.
That they like being challenged and don’t feel attacked by it is so great. I’ve had too many teachers who loved being right and just felt attacked instead.
Imagine I had a conversation this morning with a report somewhat frustrated that teaching is so difficult. Learning is hard, teaching teaching is even harder.
I always thought you haven’t learned something until you know it so well you can teach it. But I can’t remember where I got that from, and it’s possible I’m just parroting something that I never learned. Hmmm.
Either way, the lamentation over learning how to program by getting “examples of variables, methods, operations, program flow, classes, etc.” and then crossing one’s fingers that the learner can make the “unassisted leap over a wide chasm”—viz. a person can be introduced to the main elements of a programming language and then somehow figure out how to write programs—was a motivating factor for the approach in the book htdp. I would recommend it for anyone interested in programming pedagogy.
I consider that I have learned something when my value judgments have changed, and I am capable of changing them through actions. For example, if I get a compiler error, I am able to make the judgment of whether the error is relevant or not, and I can change its relevance by modifying the code in ways that make it more or less relevant. If changes to me turn a previously relevant error irrelevant, or a previously irrelevant error relevant, it is because I have learned something.
In a way, this approach is actually epistemically vague because the “something” is generic. I cannot say whether I’ve learned
[thing], but only that I’ve learned something. The definition for whether[thing]has been learned is most likely undecidable. I used to (~10 years ago) have a bunch written on that subject elsewhere, but couldn’t find it just now, and don’t want to talk out of my ass on the subject from memory.I am reminded of this Feynman quote: “What I cannot build, I cannot understand.” Also, this story, also about Feynman:
I’ve also found that some concepts in Computer Science are couched so heavily in jargon to make it sound more impressive than they typically are (I’m looking at you, monads!)
There are two moments in which I feel that I’ve truly learnt something. The first would be, when I make connections between two concepts which I learnt independently. For example, first I learned what a function was, then I learnt what a callback function is and then how to do an inline function. Then realizing I could define callback functions inline. I also like to explain a concept to a imaginary person in my head or just myself. When I can’t answer my own curious questions I research and repeat the process. Also combining the explaining with using metaphors is a cool symbiosis of both moments.
They seem like a really cool teacher
That they like being challenged and don’t feel attacked by it is so great. I’ve had too many teachers who loved being right and just felt attacked instead.
Check out Arthur Koestler’s concept of bisociation
Imagine I had a conversation this morning with a report somewhat frustrated that teaching is so difficult. Learning is hard, teaching teaching is even harder.