Python Programming for Teenagers

8 views
Skip to first unread message

Mark Levison

unread,
Jan 30, 2020, 10:16:07 AM1/30/20
to lonely-coaches-sodality
All - This is not on topic. No Agile will be mentioned, no coaching problems will be raised.

My just turned 13yr old has been exploring and programming Scratch. She's hit some limits and is bored with Scratch.

She thinks Python would be a good step up and while I've never programmed it myself - my gut feeling is that she's right. Our challenge is to go from a browser-based programming tool to using a real programming language. Currently, she doesn't think about her computer's file system, she uses it but has never even thought about directories vs files. Effectively, she thinks that the Chrome browser is her computer.

Has anyone encountered:
 - a good book(s), site, etc that help kids with challenges or problems that would introduce Python to them.
- what about a simple IDE? I almost want one where I can turn the sophisticated tools off (VS Code is a possibility).

I promise to wait at least two whole weeks before introducing GIT.

I've already had one suggestion for Tynker.com - it looks intriguing although I can't tell what they do.

Cheers
Mark

Chet Hendrickson

unread,
Jan 30, 2020, 10:30:25 AM1/30/20
to Lonely Coaches Sodality
HI Marc,

I would use either PyCharm, which has a community edition, or SublimeText with the Python language file and REPL

--

---
You received this message because you are subscribed to the Google Groups "Lonely Coaches Sodality" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lonely-coaches-so...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lonely-coaches-sodality/CA%2BUdPQ_tvLvErrbsv44uY8uLP4N36T1HT80QDVF_g-v4eFPwHQ%40mail.gmail.com.

Tobias Fors

unread,
Jan 30, 2020, 10:30:52 AM1/30/20
to lonely-coac...@googlegroups.com
Mark, have you tried the online development environment on repl.it? I've used it with one of my kids to do some basic Python stuff. Best regards /Tobias Fors

Wouter Lagerweij

unread,
Jan 30, 2020, 10:42:08 AM1/30/20
to lonely-coac...@googlegroups.com
I own a digital copy, but haven't read it  yet, but there is: https://nostarch.com/pythonforkids

Alternatively, looking at  some robotics / rasberry pi / electronics stuff could be a nice way to get things started. 

i'll be looking at a small learning-programming with my 16 year old daughter in the coming months, and was also thinking about using python.

Wouter



--

Mark Levison

unread,
Jan 30, 2020, 11:05:26 AM1/30/20
to lonely-coaches-sodality
@All fun - can you tell I have a couple of client proposals to write and I don't really feel like it :-)

@Chet I haven't used SublimeText in years, I didn't even know it still existed. I moved to VisualStudio Code a while back.

@Tobias Repl.it looks very cool. I like the idea of getting going in minutes via the browser vs me downloading/installing apps for 1+ hrs. I like the community aspect, I wonder if there are kid friendly/safe communities there.

@Wouter - I had seen the book you mentioned on Amazon and then read this review
I bought this book hoping to work through it with my daughter learning Python together. I figured after learning the basics there would be kid-oriented examples like building a question-and-answer game, or using loops and logic to draw. I started to get worried even in the first chapter learning the basics, when we happened across a whole section discussing string escaping rules. Escaping rules! Suffice to say, they are neither fun nor playful.
When we reach the second chapter, with the Python turtle, I thought "aha, here we go!", but after a quick introduction to the Turtle, we go right back in chapter 3 to condition logic. Hey kids, "if"! "else"!. The turtle does not reappear until chapter 11, by which time we will have had to slog through conditional logic, loops (ok, these are useful for fun turtling, but none of the chapters actually uses the turtle!), modules (!?!), classes and objects (!?!?!) and the details of dates and times! That's right kids, we're going to teach you how to convert a tuple of year/month/day/hour/min/second into a date object.
Taking a standard introductory Python book, making the titles goofy and the coloring friendly, and using "fun" example strings instead of boring example strings, does not make for a "playful introduction". Actually engaging in *play* makes it playful.
I would not recommend this book. A child with enough mental discipline to go through the lessons as written would find the tone and example content juvenile, and a child who liked the tone would likely find the lessons insufficiently engaging to get very far.  

I will likely offer https://www.amazon.ca/Coding-Kids-Python-Awesome-Activities/dp/1641521759/ to my daughter tonight. Its her call what we actually do.

Thanks for the ideas so far. Our teachers strikes next week (sadly necessary), might just be the most fun couple of days I've had in a while.

Bonus - I bought the adult learner in the room books on game design.

Cheers
Mark

Wouter Lagerweij

unread,
Jan 30, 2020, 12:06:28 PM1/30/20
to lonely-coac...@googlegroups.com
Ouch, thanks for saving me the time to read that thing...

And have fun coding!

Wouter

Yves Hanoulle

unread,
Jan 31, 2020, 2:39:49 PM1/31/20
to lonely-coaches-sodality
Hi Mark,

I'm going to use Wouter's tip about raspberry pi etc
to unshamefully promote my now 12 year old daughters Arduino book.


Geike followed an arduino workshop for girls when she was 9 or 10.
when she came back home, she was frustrated because the exercise was a 3 hour one, with only feedback at the end.
She was used to have instant feedback using scratch at coderdojo

As I told the organization about that, she was invited to create the next years workshop.
She took an easy exercise (create a traffic light) and cut it in 10 exercises with additional challenges.
so that people get lots of feedback 

I helped her turn it into a book last year and translated it in English.

It's aimed at people who never programmed in Arduino and teaches it with lots of feedback and with language that is easy to understand. 
Although it was created for coderdojo diva's, it's also for boys and adults.

the book contains also a list of the material you need, with weblinks for a Belgium shop, in the future I will help her add amazon links to the hardware.

yves



Op do 30 jan. 2020 om 16:42 schreef Wouter Lagerweij <wou...@lagerweij.com>:


--
--
Yves Hanoulle - 0476 43 38 32
www.hanoulle.be

                Tim Ottinger

                unread,
                Jan 31, 2020, 10:52:59 PM1/31/20
                to lonely-coac...@googlegroups.com
                You’ve no doubt found the Python For Kids resources by now, I’ll bet.

                And of course the browser can be the tool: 

                Also, I have seen people doing amazing things with Jupyter notebooks, which is kind of using the browser and also persistant. There are guides to setting it up. I tend to go right to python using the editor at hand or the editor of choice. 



                I've already had one suggestion for Tynker.com - it looks intriguing although I can't tell what they do.
                Looks interesting.
                --
                Peace,

                Tim Ottinger

                unread,
                Jan 31, 2020, 10:58:02 PM1/31/20
                to lonely-coac...@googlegroups.com
                This looks like a good starting point: 

                Michael Hill

                unread,
                Jan 31, 2020, 11:13:30 PM1/31/20
                to lonely-coac...@googlegroups.com
                I am currently teaching a young person Kotlin as his first programming language. (Well, with my prior assistance, he took an intro C++ class that was abysmal and learned zero things, so we decided to start fresh with grownup tools and ideas.)

                We started with a basic understanding that every textual structure in a program is a kind of box, and that the keywords tell you what the generic rules for that kind of box are, including stuff on the lid and stuff inside, and infinite imaginary nestability. That seemed to help.

                It still has taken a while to get his head kinda halfway around functions, which we're still learning about, but had a good session this week. We are now writing JUnit tests and using them to call our functions. We've only used functions and strings and booleans so far, but next step is to keep practicing our TDD and function-writing, only tossing in both the integers and the random-access of the strings as containers.

                It's been quite challenging. I did it this way because I looked around for better pedagogy and the bottom line is that I just couldn't find it, outside of Scratch and Logo maybe. Everything is so relentlessly syntax-y. But professional programming isn't syntax, and though syntax seems like the hard part when you start, we all know that doesn't last very long.



                --

                ---
                You received this message because you are subscribed to the Google Groups "Lonely Coaches Sodality" group.
                To unsubscribe from this group and stop receiving emails from it, send an email to lonely-coaches-so...@googlegroups.com.

                Jon Kern

                unread,
                Feb 1, 2020, 9:04:31 AM2/1/20
                to lonely-coac...@googlegroups.com
                I gotta say, I love Ruby on Rails. Easy to make quick progress, grow as you can.

                No idea if it it too big of a jump from Scratch
                • Object-oriented
                • The domain model rules the day
                • Framework handles the boiler plate so you can focus on the business
                • Can easily do BDD with Cucumber
                • Can easily do TDD with RSpec

                Mark Levison

                unread,
                Feb 1, 2020, 10:49:33 AM2/1/20
                to lonely-coaches-sodality
                @Yves thanks for the note about your daughters book I will add to the list of options.

                @Tim thanks for all the refs - the video was engaging, even grumpy old me was able to watch for 5 minutes. I think she wants to start with Repl.it so I'm spending my morning there. I may spend the day learning python myself. The other IDEs (Thonny looks clever) might come into play later.

                @GeePaw I promise no C++. I ran away from it over 20 yrs ago, I'm unlikely to ever return. She has selected python, mostly of her own accord. I really am trying to be her guide on the side. Koitlin seems interesting but I want her to use a language where she can progress rapidly without my help and one that is widely popular. I was tempted by Rust - just for the Neil Young references (Rust Never Sleeps and Live Rust).

                @JonKern In principle I like everything you just described, in practice trying to help a teenager learn about TDD/BDD/..., etc seems alot in the early going. I've even had to promise myself not worry about how clean the code is. 

                If she has fun, learns something and stokes an interest I'm a happy camper
                Mark

                Michael Hill

                unread,
                Feb 1, 2020, 10:59:55 AM2/1/20
                to lonely-coac...@googlegroups.com
                Oh, I wasn't pushing Kotlin. I'd be just as happy, prolly happier, teaching him Python.

                Unquestionably, the right language to learn first is the language one wants to learn. 

                In one's first learnings, one needs a lot of juice to get past the incredible and annoyingly rigid OCD of programming. The perceived desirability of the language is part of that juice. The perceived "what it's used for" is important. The perceived "how fast can I make it do a cool thing" is important. All of those add to the supply of juice. On the side of reducing demand, decent tooling helps, obviously a willing mentor helps, a well-designed path, both conceptual and syntactic, helps, TDD helps.



                WIL PANNELL

                unread,
                Feb 1, 2020, 4:56:33 PM2/1/20
                to Lonely Coaches Sodality
                ref: Gary Bernhardt —

                Python was intentionally designed to require less complexity in the computational system that recognizes it.

                The Chomsky Hierarchy of computational systems (1-least, 4-most):

                1. regular expressions
                2. Python
                3. C++, JavaScript, Haskell, etc.
                4. Turing Machines, Lambda Calculus

                Mark Levison

                unread,
                Feb 1, 2020, 10:37:54 PM2/1/20
                to lonely-coaches-sodality
                Nice. I would thought regex was class 6 or 7 :-) I'm not convinced they're Turing computable.

                Cheers
                Mark 

                --

                ---
                You received this message because you are subscribed to the Google Groups "Lonely Coaches Sodality" group.
                To unsubscribe from this group and stop receiving emails from it, send an email to lonely-coaches-so...@googlegroups.com.

                Tim Ottinger

                unread,
                Feb 1, 2020, 11:43:34 PM2/1/20
                to lonely-coac...@googlegroups.com
                Although I remember someone on a team I coached finding a progressive regex game, where you learn a lot about regexes in a few minutes by building the expressions that find the right words & stuff. It was pretty cool.

                How generally applicable it is, or important to learn, well... Python is likely to come in handy right away (as would be JS).

                Jon Kern

                unread,
                Feb 2, 2020, 7:36:03 AM2/2/20
                to lonely-coac...@googlegroups.com
                Yea, regex is pretty gnarly… My goto is rubular.com 
                --

                ---
                You received this message because you are subscribed to the Google Groups "Lonely Coaches Sodality" group.
                To unsubscribe from this group and stop receiving emails from it, send an email to lonely-coaches-so...@googlegroups.com.

                Nigel Thorne

                unread,
                Feb 2, 2020, 3:38:12 PM2/2/20
                to lonely-coac...@googlegroups.com
                https://www.microsoft.com/en-us/makecode

                Make code is Scratch  extended to working with hardware (or Lego Mindstorms). It lets you write scratch, but is reality you are writing JavaScript. You can switch views and see the code in either form at any time. 





                Nigel Thorne

                unread,
                Feb 2, 2020, 3:41:12 PM2/2/20
                to lonely-coac...@googlegroups.com
                I love https://regexper.com/ for visualising regex as railroad diagrams. This makes explaining them really easy. 



                On Sun, 2 Feb 2020, 11:36 pm Jon Kern, <jonk...@gmail.com> wrote:

                James Grenning

                unread,
                Feb 2, 2020, 5:28:02 PM2/2/20
                to lonely-coaches-sodality

                Hi Mark

                I used the python koans to get started with Python. That may not really be geared to first programming experience, though it is structured as a bunch of small problems to solve. It can at least be part of her journey.

                James


                James Grenning - Author of TDD for Embedded C - wingman-sw.com/tddec
                wingman-sw.com
                wingman-sw.com/blog
                twitter.com/jwgrenning
                facebook.com/wingman.sw
                wingman software

                --

                ---
                You received this message because you are subscribed to the Google Groups "Lonely Coaches Sodality" group.
                To unsubscribe from this group and stop receiving emails from it, send an email to lonely-coaches-so...@googlegroups.com.
                Reply all
                Reply to author
                Forward
                0 new messages