Events News

Meet the winners of the Best Interactive Programming Course Contest

A couple of months ago the Best Interactive Programming Course Contest organized by JetBrains came to a close. The courses that were produced as part of this contest will surely help thousands of students around the world learn Python using our free, modern and professional tool — PyCharm Educational Edition.

pycharm_contest_banner

Dmitry Filippov seized the opportunity and interviewed the contest winners: John Zurawski, the author of “Logging in Python” (1st place) and Lisa Chung, who contributed “Introduction to Classic Ciphers” (2nd place). Read on to learn more about them, their experience participating in the contest, their interactive courses and PyCharm Educational Edition.

— Hi John and Lisa, could you tell us a bit about yourself and your day jobs?
John: I am a professional software developer using Python. I also volunteer as a co-organizer of the DFW Pythoneers, a Python user group for the Dallas/Fort-Worth metroplex.
Lisa: I’m a software developer for The Motley Fool (Washington, DC). At the moment, my team’s building a tool for managing APIs.

— What was your motivation for creating a course for the contest?
John: I know a lot of people new to programming in general are coming to Python because it’s easy to learn and has a rich ecosystem of open source libraries. In many cases these developers are more focused on solving their problems, so are not always familiar with the techniques professional software developers use to debug their programs. I felt it was important to show them better solutions exist and take almost no additional effort.
Lisa: I’m interested in coaching others to become coders. Many are capable of coding, but getting started is the hard part. Tools like PyCharm Educational Edition can be a big help for those newcomers.

helloworld

— Tell us about the courses you’ve created. What are they all about and how will they help students learn something new?
John: I created a course about the Python logging module. I am passionate about logging, because it has helped me solve many complex problems over the years. I felt if I could introduce this topic to people new to programming as an important debugging tool. I thought the interactive approach offered by PyCharm Educational, would allow them to see the benefits of using the logging module very quickly, and hopefully see the value in investing the time to learn more.

logginginpythonoverview
Lisa: “Introduction to Classic Ciphers” is a very brief overview of the null, Caesar, and Atbash ciphers. These are three of the more accessible classical ciphers. What makes it a python course is that we work on python implementations of the encipher and decipher algorithms of each cipher. The course also forces you to read chunks of code written by someone else (me). I think it’s important to practice reading and debugging code written by others. For me, it’s a good measure of how well I understand a programming language.

classic_cyphers

— In your opinion, how well does an interactive approach to learning work when combined with professional tools like PyCharm?
John: I feel the benefit of a professional tool like PyCharm is the effort to get started is very low compared to alternatives. Having everything in one cross-platform solution eliminates a lot of frustration with getting the environment set up and working, for both educators and students.
Lisa: I’m a fan, especially when it’s paired with a professional tool such as PyCharm, which I myself use. Coders of all levels can use PyCharm to write their code; newcomers and professionals both benefit from this. For newcomers, it certainly removes one hurdle of transitioning into a professional coder. Professional coders benefit because the tool is less likely to grow bloated.

cyphers_exmpl1

— How much time did you spend creating your amazing courses?
John: I spent about one entire weekend and several evenings working on the course. The first 80% came fairly easily, but the last 20% was a bit of a struggle to get done in time for the contest deadline. The contest organizers gave plenty of time, but unfortunately I didn’t get started until closer to the deadline.
Lisa: PyCharm Educational Edition is very straightforward. I watched the tutorial video and brainstormed for a few days. With respect to writing the course, I spent one day. Had I budgeted more time, I could see myself spending more days to flesh out and refine the course.

— What was your experience like creating a course with PyCharm Educational Edition?
John: I learned a lot by writing the course. There are some features in the standard library module I had no idea existed. Going through the effort to explain the course material in simple terms caused me to strengthen my own knowledge in this area.
Lisa: I had fun! Until PyCharm Educational Edition, I had never considered creating an educational course. You and your team have done a great job with the framework; for course creators like me, there is very little overhead beyond writing up the content. I appreciate the course structure, in that you have to think in terms of Lessons, each Lesson with a set of Tasks, with each Task having an html page and a python exercise. The enforced structure really helps course creators like me (no training in teaching or curriculum development) stay focused.

creation

— Would you recommend PyCharm Educational Edition to other educators?
John: I would actually recommend PyCharm Educational Edition to anyone who is interested in Python. I would recommend picking a subject area they have an interest in and attempt to create a course using PyCharm Educational Edition. It’s something that can help other users in the Python community, but will also provide an opportunity to master the subject area for their own benefit. I believe there is truth in the quote: “To teach is to learn twice.” I recommend planning out your complete course before you attempt to author your course inside PyCharm Educational edition. This will help you identify introductory topics you missed and ensure the course flows well between tasks.
Lisa: Yes, especially if you wish to develop your own courses.

— What was the most challenging part of creating your course?
John: I found it challenging to come up with fun tasks. I was not very happy with some of my examples and feel there is room for making them more interesting. I feel making interesting and fun tasks is an important part of keeping people engaged with a course.

funtask

—Do you feel anything is missing in PyCharm Educational Edition?
John: Although the emphasis is on interactive programming tasks, I would like to see the ability to organize a course into description-only tasks and quizzes. Description-only tasks would have allowed me to break up some of the longer explanatory tasks into smaller and easier to digest pieces. Quizzes would have helped reinforce key subject areas without having to implement repetitive looking tasks. I feel the courses would be easier for self-study by students with these features.
Lisa: I’m curious whether an online forum for each course would benefit participants. This could be a place for users to ask for additional support (“could you explain Task x in more detail?”) and for the course creator to collect input on how to refine the course.

— Is there anything else you would like to add?
John: I would like to thank JetBrains for being active in supporting the Python community. Not only by offering the free PyCharm Educational and Community editions, but with their support of Python events and user groups.

— Thanks for the interview, John and Lisa!

You can download PyCharm Educational Edition here and make use of the winning courses contributed by John and Lisa. To check them out, go to File / New Project / Educational and click the refresh button.

Develop and learn with pleasure!
-PyCharm team

image description