Edward Cherlin schrieb:
On Sun, Apr 19, 2009 at 12:07 PM, Laura Creighton <l...@openend.se> wrote:
One note:
It is very important to teach your students how to read code.  ...
...

It would be interesting to go through this collection of examples
used in teaching 2.x, and find out how much of the new code just
works, and what are the remaining issues
It's certainly not the only issue, if code 'just works' or not. There are quite a few differences between Python 2 and Python 3 that concern the semantics of code.

As a very elementary example consider the different meaning of

range(5)

in Python 2/3. Imho in this case at first it would be important to find
didactically clean ways  to explain  new concepts like these  to beginners.
Of course I know that these  concepts are not entirely new, but with
Python 3 they need to appear at a much  earlier  stage, e. g. when
introducing the for loop.

In 'former times' we could say: range(5) is a list (i. e. a container or a compound data type) and the for loop does things for every element in this list. And you could view
this list:

range(5)
[0, 1, 2, 3, 4]
for item in range(5):
  print item

0
1
2
3
4
type(range(5))
<type 'list'>

... easily to grasp

Now, with Python 3,  we have:

range(5)
range(0, 5)
for item in range(5):
      print(item)

0
1
2
3
4
type(range(5))
<class 'range'>

How do you explain the nature of range to beginners? (Not a a rhetorical
question, I'd really like to know different approaches how to do it!)

At least you can see, that this is a much more important question
than e. g. the parentheses around item (because of print being a
function now  - but even here the semantic difference between a
function and a statement is the point and not the parentheses ...)

Regards,
Gregor



_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to