PyCon 2019 in Cleveland, Ohio

Education Summit

Adopting QPython in smartphones for teaching/learning computational science and engineering

Godfrey Akpojotor
Thursday 11:30 a.m.–11:50 a.m. in

I have been teaching undergraduate computational physics for more than a decade in my university. Adopting Python as our programming language has really helped because of its unique qualities which made it easily accessible and easy to teach/learn. However, providing enough computing devices to the increasing number of students has been a serious challenge. This is even more frustrating when one require to involve online classroom submission/evaluation of assignments. I have overcome this challenge by adopting QPython in smartphones which are rapidly penetrating Africa. With a built-in math library and possibility to install Numpy, QPython in smartphones has made the teaching/learning to more students more efficient especially as they can now engage in learning programming anywhere, anytime and anyhow. The success made me extend it to one of our current projects under the Python African Computational Science and Engineering Tour (PACSETPro) on teaching Python to students, new beginners as well as expert programmers in science and engineering (S & E). In this talk, I gave a captivating account on how to use QPython to teach computational approaches in S & E in a manner that advancing to normal computing systems is straightforward. Highly excited by the success so far, our outlook is having both Matplotlib and QVPython in smartphones. This will be a boon for teaching/learning computational approaches anywhere, anytime and anyhow.

Big Brother's Guide to Python

Jeffrey Elkner, Adrian Buchholz, Francesco Crisafulli
Thursday 1:30 p.m.–4 p.m. in

[Big Brother's Guide to Python](https://gitlab.com/jelkner/big_brothers_python_guide) is a python study guide that focuses on helping students prepare for the [MTA 98-381](https://www.microsoft.com/en-us/learning/exam-98-381.aspx) python certification. The objective is to make a study guide that is an effective educational resource while also making it fun to read. It is an interdisciplinary project of high school students from [Arlington Tech](https://careercenter.apsva.us/arlington-tech/), and the English course requirement is that questions be themed using elements from George Orwell's *Nineteen Eighty-Four*. Work on this project will continue during the first day and a half of the [development sprints](https://us.pycon.org/2019/community/sprints/) at the end of the conference.

Building a Community for Girls with Python

Neha Gupta, Jessica Jahnke
Thursday 10:30 a.m.–10:50 a.m. in

We teach Python to 5th-12th grade girls, aiming to build community, build self-confidence, and help bridge the gender gap in tech. This talk offers solutions to common challenges in motivating students and community organizing. We will share methods to increase student engagement and aid the transition to Python. We used “Unplugged” activities that complement programming fundamentals, “block-based” logic in Scratch, and the drag-to-text Python platform in Codesters. We will also share examples of leading discussions that build girls’ curiosity about technology fields, including learning about role models of top women in the industry, and learning about emerging areas in technology. Additionally, organizing clubs for students from diverse backgrounds, with varying technical educations, can involve bridging gaps and encouraging community involvement. We’ll discuss methods of reaching families and local communities, such as open presentations, celebrations, and share some do's and don'ts from our experiences. We’ll also share ways to encourage participants to develop communication skills about their technical work and teamwork. Women’s rights and community activism are gathering national attention, and we believe that anyone can effectively run an ongoing coding club to positively impact girls' education in their communities.

Creating and Cataloging Open Worksheet Problems

Mason Egger
Thursday 1:30 p.m.–4 p.m. in

UnlockedEdu strives to bring Open Source concepts to educational resources. The project will provide open curricula, textbooks, worksheet generators and more. Help create programming worksheet problems for our worksheet generator! We need a wide pool of problems (coding, free response, short answer, projects, etc.) for the project. All problems created will be added to the UnlockedEdu platform for the worlds educators to use.

Doctest Quiz

Jeffrey Elkner, ?
Thursday 1:30 p.m.–4 p.m. in

The goal of Doctest Quiz is to create a Django application that will enable students to complete assessments (<i>doctest quizzes</i>) composed of assessment items (<i>doctest quiz items</i>) similar to those found on <a href="https://codingbat.com/python">CodingBat Python</a> with tasks expressed as doctests instead of in prose. This project is the worl of high school / community college students in Arlington, Virginia, who will start their Pycon sprint on it on Thursday afternoon as part of the <a href="https://us.pycon.org/2019/events/edusummit/">Education Summit</a>.

Getting Down with Pynguin

Jeffrey Elkner, Shushantika Barua
Thursday 1:30 p.m.–4 p.m. in

<a href="https://bitbucket.org/leeharr/pynguin">Pynguin</a> is a python-based turtle graphics application. It combines an editor, interactive interpreter, and graphics display area. A group of high school / community college students from Arlington, Virginia will be doing a curriculum sprint on a Pynguin tutorial as part of the <a href="http://www.openbookproject.net/tutorials/getdown/">Getting Down with ... Series</a>. This sprint will start on Thursday afternoon as part of the <a href="https://us.pycon.org/2019/events/edusummit/">Education Summit</a>.

Inclusive pedagogy to support computational teaching

Tracy Teal, Dr. Kari L. Jordan
Thursday 10:10 a.m.–10:30 a.m. in

How we teach, rather than what we teach, often has the most impact on who participates and on learning outcomes. This presentation covers trends in computational teaching, and focuses on how these trends relate to diversity, inclusion, equity, and access to computational training. Through the lens of The Carpentries, an organization dedicated to teaching foundational coding and data science skills worldwide, we present best practices and opportunities for improvement in computational teaching pedagogy. Evidence-based teaching practices, “train-the-trainer” programs, and mentoring are three strategies we outline that support inclusive pedagogy in computational teaching. We describe and discuss effective teaching practices that promote inclusive pedagogy in computational teaching, including formative assessment, collaborative note taking, a strong commitment to a Code of Conduct, and creating a welcoming environment for learners.

Inside the World's Largest Python Course on Coursera

Charles R. Severance
Thursday 10:50 a.m.–11:10 a.m. in

This presentation will take a look at the “Python for Everybody” series of courses on the Coursera platform (www.py4e.com). This course has impacted over 2 million students over the last five years. We will look a the history and goals of the course and how the course works to create a learning community. We will show how the free open educational resources (OERs) and book associated with the course have been used by teachers, students, and courses around the world to form a network of educational activities centered around Python. We will also cover briefly the Tsugi (www.tsugi.org) software that is used to build the learning assessments and distribute the OER materials in a way that enables maximum reusability of the materials for other teachers.

Mini-sprint: Effective Student Pair Programming

Ariel Ortiz
Thursday 1:30 p.m.–4 p.m. in

During this mini-sprint we will conduct three activities that will allow a group of 3–5 people to explore ways on how to use the _pair programming_ agile technique in teaching scenarios where we want our students to collaborate with each other in order to improve their learning experience. These activities are: - **Local pair programming.** (30 min) We work in teams of two people. Each team solves together a programming problem with Python using only one computer. The activity starts with a 3 minute introduction to _pair programming_. - **Remote pair programming.** (30 min) We work again in teams of two people, where each team solves together a programming problem with Python. Each team member uses her/his own computer but both share a remote development environment (using a platform such as [Cloud9 IDE][1]). The activity starts with a 5 minute introduction to using a remote IDE. - **Group discussion.** (30 min) Participants share their views and opinions about the two previous activities and answer questions such as: - Is _pair programming_ suitable for the kind of classes/students I teach? - How should we pair our students? - How long should a _pair programming_ session last? - Under what circumstances should I use local or remote _pair programming_? - How can we measure the effectiveness of using _pair programming_ with our students? At the end the group will produce an electronic report describing the whole experience and results. [1]: http://c9.io/

Mini sprint: Syntax worksheets

Elizabeth Wickes
Thursday 1:30 p.m.–4 p.m. in

Learning any programming language takes both conceptual development and development of muscle memory of the syntax. Workbooks and drills to guide learners through targeted practice of essential Python syntax are often a missing piece from many textbooks. Many open instructional resources are also focused on lecture and readings rather than this interactive practice. A set of workbooks, perhaps dynamically generated, with content that could be easily put into a Jupyter Notebook, Markdown file, or an LMS system would be horizontally valuable across teaching programming for many purposes, and vertically through many educational levels that focus on teaching the Python language. This mini sprint seeks to create some of these essential skill worksheets. We will identify core areas of need, come up with a targeted form of questions, and begin writing content. With enough interest, additional members could also look into how to host these workbooks on places like Binder to make them easily accessed and used by students around the world.

Mini-sprint: Workbooks that teach Python through scientific data exploration

Gabrielle Rabinowitz
Thursday 1:30 p.m.–4 p.m. in

Where are the deepest earthquakes? Why are coral reefs disappearing? What kinds of stars make up our galaxy? **What are we making?** Participants in this mini-sprint will create educational resources that help high school students master coding concepts in Python while exploring real scientific datasets and proposing answers to big questions. We will use Jupyter Notebook, the pandas library, and publicly available data to create interactive workbooks that science and CS teachers can use in the classroom. **Who should attend?** High school teachers, educators working with high school students, educators or engineers with a science research or data science background

Raspberry Pi in-a-box

Meg Ray
Thursday 1:30 p.m.–4 p.m. in

There are more initiatives to make computer science a part of the educational experience in the United States than ever before, yet addressing the barriers that prevent computer science from being accessible to all students is a huge challenge that we need to address together. The speakers are on a mission to make educational experiences with the Raspberry Pi more accessible to underserved students in public schools across the country. They are working on developing a blueprint for middle schools that is affordable, feasible to use with existing school tech, and can be integrated into existing class time. We will be sharing what we’ve learned about how to overcome common challenges to bring Raspberry Pis into more classrooms. Attendees will gain an understanding of CS in the classroom and leave with ideas for how they can address these challenges as tool/program developers and educators.

SensorCraft: Teach 5th - 12th graders Python programming using a "world of blocks" computer game

Todd Rovito
Thursday 1:30 p.m.–4 p.m. in

SensorCraft is a set of open source tools and code to teach 5th – 12th graders Python Programming within a Minecraft environment. Most people are familiar with Minecraft (Minecraft is developed by Mojang and not related to SensorCraft nor do they endorse this project), for this project we are using a “world of blocks” environment created in the Python programming language that will allow children to explore simulations in order to conduct their own scientific experiments. Kids can change gravity, learn how to build structures programmatically, and even launch a rocket. The Air Force Research Laboratory (AFRL) Sensors Directorate located in Dayton, Ohio created this project to inspire kids of all ages to learn to program and at the same time get an idea of what it is like to be a Scientist or Engineer for the United States Air Force. SensorCraft is on [GitHub][4] and has been demonstrated at the National Museum of the USAF, Dayton Ohio Maker Fair, and the USA Science & Engineering Festival in Washington, DC. A new version of SensorCraft is in the works to be published in early February 2019 which will have contributions from high school and undergraduate students. The USAF has several summer student programs like the [Autonomy Technology Research (ATR) Center Summer Program][1] and the [Legacy Program][2] which can be used to encourage older students to contribute to SensorCraft at the same time learning about open source software development. The 2019 version of SensorCraft features new chapters that include a move to the standard python IDE (IDLE), health bar, MOBs that move based on AI, Mini-Map, Creeper, Circuits, and a story mode. Feedback from teachers has led us to believe we need to get a version of SensorCraft working on Chromebooks. Chromebooks are the most popular computing platform in education. This past summer we investigated using [Brython][3] and built a early prototype of SensorCraft running in the Chrome browser. [1]: https://www.wright.edu/autonomy-technology-research-center [2]: http://wpafbstem.com/pages/legacy.html [3]: https://brython.info/ [4]: https://github.com/rovitotv/SensorCraft

Sprint: Learning Python with Minecraft

Marlene Silva-Marchena
Thursday 1:30 p.m.–4 p.m. in

It is not always easy to get started using Python with Minecraft on a PC. Moreover, the use of this game as tool to teach programming can be a real challenge. This mini-sprint has as main goal to gather best practices in order to learn python by using Minecraft. The group level will be kids from secondary school. The sprint will be given using a Spigot Minecraft server with a RaspberryJuice api. Participants do not need to be minecraft experts but they need to have Minecraft client installed. Activities: - Setup environment: All participants need to be able to connect to the server and run python scripts. Other plugins could be tested. - Coding: Kids learn by doing, so the idea is to build something (for instance a castle) and in the process explain the fundamental of programming (variables, if-statements, loops, functions, etc). We are not going to do a draft of a book instead we are going to do a draft of a kind of Lego manual. This sprint seeks to contribute with open source material in order to bring python to a game that kids are passionate about.

Teaching Problem Solving using Python

Shlomi Hod
Thursday 1:30 p.m.–4 p.m. in

Programming requires multiple steps, from understanding the problem, designing a solution, coding, testing and debugging it into a running and correct program. Moreover, this program should be easy to understand and consequently modify. Balancing all of these concerns is a challenge for novice programmers. In this talk, we will share our experience in developing and teaching a programming problem solving course for data science master students. In the course, the students learned to solve programming problems in a methodical and thoughtful manner using the Python language. We did so by applying a specific model for programming problem solving and tackling real problems. The course required a background in programming, at least one introductory course.