Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lessons Learned in Teaching Python by Sandy Strong and Christine Cheung

Lessons Learned in Teaching Python by Sandy Strong and Christine Cheung

PyCon 2013

March 17, 2013
Tweet

More Decks by PyCon 2013

Other Decks in Programming

Transcript

  1. About the Speakers Sandy Strong Sandy Strong (@sandymahalo) Systems Engineer

    at DreamHost Tutoring and workshops for high schoolers and adults Christine Cheung (@plaidxtine) Freelance web developer Workshop organizing/teaching for local user groups • • • • • •
  2. Why Teaching? Passion for sharing Contribution to the community Diversity

    efforts “Teaching is learning twice” • • • •
  3. Expectations What do YOU want? Reasoning for teaching Determine motivation

    and goals WHO do you want to teach? Target a specific type of audience • • • • •
  4. Know Your Material Be prepared Review your slides Functional code

    demos Answers you don’t know Be honest, figure it out together • • • • •
  5. Assess Skill Level Do it early Survey Gauge pacing of

    class While teaching Interact + listen • • • • •
  6. Student Environment Plan for an hour of setup time List

    requirements early Offer early setup time List minimum requirements • • • •
  7. OS Challenges Windows Have documentation ready Environment variables Older OSes

    Dependencies may not be met Consider “loaner laptops” • • • • • •
  8. Python Versions Standarize 2.7 or 3? Do not mix and

    match Consider virtualenv • • • •
  9. Types of Beginners Younger beginners More adventurous / experimental Older

    beginners More conservative Stay within bounds of exercises • • • • •
  10. Absolute Beginners Don’t make assumptions everyone learns differently Explain concepts

    in different ways Take it slow Encourage questions • • • • •
  11. Identifying Struggle Less likely to engage May “give up” silently

    Beginners in an experienced room intimidated / shy utilize mentors to help them • • • • •
  12. Keep Them Interested Encourage them to work with neighbors Group

    work Short social breaks Anecdotes and humor Demo interesting projects • • • • •
  13. Common Beginner Questions Using the shell vs. interpreter String formatting

    Types of data structures List vs Tuple Math Boolean logic Order of operations • • • • • • •
  14. No Questions? Beginners may be shy Use relatable stories Ask

    questions: “Can anyone tell me why ____ worked the way it did?” • • • •
  15. Dealing With Difficult Students Answer questions ...but don’t feed the

    troll(s) offer to talk later Class disruption Handle during break • • • • •
  16. Venues Decide the type of venue Getting a venue existing

    group businesses / hackerspaces / school rent a venue (for profit) • • • • •
  17. Knowing Your Venue Internet Power outlets and capacity Tables and

    chairs Projector Backup plans (extra supplies) • • • • •
  18. Retention Enthusiasm fades quickly Have another session planned Extra assignments

    Community resources Communication channels Meetup, Facebook, Twitter, etc. • • • • • •