Monthly Archives: August 2015

Think OS and eduScrum

I am teaching Software Systems this fall, which is an introduction to operating systems and C programming, with a splash of networks and databases.  Last time I taught it, I started work on a new textbook, called Think OS, to address some of the problems I ran into:

  1. Most Operating Systems classes, and the books that go with them, are written for students who already know C.
  2. Most OS books are big, and get into details about implementation that are not always relevant to programmers.
  3. Most OS books have a chapter on synchronization, but if you only spend a week on it, most students don’t really get it.

So Think OS is aimed at a different audience.  I assume that readers are just learning C, so I start out using only the most basic language features and work my way up.  And I focus on the parts of operating systems most relevant to programmers.  Think OS is my answer to “What do programmers really need to know about the OS?”

Over the last week or so, I revised the existing chapters of Think OS and added new chapters on synchronization.  The current draft is up now at Green Tea Press.

A few weeks ago I heard about a group in the Netherlands that uses Scrum methods in the classroom.  They call it eduScrum, and their web page is here.  The fundamental idea is that the teacher, as product owner, creates the product backlog, which specifies what the students should learn.  The students pull items from the product backlog into their sprint backlog and make their own decisions about which items to work on, how to proceed, and in some cases how to demonstrate what they have learned.

I am planning to try it in Software Systems, so we’ll see how it goes!


UPDATE 6 October 2015: We just finished Sprint 2.  Things are going well so far.  Here’s what the standups look like.




Comments Off on Think OS and eduScrum

Filed under Uncategorized

Think Python 2e

I am hard at work on the second edition of Think Python.  The current draft is up now at

New features include:

  1. Python 3!  The first edition is mostly Python 2, with notes about some of the differences in Python 3.  The second edition is the other way around: all Python 3, with a couple of notes about Python 2.
  2. All the supporting code runs under Python 3 and Python 2.
  3. I’ve added a new chapter called “The Goodies” that includes handy Python features that didn’t make the first cut, including list comprehensions, sets, namedtuples, and my personal favorite under-appreciated data structure, Counters.
  4. In the turtle graphics case study (Chapter 4), I’ve replaced my home grown package, Swampy, with the standard module turtle.  I hear from a lot of people having trouble installing Swampy, so this change should make life easier, for them and me.
  5. For beginners, I am working on instructions for starting out running Python in a browser, using PythonAnywhere.  That way, people can get right into Python without dealing with installation issues.

The draft for technical review is due next week.  We’ve got an excellent group of reviewers lined up; I am looking forward to their feedback.  Publication date is not set yet, but should be some time this fall.

Comments Off on Think Python 2e

Filed under Uncategorized