[BangPypers] CBSE to teach introduction to python in class 11 and 12

Noufal Ibrahim noufal at nibrahim.net.in
Mon Jul 1 04:14:49 CEST 2013


Harish Vishwanath <harish.shastry at gmail.com> writes:

> Python is beautiful - I firmly believe in "If everything fails, try
> python".

That means it's your least preferred language. The one you'd try if
*nothing* worked. Or am I reading you wrong?

> But I also think caution is required if Python is to be adopted in the
> school/college curriculum. The elegance and comfort of Python
> shouldn't hamper understanding of basics of programming.

I'd flip it around. The emphasis on understanding ever detail (e.g C or
assembly) shouldn't hamper the process of programming. Someone writing a
program that implements a graph algorithm in C will spend more time
messing with pointers and array indices rather than the actual graph
algorithm itself.

This is the worst thing you can do for a budding student
programmer. Once they're comfortable with creating programs, they can,
if interested, spend time learning the details of the machine with a
lower level language like C. Definitely not a first language.

As for C++, I think it's the worst of both worlds but my experience with
it is, thankfully limited. 

> A one liner in python can replace an entire program written in C/C++,
> but teachers should put sufficient time and effort so that the "magic"
> happening behind the scenes is unfurled for students.

I wouldn't do that either. If I were teaching kids to code by writing a
game, I'd spend time at the higher abstractions and get them to express
ideas rather than bore them with details of various graphics drivers and
things like that.


> For example,
> file("new.txt","w").write(file("test.txt").read().replace("The","BBB"))
> is packing so much behind the scenes. Students should learn about what
> exactly is happening behind the scenes [file pointers, handling eof,
> string handling, finding/replacing patterns etc.,] before taking
> things for granted. These important details can be better understood
> by learning to program in Assembly / C/C++ first.

I disagree here too. Students should learn about how to write programs
that do things rather than bother about details like EOF etc. 

A student who spends an hour writing a program that can do something
interesting for her is much better off than one who has spent a lot of
time messing with details like file pointers who hasn't been able to do
what she started off with.

Your example is quite convoluted. I wouldn't teach anyone to write code
like that nor would I bother explaining it.

My general inclination, for first time programmers, is to show them how
much fun programming is and what you can do with it. Once that's there,
curiosity will blossom and they can go as deep as they want to. 


[...]


-- 
Cordially,
Noufal
http://nibrahim.net.in


More information about the BangPypers mailing list