<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi All,<BR>After 30 odd years of teaching
'programming' in many languages<BR>and at many levels; (High School, College,
University) I have <BR>come up with the 10:20:70 rule of thumb. 10% of students
will <BR>have a natural flair, 20% will make competent programmers and <BR>the
remainder struggle with many of the concepts (This does not<BR>mean they don't
gain from the experience, in many cases they do).<BR> <BR>Hence the
majority of the students in any group(class) will <BR>be the 70%ers and so any
assistance from the language is to be <BR>valued and the raw_input() and to a
lesser extent input() I/O<BR>syntax have great value to the
beginner.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>The comments of Dan Crosta ring true for many
students.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>On retirement I toyed with the idea of turning the
copious <BR>notes I had developed for students into a book/textbook.<BR>At the
time Python v1.5.2 had just been released and it <BR>looked interesting as the
language for the book. I took <BR>the hundreds of exercises and assignments and
reworked them <BR>in Python. It was enjoyable. It was also interesting in
<BR>comparing the strengths and weaknesses displayed relative <BR>to earlier
languages.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>As an illustration: an exercise lifted from Oh!
Pascal, 2nd. ed.<BR>Norton p229-233.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> Write a program that produces palindromic
numbers by the <BR>following algorithm:<BR> "Start by taking a number. If
it isn't a palindrome, reverse <BR> the number,sum the number and its
reversal. If the new number <BR> isn't palindromic reverse the new number,
then add it to the <BR> reversal. Eventually, the number will become a
palindrome."</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>After a few iterations either a palindrome is found
or an <BR>overflow is reported due to the limitations of the
integer<BR>representation in most languages. Then, I had neither the time
<BR>nor interest to develop an extended solution.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Since Python 2.3 the extended solution is quite
simple (almost trivial)<BR>using long integers and extended slices. With this
<BR>Python generated productivity I had time to play and enter a few<BR>numbers
at random via raw_input() and to my suprise the number 879 (978)<BR>did not
produce a palindrome after 100000 iterations. I immediately<BR>thought ---
here is a conjecture: Not all numbers produce a<BR>palindromic
number.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Some time later a Google search produced the
following site of interest:<BR><A
href="http://mathworld.wolfram.com/PalindromicNumberConjecture.html">http://mathworld.wolfram.com/PalindromicNumberConjecture.html</A>.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>To cut to the chase: raw_input() provides an
extremely useful <BR>I/O function for simple exercise type problems which are so
essential <BR>in building a beginners repertoire of programming techniques
and<BR>for 'John Zeller' type problems ( simple quick dirty and effective
<BR>solutions that get those housekeeping jobs done).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Python gives us a programming language of
extraordinary productivity<BR>at all levels of programming (especially for
beginners).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Just for Kirby: Buckminster Fuller even says
something about palindromic<BR>numbers. See <A
href="http://en.wikipedia.org/wiki/Palindromic_number">http://en.wikipedia.org/wiki/Palindromic_number</A></FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2> Hugh </FONT></DIV></BODY></HTML>