[Ilugc] Re: Another storm

  • From: lug@xxxxxxxxxxxxxxxxxx (Chandrashekar Babu)
  • Date: Fri Nov 26 10:20:25 2004

Sriram Krishnan writes:

I'm not sure I agree. I have a lot of friends who have been working in the
big Indian IT companies(they've just joined). A lot of them struggle badly
mainly due to the fact that they don't have any exposure to real world
programming. Knowing bubble-sort does not make you a programmer. Having
stuff like Java or .NET or Unix or whatever in the syllabus helps a lot.

Wrong! expecting a CS student to learn .NET/Java/Unix/whatever-tool-fits-in 
without understanding the fundamental concepts is as good as expecting a 
medical student to learn about how to use xyz branded medicines to cure a 
disease and using xyz branded equipments to perform surgery 
_without_ understanding the basics of human anatomy and the fundamental 
concepts relevant to the cause and effect of a disease. You really would 
never hire such a doctor, would you ? 

If you talk to the student community, by and large,you would see that people
want something like this. Unfortunately, people don't want to read Don Knuth
books..they want to read 'Learn C# in 21 days'.

Students in general... (a large part of them) are pretty much clueless 
about the industry. They are mostly driven by hype created by the 
_commercial_ companies with lack of focus on fundamental concepts. It is 
similar to school kids drinking coke/pepsi/whatever-unnatural-drink to 
feel hep about, while neglecting home-made fruit juice and/or milk which is 
essential for health. 

 
I'm not sure how you say they lock in people. They only promote their own
products - doesn't mean I can't think for my own self.

For instance, when you teach a student how to program using the 
C/Pascal/Python language, and leave it upto the student to decide on the 
compiler/IDE/tools to choose from, you are giving him freedom of choice. But 
if you teach him Visual C++ or Borland Delphi or Activestate Python, you are 
locking him to use a specific tool - which is a bad idea. 

Same goes for Databases too. I have come across a lot of fresh engineers 
who are skilled /only/ to use Oracle or MS SQL Server and have no idea about 
any other databases, nor do they even know the fundamental Database concepts 
like normalization. Reason ? The colleges perhaps never stressed much on SQL 
or RDBMS concepts... but rather on things like "how to use Oracle" or "how 
to use MS SQL Server". I myself was taught on how to use DBase 
III+ and Foxpro during my BCA graduation. I wonder how many companies today 
use them.  

This also explains the fact why programmers of the last century were a lot 
more creative and talented than those we find today (largely i.e.). Reason ? 
CS students of the 80s weren't locked to a commercial _product_. Thus a C 
programmer was a C programmer and not a VC++ programmer or a Borland C++ 
programmer. A database guru of the 80s knew much beyond Oracle/Sybase/MS SQL 
Server because his fundamental knowledge were strong.

For example, I've
spent over 3 sems with Java and I still hate it (which is a personal opinion
- so don't flame me). On the other hand, I don't have Python in my syllabus
yet I love it. Teaching a student some technology doesn't mean you lock him
in- you're showing him all the options and letting him think for himself. 

Some of us (very few infact) tend to look beyond the options we were 
provided... unfortunately a lot others do not have the apt to do so.
If you hated Java and liked Python, it was simply because your college 
syllabus would've stressed more into "How to use Java" rather than teaching 
you "How to program". My point about software lock-in still holds true 
;-)


Though this sounds good in principle, this is non-existent in today's
academic world. Why should I do compiler lab in C? Why not in Python? Why
should I do distributed computing using Java RMI? Why cant I use .NET? When
I study operating systems by Tannenbaum, I get questions like 'Why are
microkernels better than monolithic kernels?'. I would love to write how
today's operating systems are not micro-kernel based..and the reasons for
them not being micro-kernel based. Am I allowed to write that? No.

I totally agree with you in this regard. This is a clear case where your 
freedom of choice has been revoked. But atleast you have the choice to use 
any C compiler to do a compiler lab... what if your college demanded that 
you must do compiler lab only using Borland C++ ? Worse right ? There 
are instances though, where you *must* be taught on "how to use the right 
tool for the right job". But what tools you would use to effectively 
accomplish a task should be left upto you.


Let me ask you something - why do you think of this only when Microsoft is
involved? Let's say Redhat had entered into an agreement with the IITs to
make them teach only 'free' software. Would you have protested then that the
choice for students is now reduced (as you're eliminating all proprietary
software)? Choice is good.Helping the students make an informed choice is
another matter altogether.

Redhat "sells" Linux. They never created Linux. Anyone who learns Redhat 
well enough still have his choice to switch to any other forms of Linux (or 
UNIX in general). They *cannot* lock students to use "their" technology 
because of the very nature of Free Software. Can you say the same with 
any Microsoft product ? In my personal experience of training many people, I 
have realized that it is easy to teach Linux to an absolute newbie than 
migrate an Microsoft tools-pampered professional to the Linux platform.  

Linux is Community driven... written from scratch by a community (though a 
lot of commercial giants have pitched in to help the community development 
today). When I install Linux on my machine, I own the software, very 
much like the way I own my car - which gives me more freedom to do whatever 
I like with it and to use it however I wish. Can you say the same about 
Microsoft product ?


The Project Shiksha program you mentioned doesn't mean that Microsoft will
have *exclusive* control over the syllabi -they only contribute to it in
various forms of resources. 

If Microsoft puts MS-Office, MS SQL Server, .NET, VB or any other products 
of their own into the curriculum... they already have *exclusive* control 
over the future software professionals and companies. If they must 
contribute their resources as an ethical company, ideally they should just 
donate funds to the schools/colleges and expect the educational authorities 
to decide the syllabus on their own. 

If you want another example of Microsoft
involvement in education, check out Anna Univ. Microsoft has huge tie-ups
with them (they even have a lab all to themselves at the Guindy campus as
Sridhar would probably know). .NET is probably going to enter the syllabus.
VB and VC++ are already there. But does this mean that Anna Univ has stopped
Unix labs or Java papers? Absolutely not. Students have the same choice they
had before - only this time, they get a better look at the other options out
there.

If Anna Univ. hasn't stopped teaching non-microsoft products and tools, it 
is because they are conscious about their decisions and well aware about 
the tactics of a _commercial_ entity. The same cannot be expected from other 
schools and colleges. End of the day, the students turn victims due to  
 fallacies of uninformed/blinded high authorities.  

What's wrong with showing the students what the industry is using? And what
if the students want it themselves?

"Show them, tell them, but dont force them" ;-)

Cheers,
Chandrashekar Babu.

Other related posts: