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!
Robyn Allen teaches engineering seminars because she believes the engineering approach to problem-solving forms a basis for many different projects and careers. Many of today's grand challenges -- in energy, healthcare, transportation, and other areas -- require interdisciplinary engineering teams which have both world-class technical skills and world-class teamwork abilities. Robyn designs curriculum to address both of these topic areas.
Robyn has been honored by numerous organizations including the International Achievement Summit, the Clinton Global Initiative, the MIT Energy Initiative, and the American Institute of Aeronautics and Astronautics. She has been interviewed by the Discovery Channel, PBS, the Christian Science Monitor, and the New York Times.
Prior to teaching, Robyn worked as a systems engineer in hybrid car design, ultra-light aircraft, mobile robotics, software design and electric grid optimization. She holds a Bachelor of Science degree in Aerospace Engineering from MIT.