Hacker News new | past | comments | ask | show | jobs | submit login
Python for Kids: A Comprehensive Python Development Tutorial for Kids (github.com/mytechnotalent)
180 points by rbanffy on Sept 29, 2020 | hide | past | favorite | 42 comments



This doesn't seem kid friendly to me. Linkedin also puts a login wall sometimes and not sure if they allow under 13 year olds to register. They have horrible tracking and security captcha.

I would likely pick something from: https://wiki.python.org/moin/IntroductoryBooks (reduce screen fatigue for small ones)

A interactive video course would likely be better as well in terms of engagement.

https://scrimba.com/learn/python (really, try this)


I could see doing this with my kid, and I like the format (except for the LinkedIn thing, of course), but it's not nearly complete enough.

It's a few basic steps, and then I run out.

But I like that it's step-by-step, and things we could actually do. It doesn't have black holes.

And it's quick. It's not a 500 page devops manual.

And it's rapid return. You do it, and you see something happen.

All of that is nice.

Now, if it did servos, got to audio, and things like that, it'd be the next big step.


The BBC Micro:bit is already super kid friendly, and can do servos and audio. You can program it using their own scratch-like language "MakeCode", or you can use python. They have a web-based editor for both. And that web based thing also includes an emulated board, so you can try it even if you don't own a board.

https://microbit.org/

You can also buy kits that come with a load of sensors and nicely printed manuals, colour coded interface pcbs, and sensors with keyways so you can't get the connection wrong. They also include some extra "blocks" for the scratch-like language so you can really easily use them. Those are a bit pricey. Here's one example for £40 (which weirdly doesn't include the BBC Micro:Bit itself). https://coolcomponents.co.uk/products/smart-home-kit-for-bbc...

You don't need to spend anywhere near that much though. You can buy a micro:bit and then get a kit of transducers from Aliexpress.


> But I like that it's step-by-step, and things we could actually do. It doesn't have black holes.

> And it's quick. It's not a 500 page devops manual.

> And it's rapid return. You do it, and you see something happen.

Scrimba is exactly that.

Could you elaborate more on what parents and teachers lack or need to teach their kids coding?

I am curious. Might compile a guide.


Scrimba is $19/month, and aimed at adults. From the front page, you build boring stuff, and it's not clear where to go. Quality is mixed

For general coding for kids, there's a bunch of really excellent things:

* Khan Academy JavaScript is fantastic. You learn JavaScript building interesting things, learning both deep and shallow concepts.

* code.org tends to be an hour long, but that hour is beautifully scripted. It doesn't go far, but is really nice for getting started.

Scratch, Blockly Games, Open Processing, and a bunch of others do a nice job picking up from there.

Where there is a gap is on tying code to hardware, which this starts to close. What I liked about this is you start with something physical. This isn't just coding. It's coding+electronics. It's surprisingly hard to find good stuff for RPi, Arduino, or similar. There are:

* Great robotics platforms, without software support or tutorials

* Decent software, where there is a game of making it work with pick-your-own-hardware.

* Decent tutorials, bogged down by lousy platforms, no integrated way to get the stuff you need, etc.

* Etc.

There isn't anything clear, integrated, and coherent like the ones above (KA/Scratch/etc.) that I know of.

If someone were to take a:

* best-of-breed cheap kid-friendly robotics platform

* integrate it with arduino or rpi

* integrate it with JavaScript or Python

And have a 5-minutes-to-get-started thing, and from there, ways to go deep, it'd be a pretty big hit. No organization seems to do all three pieces well:

* Hardware

* Software

* Pedagogy

Perhaps since they're such different skills, or perhaps because it's too big a task.


Thanks for the comment.

> Scrimba is $19/month, and aimed at adults. From the front page, you build boring stuff, and it's not clear where to go. Quality is mixed

I linked the python course in the original comment but mostly recommend scrimba for building learning material for kids because you can mess with the code and run it inside the video directly. It's free for that.

Have you tried using something from the magpie, sparkfun and other kit suppliers?

Any elaboration on the specific product would be helpful. I want to know what kind of kits aren't available or upto the mark.

https://learn.sparkfun.com/tutorials/programming-an-fpga

https://learn.sparkfun.com/

But I totally understand the current market could be better. I have spent a good chunk of time finding parts for raspberry Pi although the projects were a bit more complex and budget constrained. I got them from various Chinese market places and had to read up a bit.


I'm very familiar with the state of the market.

I like Sparkfun, but it's not batteries included. You run into the first major roadblock before you've started:

"Please Note: If you haven't worked with Alchitry boards before, you will need to head over to their website to get set up and running before continuing with this tutorial."

... and you're down a rabbithole.

Next, it splits on Cu versus Au boards.

And by the end, it looks like I have a blinking LED.

And I need to spend over $100 to get started. $100 is okay if I knew there was a good, frictionless pathway to the end. But in this case, I don't. It's gluing a half-dozen pieces together, and my experience is that 75% of the time, the kit ends up with some bug along the way, and lands in a drawer.

The places I listed JUST WORK. That's a big difference.

It's also important it feed into something. Half the time, companies will invent their own programming language, environment, or something, and at the end, we're at a dead end. I've never heard of Lucid. If I were doing an FPGA project, I'd start with VHDL or Verilog and standard tools. And clicking through, many of the tools used in this tutorial are now several layers obsoleted.

That's more-or-less the state of most things.


In my experience it's rarely a problem with the material itself. Motivated or engaged kids will quickly outpace "kids" material anyway, and will move onto conventional resources. Right now cheap resources available to educators are ridiculously accessible. Though remember that the cost of kitting out a classroom with hardware adds up really fast.

The challenge is getting kids engaged enough that they start experimenting by themselves. Also the same for older kids and adults. People will nod and smile, do all the exercises and then never touch the resources again. I've been doing outreach for a decade or so, this is totally common with students of all ages.

That said, for programming you need material that promotes very quick and visual or physical feedback loops. You also need projects that are fun and achievable, but also can be extended.

Also be aware of how long something will take a total beginner to do. When I'm designing projects for summer schools (16-24), I generally assume that if I can do it in a day from scratch, it'll take them a couple of weeks if they have no experience. Take that with a pinch of salt, but I've found it's pretty accurate.


Try KA JavaScript. It's very clear, step-by-step, in-depth tutorials, around fun topics, followed by an open-ended coding environment. It seems almost ideally designed for kids.


It's also not exactly "for kids" so much as it is a tutorial for how to set up a learning environment for your kids to use, and some basic projects you can walk through with them.


I know. Still applies.

I would likely use repl.it or scrimba (one I linked).

For hardware stuff, there are guides and kits targetted at kids with graphics and stuff.

If you check raspberry Pi magazine or site, you will find many of them.

https://magpi.raspberrypi.org/

Example: https://aiyprojects.withgoogle.com/voice/

Which I think is easier to follow than purchasing individual items yourself.


https://projects.raspberrypi.org/en if you want our main projects site, many of which have nothing to do with the Raspberry Pi computer.

Here's our Python Module 1 - https://projects.raspberrypi.org/en/codeclub/python-module-1

It uses the online Trinket as an IDE


I think this is great introduction for kids to learn what is corporate bullshit, what are buzzwords, etc.

"These are the only tools you will need to embark on this incredible journey to get your child prepared for the next IoT generation and solidify their role as a leader in technology!"

Those "incredible journey", "next IoT generation", "role as a leader", everything in a single sentence.

It also teaches kids that you can put link on a website, which you cannot click (again, good introduction into "modern" design which does not allow users to guess if something is a link, a button or just a text).

On lesson 1 Amazon, and other links are not clickable, they are just put as is:

"https://www.amazon.com/gp/product/B01G8X7VM2/ref=ppx_yo_dt_b..."

This gives us also a good opportunity to tell kids about spying and tracking in the Internet (this ref param, so useless for a users, so helpful to spy on them).

Another lesson is that sometimes links just does not exist or are broken, on lesson 2 we have:

"OPTION 1: Windows -> CLICK HERE to follow step-by-step instructions to set up on your computer." and, obviously you cannot CLICK HERE, because it is not a link...

One more lesson. People create content on some popular and well respected place, like Github, only to redirect users to their own crappy website with zero added value but with the intention to force someone to create account or sell something, etc.

Overall, pretty good stuff, one can learn really a lot (not about Python, however).


I really wish some folks interested in the K-12 space would steal BlockMirror[1] from me and put it in more editors. I have BlockPy[2], but I'm not really trying to move aggressively into that space - I'm just a researcher. Still, I feel like having a dual block/text environment for Python would help make Python way more accessible to younger learners.

[1] https://blockpy-edu.github.io/BlockMirror/docs/index.html [2] https://www.blockpy.com/


Makecode now has drag-and-drop programming for Python; it's a little different in that it doesn't have the blockly pane, but has a palette of Python commands to drop into the code window. It can also switch between Python & Python (and JS). It makes a pretty good transition path from block coding.


That's nifty. I've seen the "drag text code" a few times, and I think it's an interesting model. Certainly helps with the discoverability problem. I actually had that feature in BlockPy at one point, but I believe my collaborators said it was too confusing for the students.


I did this with Blockly in Reeborg's World [1]; I added it many years ago. What would be the advantage of using BlockMirror over Blockly? Does it support translation?

[1] https://reeborg.ca/reeborg.html


If by "translation" you mean Mutual Language Translation (turns text into blocks, and blocks back into text, as you type/drag blocks) then yes. If you mean "translation between human languages" then less so. It supports whatever you can do with Blockly, minus whatever things I broke adding the MLT support. I'd love a PR to handle other languages, but again... time.


When I click [Go] button in link [1] it hangs for 3 seconds and then deletes all the blocks and replaces them with just a block with the string "test" inside.


That's my hackish unit tester. You can see more information on the console log.


Something about a kids tutorial being hosted on LinkedIn makes it almost 'Onion-esque'


Just seeing the LinkedIn links made me think it was some kind of parody at first. Especially considering it’s already sitting on GitHub where there’s free hosting.

It’s clearly just an attempt to drive traffic/engagement to their LinkedIn account. A new form of blogspam... socialspam?


If you like this you might like the python code club stuff over at raspberrypi.org. Before covid I (volunteer) taught raspberry pi and arduino classes at our local library. For python on raspberry pi, I did a class based on turtle graphics from there which is really fun, even when you make mistakes.

https://projects.raspberrypi.org/en/codeclub/python-module-1


Turtle graphics are a great way to introduce younger people to python. I modified the python turtle.py module to run a small 3d printed drawing robot running MicroPython to use in workshops at our local Makerspace.

https://www.youtube.com/watch?v=09BW6e14T1g https://github.com/russhughes/turtleplotbot3


That's awesome!


Maybe the best thing 'old Nokia' did in the smartphone era was «PyS60» (Python for Symbian/S60) — first fully functional port of Python to smartphones.[0]

That was my "entry door" into Python programming in the early 2000s with Nokia 3230, then N82 ;)

Tutorials written by PyS60 devs community really help me later enter into add-ons development for Blender, FreeCAD, Inkscape, QGIS and other FLOSS apps with Python support.

Actually Python is my "Swiss Army knife" for daily tasks.

[0] https://en.wikipedia.org/wiki/Python_for_S60


I think when writing a programming tutorial for kids, you need to know for which age it is intended. 4 years ago, I was giving a course for 7/8 yrs old and there I was using 'makecode' [0]; IDE in browser, no installation needed, also dedicated to mirco:bit. It also offers a lot of tutoring materials. Coding is done in either code-blocks, which I used for the kids who just learned writing and reading, or with source code, which of course is suited to older ones.

  0: https://makecode.microbit.org/
The mu-IDE would not be my choice for teaching children, tbh.


Years ago, my daughter was 7 years old. She was precocious like I had been when I was little. I sat down with her in front of the python REPL, and showed her how to use it. She immediately understood what a variable was. A few days later she wanted to add up a few prices, and she fired up a python window, and got a floating point representation problem in the result. This put her off programming for life. She has never since wanted anything to do with it.


It looks mostly incomplete...? I'm not quite sure if it's 'comprehensive' yet, some of the language and wording makes it look like it's aimed towards an adult who already knows Python and wants to review what the basics look like.

I'd suggest moving hosting to GitHub too, the pages themselves as they stand appear to look like little more than than a shill for connections. I'm not sure what the point of this exactly is, but if you're working this to completion, please don't let this discourage you. Just go heads down, make it open, and don't push a path for recognition and notoriety, especially if you're trying to help children learn, as opposed to simply increasing your clout.

Best of luck.


Below is a 51 video tutorial series on Python that I made for my students about 4-5 years ago. It was a flipped classroom thing I did and I took it really slow in discussing the concepts.

https://www.youtube.com/watch?v=z1aXXjzWke4&list=PLmzkEJ1Zz_...

I've been teaching coding in middle and high school for awhile now, and the things that seem to pop up again and again which most online tutorials skim over is vast. People need to stop designing materials for kids that are just more colorful copies of what adults materials. It ends up turning off a lot of kids that aren't able to grok it right away.


Thanks for sharing!

I'm curious about your approach. I expected that, as you're targeting kids, you'd start with something like 'hello world' before going into the distinction between high-level languages and assembly.

Do most of the kids you teach understand and recall the things you mention in the introductory/foundational videos?

(I have almost no experience teaching kids to code.)


The introductory video were linked to the curriculum the department was following and so I put things in the same order to match what was being done. When I normally teach it I skip to the hello world portions first and then later come back to those first 3-4 videos.

The programming videos themselves go, in my opinion, quite slowly, which I found helped many kids.


For kids... on LinkedIn... C'mon!


Teach them early to submit to corporate social networks filled with dark patterns. Because that's what their life is going to be.


Ok, I think the best part of these sorts of post is to plug other projects, right? :)

So let me plug Hedy by Felienne Hermans, a python like environment, that gradually introduces more programming concepts :)

https://hedy-beta.herokuapp.com/ https://github.com/Felienne/hedy



I warmly recommend codecombat.com, which has both free and paid, python and js offerings, and more goodies like teacher/class setups. Oh, and it’s a game, which is fun and motivating in its own right.


I remember how as a little boy I was instantly hooked on my father's Dragon32 and its BASIC interpreter.

A screen plus keyboard plus an instant-on Micropython board setup would be very appealing to children.



I'm eagerly awaiting "Haskell for Toddlers: Proving the Eisbach-Goedel Conjecture with Multicyclic Monad Binary Trees".


Not going to use linkedin, sorry. Would have had a look otherwise. Not everybody is on there, or wants to be.


IS there an accompanying article on how to talk to your kids about linkedin?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: