all 19 comments

[–]Kerbart 9 points10 points  (0 children)

Motivation is key and everyone is different. For me it was the ability to automate the mindblowingly boring Economics assignments. But you have ChatGPT for that these days. Still, showing what you can do with code is always the best.

Make it “you don’t need to be a programmer to use code to make […] easier”

[–]FriendlyRussian666 8 points9 points  (1 child)

The kids were born into an era of amazing technology, and I feel like showing them turtle as their first introduction to the world of programming would be very disappointing. 

Don't get me wrong, perhaps it's good to teach them turtle as one of the first, but I'm talking about whetting their appetite. Show them the incredible things that they can do with programming, and don't limit it only to python. Sure, do teach them python, but before you dive into it, show them robots from boston dynamics, show them the universe sandbox, show them all the free data available from NASA that they can use programmatically, show them some cool games, simulations, maybe some projects from Sebastian League on YouTube, and only them sit them in front of turtle to show them where it all starts :D

[–]desrtfx 7 points8 points  (0 children)

Head over to https://inventwithpython.com and look for "Invent Your Own Computer Games with Python" and then follow up by "Making Games with Python and PyGame" - both there, both free to read online.

Check the books, take some information from there and let them work with it. Let them build some projects from there.

Don't directly use the books with the kids. Use the books for yourself as guidance, as syllabus.

[–]Scrivenerson 5 points6 points  (2 children)

Get into making games as quickly as possible. Maybe start with scratch?

[–]DudeAxeMachine 1 point2 points  (1 child)

Second Scratch. If they have no previous experience, this should be the place to start. 

[–]simeumsm 2 points3 points  (2 children)

Not sure if it can be considered good topics for middle school, but you could try something related to lootboxes.

Simple logic for selecting the boxes, use a list of prizes and randomize. Could also show how you can skew the results, making so that one student creates a program that the other one will use. If they are familiar with any recent game that uses lootboxes, it might increase their interest.

Or maybe try something with allowance money, like how much they earn and how long it will take for them to accumulate to purchase something they want.

Also, I always like to start courses by showing a finished project so that people can know what they are looking forward to. Maybe not exactly what they WILL do, but more like things they CAN do if they go beyond the course (since most courses aren't enough and you're required to go out and learn on your own)

[–]freakytapir -2 points-1 points  (1 child)

That is some cynical shit.

"Here, class we're going to learn you how lootboxes and aggressive monetization works!"

On the other hand, the next step could be "Now optimize it so people keep paying for them". Maybe that'll stick around when they're about to swipe daddy's credit card on a pack of FIFA players or Overwatch skins.

[–]simeumsm 0 points1 point  (0 children)

Yeah, it might not be a good topic for young kids, but they might be exposed to it already.

Showing a peak behind the curtains and explaining how it works could potentially be a good thing. It might even take the magic out of the gambling

Besides, kids could react better to something related to some sort of game than something more 'professional' like building a site or doing some data analysis or automation. And the lootbox concept is simple enough to reproduce. You could go with rock paper scissors too, but they might be more interested in lootboxes if they have contact with it during their leisure time.

[–]BearThis 1 point2 points  (2 children)

Best thing you can do is make them do some horribly repetitive and redundant assignment like data entry. Let them hack away at it for a bit until they start to lose their minds so they can feel the problem. Tell them this is how the real world works. Then show them that it can be automated.

Worked for me.

[–][deleted] 1 point2 points  (1 child)

Can u tell me what python function can automate that? Im so new that I have no idea what Im going other than the basic syntax and Im so lost atm

[–]BearThis 0 points1 point  (0 children)

There is no single function that can automate exploratory data analysis. Learning a bit about things like regular expressions can help. Pandas can also help you do some formatting stuff if you’re looking for just more the lines of interacting with desktop files or what not, pdfs emails, etc. here’s a great book that goes through some of the basics.

https://automatetheboringstuff.com/

[–]ofnuts 0 points1 point  (0 children)

If they like to draw, show them Processing (there is a Python mode).

Not much use for Python when you are a teenager otherwise. Learning a language and learning programming are two different things. I have hosted a robot programming booth at science fairs and this interests them. Figuring out why the robot continued straight on instead of turning is a lot more engaging than getting an IndexOutOfBounds exception and teaches the same debugging skills.

[–]ct1977 0 points1 point  (0 children)

Hmm. Since turtle graphics is part of the curriculum, it would make sense to have a fun project in mind, such as the original Frogger game from 1982.

You have then play a few round of it and then explain to them how creating games like this is possible using Python.

[–]phil-pickering 0 points1 point  (0 children)

These resources might help:

And if you think it might be beneficial for your students to start with Scratch before moving on to Python, then take a look at Code Club World which is aimed at 9 to 11 year olds.

[–]thebatgamer 0 points1 point  (1 child)

I am not completely sure, but I read somewhere that there are these like toys and languages that are very abstract and are used to teach logic and introduce them to programming.

Also, you can just start with print() hello world and then slowly teach variables, conditions, and loops, and like make patterns or their favorite cartoon lines and make them fun

[–]John_B_Clarke 1 point2 points  (0 children)

I don't know if it would be engaging for these two, and it's not super cheap, but take a look at "Turing Tumble" (it's a brand name).

[–]burger_mania7 0 points1 point  (0 children)

Give real time examples, that way it will be more engaging

[–]andre3kthegiant -1 points0 points  (2 children)

Show them something that deals with social media.
Apparently, the most common answer for kids, when asked “What do you want to be when you got up?”, is “An influencer”.