That looks brilliant. Well done!
The Raspberry Pi's pitch is simple: it's a dirt-cheap, low-stakes computer designed to inspire experimentation in software engineering and electronics. Since it first hit the market in 2013, a flood of third-party accessories popped up to help foster that. Take, for example, the Elecrow CrowPi2. The CrowPi2 shoves a Raspberry …
Why is knowing you're learning such a bad idea?
Possibly because our culture has defined learning as a "boring" duty that has to be tarted up with "entertainment" to make it palatable? I've always found the activity of learning fascinating, but not the way it's conducted by our national education system. That's enough to put anyone off for life, and it seems to have succeeded for decades.
No different to telling kids veggies are horrible but they can have something nice if they eat them.
If you don't let that kind of nonsense get to their ears, then they just eat whatever they like.
My daughter has been addicted to peas since a young age. She hates fizzy drinks. She doesn't eat much chocolate. She'd rather have a slice of bread or a sandwich.
After initial world exposure and instinct, kids learn their disgust reactions from their parents (along with their racism, sexism, ableism, etc.). Don't expose them to that, and they just grow up "normal" (which nowadays means not like everyone else). This also works the same for many things - bursting into tears because they had a slight graze or a spot of mud on their hand. If you fuss over them, they'll cry every time and grow up as one of those people cleaning their hands every two seconds with harsh chemicals.
And - an oddball one, but experimentation with my own has borne this out - if you tell kids that they'll feel sick if they read in the car... they will feel sick if they read in the car. If you don't tell them that, they won't. That one is open to more variables (e.g. travel sickness anyway, etc.) but I believe it to be the same.
My kid is 11 now. She goes to a foreign private school. She makes friends everywhere because I've tried not to pass my social awkwardness to her. She eats whatever she likes, and chooses of her own accord to eat sensible foods in moderation and enjoys doing so (she still likes a McD's but who doesn't?). If you try to bribe her into a van with a chocolate bar, you're going to have a hell of time... not least because despite her wimpy appearance (and my "complete victim" childhood) she's a junior black belt but also she couldn't care less about chocolate.
The ONE neurosis she has, which is completely artificial and not based on anything - a fear of dogs. And I can tell you EXACTLY where that comes from. My own mother, who will pull you right out of the way if a dog goes past because SHE has a neurotic fear of dogs too. It's a complete phobia based on zero data - I know, because neither me nor my daughter have ever been bit but we both have a fear of dogs because my mother did the same to both of us whenever we were out walking and a dog came past. I got over that, though, by just fighting the instinct to see dogs as fearful. They still make me react that way, but my brain overrules it deliberately and consciously a microsecond later.
If you teach kids that learning is boring, school is hard (particularly bloody Maths, I have to say, as a mathematician), brussels sprouts are yucky, chocolate is a reward, girls are girly, boys are "just being boys" when they assault girls, that gay people are "weird" or "wrong", mother cuddles you every single time you get the smallest hint of an ouchie, etc. then guess how they grow up to treat those things. And guess what they teach their children.
My daughter literally asked for more lessons as she was bored in lockdown. She not only reads far beyond her age but she writes books and encourages her (author) grandfather on the direction of how his own (adult-reading-age) published books should go and edits them for him. She grew up in an Essex state school and now attends a Spanish private school on her own merit. She's as skinny as a rake, and as fit as a fiddle.
The buck stops at you as a parent. Don't pass your prejudices and neuroses onto your - or other - children.
>The ONE neurosis she has, which is completely artificial and not based on anything - a fear of dogs.
That's quite common with kids who grow up without pets, I solved this one by getting a puppy.
The other fear, of large animals is tamed (ie turned into respect) by horse riding lessons and spending a little time on a dairy farm - however, bullocks do need some respect as they can at times be intimidating even to adults.
My daughter had no fear of spiders, would pick them up and allow them to walk on her hands. Then she went to primary school and saw other kids showing fear of spiders, she started being afraid of them.
Now she has grown out of the fear and is friend with them again.
Six legged spiders? That's why they're easier to catch.
B'sides, Spiders do happily* feast on other spiders as well as insects.
*Don't anthopomorphise spiders - they hate that.
Back to the article: Bloody good 'toy' computer. Wondering if the grandkids would like the idea too... Hell. I want one.
Very nice backstory and very useful advice indeed for future parents. Lee, you are right about the crucial role of parenting, and Mike you are dead-on on the 'cultural' perspective. Unfortunately, kids going to school for the first time are not blank slates and have already firm convictions on what is boring and what's not, based on TV, preschool experiences and social interactions - in other words, the damage is already done. Therefore, what parents and teachers need is not just convincing verbal arguments but actual practical proof that learning is not boring.
This Elecrow computer is a very nice incentive, the modern equivalent of a BBC micro or even the '50+ electronic experiments kit' I got as a present when I was 10 years old. The latter was a present from my family some 50 years ago, the former was in every UK school in the 80's and my belief is that its contribution to the growth of IT in the UK (and in Europe) is still not properly credited for.
I ascribe to the learning by doing philosophy, i.e. that learning should be actively doing things in order to solve problems and not just passively listening to or reading 'stuff'.
I started off with a component kit, resistors, capacitors, sensors and two transistors for Christmas when I was 12. Ten years later, after playing with S100 boards, I got a Z80 single board kit with a hex keypad , hooked up a couple of DACs and built a EKG simulator to create EKG signals to verify my companies commercial Holter Monitor Analyzer - I did written code assembly (in pencil) to write the code and entered it in hex, storing the code on a cassette tape every night.
So yes, this is an easy way for a few kids to learn and a lot of fun for everyone.
Excellent! But regarding Brussels sprouts, it's been shown that only 40% of the population can detect one particular chemical in those things that, if you can taste it, makes them truly disgusting in smell and taste. If you can't detect that chemical, lucky - you - but you will be fine with sprouts. I happen to be in the 40% that find them apallingly foul, unfortunately. But if I had children (sadly, I do not) I'd certainly let them make their own choices regarding foods (even the evil sprouts! 8-} )
I stupidly let my three year old godson taste my Irn Bru. He'd never tasted a carbonated beverage before and spat it out saying, "Biting ants! Biting ants!"
I was given sugar sandwiches at his age, I suspect his teeth will be better when he's my age.
I fear we cheated a bit on the food training. At one point the young'un refused to try something new -- I forget now what it was, some casserole thing or other, I expect. I just looked at her in surprise and said "But you LIKE Chinese food!" She got the "Oh, right!" look on her face and started happily shoveling it in.
"Possibly because our culture has defined learning as a "boring" duty that has to be tarted up with "entertainment" to make it palatable?"
Might it have to do with the repetition? Repetition is boring, and kids are hungry for novelty, so keeping things fun helps keep them engaged. As for the greens, there can be a biological basis in this, as kids' tongues tend to be more sensitive than those of adults. This is especially true for sweets (sugar = energy for get-go and growing up) and bitters (historically, bitters = not meant to be eaten, a lot of poisons and other eating deterrents are bitter).
RE: "Might it have to do with the repetition? Repetition is boring, and kids are hungry for novelty, so keeping things fun helps keep them engaged"
No, repetition is crucial. It has to be done right though. Ask any top sport person - kicking a ball, hitting a golf ball, balls on a pool table. People recognize that repetition is practice and that practice makes you better. In England, mathematics is passed off by many as 'too hard'; in Japan they accept more of the same until they understand it.
"Is there any other way to practice something to acquire mastery beyond 'boring' repetition?"
Absolutely. The thing most people are learning here is computing and programming. Boring repetition doesn't help there. At all. Consider this lesson plan:
Learn what a linked list is. Done. Write a linked list. Done. Write another linked list. Write a double-connected linked list. Write an indexed linked list. Write a restricted linked list with the annoying scheme access method. Write a circular linked list. Write a thing that treats a linked list like an array or a heap. All the students of that learn is that linked lists are not very fun.
Instead, we don't repeat things over and over. We teach linked lists, then we teach trees. Then we teach the performance benefits of a linked list and of an array. Then we let the students build something new using those things. If they find something they didn't understand when we taught the original topic, writing something more advanced which uses that will let them learn the bit they missed. By creating something that actually works, they learn not only the concepts, but they also learn why they need to know those things and feel that there's a purpose to it.
The same logic applies to math. If you have successfully learned how to divide large numbers, it doesn't help much to be given a hundred more division problems to do. You're going to get them correct. If it's really critical that you can machine gun your long division, then the practicing for speed makes sense, but otherwise you're making people do something painful and pointless. They get how to do it, so move them to something new. You might give them problems where they have to figure out which of the operations they know solves the problem (I.E. algebra), or you want to teach them a new operation before you go that direction, but in any case you teach them something new. Boring repetition is needed in moderation to make sure that people understand what they're doing. In the case that someone doesn't understand what they're doing, the remedial work will also involve repetition (for them, but not for the teacher as the previous teaching method probably wasn't working). But making people go through a lot of repetition even though they understand what they're doing is a perfect way to tell them that you're a bad teacher. The students will try to look for someone teaching something else where they actually get to learn. If you want to help people learn, the students interest is important.
All very nice and very logical, but completely wrong. The very basics of math, the tables of multiplication, can only be learned by repetition until the answers come automatically. Of course you can write them down every time you need them, but that is also repetitive and gets boring quite quickly as well besides incredibly time consuming. Learning those by rote is (unfortunately) the only practical way. And my elder son dearly hates it at an age he already should know them, something for which I blame the school as the teachers didn't pay enough attention to that problem. I can keep insisting at home, but without at least equal push from school, that is a lost cause.
I have memorized the tables of multiplication. Kind of handy, too. I've only memorized them up so far though, and if I want to calculate 29*47 I have to do it manually. I can do so accurately, so there's no need to make me manually do a hundred more of those to make sure.
The problem with rote memorization is that you don't often need some of the things people want you to memorize, and there are people who will try to make you memorize even more things. Since this is about programming, think of all the things that someone could memorize. I could memorize every system call available under Linux. All the names, each parameter and its possible values, all stored in my brain and available for the unannounced quiz. Which is mostly useless. There are system calls there that don't matter, nor do I need to know every option. That's what man pages are for. By using those system calls in real programs, I'll get a better understanding of what they do and why people use them than I ever would memorizing them. More important, while that set of functions is likely to have lasting significance, a lot of potentially memorizable things aren't worth doing so. I could have memorized the standard libraries for any number of languages which no longer get used, and it would have wasted my time.
Rote memorization is only relevant for the most basic of things. How to do basic mathematics is a good example, but even that is limited. Those who prioritize memorization over understanding of how to use it in real life are doing students a disservice. Which would you rather a programming instructor do in a limited amount of time: have the students implement twelve sorting algorithms and memorize the time and space complexity values for each, or have the students implement three sorting algorithms and understand why each has the time and space complexity it does. For memorization, twelve is better; if they were stuck with access to nothing they could quickly implement sorting on any system. In real life, it's better to know what causes complexity; they're already going to have sorting available, there are only a few sorts they really have to know well, but they're going to have to worry about the same kind of performance on other algorithms which don't have memorizable answers.
"Rote memorization is only relevant for the most basic of things. How to do basic mathematics is a good example, but even that is limited."
My point exactly. The simplest of stuff is the only stuff you need to memorize: the essentials. Put it this way; it wasn't like I spent all of third grade memorizing the multiplication tables up to 9x9 (it was the late 80's). To switch to programming, the equivalent essential stuff would be to memorize the basic syntax of a language (in the case of C and C-likes, that would be when to use the semicolons, braces, function headers and parameters, the main() function, etc.). Once you get those down, you move on and learn how you use that stuff in more complex ways.
Maybe we actually agree, but it doesn't really sound like it. It seems to me that very little time should be spent on memorization. This is perhaps because my memory is relatively good so I find it easy to memorize things, but I think it applies to others as well. In studying something, the very basic information on which everything else is based should be memorized for speed. This is usually completed in a month or so (depends on what exactly it is, but I think that's a good level for a course of study lasting a year or more and where the first information learned is really the basics). After that, repetition is not only unnecessary, it is harmful. If teachers think that repetition is going to help after the very basic concepts, they're at best generating boredom. At worst, they're generating students who don't know how to do anything which wasn't in the homework or exams. I've seen teachers do that. I have seen the students that result. When I have taught in the past, I have endeavored to avoid that risk as best I can.
This is a nice theory but it's horribly and dangerously wrong. People do, in fact, learn by repetition.
The example of long-division is easy: long division is this mechanical process which is kind of fiddly. The algorithm is simple but if you make mistakes you get it wrong. Humans learn to do things without making mistakes by doing them a lot: they're quite different than computers that way. If you give a child to whom you've just explained the long-division algorithm a hundred long-division problems then (a) it will turn out they haven't learned the algorithm at all and (b) once they have they will make lots of mistakes (and (c) they'll be really, really slow).
OK, so someone will now say that long-division is something we have calculators to do for us: we don't need to learn to do these basic arithmetic operations now. That's wrong – we do need to learn to be numerate – but it doesn't matter here. Take doing integrals for instance: another fiddly procedure, but this time much much harder. Now you have to look at some integral and try and work out which of several techniques you might be able to apply to it: perhaps you'll do it by parts and then one of the parts you can do by substitution, or perhaps one of a number of other techniques. Or perhaps there's no closed form and you'll have to try and work out some bounds for it, or perhaps there's a closed form only when the limits are suitable (Gaussian integral, say). And it's fiddly: if you make mistakes you get the wrong answer. And this time (famous theorem) there's no general algorithm: you can't just get a computer to do it for you and to the extent you can it will often give you an utterly unhelpful answer (try this sometime). And how do you learn to do this? You learn by practice: you do lots and lots of integrals which trains you both to spot patterns in them and to make fewer mistakes when doing them. Even then you often have to do things several times to find all the missing factors of -1 and so on.
And it goes on. Let's take proof by induction. I can remember when I first saw this it seemed completely like magic and also like it couldn't work: 'wait, you've just assumed what you want to prove is true, what the fuck?'. But recently I wanted to go through a couple of proofs in Peano arithmetic (so I could, you know, practice) and it's just obvious how it all works now. And it's obvious for two reasons: first of all I've now done lots of proofs by induction and I'm happy with the idea, but also (and perhaps mostly) I've also used programming languages where all iteration is expressed as recursion for 30 years, so I'm kind of good at the whole notion of recursion & base cases by now, and that's what proof by induction is of course. Even so, I go through the proofs twice to make sure I really grok them.
And finally the whole programming thing: if people did not learn by practice and repetition then they would not need a computer: they could just read the description of the programming language and that would be enough. And they would also never get better: you'd teach them how to program (from a book) at which point they would be the best programmers they could ever be. But that's not true: they do get better because they practice, and when they practice they make fewer mistakes, and they also actually learn the things that have been explained to them which they previously only thought they had learned.
"And finally the whole programming thing: if people did not learn by practice and repetition then they would not need a computer: they could just read the description of the programming language and that would be enough. And they would also never get better: you'd teach them how to program (from a book) at which point they would be the best programmers they could ever be."
That's not really what I argued. In fact, it's close to the opposite of what I've argued. When you learn programming, there's relatively little repetition. Once you learn what a function is and how to make a recursive one, you don't need to learn it again. You do need to use it. The people who most espouse repetition will do that by making people write twenty recursive functions, but that's not really efficient. Instead, have them write a few recursive functions until they understand what recursion means. Then give them actual problems where recursion can solve the problem and see how they deal with it. It's sort of repetitive in the sense that they're using things they learned before, but it's new tasks which don't take the form of a litany of exercises. This is better than the exercise method because it makes the student think through the solution, whereas exercises already tell them what the solution will be and they just have to do implementation steps. Those teachers who use repetition in a way I dislike tend to focus on basic things and force a "really firm understanding" of those things. Unfortunately, in my experience, that translates as a "really good understanding of how to answer the test question". It results in people using similar code to things they've seen before without understanding why they're doing it; it worked before, so it will work here, and it probably does, but that's because the problem they're working on is limited and performance isn't critical.
Practice isn't repetition and repetition isn't practice. You can repeat an action and memorize results without getting better at it if you're repeating something which doesn't require enough lateral thinking. You can practice by doing a lot of different things, therefore understanding multiple options for completing a task, which involves doing a similar thing but relatively little repetition.
You're making a false distinction between repetition and practice. If you're teaching people to do long multiplication you don't do it by making them repeat the same multiplication again and again, which would allow them to simply memorise it: you do it by giving them different ones, so they can practice. They have to learn the x*y tables for x,y in [1,9] by rote to be reasonably quick but beyond that you're giving them an endless series of new problems to solve.
You them make another false distinction (or perhaps you are just confused, I can't tell). You wrote:
The people who most espouse repetition will do that by making people write twenty recursive functions, but that's not really efficient. Instead, have them write a few recursive functions until they understand what recursion means.
Having them write a few recursive functions until they understand what recursion means is the whole point: no-one is suggesting that there is some magic fixed number (twenty) of such functions everyone needs to write, rather that they should keep practicing until they really grok the technique, however long that takes. And in particular, until you really grok recursion don't start trying to understand how to turn recursion into iteration via continuation-passing because you'll just end up un a hopeless mess.
My guess is that for the average programmer the number they need to write until they really understand what recursion means is a lot more than twenty though. I suspect that a huge proportion of programmers never really understand them. I probably only do because I write in left-field languages.
Anyway, I suspect there's more heat than light here now, so I'll stop here.
What you're talking about is muscle memory. In this case, you're training your body to go through the basic motions so that it comes naturally. For physical activities and especially sports, that is important, but to turn it around, what happens when you need to learn new stroke techniques like fading or drawing around the dogleg? At some point, you're going to have to move on to the more advanced stuff that also includes tactically deciding on the specific stroke and strength you need.
Meanwhile, mental activities can only be helped by rote to a limited extent. Once you get the basics down, it's time to move on to the next thing: preferably using what you just learned in a new way. You see, the Japanese and the like are sticklers for routine; they tend to do well in hum-drum, by-the-book stuff, but have difficulty when it comes to thinking outside the box.
Meanwhile, mental activities can only be helped by rote to a limited extent.
But some basics have to be learned by rote as without those basics you can't reliably move on to the next thing.
And yes, you are completely correct that Japanese (and most other Asians) have serious difficulties when it comes to thinking outside the box. Once during a conversion I did some on the fly programming with two Japanese colleagues (over from Tokyo HQ) watching to correct a minor problem and they didn't understand how I could do it so quickly. In their experience the (in my eyes minor) problem would have required at least a week of study to understand while I produced working code within the hour. After I had shown them, they could understand it (they said), but they weren't capable of reproducing it. But as the results were completely satisfactory, they were satisfied everything was done right.
You see, the Japanese and the like are sticklers for routine; they tend to do well in hum-drum, by-the-book stuff, but have difficulty when it comes to thinking outside the box.
That's some impressive bigotry. Have you ever watched any Japanese movies? Or just been aware of any Japanese arts at all? Right now IMDB's top two animated films of all time are Japanese. And those movies are not 'hum-drum, by-the book stuff': they're some of the most brilliantly innovative and evocative films ever made.
Next you will be telling us that the Germans are only good at following orders, and, you know, Beethoven, Schiller, Einstein, Gauss.
"That's some impressive bigotry."
Just because it's bigoted doesn't mean it's true. Sure, Japanese art can be impressive, but have you ever been in a Japanese office? It actually has been studied that Japanese businesses are more regimented than in the west (it goes to their culture--they're well-known for their communal focus). Don't believe me? Look up "chorei": just one social aspect of Japanese work culture.
As for Germans, it's not following orders they're best known for but rather quality. Most Germans take pride in their work, and German craftsmanship has a reputation for lasting.
"[...] in Japan they accept more of the same until they understand it."
Repetition gives competence to use in the prescribed fashion. It does not necessarily give understanding of the underlying mechanisms that facilitate use in novel situations.
A bilingual country published exam results from its two education systems. The majority language schools had apparently fabulous passes - the other system not as spectacular.
When it came to people working in IT it soon became apparent that the first system taught by repetition that there was a specific answer to a specific question. Rephrase the question - and the pupils were at a loss to know the answer. The other system taught pupils to exercise their own thinking and judgement. The latter could do lateral thinking when a novel problem presented itself.
I love the idea! I really do want this kind of modular laptops to hit off. Not just for learning but also maintenance!
Though if the price is putting parents off buying something like this for their kids, I recommend a £40 ex-surplus Thinkpad X61. For the same price you can buy at least 4 and potentially, learning to program on this is possibly a little better experience. You can install the similar Debian OS for example and the keyboard is one of the best.
The only thing you miss out on is GPIO and lower level hardware and things like that. However if you buy two Thinkpads and network them or just get two USB RS-232 adapters, you can still teach your kid low level sockets or serial port programming for a fraction of the cost.
I bought an Apple ][ because it was a personal computer "ready to go" - but also had a bus system for you to make your own hardware add-ons. When it was replaced the obvious candidate was an IBM PC clone with a bus for hardware prototyping - as Apple had chosen to go the sealed "appliance" route.
Nowadays an Arduino provides a cheap versatile system for stand-alone gadgets needing fairly deterministic timing.
Haven't found a use for a Pi yet but this offering looks useful if any of the neighbours' kids shows any interest in hardware.
Apple Bluetooth keyboards and mice seem to work fine when paired with Apple laptops - I've used them with a mid-2010 13" MacBook Pro and a 2019 16" MacBook Pro.
I also have a Microsoft Surface Keyboard and mouse paired with a Windows desktop. The Intel wireless thing that came with it didn't work that well, but I pulled it put, and put an external TPLink USB Bluetooth adapter in its place, located on the end of an extension cable underneath the monitor, and that works fine.
"BT rather than reliable USB for keyboard and mouse is a mistake?"
Ties up a USB port, and I have to say, never had a problem with my BT keyboard with tablets in the past. Beens using them for I guess, close on a decade.
Just bear in mind the keyboard, mouse and Pi are only a few cm apart, where as on a pc it could be almost a metre, through a desk and around the back.
Never mind the kids. I want one!
In all seriousness this is the modern equivalent of the 50-in-1 electronics kit, and a lot more interactive. The hardware is impressive - the software will be crucial to getting the learning. One possible problem - can you work on the breadboard etc. with the system live so you get some guidance on what you are doing? Or is it a case of printing the guide off, shutting down, and then restarting?
Those old 50-in-1 kits did have one major failing - everyone can copy the pre-defined wiring instructions; but were never so good at teaching what was going on. Understanding a transistor? It was quite a few years after I got the 50-in-1 before I actually did.