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

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

Ram Narasimhan

Description

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