Lessons Learned in Teaching Python

download Lessons Learned in Teaching Python

of 34

Transcript of Lessons Learned in Teaching Python

  • 7/30/2019 Lessons Learned in Teaching Python

    1/34

    Lessons Learned in

    Teaching Python

    Sandy Strong and Christine CheungPyCon 2013

  • 7/30/2019 Lessons Learned in Teaching Python

    2/34

  • 7/30/2019 Lessons Learned in Teaching Python

    3/34

    Why Teaching?

    Passion for sharing

    Contribution to the community

    Diversity efforts

    Teaching is learning twice

  • 7/30/2019 Lessons Learned in Teaching Python

    4/34

    Expectations

    What do YOU want?

    Reasoning for teachingDetermine motivation and goals

    WHO do you want to teach?

    Target a specific type of

    audience

  • 7/30/2019 Lessons Learned in Teaching Python

    5/34

    Entry Points

    Volunteer for user group

    Form your own

    Tutoring

    For-profit training

  • 7/30/2019 Lessons Learned in Teaching Python

    6/34

    Lesson Planning

  • 7/30/2019 Lessons Learned in Teaching Python

    7/34

    Making Lesson Plans

    Adapt from existing

    dont read from book

    Write your own

  • 7/30/2019 Lessons Learned in Teaching Python

    8/34

    Know Your Material

    Be prepared

    Review your slides

    Functional code demos

    Answers you dont know

    Be honest, figure it out together

  • 7/30/2019 Lessons Learned in Teaching Python

    9/34

    Time Constraints

    More material than time

    Omit/edit parts during teaching

    Flexible ending points

  • 7/30/2019 Lessons Learned in Teaching Python

    10/34

    Know Your Audience

  • 7/30/2019 Lessons Learned in Teaching Python

    11/34

    Are they...

    1. Beginners

    2. Intermediates3. Experts

    4. Mix of skill level

  • 7/30/2019 Lessons Learned in Teaching Python

    12/34

    Assess Skill Level

    Do it early

    Survey

    Gauge pacing of class

    While teaching

    Interact + listen

  • 7/30/2019 Lessons Learned in Teaching Python

    13/34

    Classroom

    Demographics

    Age Groups

    Gender

    Career Backgrounds

  • 7/30/2019 Lessons Learned in Teaching Python

    14/34

    Student Environment

    Plan for an hour of setup time

    List requirements early

    Offer early setup time

    List minimum requirements

  • 7/30/2019 Lessons Learned in Teaching Python

    15/34

    OS Challenges

    Windows

    Have documentation ready

    Environment variables

    Older OSes

    Dependencies may not be met

    Consider loaner laptops

  • 7/30/2019 Lessons Learned in Teaching Python

    16/34

    Python Versions

    Standarize

    2.7 or 3?

    Do not mix and match

    Consider virtualenv

  • 7/30/2019 Lessons Learned in Teaching Python

    17/34

    Engaging With

    Students

  • 7/30/2019 Lessons Learned in Teaching Python

    18/34

    Three Types of

    Students

    Falling behind

    Right on track

    Zipping ahead

  • 7/30/2019 Lessons Learned in Teaching Python

    19/34

    Types of Beginners

    Younger beginners

    More adventurous / experimental

    Older beginners

    More conservative

    Stay within bounds of exercises

  • 7/30/2019 Lessons Learned in Teaching Python

    20/34

    Absolute Beginners

    Dont make assumptions

    everyone learns differently

    Explain concepts in different ways

    Take it slow

    Encourage questions

  • 7/30/2019 Lessons Learned in Teaching Python

    21/34

    Identifying Struggle

    Less likely to engage

    May give up silently

    Beginners in an experienced room

    intimidated / shy

    utilize mentors to help them

  • 7/30/2019 Lessons Learned in Teaching Python

    22/34

    Identifying Boredom

    Engaged but work ahead

    Will utilize mentors

    Bonus exercises

  • 7/30/2019 Lessons Learned in Teaching Python

    23/34

    Keep Them Interested

    Encourage them to work with

    neighbors

    Group work

    Short social breaks

    Anecdotes and humor

    Demo interesting projects

  • 7/30/2019 Lessons Learned in Teaching Python

    24/34

    M C

  • 7/30/2019 Lessons Learned in Teaching Python

    25/34

    More Common

    Questions

    Debugging (pdb)

    OOP class design

    Application deployment

  • 7/30/2019 Lessons Learned in Teaching Python

    26/34

    No Questions?

    Beginners may be shy

    Use relatable stories

    Ask questions:

    Can anyone tell me why ____worked the way it did?

    D li With

  • 7/30/2019 Lessons Learned in Teaching Python

    27/34

    Dealing With

    Difficult StudentsAnswer questions

    ...but dont feed the troll(s)

    offer to talk later

    Class disruption

    Handle during break

  • 7/30/2019 Lessons Learned in Teaching Python

    28/34

    Location

  • 7/30/2019 Lessons Learned in Teaching Python

    29/34

    Venues

    Decide the type of venue

    Getting a venue

    existing group

    businesses / hackerspaces /

    school

    rent a venue (for profit)

  • 7/30/2019 Lessons Learned in Teaching Python

    30/34

    Knowing Your Venue

    Internet

    Power outlets and capacity

    Tables and chairs

    Projector

    Backup plans (extra supplies)

    Kno the

  • 7/30/2019 Lessons Learned in Teaching Python

    31/34

    Know the

    Neighborhood

    Travel Options

    Parking

    Restaurants / Bars

    Conflicting events

  • 7/30/2019 Lessons Learned in Teaching Python

    32/34

    Retention

    Enthusiasm fades quickly

    Have another session planned

    Extra assignments

    Community resources

    Communication channels

    Meetup, Facebook, Twitter, etc.

  • 7/30/2019 Lessons Learned in Teaching Python

    33/34

    Wrap-Up

  • 7/30/2019 Lessons Learned in Teaching Python

    34/34

    Questions?