January 1, 2013

introducing everyday python

Everyday PythonΒΆ

It is always risky to make your New Years resolutions public, but this is one I’ve been thinking about for a while now, and so I’m going to go ahead and impose a measure of accountability on myself by proclaiming this publicly. This week, I’m starting a series of educational blog posts here, and as a part of my Runestone Interactive publishing project.

My idea is to publish a series of Python programming projects, aimed at solving everyday problems, or puzzles. Hopefully these little projects will be interesting and will give learners motivation to dig into the details of the solutions. I will provide links to the relevant Python programming constructs and data types in either of the two interactive books (How to think like a computer scientist: Interactive Edition , or Problem Solving with Algorithms and Data Structures using Python) This will let me focus on the problems, and not the minutia of the language. Lets face it, reading about all the different possible string methods is not that exciting, but seeing them in action, and then wondering about what else you might be able to do with strings is OK.

The great thing about Python is that if you write things in a straightforward manner its pretty easy to follow even if you don’t know all the details. So, that is my intention. Write a solution and do it in straightforward Python that beginners can understand. Each project will appear over several days, and will likely include some homework related to the project. I’ll provide the solution in a followup post. In addition, I may refine the solution over the course of several days introducing more and interesting solutions or more advanced features of the Python language.

In the back of my mind I am drawing inspiration from the old Communications of the ACM column by John Bently called Programming Pearls In John’s columns he would feature a particular problem or algorithm, and present it in a straight forward way, but then he would refine that solution again and again polishing it until he had an incredibly elegant solution. It was beautiful because even a novice programmer could understand what was going on at the start of the article, but would get sucked in to the beautiful solution and would learn more than they thought possible. While advanced programmers might chuckle at the initial solutions, even they would have to admit that they learned something by the end of each column.

I already have a few ideas in mind for the first few projects. I’m going to try to start fairly easy with some string and list kind of projects, and work my way up to more complex problems and algorithms, again this is meant to be educational so that in theory a beginner might read through these posts more or less chronologically, and learn some computer science along the way.

Click the title to leave a comment.