Making a better textbook (was Re: The Deitel book)

Dave Reed dreed at capital.edu
Wed Nov 6 20:01:59 EST 2002


> From: benalan at cs.bu.edu (Ben Wiedermann)
> Date: 6 Nov 2002 14:27:28 -0800
> 
> "Chris Gonnerman" <chris.gonnerman at newcenturycomputers.net> wrote in message news:<mailman.1036590550.21817.python-list at python.org>...
> 
> > Textbooks aren't designed to be entertaining, true; but frankly
> > I found it painful to read in the final form.  The content isn't
> > the first thing one notices about a book; rather it's the 
> > presentation (cover, art, paper, etc.)
> 
> I was one of the authors of the Deitel book; but just to be clear: I
> am speaking as a Python evangelist. I am not speaking for any of my
> coauthors or for my employer. That being said...
> 
> One of the major goals for the book was to try to push Python down
> into CS1 courses, where I believe it deserves far more consideration
> than it currently receives. Our hope was that the book would
> demonstrate to professors how well suited Python is as a first
> programming language *and* how easy it is for novice programmers to
> create more complex applications (e.g., GUI, multimedia, etc.).
> 
> However, I've noticed that most of the post-publication criticism of
> the book has focused on issues like presentation, art, etc. It's not
> my job to dispute these claims. I personally believe that an author
> should stay out of subjective discussions of his book, once that book
> has been published. But I still very much believe in the promise of
> Python in the university. And because the Deitel book is the only
> college textbook of which I am aware, I wanted to get some feedback on
> what would make a more successful Python textbook. How high does
> presentation rank when considering a book? Are there examples of other
> college textbooks that people think do an excellent job in the
> presentation department? What kinds of materials can we (as a
> community) produce to get schools to consider and adopt Python as a
> first programming language? Any other thoughts on Python in the
> university?


At the February 2002 SIGCSE conference there was a panel discussion on
using Python in the traditional CS 1 course. There were a few people
there already using it and obviously most of the other people
attending the discussion were intrigued enough to come. Everyone using
Python alread spoke very positively about it.

I've been using Python for my own projects (from short scripts to
25,000 line apps) for almost three years now and can't imagine using
anything else right for anything that wasn't extremely computationally
expensive. After attending the panel, I talked my other colleagues
into using it for our CS 1 course this fall. The only thing that
bothers me about Python for teaching is the lack of enforced private
members for classes. As an experienced programmer, I can live with
that because I know better, but I don't know whether the students will
believe me when I tell them it's a bad idea to directly access them
outside of classes :-) I also suspect this issue may prevent other
universities from seriously considering Python for introductory
courses. Every publisher rep that stopped by my office this fall had
never heard of Python and didn't think they had any Python textbooks
but most of them ended up sending me some Python book that they
published in hopes I might use it even though none of them were really
textbooks.

We're using a prepublication copy of a Python textbook written by
someone else at the SIGCSE panel discussion. I won't mention his name
or school until I check with him, but I really like his textbook. It
is not a "teach every concept of Python book", but rather a
traditional problem solving/design CS 1 textbook that uses Python. I
did take a quick look at the Deitel & Deitel book, but have to admit I
never liked any of their books for a CS 1 course and the Python one
didn't change my mind. I haven't looked at it since last spring so I
can't be very specific but the presentation style didn't do anything
for me and I think it's way too big for a CS 1 textbook - there's no
way I'm going to cover all that in CS 1 and I think the students find
it intimidating.

We were previously using C++ for our CS 1 course and have a Java
course that students could take after CS 1 and CS 2 in C++. As a side
note, I'm also teaching the Java course this semester and the more I
use Python the more I dislike Java. While I have not done any formal
studies, I can certainly say that Python is working much better than
C++ did. Fewer students have dropped and a larger percentage of
students registered for CS 2 than in past years. We did start with
fewer CS 1 students this year - I suspect mainly because the tech
downturn has discouraged those used to see CS as a quick way to get
rich and weren't really interested/excited by it.

In the past I would be swamped during office hours with students
wanting help deciphering C++ compiler errors. This semester almost
nobody has stopped by for syntax issues. The only reason they stop by
now is for problem solving/algorithm help. The indentation certainly
does not bother students who don't know any other way. The students
appear to enjoy it more and we can solve more interesting/complex
problems in Python than C++ at the CS 1 level.  Also, because of the
simpler syntax, we've been able to spend more time in class working on
problem solving and design issues.

I'm also going to use Python in CS 2. My current plans are to use a
C++ CS 2 textbook and rewrite many of the examples in Python and then
supplement other topics with my own notes and the Python version of
"How to Think Like a Computer Scientist". I will also teach them a
little C++ as we go along.

I'd love to hear from anyone else using Python in CS 1 and/or CS 2 and
I'd love to see a Python CS 2 textbook so I don't have to write one :-)

Generating a list of the colleges/universities using Python would be a
good start to possibly convincing others to give it a try.

Dave





More information about the Python-list mailing list