Just grabbing a few cards and looking for where they exist in memory is a fun challenge, but also helps to understand and not be scared of the very overloaded []()* syntax in C.
735 karma · joined August 14, 2021
if you have good ideas on programming pedagogy shoot me an email at programmingtime@fastmail.com
thanks!
Just grabbing a few cards and looking for where they exist in memory is a fun challenge, but also helps to understand and not be scared of the very overloaded []()* syntax in C.
Its amazing how your brain just sees what it wants to see.
When I was her age, I spent hours just reading random man pages, pretty much because cartoon network was showing the same episode of dexter's laboratory for the 25th time.
The kids her age are growing in a strange era, programs will control their life, wether they want it or not, so it will be great if they can debug :)
Yea its a cyberdeck I am building with hardwired Atreus directly connected to pi zero gpios and using libuinput to make a software keyboard, which works amazing btw.
I am making it to init directly into getty without login (with busybox init), so it boots directly in usable /bin/bash in only 2-3 seconds, and all the available programs are simple python programs (ls, cp, mv, a basic line editor, touchtyping game, hangman etc) and the keyboard itself is a simple python program that basically scans the matrix and emits events to uinput. The frame is from plywood.
And I am trying to make it like a 'scavenger hunt' experience for my daughter, I will put special codes in various places in the programs or on the file system with different difficulty, and I can challenge her to find them.
The goal is to have < 50$ scavenger hunt computer kit (thats why I cant afford teensy or something)
This is just the prototype to see how it feels to write code using line editor, and also to test the effect of thinking of the keyboard as a program with a nested for loop, on her thinking about 'what happens when you press a key'
for r in rows:
send(r, 1)
for c in cols:
v = read(c)
if v == 1:
# (r,c) is pressed
send(r, 0)
I just uploaded those to show you how it looks, but again, its just to test the software and the screens size:https://github.com/jackdoe/programming-for-kids/blob/master/... https://github.com/jackdoe/programming-for-kids/blob/master/...
I want her to know why x[3] and 3[x] are the same thing.
int x[3];
2[x] = 5;
printf("%d %d\n", 2[x], x[2])
A lot of people struggle with x = 5
y = 6
y = x
x = 7
print(y)
and x = [1,2]
y = [3,4]
y = x
x.append(5)
print(y)
There is something magical in understanding how the computer uses its memory, its almost as if you walk out of a mist.I think it will be very valuable to have a set of 4 decks: python, machine code, unix pipes and C, so that the decks compliment each other. In the machine code deck there are few cards that have pointers (e.g. https://punkx.org/4917/play.html#43), and they can be used to help with the C deck for example.
Then its LISP.
(if you are talking about the programming time game)
Being able to type a command, give it some input and see its output, I believe is the most fundamental way to interact with the computer.
The basic concepts of files, folders, programs and processes are getting more and more murky with every new iOS and windows release, and yet, those are still the building blocks of everything, they are just hidden by some obscure interfaces and menus or are just plain inaccessible to the user.
UNIX Pipes are the most pure and useful way I know of how the user interacts with the programs and how the programs interact with each other passing their output to the other program's input, and I think it illustrates how more complicated things can be built.
Since I printed only 50, I think the price is too high, so I would rather to give them for free than to charge unreasonable price. If you are willing to pay the shipping cost send me an email to b0000@fastmail.com, I still have few left.
There was a story recently where toasters were bricked because they received the microwave binary update. Can you imagine? You wont be able to make toast if you cant hack our toaster.
Not to mention the new scams, from NFTs to ransomwares, I have gotten to the point of asking my daughter to tell me for each app she installs 'how it makes money from you, especially if its free' .
What big tech has been doing for the last 20 years has successfully disconnected the user from the computer, the next generation was supposed to be the most 'technologically advanced' generation and yet for them technology is worse than magic. It is magic that controls their lives.. that is filled with exploits, bugs and crashes.
We must do all we can to break down the tech barrier and make them literate.
(this is my log of teaching my daughter https://github.com/jackdoe/programming-for-kids I have posted it in other comments so it looks weird, but I have gotten some feedback that it is a nice resource for other parents, so I will link to it again)
I am still working on the games, but since it took me 2 months to make the programs, I decided to print anyway.
https://punkx.org/4917/guide.html#game here I have just given examples of possible games, but I think parents will have to see what their kid responds to, as mine really like dice and modifying the code so that works for me, but for another parent they might want to make some sort of treasure hunt with the cards for example.
The idea is for a parent and a kid to just pick few cards and play a bit after school or while making dinner.
Also it was a great deal of fun to write those small programs :)
My gut feeling is that almost nobody waits more than few hours, probably even less.
But at least whoever tried to send you email got a 'well we tried to send but failed' so they know to reach you in some other way.
a weird i have done is one is to make food just super inconvenient, and order groceries online only when my stomach is full, and buy lots things that are easy to eat raw, like cauliflower and carrots; you can even add pi-hole rules to block ordering groceries before lunch or before dinner when you are especially hungry.
i think its also important to drink just water, but each day try few drops of lemon or orange or something to change the taste if you are bored of it.
make sure your vit d is good as it will help with the stress as well
Every time we did a milestone performance improvement in our infrastructure, e.g. search used to take few seconds, we reduced it to few milliseconds. One year later our colleagues were doing machinegun-like queries and the search was back to take 1 second, and it is just a matter of time to go back to few seconds.
One thing that helped a lot was hard limits, e.g. InternetExplorer9 having hard cap on css size was literally the only thing that forced people not to push megabytes of css.
I wish Chrome does something similar, like 'you cant have more than 500kb of js code evaluated per page' or 'no more than 200kb css', it will do miracles in just one year, and I am willing to bet that we will have the same features we would without the limit.
EDIT: I did not mean to undervalue Chrome's 49% improvement in one year, which is just extraordinary work!
and then i had a typo ..
i will fix in the next revision!
She is not, but started learning english when she was 5 or 6 by watching netflix peppa pig in english and with english subtitles, now she is almost 11 and watches anime in japanese with english subtitles.
What pushed me to do that years ago was Stephetn Fry's turn on the subtitles video https://www.youtube.com/watch?v=I-zISnJ-oao (I cant actually find the one I watched at the time, but was the same content)
no :)
What would you have done if she was not interested in learning math or literacy?
Also when you were 8, you didnt have about 1 million developers making 500k per year trying to extract(and sell) every single bit of your attention in any possible way. From roblox to netflix to tiktok to supercell.
It took us like 300 years to learn how to teach math, and we are still improving, we are getting new tools every day, just look at https://www.youtube.com/3blue1brown can you imagine how many people he himself has reached and inspired? People that previously thought: "math is not for me".
We dont know neither pedagogy nor andragogy for programming, what is known is that tutoring + help software works really well (https://www.public.asu.edu/~kvanlehn/Stringent/PDF/Effective...), but we are still trying to find ways to teach mastery.
We made few arduino nano led controller, she helped to solder the mic sensors and etc, and also to program the delay between the 'claps', it just feels so real.
I also bought pi4 game hat (https://www.waveshare.com/game-hat.htm) that she assembled herself, and then I uploaded a 'hello world' snes game, showed her some assembly.
She played a lot of 'human resource machine' and '7 billion humans', and I was paying her sometimes 1 euro per completed level, and turns out it was time well spent.
She also helped me with some work on Ben Eater's kit (especially the clock and some registers).
I think the best lesson we had that got her hooked was when I made like 5 line python script that controlled the keyboard that was climbing an infinite staircase in Roblox using pyautogui.
What I am trying to say is that some kids will respond to scratch and some wont, and either way I dont think you should say 'oh programming is not for them'
The whole game was her idea and we started working on it about 5 months ago.
But you are right, in the future I will make decks with different difficulties.