Contribute Media
A thank you to everyone who makes this possible: Read More

Teaching Python to teens

Description

How does one design a workshop accessible to beginners yet also challenging to seasoned Python programmers? This talk will summarize two pieces of curriculum which have proven successful in engaging teenagers in Boston in an extracurricular setting. Unlike traditional computer science lecture material, these problems ask the learner to spend the majority of their time designing an original solution (in pseudocode or outline form). A syntax guide (with sample code snippets) is provided in addition to starter .py files, but students can engage with the problems in a meaningful way even without writing perfectly-functioning Python code.

The first challenge asks students to evaluate two essays about astronauts. One essay exhibits characteristics of strong writing while the other uses a weak, informal writing style. Beginner students are asked to list words they believe have no place in strong writing. Beginners then receive guidance in creating a Python list and using the "in" keyword to check the sample essays for weak words. Advanced students are provided with a much larger set of possible evaluation criteria and, if sufficiently advanced, may also choose to write a web scraper which could be used as a plagiarism checker. All students must develop methods that a computer could use to determine which essay is superior. Because many non-programmers have experience in writing essays, this challenge problem was developed in the hopes that non-programmers might use it to bring a taste of Python into their classes.

The second challenge problem asks students to evaluate real data from a math quiz app. The provided data contains a nested dictionary (yes!!!! nested dictionaries!!!! WIN) and may be analyzed directly in Python or in MongoDB (via PyMongo) using the MongoDB aggregation pipeline.

The goal of this talk is to empower attendees to offer similar workshops (for teens) regardless of prior programming experience. As the world faces not only a shortage of software engineers but also a shortage of available engineer-teachers, new curriculum which enables non-programmers (i.e., librarians, English teachers, history teachers, after school mentors, etc.) to teach programming is urgently needed.

Whether or not you have teaching experience (or Python experience), come to this talk and help further the conversation about Python literacy!

Details

Improve this page