Learning a New GUI

Last fall, I decided to dive back into computer programming—at least beyond the HTML and CSS (and bits of PHP) that I have been playing with for years. This time around, I decided to try Python. I found three free online courses that used Python: “Learn to Program: The Fundamentals” and “An Introduction to Interactive Programming in Python” from Coursera, and “Introduction to Computer Science and Programming” from edX.

The first course was a methodical introduction to programming in Python. It helped remind me of the basics of programming while I tackled the other two courses. The edX course (which I’m finishing up in the next week or so) is a more solid, comprehensive computer science course. I feel like it introduced more theory and more challenging problem sets, but it did have the advantage of being a longer course. The most fun, though, was the interactive programming course, a.k.a. how to create games in Python.

Codeskulptor and SimpleGUI

The interactive programming course used a web-based Python interpreter created specifically for the course: Codeskulptor. With a somewhat pared-down interface library called SimpleGUI, we were able to focus on the basics of creating these games. We were also able to share all of our game creations! (I would post them here, but some of the same assignments will be used in future versions of the course and there is no way to obscure the code from prying eyes future students.) The downside: I spent several months learning a GUI that can only be used in the Codeskulptor environment.

Teaching Myself Tkinter

I’m not upset—I certainly learned a lot in that course about how to think about interactive programming—but I do have to learn a new GUI if I want to transfer my skills into another Python environment such as IDLE. I have decided to start with Tkinter. Of course, I’m running into the same problem I always have when I face down a giant new challenge: I am dying to just rush in and try everything all at once, but I know that I have to pick out smaller chunks that I can master first.

I have a fun personal project I have been brainstorming for a while. It has a relatively simple interface, so I think I’ll start there. Last weekend I tackled the basics of drawing objects in Tkinter. Next up: Learning how to program the keyboard and mouse-click handlers. See you on the other side!

One comment

Comments are closed.