In addition to data science and programming, I’m also interested in teaching programming. In the university I’ve been mentoring freshmen on basic programming and database courses and this academic year I’ve been working on my department as part time teacher supervising course project works and lecturing demonstrations where students present their homework each week.
When you combine passion for teaching and programming, you start to look for alternative ways to boost the learning experience. In the university we have the ViLLE system which provides online education environment with visualising code execution and immediate feedback features. But since that’s kinda heavy and somewhat hard to use (I don’t personally like its UX at all), I want to post a couple of websites I have found very useful.
Python Tutor is a project created by Philip Guo and it allows user to write in Python code and get code execution visualisation back. It shows the state of the program and all the references so when beginning programming with Python, you can easily spot mistakes on your programs. Of course, Python Tutor is very limited as it only shows you how variables and functions are created and how references work but in many cases that is the most important feature for beginner programmer.
A few years back a startup called Codecademy started providing a platform to learn basics of languages and it has been growing fast. Their approach is “start doing it” and for each assignment they provide little info on what you have to do and hints for doing it. Different learning paths are arranged in smart way so they start from very beginning and move towards harder concepts. Codecademy has badge awards system so every time you unlock some achievement you are awarded with badge and from your profile you can track your progress. What I truly like in Codecademy’s approach is that it starts with small enough steps. Too often we teach programming with small steps but we test them with too big leaps.