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.

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.

Errata for a keynote

Luciano Ramalho
Thursday 1 p.m.–1:30 p.m. in

In 2017 I was honored to deliver a keynote for the PyCon Education Summit. I also had a serious case of impostor syndrome. At the time, I was not a full time teacher, and had not been for many years. During my rather disconnected presentation, I said two things that I regret and that I'd like to correct by presenting a 5-minute lightning talk. The first one is about the distribution of programming ability in classes, when I quoted an article titled "The Camel has Two Humps" ([Bornat et. al, 2008][1]). As I write this, I just found out it was [retracted][2]. Regardless of the retraction, while reflecting on my keynote I concluded that the article, regardless of scientific merits, could have a very negative impact on educators, by supporting the cruel viewpoint that some learners are "hopeless". In my country, this viewpoint is endemic in the top universities, particularly in the STEM majors, and we need to challenge it, not support it with unscientific "studies" like Bornat's. My second regret was the conclusion to the story I told about how I and another boy were the only people in a study hall with 60 students to take up a librarian's offer to learn how to use the first Apple II computers that our high school had acquired. In the conclusion, I said the episode had a deep impact on my thinking. As I reflected on the lack of curiosity on the part of the 58 who chose the study hall instead of the computer lab, I blamed the school system. The moral of the story also had a meritocratic bias. "The opportunity was offered to everyone, but only I and the other guy took it." However, "meritocracy" is mostly used to deflect serious thinking about privileges. I was ready to take the librarian's offer because of my privileges: as an adolescent, I had lots of free time, lived in a home with hundreds of books, and long before microcomputers were widely available in my country, my father gave me a programmable calculator that was beyond the means of most high school students at the time, even in the US. So I had everything at hand to learn to code, and I was primed to take advantage of the computer lab when the offer came. These are the things I'd like to retract from my keynote, in a 5-minute lightning talk, if you give me the opportunity. [1]: [2]:

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

Oh, the Humanities! Teaching and Learning Interdisciplinary Python

Lisa Tagliaferri
Thursday 1 p.m.–1:30 p.m. in

As there is more pressure put on educators to teach all students to code, humanities fields have responded by developing digital humanities programs that teach technical skills — including Python programming — within disciplines like history and literature. Through these initiatives, humanities students develop interdisciplinary thinking and are provided with the opportunity to innovate at the intersection of traditionally discrete fields. This approach, however, excludes computer science students from participating in broader dialogues and prevents them from learning more about historical and ethical contexts that they can in turn use to bring critical thinking and new eyes to their own Python projects. In this talk, I’ll share methods for bringing humanities-grounded thought to Python courses, workshops, and learning resources. Drawing from my experiences teaching computer science students within a digital humanities lab at MIT, and writing a Python book for industry developers, I will provide participants with actionable student-centered approaches that they can bring into the computer lab. Focusing first on the human-centered and collaborative aspects of Python programming, from the doctest module and documentation approaches to code review best practices, I will move on to how working with unusual data from humanities sources (like 19th-century literature and medieval manuscripts) can support the development of Python programmers. Finally, I will highlight some community projects and resources for instructors and students planning to pursue an interdisciplinary approach to teaching and learning Python.

Reinventing education with Python in 2019

Samson Goddy, Vipul Gupta
Thursday 1 p.m.–1:30 p.m. in

The current education system of many developing and developed countries is facing two key problems. Linearity and Conformity. Linearity is defined as the progression of education from one stage to another whereas conformity is how we standardize every process involved with education. Students in schools are not able to express their creativity, grow their cognitive skills and their logic building skills because of stringent rules, arcane examination system and the endless process of rote-learning. We like to be different, we like to be the change. Reinventing how we look at education in 2019 is the aim of Sugar Labs. Sugar Labs has been revolutionizing the approach to code teaching methods and how we educate children all over the world. And with Sugar Labs, Python comes into the center of it all, with all Open-Source educational projects based on the Python programming language. You’ll be amazed at how educational projects like “Sugar” have changed the perception of how children actually learn. In this talk, we will be covering the main aspects of Sugar serving as a learning tool. We’ll take a tour of how the power of Python is being harnessed in the Sugar ecosystem to create hundreds of learning applications called activities that introduce children to programming, computational thinking and problem-solving with a special focus on learning by doing approach. Free/Libre Software Sugar is licensed under the General Public License. This ensures that the learner has permission to both use Sugar and modify it. This is very possible because Sugar has no black boxes: The learner sees what the software does and how it does it. Sugar is written in Python and comes with all of the tools necessary to modify Sugar applications and itself. Python was chosen because of its transparency and clarity. It is a very approachable language for inexperienced programmers. With just one keystroke or mouse click, the Sugar “View Source” feature allows the users to look at any program they are running. A second mouse click results in a copy of the application being saved to the Sugar Application (Activities) directory, where it immediately available for modification. We use a “copy on write” scheme in order to reduce the risk of breaking critical tools. If there is no penalty for breaking code, There is a better risk-reward for exploring and modifying the code. Activities Sugar comes with a lot of fun activities (Application) examples; Pippy allows the student to examine, execute and modify simple Python programs. A student can also write basic statements to play sounds, calculate expressions, or make simple text-based interactive games. Pippy allows you to create new Sugar activity and also create a library Turtle Blocks is an activity with a Logo-inspired graphical “turtle” that draws colorful art based on the snap-together visual programming elements. Its “low floor” provides an easy entry point for beginners. Turtle Blocks allow learners to export projects into python code and edit them more in Pippy activity. Our goal is to work towards reinventing education tools that help the student community and grow our platforms for it to reach more people that need it in 2019.

Teaching Python to Elementary School Children: A Block Based Approach

Anthony Lupinetti
Thursday 1 p.m.–1:30 p.m. in

Participants will learn SnapPy Code, a block-based version of Python the presenter developed to teach computer science concepts to young learners. Through hands-on activities, participants learn how to teach the same lessons that guide 2nd through 6th graders from "Hello, World!" to loops, conditionals, functions, and electronics. I will share my 3 years of experience in developing SnapPy Code to address the needs of young learners. Attendees will experience how I continually improve my practice by learning from and with others to improve student learning. SnapPy Code's ease of use, combined with its powerful computations capabilities, provide students with the tools to tackle difficult problems. By my use of carefully chosen activities and mulit-part projects the SnapPy Code application allows students to develop, practice, and use real-world tools to decompose problems, to develop solutions, to test solutions and to rework solutions in new ways. I will share my lessons and methodology as well as the insights gleaned from teaching these lessons.