$30 off During Our Annual Pro Sale. View Details »

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. Lessons Learned in
    Teaching Python
    Sandy Strong and Christine Cheung
    PyCon 2013

    View Slide

  2. 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






    View Slide

  3. Why Teaching?
    Passion for sharing
    Contribution to the community
    Diversity efforts
    “Teaching is learning twice”




    View Slide

  4. Expectations
    What do YOU want?
    Reasoning for teaching
    Determine motivation and goals
    WHO do you want to teach?
    Target a specific type of
    audience





    View Slide

  5. Entry Points
    Volunteer for user group
    Form your own
    Tutoring
    For-profit training




    View Slide

  6. Lesson Planning

    View Slide

  7. Making Lesson Plans
    Adapt from existing
    don’t “read from book”
    Write your own



    View Slide

  8. Know Your Material
    Be prepared
    Review your slides
    Functional code demos
    Answers you don’t know
    Be honest, figure it out together





    View Slide

  9. Time Constraints
    More material than time
    Omit/edit parts during teaching
    Flexible ending points



    View Slide

  10. Know Your Audience

    View Slide

  11. Are they...
    1. Beginners
    2. Intermediates
    3. Experts
    4. Mix of skill level

    View Slide

  12. Assess Skill Level
    Do it early
    Survey
    Gauge pacing of class
    While teaching
    Interact + listen





    View Slide

  13. Classroom
    Demographics
    Age Groups
    Gender
    Career Backgrounds



    View Slide

  14. Student Environment
    Plan for an hour of setup time
    List requirements early
    Offer early setup time
    List minimum requirements




    View Slide

  15. OS Challenges
    Windows
    Have documentation ready
    Environment variables
    Older OSes
    Dependencies may not be met
    Consider “loaner laptops”






    View Slide

  16. Python Versions
    Standarize
    2.7 or 3?
    Do not mix and match
    Consider virtualenv




    View Slide

  17. Engaging With
    Students

    View Slide

  18. Three Types of
    Students
    Falling behind
    Right on track
    Zipping ahead



    View Slide

  19. Types of Beginners
    Younger beginners
    More adventurous / experimental
    Older beginners
    More conservative
    Stay within bounds of exercises





    View Slide

  20. Absolute Beginners
    Don’t make assumptions
    everyone learns differently
    Explain concepts in different ways
    Take it slow
    Encourage questions





    View Slide

  21. Identifying Struggle
    Less likely to engage
    May “give up” silently
    Beginners in an experienced room
    intimidated / shy
    utilize mentors to help them





    View Slide

  22. Identifying Boredom
    Engaged but work ahead
    Will utilize mentors
    Bonus exercises



    View Slide

  23. Keep Them Interested
    Encourage them to work with
    neighbors
    Group work
    Short social breaks
    Anecdotes and humor
    Demo interesting projects





    View Slide

  24. Common Beginner
    Questions
    Using the shell vs. interpreter
    String formatting
    Types of data structures
    List vs Tuple
    Math
    Boolean logic
    Order of operations







    View Slide

  25. More Common
    Questions
    Debugging (pdb)
    OOP class design
    Application deployment



    View Slide

  26. No Questions?
    Beginners may be shy
    Use relatable stories
    Ask questions:
    “Can anyone tell me why ____
    worked the way it did?”




    View Slide

  27. Dealing With
    Difficult Students
    Answer questions
    ...but don’t feed the troll(s)
    offer to talk later
    Class disruption
    Handle during break





    View Slide

  28. Location

    View Slide

  29. Venues
    Decide the type of venue
    Getting a venue
    existing group
    businesses / hackerspaces /
    school
    rent a venue (for profit)





    View Slide

  30. Knowing Your Venue
    Internet
    Power outlets and capacity
    Tables and chairs
    Projector
    Backup plans (extra supplies)





    View Slide

  31. Know the
    Neighborhood
    Travel Options
    Parking
    Restaurants / Bars
    Conflicting events




    View Slide

  32. Retention
    Enthusiasm fades quickly
    Have another session planned
    Extra assignments
    Community resources
    Communication channels
    Meetup, Facebook, Twitter, etc.






    View Slide

  33. Wrap-Up

    View Slide

  34. Questions?

    View Slide