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.