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.