Conversations with a six-year-old on functional programming
byorgey.wordpress.com
byorgey.wordpress.com
If you're interested in learning some of the beautiful foundations of functional programming, I highly recommend checking out the lecture notes and assignments from his Penn CIS 194 class (http://www.cis.upenn.edu/~cis194/spring13/lectures.html)
There are other comments here that praise his patience with regard to teaching these topics to a child. I can say without a doubt he maintains the same patience with all of his students - not just his children. If you ever have the opportunity to learn from Brent (be from a course, blog, or talk), I would highly encourage it.
I'm glad to see a post of his making its rounds on HN.
How's the dept doing these days? Is Ferrer still there?
I'm glad that your education has served you well! I'd love to hear an update from you when you get a chance.
It's still a small department - I think there were <10 people in my class - but has seen an uptick in growth the last few years. They've made some really great hires recently - obviously Brent, as well as Mark. Both are great teachers and Hendrix is lucky to have them.
After completing that one, he recomended the NICTA github repo https://github.com/data61/fp-course/tree/master/src/Course
Disclaimer: All subject to IIRC
A good friend of mine was the grandson of a couple that ran a school for gifted children. When they retired, there was a video produced about their careers and, at one point, they were both asked what they liked best about their jobs. His grandfather answered, "Getting to speak to the children every day." His grandmother answered, "Getting to listen to the children every day. I always liked her answer better than his.
Because if it's the former, I'm impressed you have even one second to be on HN!
Which sounds totally plausible and correct, 'cept it'll take you awhile to get up to that sort of economy of scale :P
Did you know older siblings don't even get paid for the work they do?
The transition from zero to one is of course world-changing. But at one child, 100% of the connections in the sociogram connect to a given parent: zero economy of scale.
At two children they have each other, but that is only 1/3 of the children's connections when one parent is present.
At three, we're up to 50% of the connections that are child-to-child. At this point the sociogram is rich enough to become interesting.
Four => 60%. Eight => 77.8%.
But the family is poor enough to become boring!
(I can't resist a good pun.)
Anyway, kids aren't raised in isolation with their parents. Our two year old tot already has two kids that I would consider her friends; she mentions them when she's home, and she prefers spending time with them to spending time with other kids.
Yours is not the only worldview.
And with birth rates plunging worldwide, many now trending below sustainable levels, who will provide you with healthcare and other services in old age?
Maybe we need to look at our priorities.
I worry that if you try to dumb down things for kids, they might become interested in dumb things. :)
Also, as the OP mentions, it can be a fun "pedagogical challenge" to try to explain free theorems or turing completeness or MySQL sharding to a young child. And you may find a clever way to describe it, that they can easily understand, which is satisfying for both of you.
Do challenge your kids intellectually beyond their years and you might be pleasantly surprised. My daughter heads to CERN in two weeks to study anti-matter, and I have no doubt that our brief intro to algebra at a Home Depot has a small role to play in that journey. Maybe Star Trek did too :)
I got stuck thinking in integers, and quite quickly left the exercise as an oversight in writing the post (since X + y = even, X - y = odd is impossible for integers)
3 seconds into the first coffee of the day the realisation of my stupidity hit me in the face.
I feel like I’m missing something entirely, though...
x and y are more commmonly used to represent real numbers.
She spent her teens trying to get away from dad, why spend her working life there? :)
I have not read this, but it's from the same person who helped create "anchor modeling" and I find that quite interesting.
On a serious note, you may be right in that it's a simple call for attention, but at least with my kids those are the opportunities for the best instruction, because the kid is usually bored, curious, and wants attention. If you give said attention, and answer questions in a way that they can think through and reason about, they will grok stuff you never expected.
And much more likely: who's to say that the overstimulated little monster that asked 15 questions in 5 minutes doesn't need a little dose of adult life to encourage some self-play?
Explaining things to them and seeing the dawn of understanding in their eyes in easily my greatest joy in life. As a parent, I basically get to relive this xkcd[0], over and over, every day.
We take it to an extreme - we unschool[1]. We do our best to treat our daughters as any other member of the family, expecting to act as adults to the extent that they're able to do so. My nine-year-old spends much of her days right now playing Roblox and Star Stable, but even that is punctuated by her coming to us with random questions about things she's interested in. If I'm not head-down on a project I take the time to explain as best I can. If I'm otherwise occupied I always at least take the time to say "Go search for <insert keywords>" and follow up with once I'm free.
The results have, so far, been incredible. Our oldest was a late reader by the standards of the testing done in government schools, but once she ran into something she wanted to do that could only be accomplished by reading, she achieved fluency more quickly than I would have ever expected. For what it's worth, that "something" was an online RPG where she had to do quests to progress. In order to do that, she had to be able to read the quest text.
These days she's engrossed in the "Pegasus" series by Kate O'Hearn, and devouring them at a rate of ~1k pages per week. She'll have finished the series by the end of this week and I'm hoping she'll pick up Asimov's "Norby" series next. If not, she'll find something else that interests her and continue reading well into the wee hours of the morning I'm sure.
0: https://www.xkcd.com/1053/ 1: https://en.wikipedia.org/wiki/Unschooling
Virginia requires a Notice of Intent to be filed with the local school district and periodic standardized testing - there are some way around each of these things, but that's the course that the vast majority of homeschoolers take. It's annoying but not onerous.
Arkansas basically requires nothing at all.
It’d be nice if traditional school had a better balance where personal interests could be explored in a structured and formally accepted way.
In my experience as an unschooled child who was in constant contact with the parents of other unschooled children, and other unschooled children, if a child isn't interested in something, that almost always changes over time. One example was where one kid did not wish to learn to read, until about the age of seven where he taught himself to read, without much struggle (and without parental intervention -- the parent found out about it because the kid kept the books under his pillow!), simply because he found a topic he was so interested in that he wanted to learn more about it.
I also know someone else who did not learn to read until the age of 6 or 7, after which he rapidly caught up, and at the age of 9 or 10 he sped through all three of the Lord of the Rings series, and was an avid reader. These are only two examples of something that was typical within unschooling circles.
One fundamental idea behind unschooling is that children develop at different rates, and thus in some cases, trying to force them to learn something before they are ready to learn can actually cause damage -- in a lot of cases this damage isn't visible, but that doesn't mean that it isn't there. I experienced this first hand, with a primary school maths teacher. This mathematics teacher misexplained things, and would constantly pile on the stress. It took me 6 years of unschooling to de-stress enough with regards to mathematics enough to simply add up efficiently (it felt like punching through a mental brick wall, I was completely unable to manipulate the numbers, despite being able to see them). Now at the age of 20 I am still filling in gaps in my mathematics education, through the right aids.
Something I would add is that most people learn the skills that are required for them in day-to-day life, so even if a child is not interested in mathematics, they tend to learn the basics just by helping out their parents with shopping. The most important thing that a child needs in their life is the willingness to learn, which is a skill that school rips out of our children.
And then I was royally screwed. I always had enough grades for teachers to pass me on almost all subjects, but in my last year of high school I was really stressed out about what I wanted to do at university, and stopped making an effort for a lot of subjects at high school that were suddenly going at a pace I couldn't follow in "zero interest mode". It took me two years and a detour via a central government exam to get my degree.
Then I was screwed again in my final year of university college (software development). While I did great in the actual software development courses, I couldn't get myself focused on subjects I didn't care about (because I never had to, so I had absolutely no study methods for things that don't interest me). So of course after three years when I should've had my degree, I had nothing. Even though I had been to all classes and seen everything, on some subjects I just didn't pass because they didn't interest me at all.
So I just quit and started working, which was absolutely fine. I found enough at work that interested me and I became a pretty decent developer in no time. 26 now and I'm still coding cool stuff, so I'd say it ended well.
Based on how my education went I'd say unschooling would've been a great fit, but I really wonder if an unschooled kid would be more or less likely to encounter the same problems I have. While for programming you can easily get your professional life going without a sign of a degree, for many fields that's not a possibility and you will have to study (a lot). If you've never _really_ had to just process and memorize things that don't interest you, that might get really hard. I fear that being unschooled might be great at the start, but there's a point where (for most fields) you have no choice besides going into a classic education system, and you'd be less prepared than other students...
Not trying to be snarky, but genuinely interested.
Did the "inability" to focus on things you're not interested in impede you later in life, e.g. with taxes, social life, exercise etc?
Taxes and administration: not that complex in Belgium so I can't say much about that, but I value correctness a lot and that makes my administration easy to do (I never ever postpone doing my taxes, paying bills, ...). I usually find a way to make things interesting too, by keeping my administration as digital as I can. I'm always an early adopter.
Exercise: I struggle with this. Once I get going it usually goes quite well (but always have to combine it with something that does interest me, for example running with "Zombies, Run!", a sort of interactive audiobook/running trainer combination), but tend to stop completely if I hit roadblocks.
Social life: maybe. I have a great core group of friends that I've known since high school but that's about it, and I am not great at forming deep bonds. I have some work friends, but not at the level that I'd invite them over for dinner on a random week night. It's not at all at a problematic level though. I don't really know. I tend to be extremely honest and open about basically everything, and that scares / freaks out a lot of people, so it's not easy to make new good friends.
If you want to chat more, feel free to message me on whatever messaging platform you like. My username is always Ambroos or AmbroosV.
This is very interesting to me. I come from the UK, and the government's attitude to education is contrary to all of the pilot schemes, studies, and research I've seen. Namely they seem to have warmed their heads with the idea that the only way to advance learning is to put the student into the education system earlier and earlier. Rather than waiting until later (when they are ready), and improving material concerns so that good nutritional health from birth onwards is available to everyone.
I was initially concerned about this as well, but my experience so far is that it's not really an issue. We test regularly, both formally and informally, which I feel is very important so my wife and I have a good understanding of where she is relative to her peers. With the exception of the "sight words" portion of language testing in K-3, she has continues to be far ahead of them.
"Child-directed" doesn't mean "no parental involvement". Where a traditional school manages the things that she would be taught, we manage the things that she's interested in. We take care to do things as a family that expose her to skills that we think she needs to know.
If that sounds time-intensive... well, it is. My wife doesn't work outside the home and I work remotely. It's substantially less time-intensive than building a traditional curriculum and teaching it daily, though.
One of the things you figure out is that some kids aren't interested. And if your kid isn't interested in thinking about prime numbers, you're going to be hard pressed to change that. Conversely they will have interests that you don't share, and it's going to be harder for you to participate meaningfully in that beyond being generally supportive. They are individuals that way.
I ask him to tell me about what he is learning, and he patiently tries to explain it to me, but I just nod along because I have no idea what he's talking about.
Most everything beyond is attaching labels to the frequencies and combos. Just as we have names for frequencies of light (red, yellow, blue) and patterns (gradient, checkerboard) there are names for frequencies of sound (A, C#, E) and their combinations (major, minor). There are also more esoteric terms (chiaroscuro in painting, neapolitan flat 9 in music) for people who've spent so much time on a subject that the basics have become boring.
Oh, and there's also divisions of and patterns for time in music theory. E.g., "hold this note for twice as many milliseconds as the previous one".
There have been some good resources here on HN: https://hn.algolia.com/?query=music%20theory&sort=byPopulari...
@jimbokun: It might be easier for your son to express what he's learning if you can catch while he's got e.g., a piano or guitar at hand. Humans have a hard time generating compound musical waveforms using just their vocal folds (though it can be done to a limited extent as in Mongolian throat singing). Explaining it while playing it will probably also help cement the concepts in his understanding ;) .
There are 12 unique notes in an Octave (yes, octave means 8; ignore this for now). On the 13th note, the octave repeats itself (counting is 1-indexed). But of these 12 notes, only specific subsets are combined into specific scales.
The most popular scale is the Major Scale which follows the pattern "Tonic Major_2nd Major_3rd Perfect_4th Perfect_5th Major_6th Major_7th" (there exist other notations). The Major Scale imparts a generically-happy mood. But there's other scales, including: the Chromatic Scale; the Major Scale; 3 varieties of Minor Scales; 7 varieties of Diatonic Modes (including Major and Natural Minor); the Pentatonic Scales; etc. E.g. Smoke on the Water, Sunshine of your Love, and Fight for your Right (to Party) all sound similar because they use the Blues Scale.
Once you familiarize yourself with the intervals, scales, and their various notations (which is its own feat), you can jump into the meat & potatoes of Music Theory. Which mostly consists of analyzing Chord Progressions and Key Signatures in order to find commonalities in mood. Chord Progressions and Key Signatures determine a song's general mood. It's too complicated for me to summarize quickly. But it's where all the interesting stuff happens.
N.B. I've deliberately omitted various details for the sake of brevity. E.g. I could have mentioned Time Signatures, Rhythms, Tempo, Dynamics, etc.
Is there a good YouTube video introducing some of these concepts using popular songs?
Another thing to keep in mind is that musical patterns accrete into genres. And there's a wide variety of genres. So it's difficult for any single video to cover everything in detail. I think it's more common for videos to cover the patterns of a particular genre. E.g. if you're interested in Blues, consider searching for videos about Blues.
-----
https://www.youtube.com/watch?v=xm4LO22-cyY I remember the above Vox video highlights a unique chord which sounds "melty" and is often used in holiday music. The chord is known as a "minor_7th, diminished_5th" aka "m7d5".
https://www.youtube.com/watch?v=5pidokakU4I This video is about the infamous "4-chord pop progression". It's ubiquitous on the radio. Elitists and connoisseurs tend to look down on it for appealing to casuals. The progression is "I V vi IV" (capital denotes major chords, lowercase denotes minor chords).
https://www.youtube.com/watch?v=kfjXp4KTTY8 When I think of the "12-Bar Blues (Chord Progression)", I think of Stevie Ray Vaughn's "Pride and Joy". But there's tons of educational videos on this. It's very popular in not only Blues, but Rock & Roll. It's "I I I I; IV IV I I; V IV I I". But things get interesting here because musicians often substitue "jazzy" chords like Dominant_7th's (aka V^7). For bonus points, look up "tritone" (N.B. Rock is truly the devil's music).
https://www.youtube.com/watch?v=dISEg1ydQoM I'm not actually sure what song I'm thinking of, but there's a particular trope often used in Hollywood films to denote a bullfight. It's based off the Phrygian Mode, which tends to sound very "spanish-y". In lieu, I've linked the the first bullfight track I found.
https://www.youtube.com/watch?v=X4fa44_sq2E A genre I'm particularly fond of is House. Which is often characterized by its "Four on the Floor" drum beat. It's very simple, just continuous quarternotes of kicks. The rhythm is sometimes denoted "1 2 3 4" (where the structure of a single bar is "1 e & a 2 e & a 3 e & a 4 e & a"). The above video is Daft Punk's "Superheros".
And then there's Jazz. Which is hard to explain, because it's the genre where anything goes. And besides jazz, there's lots of other techniques and obscure genres that I can't possibly cover in a single post.
---------------
In any case, I'd suggest looking up a particular genre you like and studying it. If you're a musician, learn scales. 90% of pop music these days uses either Major or Natural Minor. But you can really expand your horizons by learning other scales. It's boring, but it builds a strong foundation. Like how a basketball player will run laps rather than shoot freethrows all day.
Guess what... A perfect fifth is a 3:2 ratio/interval of frequencies (+/- a small allowance for the historical/mechanical constraints that lead to well/equal tempering unless we're talking modern micro-tonalism in which case no adjustments are necessary). The inverse, 2:3, is a perfect fourth.
The example frequencies I gave correspond to concert-A, then E and D. I took a very simple/short path from intervals to harmonic function/progression to try to give a taste of the meat and potatoes before providing a link to additional sources.
I avoided music theory terms because that would've been a circular definition for any readers who had no understanding of even the basics.
In light of your post, I should've added a sentence or two about mood (major = happy, diminished = tense/scary) and compared that to how you can make a 'warm' picture using reds, oranges and yellows or a sombre picture with darker colors, etc.
See my other comment.
Similarly, it seems like studying the frequencies and their relationships illuminates at least a portion of what music theory covers.
It is mostly a descriptive theory in that it studies musical patterns (rhythm, melody, harmony, intervals, scales, modes, chords and chord progressions) but it can also be prescriptive (for e.g. - don't use certain note intervals in a guitar solo if you are using certain chords in your song)
None of this has anything to do with Physics. Music Theory is completely abstracted from the physical world.
Already learned some things, thanks!
If you can provide a better overview or point out how it's anything more than a bunch of terms/shorthand for sonic patterns, I'd love to be informed.
It might be easier for your son to express what he's learning if you can catch him while he's got e.g., a piano or guitar at hand. Humans have a hard time generating compound musical waveforms using just their bodies/vocal-folds (though it can be done to a limited extent as in Mongolian throat singing). Having him play the sounds as he explains them will probably also help cement the concepts in his own understanding ;) .
You can't start telling your child about maths if they're busy doing something else. All you can do is wait for a moment when their curiosity spots something and try to feed that.
Even when you catch their interest it's easy to break it if you can't explain it, so los of kudos to Brent for navigating it perfectly.
That is the most depressing thing I've read in a good while.
If it feels better though, as the youngest of three children, I find I was allowed to wander a bit more, and that has actually proved useful.
I grew up in a family with 7 kids and my youngest sibling is just 12 years old. I remember when my younger set of siblings were born, I was thinking "I'm going to teach them EVERYTHING I've learned at a young age, and they will be way ahead of their peers." I failed to grasp just how much of their personality is ingrained in them from their DNA and that they might not have all the same interests as me. It was a great learning experience though -- when I do have kids, I'm not going to try and shove my interests down their throat. I'm going to pay attention to what they are drawn to and give them as many resources as I can so they can pursue that interest as much as they desire.
Is this really true? I hope not!
Interests can be encouraged because there's some flexibility in someone's natural tendencies. It's the old "nature vs nurture" discussion, about which one dominates the other.
Perhaps the above poster's sibling looked for other interests because the poster had already 'taken' whatever interests they were sharing. But perhaps not - it's hard (impossible?) to know.
If I had a strict clock-in/clock-out job, and only had limited time to run errands, I'd have a lot less patience for waiting for my kid to do stuff or answering her questions.
I consider myself very lucky that I have that privilege and can pass that on to my kids.
Also the 33 point on the post tell me at least 33 more people found it interesting than did not.
I'm sure we can both agree, though, that the gold standard for statistical significance is 30 Helens. 33 HN users is nowhere close to 30 Helens.
It's great. But I think we missed the balance a little - there are so many life experiences that are out of reach that we parents experienced when we were kids. Yes being tight with our kids is awesome - but when they get old enough to spread their wings a little, and when they're inquisitive about new things, then supporting that is exceedingly difficult when you're of low means.
School skiing trip? Not a chance, way out of our price bracket. Holiday abroad? Same, the interest is there, they're keen to learn geography/languages/culture. Piano lessons? Same, we've got a keyboard, one child is really keen and show some ability but we don't have means to support him in that and let him find fulfilment through that creativity.
But I do get to talk Fibonacci series; build fires in the woods; teach them about how aliens with 0, 4, 16 fingers count; but buy an up to date globe, or take them for a train ride, or go on a boat, or have a pet, or visit a mountain, ...
My problem is not time so much, nor fostering inquisition, but resources to develop the questioning in to solid foundations. Our kids are not the free-spirits of knowledge-hunger we anticipated because we instead have to follow economics.
People don't give children enough credit for what they can really understand.
I remember distinctly teaching my oldest daughter how to do a basic cipher - like direct substitution and she got it immediately. I also taught my son how to do pin bumping and pin counting/picking on locks with my lockpick set. I even bought him a transparent set of master locks to practice on and he would sit for an hour at the age of 4 picking those locks. The obvious downside now is that he knows how to get into everything!
Very cool to watch what are basic principals being applied at the very basic level.
Then yesterday she asked: "Why couldn't you call gramps when we were on the plane?" I told her that the mobile phone wasn't close enough to the receivers on the ground.
It amazed me that obviously some facts had been stewing for a week in that tiny head. And out comes another question.
One of my biggest failings as a parent has been to assume that my children will learn things somehow without me teaching it to them. If anybody learned 1/3 of what my mother taught them in detail, they learned a lot.
Just goes to show, our intuition works on linear types.
>> I think he was just stuck on the idea of the function doing something arithmetical to the input, and was having trouble coming up with some sort of arithmetic procedure which would result in 6 no matter what you put in
don't really seem, to me, like they can explain what's happening -- f(x) = 6 is trivially easy to express in terms of arithmetic operations being applied to x. If you assume that a function that multiplies by 2 is intuitively ok, what's wrong with a function that multiplies by 0?
f(x) = 0*x + 6
EDIT: Or even, if multiplication is a problem, f(x) = (x - x) + 6
Obviously the fact that it doesn't seem to have any visible effect on the input -- and people expect the input to be affected.
Your comment is more of an indictment of identity functions than dimension-losing functions.
If you don't act on the input, you have an identity function, not a constant function. Constant functions must alter their input whenever it doesn't match the constant output. Nobody ever complained that the problem with Procrustes was that he didn't do anything to the guests in his bed.
And in the other direction, I don't understand why you want to characterize "multiply the input by zero" as an action that "doesn't do anything"? In what sense would that be true?
const :: a -> b -> a
const a _ = a
f' :: a -> ()
f' = const ()
Now I can give `f'` anything at all. Can you try to explain the action of `f'` in any way but that it ignores its argument?Easily:
f(x) = 20
No action on the input -- discarding the input is not an intuitive action for a 6-year old that just got a handful of of ax+k and xk + n style examples.
>Nobody ever complained that the problem with Procrustes was that he didn't do anything to the guests in his bed.*
You seem confused. Procrustes operated on his guests, which is neither the identity (they would come of unscratched) or the constant function (in which the same person or thing would emerge out of the bed).
Their height in the end was the same, but that's not the argument to the Procrustes function -- their overall body was.
>And in the other direction, I don't understand why you want to characterize "multiply the input by zero" as an action that "doesn't do anything"? In what sense would that be true?
Obviously in the intuitive sense for a 6-year old -- which is what we're discussing, and which was based on some operation on the argument that resulted in a different value each time, not degenerate versions of functions like the identity, constant, 0, etc.
(That said, it "doesn't do anything to the input" in the sense that it's not dependent on the particular input. 2x gives you 4 and 10 if you pass 2 and 5. 0x gives you 0 whatever you pass it, so could just as well be a constant fx = 0).
Fixed, for the sake of corresponding more exactly with the challenge. Not that it wasn't clear what you meant :)
It wasn't "what would the result be" that eluded the child (or those students).
It was the question "in what way is this an operation on x" -- which in their minds was intuitively, put x in and add/subtract/multiply by something(s) to get another result.
fx=K, fx=0, or fx=x didn't seem as substantial enough transformations (given the other examples) to qualify with their notion of a function.
So, is it that it is linearly typed, or that it is greedy and wants to use all inputs given at least once?
Or, are those the same thing?
But, your statement is true for all real-valued linear functions AFAIK.
In finite dimension however linear functions are continuous
So much for teaching year olds. This is not rocket science, but mathematicians (almost inherent) inability to have language skills makes it seem so, notably.
same but different:
6+x/a, a->infinity
imho constant is a special case of linear
def get_my_age():
return 21
The students' reaction to this in office hours can be... interesting. I am curious how many of them actually follow the comment at the bottom of the question, and what they think:> Reflect on the difference between creating a variable with a constant value and creating a function with no arguments and a constant return value.
Up to you to decide if this has any pedagogical value. The real learning objective was to "write a function that has no arguments but returns a constant value", so getting them to draw big conclusions about the nature of functions and values and so on is outside the scope of this little activity.
This is - or at least might be - ambiguous. Current age as of implementation time or current age as of function invocation time? And while a result in whole years is a pretty natural and obvious choice for the age of a person in absence of an explicit requirement, it is certainly not the only sensible choice.
Expressing "age" in whole years is acceptable in English, but using a decimal would be highly defensible. That's an issue of grading though.
This is a problem I have with certain parts of computer science and math education. Everything is encouraged to be exact, then, suddenly, variable names are used inconsistently, niche cases are ignored arbitrarily and explained with essentially referring to "common sense".
Software engineering is all about mapping dirty nuance to formal systems.
use constant PI => 4 * atan2(1, 1);
under the hood becomes sub PI () { 4 * atan2 1, 1 }
http://perldoc.perl.org/constant.html#TECHNICAL-NOTESWhen my daughter was in 4th grade, I volunteer-taught a group of pull-out 4th–6th graders, so that she could have some peers to do math with.
You might enjoy this set of math worksheets I created for them. https://www.scribd.com/document/15720543/Squarrows [EDIT: now also at https://drive.google.com/open?id=1hfzm3Rvm4xpwp_xHUKBHxuIEgf...]
I was learning category theory at the time. I gave them some element-chasing problems so they could work on the same areas I was studying, although at a different level of abstraction.
We also did some stuff on permutahedrons, and relating single-character-replacement paths (I think Nabokov calls these “rooks path”, when each step is a word) from AAA → BBB, to geometric cubes, and 2³, etc., but I didn't collect the worksheets for those into the same document.
I'm currently teaching an introductory programming course using Python (for people who have never programmed), and the level of abstraction you are using in your worksheets inspired me to actually update the exercises on my worksheets I'm using for the course (e.g. break down concepts even further and use more repetitive tasks to actually help students get the hang of these concepts).
Thanks a lot for sharing your ideas!
I told him that a number X is composite if you can fit X apples into buckets and end up with the same number of apples in each bucket.
I drew 6 apples and asked whether they could be divided into buckets with an equal number of apples in each. It was immediately obvious that they could. My son circled one group of three apples, then another group of three apples.
Then I drew 7 apples. He realized that you couldn't divide 7 apples into baskets and have each basket contain the same number of apples.
Voila! A prime number.
Then we started talking about the frequency with which prime numbers occur on the number line, how important they are to fields such as cryptography, and the existence of dense Bragg peaks among primes in judiciously chosen intervals. By the end of the conversation, he had discovered a new recursive prime generator and submitted a paper on it to arXiv. Who knew?!?
Wrong; X is composite if you can fit X apples into buckets and end up with the same number of apples in each bucket, with at least two apples in each bucket.
"You gotta tell the children the truth. They don't need a whole lot of lies. Cause one of these days, baby, they'll be running things." - Jimi Hendrix, "Straight Ahead"
There are “kiddie” versions of everything from History to to Music Theory to Grammar. It used to really frustrate me in undergrad how many things taught as almost moral absolutes were upended the following semester.
I sort of get it that even in junior high and high school, the teachers don’t really know anything beyond the kiddie version, so that’s what gets taught.
But at the college level, there’s no excuse for that. There’s a certain amount of science envy that some liberal arts professors have. They want to be able to say that there is one and only one way to understand a historical event or way to compose music.
Milton Babbit was famous for this in the music composition world and argued that music needed to be “elevated to a higher form like that of math or physics” and that no one expects advanced math to be accessible to lay persons. Therefore music shouldn’t be comprehensible by anyone who doesn’t have a PhD in music theory or composition. This was actually a pretty popular attitude in the “classical” music world from the 1950s to the early 80s, and the music written during that time reflects it.
Sorry to get so far off on a tangent, but while that specific fad has come and gone in music composition, there remains an inferiority complex among liberal arts academia that is extremely problematic and a general attitude among professors of all stripes that some people just can’t handle the truth: that outside of religion, there are no absolute truths.
Getting back to the Hendrix quote, I absolutely agree. Teach children as much of the truth as you know. They can take it. In my own experience teaching violin, I’ve found that I get the best response when I treat the students the most like adults. About 20 years ago I started bringing in little vignettes about music theory and history with my youngest students (4-6 years old) as a break between lesson segments where we were focusing very intensely on specific violin techniques. When I realized that they enjoyed both the context switch and the color commentary about why exactly we do these kinds of things, I brought more and more of that to the table, and it’s been very successful.
Obviously, this isn’t a robust study, it’s not meaningful in a larger scale, and it doesn’t prove anything at all.
But if the theory is that young students can handle a lot of uncertainty and a lot of advanced material at a young age, then my experience is, at least, not evidence that it’s false.
Deep down inside, I think that we need to be a lot less careful, protective, and hand-holdy about what we expose our children to. They can handle it.
Music academics who envy scientists or engineers have a misplaced envy. They should properly envy those who fill concert halls and sell records. Just as does many a scientist or engineer who plays some instrument on the side.
[Now, why op didn't use pidgins and pidgin holes, I'll never know... ;-) ]
Your six year old came up with a new recursive prime generator over the course of a conversation introducing him to the concept of primes, and then submitted this as a paper to arXiv? Do you have a link to this paper on arXiv?
This part was sarcasm.
At least that was my reading and it gave me a chuckle.
Although there may be a useful metaphor here that the solutions are often easier or more "obvious" than they seem, and people often get lost in the details and busywork, missing the forest for the trees. So having a simple (but receptive) wall to bounce ideas off of (such as a 6yr old) helps break through the noise to focus on core / fundamental / primitive ideas from which more complex breakthroughs spawn.
I get the joke, now that I know it was a joke. You never know who's on the other side of the wire, and for all I know you might have some genius kid. My 5 year old is into Nerf guns and Mario, but again, this _is_ HN...
Anyway, I'll take my downvotes and move on. Thanks for sharing the story, I might try explaining it like this to my kids!
Edit: oops thought I was replying to jawns
And "1xN doesn't count" can be expressed nicely as "it can't just be a line", or "the line must be folded up into a shorter rectangle [because more compact shapes are nicer]"
> once the guesser thinks they know what the function does, the players switch roles and the person who came up with function specifies some inputs in order to test whether the guesser is able to produce the correct outputs.
In Zendo when the guesser offers the wrong rule, the 'master' must tell them an (input,output) pair where the guess disagrees with the rule the master had in mind. Then play continues.
The trouble with most math I've encountered isn't the concepts, it's the quality of the abstractions we use to represent and interpret them.
The best(worst) example I can think of is the Alice/Bob description of cryptographic protocols, where somebody's idea of teaching is, "let's take these symbolic representations and instead of just shouting them at you slowly, I will obfuscate them with a set of conceptually unrelated words and repeat the representation word for word in a more patronizing way."
Great piece of writing.
The reason that Alice and Bob are introduced is because they are different entities and each has different powers, restrictions and goals. If you want to do a correctness or security analysis of a protocol, introducing and defining these parties is hugely important and useful. Otherwise, its very easy to make mistakes about where information is in the system and how it is being manipulated. More generally, there is a philosophical approach called operationalism [1] that demands that all science theories be couched in terms of protocols so we don't make mistakes about what they say.
When the only thing you change is to personify A, B, and E in your narrative description of a logical protocol, you are not making an analogy or an abstraction.
Sequence diagrams, BAN logic, UML, pseudo code and other protocol notations are not teaching analogies, they are specifications. Some more useful than others.
Teaching analogies and abstractions are more of a mix of use cases, literally analogous functional relationships, black boxing, edge cases and boundary conditions. The "why" behind the "how."
That Alice and Bob can be replaced in every situation with (A) and (B) means they are not abstractions or analogies, and are therefore patronizing cartoons that obfuscate useful information.
They are illustrative examples that help with visualization and connecting the theory to an interesting use-case, which taps into most humans' natural preference visualization, socialization, and relevance. They aren't patronizing, they are humanizing.
Do you also feel that speaking in English is a "patronizing" way to communicate, since everything you say could be expressed in mathematical symbols?
Procedural thinking is something that anybody who knows socks come before shoes can do. Conditionals can be understood by anybody who wears different clothes on a weekend than on a schoolday. Loops can be understood by anybody who can eat a bowl of soup by drinking a single spoonful and then doing that again and again until the soup is gone.
Kids can definitely engage in computational thinking from a young age. We just need to offer them the opportunities to do so.
http://heinrichhartmann.com/blog/2016/06/12/Box-Counting-Ari...
It's a great joy to work with such gifted young minds.
Perhaps you know this and used "gifted" in its more euphemistic sense. In any event, I mention this not to correct you but to address the parental anxiety engendered by examples such as you gave.
[1] Depending on the activity and age of onset, they can be so strongly correlated that attentive educational professionals would recommend diagnostic tests to identify any condition (often some category of autism) and permit early intervention to minimize the negative developmental aspects.
Being precocious doesn't mean autism, and no professional SLP would "freak out" at an early reader.
Being smart is an "abnormality", and autism is not "handicapped general intelligence".
Warning signs for autism include obsession with letters and numbers without understanding meaning, not being able to reason about math and discuss mathematical topics.
And I never said "early reader", I said "independently ... too early". Both qualifiers were intentional and important; in particular, I very much intended "too" to be non-specific.
And you're wrong about behaviors like hyperlexia, and wrong precisely in a way that proves my point. Hyperlexia also strongly correlates with obsessions with letters and numbers, but they're distinct phenomena. The latter is an even stronger indicator of autism, but many times hyperlexia is what both parents and others will take notice of first. (Which is a very important point--for this and other reasons, a young child that is both hyperlexic and shows obsessive traits, only the former is likely to be discussed in anecdotes about children with surprising abilities.)
My whole point was that for many of the examples and anecdotes you stumble across on the internet and in discussion, especially the more extreme ones, keep in mind that the children may have other, debilitating developmental abnormalities. Of course, it would be better if these stories received little or no interest or if people didn't naturally internalize these anecdotes in a way that leads to anxiety in their personal lives; but that's not how the majority of people naturally behave.
Regarding the alleged condescension, I possess professionally diagnosed traits that make me "gifted" in many senses of that word, including the euphemistic sense. What I find condescending is how people use "gifted" to elide the complex reality, rather than to put in the effort to discuss things in more concrete terms (i.e. with greater specificity and context), which is really the only way to both avoid prejudice and misunderstanding while being honest and respectful.
Back to my original point: there are many more ways for things to go wrong than for things to go right. Similarly, abnormal faculties often coincide with abnormal deficiencies--were it otherwise genetic evolution dictates it wouldn't be abnormal. That basic calculus means that when abnormalities emerge, all things being equal and long before we can know anything about how things will play out individually, it's not rational to be envious or given to feelings of inadequacy, which is precisely what we're doing, intentionally or unintentionally, when we're drawn to stories about precocious behavior.
It was eye opening to come to learn how my spouse as well as other people I've spoken with who have studied various aspects of child development have a very different perspective on abnormal and out-of-order milestone development. At the same time, these are the people least likely to construe debilitating abnormalities in the same negative light as wider society. But they understand 1) the cold, hard calculus and 2) that any abnormality, whether widely construed as positive or negative in society, comes with a real, additional cost in time and attention, particularly for attentive parents who wish to ease their child's transition to independence given the harsh realities of the world. Simply recognizing and internalizing differences so as to avoid confusion later on in life is a real burden on everybody involved.
Well, maybe the 3 year old still has a chance.
Examples are such a useful tool to explain complex subjects and make them approachable.
https://www.google.com/search?q=%22The+full+documentation+fo...
Since then I’ve been thinking of a wikihow- or w3schools- like site that explains a CS50 level class online and can expand to reach Python, or Go or another language in depth. A second parameter to teaching is the pace - the speed of lecture and the steepness of the learning curve. Maybe we could structure a slow or fast paced versions of each module and the viewer can pick or customize a track for themselves. Is anyone interested in joining or contributing to such an effort?
my cabinet maker father can't spell a sentence without making four different mistakes in his native language, and my social worker mother literally grimaces with pain anytime something resembling math is distantly mentioned
It's meant to "simulate scientific research", sorta: one player ("God" or "Nature") comes up with a secret rule for what cards are legal to play in a given situation, and then the other players take turns playing cards to figure it out. It's a lot harder than you think, even with quite simple rules. (The scoring system is meant to reward a "God" player for coming up with a rule that's not obvious but still guessable.)
I dont want to be one of those parents that pushes their kid to the point that they dont enjoy learning or suffer socially.
Asking for a future me: how do you give your kid the best chance / environment to develop socially, but still enjoy learning & embracing the nerdier things?
Also we send my daughter to a violin school where they teach the suzuki method which has a fairly nerdy type of group of parents that go there.
So it means she's in a school that accepts most types of people whilst exposing her to nerdy things outside of school.
Curiously I found that a lot of the parents who send their kids to a Steiner / Waldorf school tend to be nerdier. The best example was a couple where the mother was had a Philosophy degree with a Physics PhD and the father travelled around the world as a street puppeteer.
[0] That's not to say that there's no correlation in the real world between parents trying to steer their kid to be more curious and the kid growing up to be more curious, just that there's no causation because both effects are caused by their shared genes.
Could it be used to create a functional programming language, easily understood by non-programmers or beginners , so they too could take a program and adapt it to their needs ? Does such language exist ?
They're claiming to get good results teaching young people a number of important topics, including coding. They're also either using Pyret or planning to use it.
That's why Excel works for so many people -- the internal and intermediate states can be as visible as the user needs or desires them to be. And those users seem to have no problem chaining together multiple cells into what is essentially a very complex function.
> Math should be taught in prefix notation if u ask me.
Perhaps it should, but it's not.
Or was this whole post sarcasm, and it was done so well that I missed it?
EDIT: After some googling, TIL humblebragging.
https://en.wikipedia.org/wiki/Joy_(programming_language)
(Shameless plug for my own implementation: http://joypy.osdn.io/)
I don't know, but I'll try.
It's simple, small, and fun.
First, everything about it is simpler than most other languages. (It may be the simplest useful language, e.g. "Brainf*ck" is simpler but impractical.)
Second, there are many small basis sets of functions that provide Turing-completeness. Meaning that you only have to master a few functions to be able to build any possible function.
Third, developing code in Joy is very like a simple puzzle-solving game, it's very fun.
I may be teaching it to non-programmers in a kind of seminar or course soon, so if you are really interested in real-world data please check back on the Thun site in a month or two. Feel free to get in contact with me through that site as well.
What I'm actually trying to say is that brains are simply better at learning to grok machines than machines are at figuring out how to brain.
"there's a thing called polymorphism, and it means 'of many forms', what it means is that if you put the thing in, you're guaranteed to get a specific type of thing out, but it might be different depending on what you put in. So you put words into the machine, and letters come out, but if you put lists of numbers in, numbers come out."
I _hated_ it; felt patronised by the illustrations of these machines, so I rebelled by trying to come up with a different correct solution - aware that there were infinitely many answers given just a few example domain/range pairs.
But if anyone's interested in them for a car journey or some time you can't play this game aloud, there ought to be examples available online aimed at teachers.
I had a similar experience when I was in school and it really stuck with me. Kids love this shit, they just need it in a way that lights up their minds a bit.
> if 4 is prime then all numbers are prime
Is a true theorem (and things along these lines)
>Is a true theorem (and things along these lines)
Saying "4 is prime" "primes are non-composite, ..." reduces to error; at least one of these premises is false.
?
Cool, this sounds like a general form of the picnic game[0].
An input to the "picnic" function is a food (or other object), and the output is whether or not it can be brought to the picnic. The picnic game's hidden function that needs to be uncovered is a predicate function. E.g. if the hidden function is "Things that start with the letter A", then "apples", "anchovies", and "albatrosses" could be brought to the picnic, but not "bananas", "cameras", nor "dessert". In that example, the function would look like:
lambda x: x.firstLetter() == 'a'
[0] https://www.thegamegal.com/2011/06/11/going-on-a-picnic/I remember that at elementary school we turned on a bunch of C16-s at the same time and we tested random number generators and some showed the same value, cool demo of determinism
instead of xλ6 I would have chosen xλ3.14159265359 it might lead to different questions, but who knows, just deeper rabbit holes :)
Made me think of higher order functions as self-replicating machines [0].
I mean this kid is clearly superlatively gifted.
That might be really useful. Maybe one barrier to improved education, is people having difficulty visualizing it?
Last summer, I tried to explore teaching atoms in early primary, with a focus on nucleons and nuclei.[1] One big surprise to me in discussions, was a pattern of non-linear response to my saying "teach nucleons to kids".
One physics postdoc, one with a professional focus on introductory physics education, replied basically "Absurd! How could you teach muons to kids!" It turned out that for them, "teach nucleons and nuclei" meant understanding muons. "Teach ... to kids", wasn't enough to change that image. So they tried to imagine teaching muons to kids, and exploded.
Another physics postdoc tried to picture kids chalking quantum math on some graduate seminar blackboard. And was "WTF?" baffled.
A primary-school teacher heard "teach atoms", and tried to picture early-primary students memorizing and regurgitating 4th-grade paragraphs of definitions. Because for them, that's what "teach atoms" meant.
And more. These weren't outliers.
I ended up using an analogy. That it was like proposing to teach kindergarteners about traffic lights. And having highway engineers declaring "Absurd! There's no way kids could understand those standards documents! And they're expensive! And the Chinese ones are in Chinese! You're think you can teach technical Chinese transportation standards documents in kindergarten!?!"
"Red means stop; green means go." "Atoms are sticky little balls that jiggle."
I'd expected that crafting accessible leverageable descriptions would be hard. And that how well one could achieve transferable understanding, at various ages, would be an open question.
But I didn't expect that people would initially be so dramatically unable to picture the possibility of teaching some topics.
People were fine after a "kindergarten traffic lights ... green means go... not network theory" story to set context. But I wonder...
Might there be a badly underappreciated need for stories like OP? To provide "Oh wow... I wouldn't have imagined one could teach that... Now I can picture it..."
That's an idea for helping to disrupt education that I've not seen before.
[1] a crufty slow-loading page, intended merely to set up in-person discussions, but I've nothing better: http://www.clarifyscience.info/part/Atoms
I spend a lot of time listening to people ramble in meetings or troubleshooting, where I wish they understood the subject matter enough to explain it as if talking to a six year old.
How is this read: \lambda x.\, x - 3 and what is a simple example?
In a discrete math perhaps it is the same as "All x, x is an integer such that...."?
So '\lambda x., x-3' --> 'f(x): x-3'
Also, I really enjoyed my discrete math courses! The proofs were.. tedious.. but the amount and breadth of 'stuff' covered was excellent.
I'd read it as "Lambda x maps to x - 3."
In Python, you can rewrite lambdas as regular functions if you want.
lambda x : x - 3
is the same as def f(x):
return x - 3
This runs in the IDLE as such: >>> f = lambda x : x - 3
>>> def g(x):
... return x - 3
...
>>> f(0)
-3
>>> g(0)
-3
>>> (lambda x : x - 3)(0)
-3Brent definitely understands it well enough.
Cool!
also, i love the idea of experimenting on your own children and then writing blog posts about it :)
More like "at age 12 even the most incompetent teacher can teach things involving abstract/counterfactual thinking to even the least intelligent child"... the bad ol' "lowest common denominator thinking" and the other horrors of our standardized educational systems :| Unfortunately it's not economically feasible to lecture to children in a classroom unless you calibrate on the lowest common denominator.
Also, it's the huuuge difference between "understanding" and "being able to communicate efficiently in words". People can "grok" very advanced stuff even if they don't fully command the language for expressing it. Unfortunately most incompetent teachers are totally incapable of "trying to explain something beyond the level of the language" but the human brain's pattern matching engines are not always tied to language...
https://en.wikipedia.org/wiki/Piaget%27s_theory_of_cognitive...
Fine, I was off by one year.
Young children can engage in basic counterfactuals. Ask one.
The call/response perspective emphasizes that functions are instantiated against a reference that can be called and that such a call returns a value. The containment/scope perspective emphasizes that functions are a bag of instructions containing a child scope and thus a lexical structure if nested. While both descriptions are valid they produce wildly different explanations and code examples that are often completely unrelated.