13
votes
What is the best way to teach Python for my 11-year-old sister that lives in another state?
This may seem an obvious question, but not as much as it seems. She uses Windows, I’m currently using Linux/macOS. How to instruct her to install her Python environment? Should I use Zoom, Skype, Google Hangouts, or another solution? Is there and easy way for live-drawing (online blackboard) to explain things to her visually? And, perhaps most importantly, how can I do that for free?
I'm not sure if that's a typo but if she has a Linux or Mac computer, they come with a python distribution installed.
You can use any of the conference software. I'm most familiar with zoom because of work, but there is an option when screensharing for anyone in the call to annotate (I.e draw)
I’m the one on macOS/ Linux, she’s on Windows
Does Zoom have a whiteboard?
That’s kinda important.
Zoom does have a whiteboard feature as well as remote desktop control.
First, for setting up python on windows, I'd highly recommend Conda (specifically Miniconda). This takes out all the pain of trying to find pre-compiled packages for whatever VS edition that version of Windows was built with (though if you insist on going that route, use this).
As far as a development environment .... I would actually suggest maybe looking at a Jupyter notebook. It's designed to have short code snippets that can easily be run and re-run to immediately show output, has inline plotting support, can drop into pdb on an error, and is a decent intermediate development env. Heck, you can even write cells in Markdown for commenting / text. Here's an example of a pre-rendered notebook from a combustion code I used to work on so you get an idea what it looks like.
Unless she really wants to learn programming, I would make your goal to find something she'll find fun that you can work towards, and incrementally teach her the things she'll need to learn how to get there. One of the things I always turned to when I was teaching programming to kids was Conway's Game of Life because:
What do you know in terms of chat services? Skype and Zoom are your best options, and support all platforms. Zoom definitely supports annotating over your shared screen (I've had professors use it), and Skype might, but I can't find anything conclusive, so you'll want to look into it. Both are easily installed on Windows, Mac and Linux. Both are available for free, no strings attached.
Which editor are you using to teach her? I'd recommend IDLE, as it's already in the Python distribution, or eric, as both allow you to interact with the shell if you're going to be showing her how to process basic user inputs. eric is extremely useful if you want to introduce her to GUI programming with PyQt5. Getting eric set up in Windows fully takes a couple of small extra steps to get Qt Designer running fully (feel free to ask if you go that route), and is a full IDE, so it may be a little overwhelming at first.
Which version of python? Maybe match your distro, as they're all vary similar, and if she gets into it, any API changes are listed in the docs pretty well as far as I've seen (I'm learning Python myself).
I know you didn't ask for learning material, but I found this pretty easy and fun to follow: https://inventwithpython.com/invent4thed/chapter0.html
May i suggest the book "A Smarter Way to Learn Python: Learn it faster. Remember it longer." by Mark Myers amazon link
I used this book myself, and my teen daughter is going through it now. The chapters are really short (perfect for attention spans that have not been trained in computer science), and then you go to a companion website to complete a dozen or so exercises per chapter. The model for learning via this book's approach is really neat and impressive! It will seem simplistic at first, but after several chapters, when the student sees how quickly they became proficient, its creates a virtuous cycle. I'm not at all affiliated with this book...i just bought it per someone else's recommendation, and was impressed.
As far as "following along" with your sister, using zoom, jitsi, etc. might be good. In fact, if you sister uses the above book, then you could both connect via zoom/jitsi as she goes through the exercises so that you can provide real-time assistance, answer her questions, etc. Kudos to you for helping your sister learn python, and good luck!! 👍
These days, you can install Ubuntu an an “app” in Windows: https://www.microsoft.com/en-us/p/ubuntu/9nblggh4msv6
I expect that would make several practicalities easy because setting up Python in Windows is not the easiest thing.
Also refer “windows subsystem Linux”
For a shared online whiteboard, see Twiddla.
——
Also, if you’re open to suggestions other than Python, I might recommend scratch.
Are you set on python ? otherwise I would go with processing, it's much easier to setup and more fun for a kid :
https://processing.org/examples/bezier.html