I've been getting back into teaching kids programm...
# devlog-together
k
I've been getting back into teaching kids programming. Of course, this time using Lua, LÖVE and Carousel. After a couple of months, it occurred to me to collect all my little impromptu puzzles and exercises into a single app anyone can go through on their own schedule. Carousel cards (LÖVE app, really just a zip file containing source code, 169KB) Nowhere near done yet. But it has 50 little "levels", each taking between a few seconds and a minute. A full game/curriculum might need 2000 levels or something.
t
excellent timing! I was gonna do a programming session today with my 9 year kids (twins) today. I had a quick peek and the exercises are at the right level, and it suits the way I teach them where I have a single shared screen on a projector and open discussion.
Great. Very nice set of exercises. I went through it with my daughter. It took 66 mins. It mentally taxed her. I think it went very well but partially because I know the common mistakes and asked the right questions when I saw her mentally make a mistake, so I diffused misunderstands fairly quickly. I think you should use red/green/blue not rgb as variable names as thats assumed knowledge. I recorded the full session with her if you want it.
k
Very good point about rgb. Yes I'd be very interested to see it. And wow, I hadn't expected anyone to get through 50 levels in one session!
t
my 2nd child crashed out after the graphics section when we hit the logic bit (around ex 30), but its near lunch time and she says she will continue after food. She loved it too, its very fun fiddling with the graphics parameters, they both got a hit of joy at the animation parts and it was a good point to start guided experimenting. edit: yeah she was indeed keen to finish and did. Kudos on your "level" design. Very very well written and good progression.
s
This is such a cool idea, I love it! Excited to see where you take it next
makes me think of like a mix of what why the lucky stiff was trying to do with hackety hack back in the early 2000s (

https://www.youtube.com/watch?v=20ihzA8v89U

) and kind of a more interactive version of the style in The Little Schemer/Seasoned Schemer/Little Typer books
k
Thanks both for the encouraging words! Here's a new version with some small fixes and now 108 levels: carousel-cards.love While I've tried to leave illegible what you're supposed to learn from any single screen/level/lesson, I can't deny I've had some goals. Here are the topics I've tried to cover (with additions in this version in bold): • numbers, math • print • variables • functions • drawing • colors • assignment/mutating variables (
x = x+1
) • callbacks (
car.draw
, etc.) • animation using
car.update
if
,
else
,
elseif
• operators
~=
,
<=
,
>=
loopsarrays
s
Started to play with it a bit more, again really excited to see where you take it, feels like there are a lot of fun directions you can take it...would you want bug reports here? somewhere else? playing with some of the newest lessons I ran in to some issues...
k
That would be lovely. This thread should be fine, but feel free to email them to [email protected]. I'm also on most other media if you have a preference.
s
Sounds good 🙂 So... on the rectangle drawing lessons, I would have expected them to draw in the bottom container...but they're drawing in the code/editor container:
image.png
k
Yeah I can see why that's confusing. The entire screen is available to programs. Tap the 'hide' button to temporarily hide the code. This becomes important later when we do input from keyboard/mouse/touch. Programs only accept input after you hide the editor. Otherwise the editor receives all input. Definitely non-intuitive. I'd love suggestions to improve this. For example, I considered choosing numbers that draw to the right or bottom half. But then I figured better to get people used to it early. One of the early lessons mentions the 'hide' button. Perhaps I should say that more often.
(This is why the different areas don't have different background colors and so on. The code editor is like a transparent overlay over the screen.)
t
awesome, we will try the new ones on the weekend. My favourite level of the first batch was
Copy code
if (sheep < 3)
   print("a")
end
if (sheep < 4)
   print("b")
else
   print("c")
Both my daughters fell into the trap of thinking it would just print "a" after acclimating to the single print idiom that had been established. And it made them surprised, causing them to really then focus harder so as not to 'lose' again. Despite you saying it doesn't matter to be wrong, they definitely wanted to get every single answer correct, and that curve ball really made them concentrate on the details and made them laugh and made it feel like a real game with a trickster dungeon master.
k
Yeah. I'm just trying to sucker people in with "wrong doesn't matter." Notice I didn't say "there are no wrong answers." 😂
s
Ahh sorry about that! I didn't follow the full progression, just kind of jumped around to a bunch of different lessons 🤦
k
No problem! I think your comment was good actually. I only mention that one thing in one level, whereas I mention everything else in multiple levels with lots of redundancy.
So in spirit with everything else -- you don't have to do the levels in order! I'm also planning to mention at some point: if you get the answer wrong, you can make it right by changing the program! 😄
s
Got it, thinking more about it now it makes sense that the other lessons would explain more of the interface, I think I just took what I saw and assumed how it would work...
in my mind was definitely thinking more like the editor Bret Victor showed in Inventing on Principle
or like logo: