Education Summit

The 2018 Python Education Summit is excited to offer an array of talks on Python and Education on the second of the conference’s two tutorial days. * **Location:** Room 25A and 25B in the Huntington Convention Center * **Date/Time:** May 10, 2017 from 9:00am to 5:00pm * **Registration:** The 2017 Education Summit is sold out The schedule grid is available <a href="/2018/schedule/edusummits/">here</a>!

Coding as Enrichment: How to Empower Students with Creative Coding Experiences

Wanjun Zhang
Thursday 11:20 a.m.–11:50 a.m. in Room 25A, Room 25B

My goal is to share resources, pedagogy, best practices and lessons learned in bringing hands-on coding workshops to underserved K-12 students. For fall 2017 over ten weeks, [Code Park Houston](https://codeparkhouston.org/), a a 501(c)(3) non-profit organization piloted a free after-school Creative Coding program at [BakerRipley - Leonel Castillo | BakerRipley](https://www.bakerripley.org/locations/leonel-castillo-community-center). We focused on **Coding as Enrichment** by encouraging our students to pursue creative endeavors such as storytelling with Minecraft and making procedural art with [p5.js | get started](https://p5js.org/get-started/). Instead of traversing a programming language’s syntax peculiarities, our students drew colorful lines, made interactive buttons, and shared their creations. We also worked to provide a positive and collaborative learning environment. Our students were encouraged to learn by making mistakes and exploring his or her own interests. In the process, we just happened to facilitate knowledge in coding, problem-solving, electronics science and collaboration. When it comes to technology, the arts can be an unusual pathway to success. But we know and see that creativity is the secret sauce that inspires the next generation of diverse and passionate students. This program was a rewarding experience for everyone involved. We faced and overcame many challenges. For the talk I would like to share: **Tools of the Trade** — what software and hardware we used and why. **Classroom Set Up** — how to provide a positive and encouraging learning environment. **Best Practices for Tech Educators** — why we are learning facilitators. **Open Source Creative Coding Curriculum** — open source curriculum to be used in your own classroom!

GenZeal: A new generation of thinkers who design, develop, and distribute for tomorrow

Laura Jacob
Thursday 2:30 p.m.–3 p.m. in Room 25A

The GenZeal project is an after-school program where students learn design thinking, applied computational thinking, and programming skills to solve a problem in their community. Students research and work with local organizations and businesses to design and program microcontrollers that run entirely on renewable energy sources to solve a specific need. Through the process, students earn physical and digital badges for each skill they learn and apply with their project. Students learn applied design thinking, computational thinking, and open-source programming languages. They use what they learn to design, prototype, and program their project. The student projects are installed in the community and they monitor their use in conjunction with the community coach. I will provide details and examples of this project that can be replicated in small through large school districts, rural and urban. I will also explain how our school district redefined our curriculum from little computer science concepts to purposeful, applied PreK-12 computer science principles.

Hard Shouldn't be Hardship: Supporting Absolute Novices to Python

Elizabeth Wickes
Thursday 1:30 p.m.–2 p.m. in Room 25A

When we tell novices that programming is hard, what are we warning them about? The intent may be to impress upon learners the importance of taking the workload seriously and starting early on the homework. However, “hard” is a loaded word and leaving novices alone with that word and their imaginations can create an unbounded variable, normalizing emotional extremes and all nighters. The instructor often has no idea that "hard" has become "hardship". An instructor's expertise can become a blindspot. We've learned what is normal through experience and can easily forget that we didn't know from the start. We presume that those experiencing trouble will stop and reach out for help, but this will not always be the case if they don't know those situations look like. Saying "when you're stuck" is not an objective, actionable statement and leaves the unbounded suffering monster in play, particularly for students who are afraid of being a bother or being seen as asking a stupid question. We need to be clear with our learners about when difficult material has moved outside our expectations and create a classroom environment where questions and clarifications are celebrated. This talk will cover real and practical methods to help learners succeed in intensive programming courses, such as making your expectations clear, helping your students recognize when and how they should reach out for help, creating a positive emotional atmosphere in the classroom, and providing help efficiently. Topics will include a ban on demotivational words, strategies for soliciting questions, the "2 hour" rule, the educational benefits of live coding, and recontextualizing error messages.

Jupyter Tools for Teaching and Learning

Douglas Blank
Thursday 3:40 p.m.–4:10 p.m. in Room 25A

Project Jupyter is the center of a set of technologies that grew out of simple tools to make Python easier to use. Today, Jupyter is composed of powerful client-server applications and protocols for computing in many programming languages. This talk focuses on using these technologies for pedagogical purposes. Every course I have taught since the Fall semester of 2014 has been over the web via our JupyterHub server. These courses have included firstyear writing seminars, as well as courses in Programming Languages, Assembly Language, Introduction to Biology (in Python), and in Processing (Java-based). In this talk I hope to help identify best-practices for using Jupyter in the classroom. I will discuss and demonstrate tools and techniques, and explore the challenges of using Jupyter for teaching and learning.

Learning Python like a Pro

Liana Bakradze
Thursday 1:30 p.m.–2 p.m. in Room 25B

There are many awesome tools to learn and teach Python to beginners. You can teach it with games, interactive tutorials and microcontrollers. However, if one is to stay in the world of programming, sooner or later one needs to start using more professional tools such as IDEs, debuggers, profilers, version control systems and databases. Needless to say, the transition from IDLE to PyCharm can be very frustrating. Creating your own course is a time-consuming process, but after the course has been created you also need to check students' solutions which consumes even more time. Wouldn't it be great to automate checking process and to concentrate on the creative part of content creation and explaining concepts to students? As an attempt to solve these problems [EduTools plugin](https://plugins.jetbrains.com/plugin/10081-edutools) was created. It's a free open-source plugin that can be installed on PyCharm/IntelliJ IDEA IDEs to create and take programming courses right inside the IDE. This way a novice programmer dives into professional environment straight away and an educator gets a tool to automate solution checking. Not only the plugin allows to create courses, but it also comes with integration with [Stepik MOOC platform](https://stepik.org). In this talk I'd like to demonstrate how one can create a course with automated checks using EduTools plugin, share it with students and connect to Stepik platform to gather solutions and statistics. I'll show how to create a simple course containing theory, code task with feedback prompts and test with choice problems. I'll also show how to use our existing free courses in class with the ability to view your students' solutions.

Lessons Learned from Python-related Tips and Tricks to keep students engaged

Ram Narasimhan
Thursday 2 p.m.–2:30 p.m. in Room 25B

(30 minutes) **Background**: How does one keep a set of professional students interested in Python and data science for 2 whole weeks? Esp. when their employers have paid for the class? Twice a year, for 2 full weeks, I have to teach students data science (using Python) to business and industry professionals, who are not programmers. **Outline**: In this 30-minute talk, I hope to share several of the Python-related teaching 'tricks' that I tried, along with a few thoughts on why some worked while many failed. **Students**: My students are professionals working in developing countries (Asia, Africa, the Middle East) whose companies have sent them for training. They have some quantitative background but almost no computer programming experience (not counting Excel). Hence, the choice of Python for instruction. The students are in the age group from 25-30, and at the slightest chance, they will revert to checking their smartphones. **Curriculum**: I teach a hands-on Python course. In nine full days, I get them started on Jupyter, Python basics, and Pandas. I then introduce data analysis using Pandas, plotting, and introductory machine learning. At the end of two weeks, there is a final project (with coding and data analysis) that is due. **Challenges**: Out of a class of around 30, there are always 4-5 students who have prior programming experience and want a lot more out of the class. This “mixed-ability” class adds to the difficulty of keeping them all engaged. One additional difficulty is that this being a “professional development course,” there is no grading as such. **The talk**: Through repeated failures, I’ve had to adapt and develop several tricks and tips that impart Python and data analytics skills to the students while simultaneously keeping them engaged. I will share the tools and techniques that I have discovered to work (Ex. RISE by Damian Avila on top of Jupyter), Jupyter NBextensions, the frequent use of random numbers in various guises. **What worked & What didn’t work**: Tapping into their competitiveness by awarding ‘points’ worked. Just handing out handouts didn’t work well, but Jupyter notebooks with descriptive text in Markdown worked better. It took me a long time to realize that I was jumping into techniques and algorithms with too little of preface. Spending a good deal of time on motivating the problem and ‘building the narrative’ helped get them interested. When trying to teach “*Classification Algorithms*,” using the canonical *Iris* dataset (to identify species) flopped, whereas classifying Tweets as 'from bots' or 'from humans' kept them interested. Web-scraping for Ebola incidences flopped but getting live soccer scores made the students come alive. I’ve made an embarrassing number of mistakes, some of which I will share, along with my thoughts on why some of these techniques work and others don't. Though I teach regularly, I am not an educator by training. I am proposing this talk in the hope that I can share my insights and lessons, and learn a few things from seasoned educators a lot more experienced than myself, for the next time.

Mu - How to Make a Kids' Code Editor

Nicholas Tollervey
Thursday 10:50 a.m.–11:20 a.m. in Room 25A, Room 25B

[The Raspberry Pi Foundation][1] receives feedback about the difficulties beginner programmers encounter when learning Python from thousands of volunteer mentors at after-school CodeClubs and thousands of teachers from around the world. [Mu][3] is a Python code editor for beginner programmers based upon this feedback. This talk tells the story of Mu: why it was created, how we built it and includes a demonstration of how it works. [1]: http://raspberrypi.org/ [3]: http://codewith.mu/

Pycamp 2K17: A Disclaimer

Anubha Maneshwar
Thursday 3:40 p.m.–4:10 p.m. in Room 25B

Nagpur is a tier-two city in India. There were no user groups, programming meetups and that too in Python? Impossible! It really seemed impossible to organise people and do something that will make them interested in learning and contributing. As a student of Computer Engineering Bachelor's Degree Program, I always felt that drive missing in my fellow classmates. My talk covers the journey of organising first Django Girls Meetup and first ever Python BootCamp of my city called "Pycamp 2k17". It covers the journey of survival, how being a women it made tougher and how we ended up putting a disclaimer on our website because we never knew that name 'PyCamp' has a copyright! How me and my team managed to sell tickets of worth INR 50,000 to the people who hardly ever heard of the name 'Python'. And cherry on the cake to get 'PSF' sponsoring the event.

Python for N00bs: A cognitive and educational approach

Meg Ray
Thursday 3:10 p.m.–3:40 p.m. in Room 25A

This talk will put a new spin on helping complete beginners to use Python. We all tend to teach Python the way that we learned it. However, by applying lessons learned from cognitive science and educational psychology, we can better help a wide range of beginners and open up Python to new audiences. The speaker will share examples of successes and failures in teaching Python in several contexts including high school classrooms, the Young Coders program, as well as online and printed curricula. Topics covered will include teaching the command line, helping new programming concepts to “stick,” increasing engagement with abstract concepts, and supporting the independence of new programmers. The Python community is an ecosystem built on learning from others and giving back to others. The strategies covered in this talk are useful for creating documentation for new users, writing a book or tutorial, teaching a child or adult, running a workshop, or teaching a class.

STEAM Workshops using Jupyter Notebooks, JupyterHub, and Binder

Carol Willing
Thursday 10:20 a.m.–10:50 a.m. in Room 25A, Room 25B

Middle School and High School students can learn by doing. Jupyter Notebooks and the rich Python ecosystem with libraries on a variety of topics can engage many learners of the sciences and humanities. Interactive content, using Jupyter Widgets and visualization libraries, put the student in charge of manipulating content and extending their learning. Giving students engaging content in familiar subjects encourages them to develop and use computational skills to build upon their interests. One difficulty of teaching workshops is access to computers and the ability to install software on those systems. This talk will demonstrate how a workshop organizer or teacher can deploy JupyterHub easily for a class using the Zero to JupyterHub Guide, Kubernetes, and Cloud Services. Even if students only have access to smartphones, tablets, or shared computers, a workshop can be held using Binder which allows a notebook environment to be served at the click of a button to any modern web browser.

Teaching Python 101

Devishi Jha
Thursday 2 p.m.–2:30 p.m. in Room 25A

My name is Devishi Jha, and I am a freshman at Valparaiso High School, Indiana. I have been taught programming by the Python community, and currently, I have been teaching python to children in my local community. Throughout elementary and middle school, I have been taught programming in many different ways. Then in late middle school, I taught programming to children at my local library. In this talk, I have compiled many teaching methods that I have found useful when learning python/teaching python. I also cover the ages to start coding, access to computers, and teaching at school vs. an after-school program. With the help of several coding teachers, school principals, and after-school coding program directors, I hope that this talk will serve as a guide to anyone who wants to teach python or find a good way to learn it.

Using GitHub, Travis CI, and Python to Introduce Collaborative Software Development

Gregory M. Kapfhammer
Thursday 2:30 p.m.–3 p.m. in Room 25B

Real-world software engineering is collaborative, commonly involving the use of Git, GitHub, and continuous integration with Travis CI. This presentation will explain how to use these technologies and platforms to teach interdisciplinary and introductory courses in computer programming and software engineering. This presentation will first show how to create a GitHub organization connected to a GitHub Classroom with unlimited private repositories that contain instructor solutions and starter kits and assignment submissions for both individual and team-based programming assignments. The talk will next explain how to connect GitHub repositories to continuous integration servers hosted by Travis CI, thus supporting the cloud-based execution of tests and checks. The presentation will subsequently introduce a Python program, called [GatorGrader](https://github.com/gkapfham/gatorgrader), that supports the local and cloud-based checking of a student's source code and technical writing for a programming project. GatorGrader can check, for example, that a submission contains the required number of comments and produces the correct number of lines of console output. Suitable for use on either a local workstation or a cloud-based server provided by Travis CI, GatorGrader can, for instance, ensure that a student makes the requisite number of commits to a GitHub repository and structures a program in a specified fashion. GatorGrader can also invoke external programs that ensure the quality of a student's technical writing. Finally, since most of the aforementioned assignments are designed to be completed in teams, this presentation introduces [GatorGrouper](https://github.com/GatorGrouper/gatorgrouper), another Python program that uses student responses on a Google Form to create suitable groups of students who collaboratively complete programming projects with GitHub.

When data meets education! The secret life of data in education

Rizky Ariestiyansyah
Thursday 3:10 p.m.–3:40 p.m. in Room 25B

In the last decades, the power of data and analytics has transformed instruction in education. Increasingly, large-scale data is available on student learning and interaction online. Much of this data represents student behavior. This has allowed researchers to model and track many elements of student learning that were not previously feasible at scale: engagement, affect, collaborative skill, and robust learning. In turn, these models can be used in prediction of long-term student outcomes, and to analyze the factors driving long-term success of students, This talk will focus on secret life of data in education, the key points of my talk will be: - Data meets education - Course tracking - Student Behaviour - Data-driven education - Finishing strong