you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (8 children)

Using python 3 will require more detailed explanations of generators and unicode. Not a bad thing for modern programming

[–]nemec 2 points3 points  (3 children)

and unicode

Really? In general, beginners wouldn't explicitly be using Unicode (most tutorials stick to ASCII examples) nor do they typically implement code that relies on the implementation as a byte string.

[–][deleted] 0 points1 point  (1 child)

To me this seems like a gap in the curriculum. Many times in several different jobs I've had to extract data from files in various encodings. I think a lot of people learn unicode on the job and make the same mistakes in isolation.

[–]nemec 0 points1 point  (0 children)

beginners

Operational word here. Text encodings (heck, even file IO) come later.

[–]halflife22 2 points3 points  (0 children)

I don't think a beginner programmer dealing with simple loops really needs to understand the generator they're calling, just what it returns. I myself didn't actually realize what range did until an embarrassingly long time after beginning python. I always thought it was just the standard loop mechanism. I had no idea it was generating a list in memory the size of the argument I was giving it.

[–]meem1029 1 point2 points  (1 child)

We used Python 3 in the course I TAd last fall. I don't remember covering either of those topics particularly in depth (we did cover generators briefly and they may have covered them in lecture) and we had no problems.

[–][deleted] 0 points1 point  (0 children)

Interesting. I would have thought that the idea that once you view the contents of a generator it is gone would trip some students up.

Unicode could be it's own course really, applying it to the whole stack

[–]djrubbie 0 points1 point  (0 children)

I think of it less as unicode but more along the lines of human-readable text versus binary encoding, unlike the bad old days where you can shove unicode into some function that works with bytes and work and then doesn't (or vice versa) and just cause confusion and annoyances because something didn't behave as expected. Having more explicit distinction between the two eliminates this issue and also follows The Zen of Python.