Hacker News
Ask HN: Second generation of intro to software dev for 3rd graders
"Next week I'm going into my daughter's classroom to teach about software engineering. I want to teach them about the magic of it."
https://news.ycombinator.com/item?id=42056775The best suggestion was
"I think about the PB&J demo a lot."
It was a big hit! I took a lot of the suggestions and had so much fun. I'm going to do it again for my 4th and 5th graders classes and could use some help in improving it.A few highlights from last year:
* I brought a serrated knife and ketchup packets. When they said put the jelly on the bread with the knife, I gripped the serrated end and pretended my fingers bled (ketchup works great as blood).
* I brought in vaseline AKA petroleum jelly. When they said put jelly on the bread, I contemplated aloud "Well, you said JELLY, and this says JELLY!"
I offered to give the sandwich to one lucky kid afterward, but surprisingly, no one took me up on the opportunity to eat a sandwich with peanut butter, vaseline and ketchup. Kids these days are so spoiled, 6-7!This year I want to do it again. But, I want to add some ideas:
* importance of teamwork: I think this differentiates good software teams from bad teams.
* importance of good communication: I was thinking about teaching them about how important communication and planning is. Last year I had slips of paper where I asked a different scribe to write down the instructions, and then I took those, reordered them with class input and then took action. But, perhaps I can expand on that and really drill into them the value of planning and good written communication.
* managers: I was thinking about talking about how the managers are often the best paid, because they take responsibility for all the moving pieces, and the success or failure of the project. I expect this might be a controversial take here on HN!
Any suggestions?
laurieg
|next
[-]
Here's another I like:
Give groups of kids 10 identical looking items and a balance to compare the weights. Pre-teach how a balance works to compare the weight of items. Ask them to put the items in order from lightest to heaviest. You're basically asking them to come up with a sorting algorithm. Usually, after much experimentation, someone will come up with an algorithm that works. You can work together to try to write down the steps of the algorithm. You can also explore more mathematical ideas like transitivity when comparing different sorted sets of items.
alberth
|next
|previous
[-]
PessimalDecimal
|root
|parent
|next
[-]
My oldest is now in kindergarten and I am going to use Logo to help her learn. I started by buying an Etch-a-sketch that we use together for a real-world point of contact with the idea.
exasperaited
|root
|parent
[-]
I was never taught much of it, but Logo is massively more sophisticated than most primary education ever gets into -— it's really a multi-paradigm language with quite an elegant loose functional programming style hidden in it.
There's a good article about it here with some links:
https://blog.codinghorror.com/modern-logo/
Also don't ignore Scratch: if you can teach familiarity in Scratch you are going to set your daughter up really well for all sorts of stuff. Scratch is really Logo's spiritual successor and it's a thing of beauty, IMO.
PessimalDecimal
|root
|parent
|next
[-]
I am exciting to try my own hand at Logo again too with a _bit_ more experience as a programmer than I had back in kindergarten.
I have also been looking at Scratch and at Racket as fun programming sandboxes for learning and playing.
empressplay
|root
|parent
|previous
[-]
Has a 2D physics engine and can use GLB models, among a bunch of other modern features...
cweagans
|next
|previous
[-]
dherls
|next
|previous
[-]
analog31
|next
|previous
[-]
Her first gripe was that the computer didn't recognize the lower case "l" for the numeral "1" ad vice versa. Her old Smith-Corona typewriter didn't have different keys for those characters, or for upper-case "O" and Zero.
somethoughts
|next
|previous
[-]
Instead of a turtle you control a bunny and instead of lines of code with commands you collect up and then use sequences of cards with commands (i.e. left, right, forward, back). Eventually, I think you end up using loop command cards, etc.
I'd imagine you could have teams control each bunny.
CoderBunnyz - https://coderbunnyz.com
Quick overview on how to play CoderBunnyz
https://www.youtube.com/watch?v=hCOBtdG3ctI
Some provided lesson plans even:
https://coderbunnyz.com/stem-schools/
Amazon
https://www.amazon.com/Coder-Bunnyz-Comprehensive-Programmin...
saulrh
|next
|previous
[-]
jackdoe
|next
|previous
[-]
also maybe get few examples from human resource machine and play them out, this might be more fun than pb&j https://tomorrowcorporation.com/humanresourcemachine
throw-the-towel
|next
|previous
[-]
rahimnathwani
|next
|previous
[-]
- Octostudio ("developed by Lifelong Kindergarten at the MIT Media Lab")
- A series of exercises demonstrating specific features, similar to these: https://www.amazon.com/ScratchJr-Coding-Cards-Creative-Activ...
gus_massa
|next
|previous
[-]
xrd
|root
|parent
[-]
gus_massa
|root
|parent
[-]
My older daughter works in a software company to make a program to administer collections of videos, lots of videos. In particular a small part is a feature to upload some videos to YouTube using the API. A few years ago, when we told that to my younger daughter, she understood that her sister worked in YouTube. The younger one was extremely happy and and full of admiration. Even if my older daughter gets a Nobel price, she will not reach the same level in the appreciation scale.
I'm not sure how to apply this to your talk, specially because they are older children, but ensure to explain that some guys/gals like you make YouTube work.
Stevvo
|next
|previous
[-]
Went to various computer classes at school as a kid. Usually it turned out to be a math class doing bitwise logic on paper.
userbinator
|next
|previous
[-]
My suggestion is to start with digital data and logic circuits; how everything a computer does is based on a huge number of switches making very simple decisions.
w10-1
|next
|previous
[-]
alexjplant
|next
|previous
[-]
> * I brought a serrated knife and ketchup packets. When they said put the jelly on the bread with the knife, I gripped the serrated end and pretended my fingers bled (ketchup works great as blood).
> * I brought in vaseline AKA petroleum jelly. When they said put jelly on the bread, I contemplated aloud "Well, you said JELLY, and this says JELLY!"
...and so went into great prescriptive detail about exactly how I'd make said sandwich. After turning it in my teacher chose my essay specifically to repro onto a transparency and place on the overhead as an example of bad writing. Apparently being explicit about choice of ingredients, removing things from packaging, holding the bread, etc. was antithetical to the assignment and dismissed with laughter and eye rolls because "everybody knows" to do these things.
This was a bit of a blow to my fragile ego but in retrospect it was an important lesson in several concepts that you touch on later in your post such as good communication (the importance of considering one's audience), asking clarifying questions (because requirements are hard), and interactions with authority figures.
I say all of this to say that you should absolutely emphasize this less technical side of things. Soft skills are at least as important as technical aptitude when it comes to career mobility and emphasizing them early would give students a real leg up. While considering edge cases and assumptions is clearly important for computers it's also crucial to keep in mind how people understand processes and systems, i.e. when to be explicit and when to avoid patronizing those on the other end of your comms.
aeontech
|root
|parent
|next
[-]
Oh man, regardless of how "bad" someone's writing is, this is terrible terrible teaching. Public shaming in front of peers, especially on something subjective like this? Some people should not be teachers. I'm sorry you had to go through that.
blindriver
|next
|previous
[-]
One of my kids picked up scratch immediately and did that for a couple of years for fun and now he’s doing python and machine learning.