11 ms·
Kids to learn how to code before high school in New Zealand
- ggambetta 9y agoThis is a fantastic move. In this day and age we should treat "everyone needs to know how to to program" just like "everyone needs to know how to read, write, and do basic maths". Does everyone need to write code for a living? No, just like we don't expect everyone to be a professional writer or mathematician. But software is so pervasive that within a generation or two, not understanding how it works will put you at a severe disadvantage.
- probablybroken 9y agoYou could say the same about electrical or mechanical engineering, both of which are already pervasive.
- ggambetta 9y agoHmmm. Interesting. I don't need to know much about electrical engineering to use electric and electronic devices all day long. As you say, they're even more pervasive than software. Two ideas come to mind. First, maybe this is because electricity has gone far beyond "pervasive" into "fully invisible". Second, maybe this is because software is inherently more complex and can't be made fully invisible. Maybe both ideas are actually the same, but playing on different points of their lifecycles - will software become so industrialised and standardised within a century that it will become as invisible as electricity? Thinking about early car owners, who needed some non-trivial understanding of how it worked just to be able to use it, or how you needed to know some trivial amount of BASIC to do anything at all with the 80's home computers (<3 ZX Spectrum).
- ldp01 9y ago> Two ideas come to mind. First, maybe this is because electricity has gone far beyond "pervasive" into "fully invisible". Second, maybe this is because software is inherently more complex and can't be made fully invisible. I think your second point is the correct one. Software eats itself as much as it eats anything else. This is the purpose of compilers and high level languages. To someone coding in a high level language, C code, assembly, and the electronic hardware itself are all reduced to invisible infrastructure. (That's the idea anyway, leaky abstractions notwithstanding). So, I would argue low level software is often already invisible in the sense that it is hidden behind the abstraction of higher level languages or user interfaces. But the definition of "low level" changes as more advanced software is created, so it's forever a moving target.
- throwawayjava 9y agoAnother explanation: electricity is dangerous. So are machines. If you can automate some portion of your desk job, you're a much more valuable employee. The same is theoretically true for factory workers and mechanical/electrical engineers, but the barrier to creating your own factory automation is extremely high. And no one is going to let a random factory worker tweak/augment expensive machinery in a novel and untested way. Whereas an Excel macro or quick Python script for parsing some data and doing some computations or sending some emails is very accessible and totally acceptable in many environments.
- marcosdumay 9y agoNot exactly "fully invisible", but it got a much simpler interface than what we have any expectation of ever achieving with software. And some people still die because they used that interface wrongly.
- userbinator 9y agoI don't know in detail what it's like now, but when I was in school (decades ago...) those subjects were covered as part of physics. Whether the majority have retained that knowledge is a different matter, but it was definitely taught; I suppose the same would apply to programming if it were to become part of the mandatory curriculum.
- lordnacho 9y agoAbsolutely. Just as reading and writing is part of current ordinary jobs like consultancy or plumbing, in the future everyone will be working so closely with the machines they need basic skills: - How do various UIs work? This is more of a "power user" type skill but nonetheless it's worth practicing. You'll also need an idea of how things work from the user side to write the UI later on. For example you could learn how iOS and Andriod work by playing around with it, and then having a go at making your own apps. - How does networking work? Stuff will break, just like your plumbing and bureaucracy. You'll need to know at least how to diagnose why you have no internet connection. - Superficially, how does a given algorithm work? The kids don't need to know everything about DNNs but they have to have the overview of what image recognition does, so they can form expectations about how they will interact with it. - Security. There's going to be more and more stories about breaches. Just as we teach them sex ed, they need some basic knowledge about how a password is stored, what encryption is, and so on.
- roel_v 9y agoSo I downvoted first, then decided to reverse to reply why I think what you're describing is exactly what we should not be doing (and what isn't being done in this space, luckily). Early age computational thinking is not about using computers, like how to use various operating systems or setting up networks or what is a good password or things like that. When I talk to teachers/school administrators but also other parents they are all excited and give these things as examples of how the curriculum (at my kids' school) could be extended. I think this is because to them, that's 'advanced computing' so that's what children need to know. As to you - I presume since you're here that you work as a programmer, so in that sense you're kind of throwing off my theory... Either way, what is being done in this sort of programs, is teach elementary thinking skills. For many, you don't even need a computer. It's about the concept of breaking down a task into very small subtasks that you can describe exactly, without ambiguity, and while still covering corner cases. That is 'computational thinking', and it's so far removed from the everyday world of current adults (who are not at least somewhat programmers) that they usually have a very hard time even understanding what it's about. How you configure your internet connection is nothing like that, and such menial skills have no place in elementary school classrooms. There are only so many hours in each day, we need to make optimal use of them. Teaching these fundamental skills can be done e.g. using robots like Beebot or Cubetto or similar; using simple programming environments like Scratch; or on paper / in real life like getting someone to describe how to sort other children from small to large in a generic way (and having it play out in front of them); or with board games that incorporate elements of it. There's a lot of experimentation being done how to best teach these things, and the things you'd think of as the 'obvious' way is quite often wrong (for example, getting a 5 year old to drive a robot and introducing conditions and iterations is quite easy and can happen in a few hours; but usually they won't be able to generalize that knowledge. So you need to dress it up into something immersive, to 'soak' them into this way of thinking essentially, and not just a trick they know how to do).
- robert_tweed 9y agoI think they are aiming for exactly the right target, not teaching HTML or somesuch: "children should learn how to break tasks down into step-by-step instructions, test those instructions and correct them." Not all will go on to become professional coders. Not all will be very good at it, just as some people aren't great at spelling, or basic maths. But this lays the groundwork for logical thinking with a scientific approach to validating assumptions. Getting this down at an early age, when kids are learning fundamentals like counting and spelling, will give them a really strong foundation for developing advanced thought-based skills later. That is far more important than the specifics of knowing how to code.
- watwut 9y agoI agree. Moreover, if you can "break tasks down into step-by-step instructions, test those instructions and correct them" then learning HTML or anything is truly learnable by yourself - even if young. You can reusebius that core skills in many contexts - including non-programmer software like excellent. It does not work other way round. In my experience, it is precisely the difficulty with breaking tasks into step by step instructions that makes difference between people who have easy time learning it vs hard time learning it.
- 0xcde4c3db 9y agoExactly. Programming at this level should be thought of less as "learning how to code" and more as "learning how to give clear instructions", which is a skill set that has value in general communication, management, etc.. A surprising number of people make it to adulthood and sometimes even management positions without really appreciating the possibility of their instructions being ambiguous or incorrect.
- sopooneo 9y agoAs a former teacher, I found that it was easier to teach kids concrete things and try to get them to glean the abstract then vice versa. In other words, you might learn how to code in order that you then know how to give clear instructions.
- userbinator 9y agoBut software is so pervasive that within a generation or two, not understanding how it works will put you at a severe disadvantage. Unfortunately the corporations seem determined to put a stop to that sort of pervasive knowledge, if only for the purpose of controlling and monetising their users. They don't want people to know how easy it is to do things like strip DRM or remove artificial limitations from software. [See Stallman's famous story, or the Cory Doctorow articles on the demise of general-purpose computing.] And thus most of the "learn to code" efforts I've seen have seemed to focus on some ultra-high-level language, removed from reality and often sandboxed, so that while people do learn the very-high-level concepts of how computers work, they are no less unclear about the functioning of the actual systems they use daily --- or how to use them fully to their advantage. In some ways, they're trying to teach how to write programs without understanding existing ones. The document said children should be writing programs and understand how computers store information by their final years of primary or intermediate school. However, this sounds more promising. Especially if they're starting more along the lines of this book: https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319 https://www.amazon.com/Code-Language-Computer-Hardware-Softw...
- deleted 9y ago[deleted]
- SamReidHughes 9y agoActually no, the nature of "learn to code" efforts has nothing to do with some corporations' monetization schemes.
- FranOntanaya 9y agoI would look at it from an even more basic perspective. We look at children learning to play chess as good for their cognitive development. Learning programming could likely play the same role, with the added bonus of having a practical purpose. For that reason I think it'd be misguided to lean too heavily on testing their performance — kids learning chess aren't required to reach certain level at the end of the year, the goal is to go through the training itself.
- zdkl 9y agoYour metaphor makes sense, but I'd argue programming is more aligned with subjects like say physics, where you need to give at least a basic understanding of the fundamentals. I mean this in opposition to the more optional side of chess club. Sure we don't expect all participants to become outstanding engineers in either physics or programming but I'd argue it'd be a good thing to require at least some level of understanding of the underlying "sciencey" (or engineering) qualities.
- sametmax 9y agoThis is nice in theory, but I would like kids to be able to actually read, write and do basic maths correctly today instead of trying to add things. Cause last time I checked a crazy numbers of them lack basic skills after they got out of high-scool. That's is a terrible and grave problem we should try to solve in an emergency before doing anything else fancy. Stuff that anybody should be able to do WAY before being able to code: - make the summary of a text - calculate % of something - understand correlation is different from causality - read graphs and maps - follow instructions in a book to do a simple task - write a letter explaining directions in a clear way - being able to demonstrate causality on a simple system they just witness working without using an example in their demonstration - calculate the cost of buying a car or having a baby when given the proper metrics and projecting on that Those are stuff our system is supposed to succeed in teaching at a very young age and many adults don't even have such basic skills. We have a problem here.
- silassales 9y agothis is an oddly specific set of tasks
- zdkl 9y agoSurely you sense the common theme? It's not expected of everyone to demonstrate outstanding mastery of literary or numerical skills, however some tasks are generally useful and require a basic understanding of the fundamentals. The list above illustrates a sane basis I'd expect from the people in my community for one. Many other skills are window dressing as they say. Teachers, especially here in France it seems have taken to the notion that one teaches better through abstraction and unrelenting positive encouragement. I don't want to be the grumpy old fart, but maybe a stricter enforcement of realistic & basic requirements like those listed in your parent are a good first step. Let those who want a diploma/certificate work for it and encourage students by all means, but sometimes not good enough is just not good enough and that should be OK for national education to recognise and adapt to.
- sametmax 9y ago
- te_chris 9y agoGiven the amount of "How did you get out of this cursed industry" threads on here, if initiatives like this open up a pathway from coding to teaching I wouldn't be surprised if that was actually a pretty popular avenue for people sick of the day to day coding jobs. Likely a lot more satisfying than technical management.
- jkroso 9y agoGreat this should put people off the subject for life and help keep the software developer shortage going.
- vonmoltke 9y agoThe only thing that will fix the "software developer shortage" is for companies to stop being unrealistic and fickle in their demands.
- Lerc 9y agoThe goal is admirable, but It looks to me that the government has just gone "Make it So". This is quite a relevant issue for me because I have taught computer programming to primary school students in New Zealand. Teachers need to not only be taught how to program themselves but also how people learn programming. Which concepts are contingent on the understanding of other concepts. Every programming teacher (myself included) that I have encountered is just someone who knows how to program muddling though best that they can. I attended a seminar on how numeracy is taught in NZ. They have a lot of information about the order and time it takes for individual concepts to be grasped. Information from similar research on how children learn to program needs to be coalesced into a teaching plan, and teachers need to be taught that plan. Doing this right will be a tough job. It will require resources. Probably more resources than will be provided.
- devoply 9y agoThough your intent is admirable, programming is something that can be very easily thought, and yet quite difficult to master depending on your aptitude and inclinations and personal commitment to learn. Should everyone be able to write a simple script sure, and the tools that are being developed for corporations are exactly to allow scripters to do more with simpler tools, more drag and drop stuff with a simple scripting language. But real programming is something that comes from your own efforts and endeavors. Not something in my opinion that can be taught, even by talented teachers who are programmers because the amount of time and dedication does not fit into an hour or two a day, it fits into countless hours spent trying to hone your skills out of your own personal interest and hours and hours of frustration due to it. For a self-motivated programmer all you need is on YouTube and the net. For everyone else some basic teaching is adequate to get people started down the path, the rest they can learn by trying to do.
- lawless123 9y agowe're talking about young kids here though.
- watwut 9y ago0.) Teacher who gives up on trying to figure out how to teach more effectively won't be good. 1.) This is abut children. Their brains are not developped yet and their motivation is flicky. Pedagogy matters a lot. The whole point is to teach them basic concepts so that they become able to learn more by themselves later on. They won't be taught modern stack, the point is to make them able to learn real stuff later on. A kid that encounters for cycle first time at university has much much harder time then the one that was even causually playing with logo. 2.) Even adults have common sumbling blocks. Having access to other people's experience - which explanation worked and in what order makes learning more effective.
- muninn_ 9y agoThis isn't good, but it can't stop here. It has to be continually taught over the child's educational life and implemented and shown how it is useful in other courses. Otherwise it's "just some thing I learned in high school" and the applications of it won't seem relevant.
- konart 9y agoWe've been learning to code as kids (12-14 years old) too (things like Logo and Basic). (Russia here). Is this something new or unusual?
- warpech 9y agoSame in Poland, I was taught basic programming (Logo, Pascal) in a rural elementary school at the age of 12. It was part of the compulsory curriculum. That was in 1997. Doesn't seem unusual to me at all.
- davidgerard 9y agoIn the Anglosphere, sadly yes.
- mkl 9y agoI was taught logo in NZ at 11, and started teaching myself Basic around the same time. High school students can learn programming as part of optional computing classes starting at age 13. Actually, age 11-12 students can probably choose to do it at some schools. The difference here is the age, and that it would be compulsory for everyone.
- konart 9y ago>would be compulsory Well, in Russia there is no alternative. Everything, including Informatics\CS is compulsory for everyone :) Now I'd like to the process nowadays. Because in 90s most kids didn't have a PC at home (I'm pretty sure my class had two kids with a PC including myself), so from the 3rd year we were taught how to use it at all and some games (you know that maze with a mole moving boxes to get out or something like that). Then Logo, Basic and even Internet at some point. But what now? Most kids use iPad better then their parents by the age of 7...
- gnat 9y agoAt what age is Informatics\CS first compulsory, and when does it stop being compulsory? Are there specialist teachers or is the maths/music/English teacher being pressed into service to teach computing too? Sorry for all the questions, but I'm keen to know how the compulsory education in CS works!
- ntoll 9y agoGreat stuff! Speaking from the UK (where this was mandated back in 2010), it's all very well having a curriculum, but what if none of the teachers have the skills needed to deliver effective and inspiring learning? In the UK the government said, "make it so" and failed to provide training or resources for the many computing teachers who don't know how to program (which is most of them since the vast majority of UK based computing teachers come from non-computing subjects like business studies).The difference in quality of teaching, expectation of attainment and learning resources is staggering. I wish NZ well, but I hope they realize that the teachers are fundamental in making this a success. A lack of investment in teacher training or classroom resources will make this dead in the water.
- davidgerard 9y agoScratch works pretty well in practice, to get across to kids that computers aren't magic: https://reddragdiva.tumblr.com/post/127964136013/it-turns-out-scratch-is-probably-the-answer https://reddragdiva.tumblr.com/post/127964136013/it-turns-ou... https://reddragdiva.tumblr.com/post/137374628373/scratch-is-probably-still-the-answer https://reddragdiva.tumblr.com/post/137374628373/scratch-is-... https://reddragdiva.tumblr.com/post/137376311558/scratch-is-probably-still-the-answer https://reddragdiva.tumblr.com/post/137376311558/scratch-is-... That's in the UK. The maths teacher was pretty on the ball here, but the main thing is it caught the kids' interest and communicated the concept of programmability. Scratch for young children, Python later and you've basically got this coding thing introduced.
- tjpnz 9y agoWon't count for much unless they give related subjects some attention. The way maths is taught in NZ is archaic.
- mkl 9y agoCan you give some examples of how the maths teaching is archaic? I teach undergraduate maths in NZ, so I'd love to hear your thoughts. I think the current approach is working, but could definitely be improved.
- tjpnz 9y agoSure but let me first say my beef is mainly with how it's taught in secondary schools (had no issues at tertiary level - CS major here). I should also note that this was my experience during the early 2000s and I really hope things have changed at least a little. Our maths classes basically consisted of being handed really old textbooks and then being left to our own devices. The teachers when they did interact with us had no passion for the subject. I recall when someone asked why we were learning quadratic equations the teacher basically told the class he had no clue. I almost left high school with a deep loathing of the subject, and I say almost because I had one teacher in year 12 who was passionate about the subject and taught it well. I would later learn that his background was in a field related to mathematics (electrical engineering), not teaching which was my impression of all the others. I guess my main point here is that the New Zealand government could be investing in it's education system by hiring people who have a real world background in the subject matter they're teaching. Having that knowledge and passion for a subject made all the difference - at least for me.
- mkl 9y agoWow, that's really different from my high school experience in the late 90s. Sounds like it very much depends on the teachers (which is unsurprising). I agree there needs to be much more incentive for people with real world experience to go into teaching. Difficult problem though. I think tertiary lecturers are generally much more passionate.
- 9y ago
- s_dev 9y agoSimilar discussion on /r/DevelEire about introducing coding to Irish primary schools. https://www.reddit.com/r/DevelEire/comments/6jsee6/teachers_say_plans_to_teach_children_coding_not/ https://www.reddit.com/r/DevelEire/comments/6jsee6/teachers_...
- jancsika 9y agoThis is backwards. There should be regular class periods where the students must work together and figure out some way to teach the technologically illiterate adult in the room. Each project could start with the technologically illiterate adult crying and venting about their mortal fear of being replaced by a robot. In one project, the adult would let it slip that they get insecure when the students just go on their own to Wikipedia to find out information. The students must then put together a workshop with lesson plans and demos that teaches the illiterate adult how to apply their esoteric knowledge of the late 18th century textile industry to the relevant Wikipedia articles. Repeat as necessary. By the time the kids graduate, the teachers should have a decent grounding in digital technology.
- j7ake 9y agoWhat percentage of teachers know computer science? Who will teach the kids? I am afraid this will end up a disaster because the teachers themselves do not know how computer science. this could end up in a situation analogous to Lockharts lament
- tuukkah 9y agoThe teacher needs to tell the kids to open https://hourofcode.com/ https://hourofcode.com/
- meri_dian 9y agoLearning or understanding code really isn't useful for most people in a strict sense; with the proliferation of quality software applications there's really no need to code for most people since the application they'd end up making to fulfill one of their needs probably already exists. You need to be able to communicate and express yourself to exist in society and be useful in an organization, but in order to build anything useful with code it usually takes a huge commitment of time and effort, so application developers specialized in writing code are better suited to making things with code than the average person. A great example is this: yes I could develop my own music streaming service, but I could also just use Spotify. That being said, we should still make sure people understand how technology works at a high level just because it's so important for modern society. One of the goals of education should be to help people understand the world in which they're born. And analytical skills are important so in the sense that learning to code can develop these skills, it can also be helpful for the average person.
- disordinary 9y agoSpotify is an extreme example, people need to write macros for applications, even understanding the formula syntax of Excell needs an understanding of programing.
- icedchai 9y agoIn the 80's, kids in various enrichment (AKA "gifted") programs learned how to code back in elementary school! I remember learning Basic on Apple II's and TRS-80's.
- foopod 9y agoI was lucky enough to attend the NZTech Education Summit on the 26th and 27th of June. And can speak to even cooler changes happening in NZ classrooms. In Campbell's Bay school they are running their classrooms similar to how scrum teams work. Teachers act as facilitators and the learning is student led. At the start of the week students get to choose their learning outcomes from things that must be done this week and optional subject areas. And the week plays out like a sprint where students plan it out, some like to do the most difficult things first others unwind on a Monday with group activities with friends. There a 4 classes that all share the same space for this, which is broken in a quiet zone, a collaborative zone, the makerspace and a few smaller glass rooms dotted around. Once kids are happy they have completed a learning outcome they just supply their learning evidence to their teacher and it gets ticked off (BAT). I also got to here about Kauri Flats primary school that uses design thinking and works with local communities on projects as part of their learning. These big changes are limited to primary school levels for now largely because of the regulatory assessments put in place at a secondary level. But after hearing from representatives of the ministry of education and the NZ Qualifications Authority, there is definitely room for change in the coming years. Super cool stuff. And a big step towards the kind of skills needed to succeed in today's society.
- sedachv 9y agoYou cannot mention efforts to teach programming to school-age children without talking about the work of Seymour Papert: https://www.media.mit.edu/events/papert/ https://www.media.mit.edu/events/papert/ A few comments have already mentioned Logo, which came out of Papert's work.
- boznz 9y agoMy daughter did some "Coding" a few years ago in NZ as part of her ICT, I looked over her work when she was getting frustrated and to tell the truth it was just end-to-end acronyms and jargon and the program they had to write in java script was soul destroying. If I had to have done this at such an early age I would never actively avoided learning electronics or programming. The rest of the ICT course was basically learning Microsoft office and outlook. She's taking HR at university so should have a job (sacking people) come the robot/AI revolution :-)