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

Learning Python: Tips from Cognitive Science, Jupyter, and Community

Learning Python: Tips from Cognitive Science, Jupyter, and Community

Keynote at PyCaribbean 2018. February 17, 2018. Learning has been extensively studied by Cognitive Science. Discussion about how elements of Cognitive Science, Project Jupyter, and Community influence a person's learning of the Python language.

Carol Willing
PRO

February 17, 2018
Tweet

More Decks by Carol Willing

Other Decks in Technology

Transcript


  1. Learning Python
    Tips from Cognitive Science,
    Jupyter, and Community
    Carol Willing
    PyCaribbean
    2018

    View Slide

  2. @WillingCarol
    Welcome and Thank You

    View Slide

  3. Why learn Python?

    View Slide

  4. Where should I start?
    Time
    Confused
    129,932 Projects
    https://pypi.org/

    View Slide

  5. Will I be able to learn ____________?
    Doubt
    Fear Alone
    http://pgbovine.net/publications/conversational-programmers-learning-failures_CHI-2018.pdf

    View Slide

  6. @WillingCarol
    Obstacles
    Peaceful and confident

    (most days)

    View Slide

  7. @WillingCarol
    1998

    View Slide

  8. Learning
    Tagalog

    View Slide

  9. Learning
    Python 1
    $ conda create -n py1env python=1.0
    $ source activate py1env
    $ python

    View Slide

  10. @WillingCarol
    2018

    View Slide

  11. Learning
    Python 3

    View Slide

  12. Learning and Cognitive Science
    Thinking
    Ideas

    View Slide

  13. What is

    Cognitive
    Science?
    Anthropology
    Linguistics
    Education
    AI
    Psychology
    Philosophy
    Neuroscience

    View Slide

  14. Why

    Cognitive
    Science?
    Inclusive

    View Slide

  15. Learning results
    from what a
    student does
    and thinks and
    only what the
    student does and
    thinks.
    Herbert A. Simon

    View Slide

  16. The teacher can
    advance learning
    only by
    influencing what
    the student does
    to learn.
    Herbert A. Simon
    Credit: http://bostonpythonworkshop.com/

    View Slide


  17. Learning
    conceptually driven

    experiences

    lifetime
    "top-down"

    View Slide


  18. Learning
    "bottom-up"
    data driven

    five senses

    now

    View Slide

  19. @WillingCarol
    "bottom-up"
    "top-down"
    Effective
    Learning

    View Slide

  20. Language

    View Slide

  21. Python - The Beginning
    the most important
    lesson I learned
    was about sharing
    – Guido van Rossum
    http://neopythonic.blogspot.com/2016/04/kings-day-speech.html

    View Slide

  22. Designed for Learning
    In reality, programming languages
    are how programmers express and
    communicate ideas — and the
    audience for those ideas is other
    programmers, not computers.
    http://neopythonic.blogspot.com/2016/04/kings-day-speech.html
    – Guido van Rossum

    View Slide

  23. Python 3
    https://github.com/jakevdp/WhirlwindTourOfPython
    https://www.youtube.com/watch?v=M4w4wKveVo4
    f-strings

    View Slide

  24. Scratch to
    Python 3

    Joshua Lowe
    EduBlocks

    View Slide

  25. Mu
    https://docs.python.org/3.7/library/turtle.html
    Python 3 code

    editor for learning
    https://www.youtube.com/watch?v=HrblTJnAnPw
    https://codewith.mu

    View Slide

  26. Visualize

    Get live help
    pythontutor.com
    Philip Guo (UCSD Cognitive Science)

    View Slide

  27. @WillingCarol
    Learn
    Python is designed for your success.

    View Slide

  28. Tools and Libraries

    View Slide

  29. Notebooks engage learners

    View Slide

  30. JupyterLab
    Try it on Binder.
    next-generation

    web-based

    user interface

    for

    Project Jupyter
    Special thanks to Jessica Forde.

    View Slide

  31. @WillingCarol
    HUB
    A JUPYTER NOTEBOOK FOR
    EVERYONE

    View Slide

  32. @WillingCarol
    JupyterHub: Deploy with Kubernetes
    https://zero-to-jupyterhub.readthedocs.io/en/latest/

    View Slide

  33. JupyterHub for Teaching
    https://cdnapisec.kaltura.com/index.php/extwidget/openGraph/wid/1_k6uwj8g1
    https://atg.fas.harvard.edu/news/seas-computing-and-academic-technology-fas-launch-jupyterhub-canvas-integration
    • Exploration and experimentation
    http://pyvideo.org/scipy-2016/labs-in-the-wild-teaching-
    signal-processing-using-wearables-jupyter-notebooks-
    scipy-2016.html
    • Physical media with wearables
    and electronics
    • Real world, self-directed
    projects
    Teaching Signal Processing
    using Wearables and Jupyter
    Notebooks
    Dr. Demba Ba

    View Slide

  34. Binder
    https://blog.jupyter.org/binder-2-0-a-tech-guide-2017-fd40515a3a84
    https://elifesciences.org/labs/8653a61d/introducing-binder-2-0-share-your-interactive-
    research-environment
    https://www.nature.com/articles/d41586-018-01322-9
    mybinder.org

    View Slide

  35. Build your own BinderHub
    https://binderhub.readthedocs.io/en/latest/

    View Slide

  36. @WillingCarol
    Learn
    Build
    Rich ecosystem

    5 lines of code or less

    Interactive creation

    View Slide

  37. Community

    View Slide

  38. Invite new learners
    Use a proven curriculum
    Engage students
    Reduce stress with
    notebooks
    Meetups and Workshops
    Intro to Python - San Diego Python
    http://pyvideo.org/pycon-us-2013/a-hands-on-introduction-to-python-for-beginning-p.html
    https://github.com/pythonsd/intro-to-python

    View Slide

  39. DjangoGirls and PyLadies

    View Slide

  40. Teaching

    Teachers
    Picademy

    View Slide

  41. Building
    helpful
    community

    View Slide

  42. Python

    Software

    Foundation

    View Slide

  43. ...a programming
    language created by a
    community fosters
    happiness in its users
    around the world.
    – Guido van Rossum

    View Slide

  44. @WillingCarol
    Learn
    Share
    Build

    View Slide

  45. @WillingCarol
    YOU

    View Slide

  46. @WillingCarol
    Immerse yourself

    View Slide

  47. @WillingCarol
    Choose a language
    designed for learning

    View Slide

  48. @WillingCarol
    Use
    learner-friendly
    tools

    View Slide

  49. @WillingCarol
    Encourage others
    and share

    View Slide

  50. @WillingCarol
    Enjoy the
    journey

    View Slide

  51. @WillingCarol
    YOU + Python =
    Success

    View Slide

  52. @WillingCarol
    Call to Action
    Set measurable
    goals

    Believe it is possible

    Work together
    What will you do?

    View Slide

  53. Came for the language.
    Stayed for the community.
    Brett Cannon and
    Pythonistas
    around the world
    Credit: Kushal Das

    View Slide

  54. @WillingCarol
    54
    Thank you
    to the many, many Pythonistas who

    encourage, gently nudge,

    and care for others. You make a

    difference in the world.

    View Slide

  55. Questions
    Steering Council, Project Jupyter
    Core Developer, Project Jupyter
    Software Engineer, Cal Poly SLO
    Fellow, Python Software Foundation
    Core Developer, CPython
    Geek in Residence, Fab Lab San Diego
    Carol Willing
    @willingcarol

    View Slide

  56. •San Diego Python

    •Demba Ba

    •Project Jupyter team and community

    •Photo credits and links on individual slides
    Attributions and recognition

    View Slide