Skip to content

Slides for my talk "How to Teach Python to Beginners: A Guide for Python Experts" at Remote Python Pizza, 25 April 2020

Notifications You must be signed in to change notification settings

marielledado/TeachingPythonToBeginners_AGuideForExperts

Repository files navigation

How to Teach Python to Beginners: A Guide for Python Experts

Remote Python Pizza This repository contains the slides for my 10-minute talk "How to Teach Python to Beginners: A Guide for Python Experts" at the first remote Python Pizza conference on 25 April 2020. 🐍🍕

In this README, I cite the resources I mentioned in the talk, plus additional resources that were brought up during the post-talk discussion

✨ - contributed by conference attendees

💬 - attendee comments

P.S. If you're a Python mentor/trainer and wanna chat about evidence-based strategies, please don't hesitate to reach out!:email: Happy to give feedback on tutorials/workshops etc. I owe a lot to the kind & patient folks who helped me out when I first started out with Python. This is my way of giving back! You can find me on Twitter or LinkedIn

Resources mentioned in the talk

The evidence-based instructional strategies I presented are based on the incredible work of these two amazing cognitive psychologists, who have made it their mission to make scientific research on learning more accessible. Their blog contains free downloadable materials of six strategies for effective learning. I highly recommend them if you want to improve your teaching based on methods backed by research.

An essay by interface designer Bret Victor, in which he argues that many programming languages are "poorly-designed" and that we should change programming and "turn it into something that's understandable by people".

💬 "if someone is still not familiar with the work of Bret Victor, I totally recommend you to watch any video of him, it's really inspiring. I think one of the best videos he has is the one that develops a mario-alike video game."

An online tool created by Philip Guo that visualizes the execution of each line of code. Excellent application of the dual coding strategy. Here's a link to the code I presented. Available in other programming languages.

A collection of short text-based games written in Python 3. Curated by Al Sweigart specifically for beginners. Show these games to your learners and help them develop an understanding of Python fundamentals using the self-explanations strategy.

🙏 Emojis from Emojipedia.org

Additional resources

Applying dual coding and self-explanations

Denise Yu is a software engineer who likes to create sketchnotes and doodles (with cats!) about technical subject matters. Doodling is a great exercise that applies both dual coding and self-explanation strategies and could help learners make sense of technical concepts.

Similar to Denise Yu, Julia Evans creates adorable comics on programming topics.

💬 "...linux instead of python but also amazing visualizations!"

An awesome talk at the conference about writing in-code comments, with some insights on learning proper documentation. The main takeaways are that commenting is a form of documentation and that comments teach us about ourselves. I like that Veronica emphasized that while good comments are extremely useful at avoiding errors, bad comments (especially outdated ones) can be misleading.

My two cents: I mentioned in my talk that comments are great for learning. It's great to comment a lot when starting out. But after listening to this talk, I now realize that cleaning up comments is also important for learning. You could consider comment "refactoring" as a way of condensing one's thoughts to be more concise, which is a learning experience in itself.

💬 "I really needed all those comments at the beginning, even for things that now seem obvious, but especially when I started to work in the context a project with more developers involved, it was really an effort and leave those notes was key. But later one, that cleanup of the comments, or the refactoring of the code itself (why on hell was I doing that in that manner 5 years ago?) is also learning."

You might have used this book to learn/teach Python. But have you ever paid attention to the practice questions at the end of every chapter? These could serve as great self-explanation prompts that you can try with your students to deepen their knowledge about the chapter's topic.

Developing pedagogical content knowledge

This is perhaps the most comprehensive practical guide to teaching software and data skills I've ever seen. Includes relevant theories from cognitive sciences (expertise, cognitive load theory etc), written in an accessible way. I think everyone who is mentoring in Python in any capacity should read this.

A podcast all about teaching Python hosted by middle school teachers learning and teaching Python. I recommend their episode on "Teaching Adult Learners" featuring an interview with Reuven Lerner, another excellent Python trainer.

💬 "I find it very useful also as a way to get some feedback about existing tools".

Helpful Python learning resources

Python Data Science Handbook by Jake VanderPlas

Excellent introductory book on Python for data science

💬 "the data science handbook is also quite nice, and should run on Binder"

A Whirlwind Tour of Python by Jake VanderPlas

A great intro to Python book geared towards people with prior programming experience in another language

Gael Varoquaux has written a few tutorials on sci-kit learn, pandas, machine learning etc using Jupyter notebooks, all available on GitHub.

💬 "I remember the jupyter notebooks from Gael Varoquaux as very useful to learn more alone at home."

nbdev

A tool that allows you to fully develop libraries directly on Jupyter notebooks. All your code, tests and documentation in one place, in the style of literate programming.

Helpful tools for teaching Python online

Lets you host and execute Python code à la Jupyter notebooks, great for presenting tutorial/workshop content

💬 "[Learners] can save their own copy of the notebook and modify it. Of course introducing git is great, but this is really a good option and I've seen it working nicely in meetups..."

Free and open source tool for collaborative/pair programming

A tool for recording and sharing terminal sessions

💬 "just a terminal recorder, there are plenty of opensource alternatives, but it is a bit difficult to transform them to gif/video, not straighforward"

✨ Upload tutorial/workshop materials on GitHub

Host your teaching materials (i.e., as Jupyter notebooks) in a GitHub repo that learners can clone. Also a good opportunity to introduce Git.

💬 "you can put [Jupyter notebooks] on github and add an run on binder feature then"

💬 "yeah, from my experience, introducing the git at the beginning of the course is really worth the effort"

💬 "You can upload notebooks to github, if you've run it before comming github will render the result...It doesn't work on mobile but desktop should be fine"

About

Slides for my talk "How to Teach Python to Beginners: A Guide for Python Experts" at Remote Python Pizza, 25 April 2020

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published