[Fsf-friends] Need Free software in 11th Class

Harish Narayanan harish@gamebox.net
Wed Aug 24 03:11:23 IST 2005

Sarath Lakshman wrote:

>Hello Friends,
>I am here to inform you about an issue in 11th Class.
>Now I am studying in 11th class - Computer Science.
>Our text book is following the proprietary C++
>compiler (Turbo C++ Compiler) and there is nothing
>about Software freedom and importance of free
(This response is under the assumption you are talking about the CBSE. 
And it's technically more of a response to many bits of this thread 
rather than just this one e-mail. I can see how this will be construed 
as rude, but it felt awkward the other way too -- tiny snippets 
littering the thread.)

I am curious, what is the name of this text book? I was part of the 
first batch that was introduced to C++ (instead of Pascal?) as the 
programming language of choice for 11/12th standard. As far as I 
remember, there was no text book as such (at that time) from the NCERT, 
and schools ended up doing whatever was convenient. My school was (as I 
guess most were) a DOS/Netware shop, and they encouraged the use of 
Robert Lafore's Object-Oriented Programming in C++. This book, if I 
recall correctly, dealt with things from the context of Turbo C++, which 
is what they naturally ended up installing.

I also assumed the choice had a lot to do with this development 
environment having a similar IDE to TurboPascal(?) which is what they 
used before to be the driving force behind this decision. I am sure 
teachers experience inertia just as much as the next person.

But I remember (I don't remember the names of the schools themselves) 
people from other schools using UNIX (which I am sure was GNU/Linux to 
the untrained eye), and gcc. But just as someone said people saying 
'Alt-F9' for what goes on(?) during compilation, there were equally 
nonsensical statements regarding 'needing to struggle' with UNIX (by 
which they meant figuring out vi) as a prerequisite for learning to 
program. Some people perpetually fail to see the difference between 
concepts and a practicalities that go along with a particular implementation

Not to stir up controversy, but I quite disagree with the popular 
opinion here that C++ is a horrible language for introductory computer 
science. "Struggling with syntax" is a trivial, non-objective issue, and 
can be raised about any programming environment. I might just as well as 
say, for example, that "keeping track of all those parentheses is hard" 
when it comes to lambda calculus. I think the bigger problem is the 
clear lack of distinction between concepts or algorithms (or pseudo 
code) and actual implementation, even amongst teachers (at least the 
ones who taught me).

Clearly define a conceptual solution to a problem (which is what the 
syllabus should probably really be about), and most 
somewhat-well-designed languages will allow for relatively painless 
implementation. I don't, philosophically or 
implementation-difficulty-wise, see any difference between a Python (for 
example) program and a modern C++ program (properly utilizing STL and 
what not). Really, you can get just as much done in as few lines and 
it's just as easy to read. You can just as easily abstract system 
specific details and focus on the conceptual problem solution.

But as a bonus, if you want, you also get to get your hands dirty with 
really low level system specific stuff, which most of the other 
alternatives proposed clearly dissuade. I, and many people I know, 
sometimes like to tinker with things beyond these sand boxed environments.


More information about the Fsf-friends mailing list