FacebookTwitter
Hatrack River Forum   
my profile login | search | faq | forum home

  next oldest topic   next newest topic
» Hatrack River Forum » Active Forums » Books, Films, Food and Culture » Python!

   
Author Topic: Python!
fugu13
Member
Member # 2859

 - posted      Profile for fugu13   Email fugu13         Edit/Delete Post 
Though inspired by the similarly titled post, this is not properly a dobie.

I'm strongly considering writing a Python (the programming language) textbook. All of the few available Python textbooks suck, even worse than most programming textbooks, and this is particularly true when teaching to a group of non-majors (non- CS majors, that is).

A lot of the problems arise from trying to do too much, and trying to do it in too many ways. This actually makes it harder on professors to adapt books to their needs, since a lot of time is spent figuring out which sections of the book might be needed to teach what the professor really wants to teach.

I intend to proceed with the following assumptions:

It is intended for use in a classroom setting, but should be useful as a guide and beginner's reference.

The material should be easily coverable in a semester by a course proceeding on the slow side (it is assumed the professor will be filling in the rest of the course as desired).

It is written for non-majors who will have perhaps another one or two programming courses; people who will use programming as a tool but will not be 'programmers', for the most part.

Following these assumptions are a few tentative conclusions:

It should be 150 to 200 pages with a 100 page or so accompanying workbook.

Every chapter should be followed by a 'what you now know' reference, including only the capabilities of functions/methods/operators introduced.

While it will ignore most of the theory and gory details of programming, some basic idea of 'how programming works' will be introduced, such as that variables 'point' to the 'actual' information (using the standard circles, arrows, and squares diagrams), and that programs are like flowcharts. Jargon will be avoided in favor of simplistic prose and handwaving.

Pseudocode, comments, and in-code documentation will be present extensively, and students will be strongly encouraged to use the first two (the last will simply be gradually introduced on the sly in the examples, and will be glossed a bit).

There will be periodic 'teasers' showing how to accomplish tasks in the chapter in much tighter, more pythonic code. Also, new solutions will be given to old problems as improved techniques are learned.

Ultra-basic 'design patterns' such as the accumulator pattern will be introduced, and described generally, as they become useful.

Solutions will be explained incrementally, presented in individually working steps that address parts of the problem. Some common misteps may be addressed in the solutions.

Where possible, problems will exist in some real-world domain. For instance, a problem might say to make a function returning a string representing the matching RNA when given a string representing a strand of DNA (all necessary domain knowledge, such as what bases match up, will be given in the text).

Thoughts?

Posts: 15770 | Registered: Dec 2001  |  IP: Logged | Report this post to a Moderator
   

   Close Topic   Feature Topic   Move Topic   Delete Topic next oldest topic   next newest topic
 - Printer-friendly view of this topic
Hop To:


Contact Us | Hatrack River Home Page

Copyright © 2008 Hatrack River Enterprises Inc. All rights reserved.
Reproduction in whole or in part without permission is prohibited.


Powered by Infopop Corporation
UBB.classic™ 6.7.2