First , the background .
I am a CS student at my school , and out lab has standardised on Windows 2000 server with Windows 98 as clients . All the machines are P4s , with 128 MB ram , except the server , which is a P4 with 256 MB RAM .
Now , the syllabus for CS is C++ programming . We use the Turbo C++ compiler/IDE . The problem is , it is not standards compliant ( at least with the latest standard ) . And it is also a proprietary product ( not that that is a problem , just an inconvenience ) .
Now , the problem is with standards . Had the lab and the textbooks used standards compliant code , then the code would have worked on all compilers and platforms . If the code ( and proprietary compiler ) is standards compliant , the student who has a computer at home has three choices -
a) Buy the product used at school
b) Use a free alternative to the product used at school ( GCC , MINGW , Dev-Cpp , etc. )
c) Pirate the product used at school
If , then , a student cannot afford a copy of Turbo C++ , they can just go for a free alternative .
If , however , the code is not standards compliant , then the student has the second choice eliminated . He can only either buy the product , or pirate . If the student cannot afford such a product , he MUST pirate it .
There is another option , but that is not practicable for any except the people like me , who are fanatically interested in CS . It is to learn the new standard the hard way ( using the Internet , and figuring out terse and incomprehensible compiler error output ) , and use different code at school and home - as I said , not practical for anyone except the hardcore geeks .
Very few people have chosen to do as I do - instead , they have all pirated Turbo C++ . Now this is a loss for everyone . When they have to do actual coding in college/university , they will have to re-learn trivial details ( usually the toughest thing to re-learn is the small habit , the little quirk , etc) , which is a great disadvantage . Not only that , but it is not programming in general that is taught - it is programming in a certain language . I have gone to the trouble of checking the syntax of some other languages , just to make sure that my conceptual knowledge is sound ( and that I am capable of updating it whenever necessary ) . So if it happens that the syntax of that language is taught incorrectly , then you are in the position of someone who knows only one language , does not know it properly , and cannot update himself .
The school also loses ( in terms of value , not money - the monetary cost should have the same or lower for another compiler ) - they have to pay for licenses to software that is useless ( or worse than useless ) to students .
Now my question is - is it ethical for the school to force the students to make such a choice - "go with vendor X , and if you can't afford that ( or don't want to waste money on an obsolete product , as nobody at my school will have a problem with buying it in terms of money , just that it is not available in India , and the version the school uses is obsolete ) , do something illegal , or learn the latest version yourself" ? Is the choice ethical in itself ?
I know it is perfectly legal , and I support the right of the school to do as they please , but is this way of behaving morally correct ?
I am a CS student at my school , and out lab has standardised on Windows 2000 server with Windows 98 as clients . All the machines are P4s , with 128 MB ram , except the server , which is a P4 with 256 MB RAM .
Now , the syllabus for CS is C++ programming . We use the Turbo C++ compiler/IDE . The problem is , it is not standards compliant ( at least with the latest standard ) . And it is also a proprietary product ( not that that is a problem , just an inconvenience ) .
Now , the problem is with standards . Had the lab and the textbooks used standards compliant code , then the code would have worked on all compilers and platforms . If the code ( and proprietary compiler ) is standards compliant , the student who has a computer at home has three choices -
a) Buy the product used at school
b) Use a free alternative to the product used at school ( GCC , MINGW , Dev-Cpp , etc. )
c) Pirate the product used at school
If , then , a student cannot afford a copy of Turbo C++ , they can just go for a free alternative .
If , however , the code is not standards compliant , then the student has the second choice eliminated . He can only either buy the product , or pirate . If the student cannot afford such a product , he MUST pirate it .
There is another option , but that is not practicable for any except the people like me , who are fanatically interested in CS . It is to learn the new standard the hard way ( using the Internet , and figuring out terse and incomprehensible compiler error output ) , and use different code at school and home - as I said , not practical for anyone except the hardcore geeks .
Very few people have chosen to do as I do - instead , they have all pirated Turbo C++ . Now this is a loss for everyone . When they have to do actual coding in college/university , they will have to re-learn trivial details ( usually the toughest thing to re-learn is the small habit , the little quirk , etc) , which is a great disadvantage . Not only that , but it is not programming in general that is taught - it is programming in a certain language . I have gone to the trouble of checking the syntax of some other languages , just to make sure that my conceptual knowledge is sound ( and that I am capable of updating it whenever necessary ) . So if it happens that the syntax of that language is taught incorrectly , then you are in the position of someone who knows only one language , does not know it properly , and cannot update himself .
The school also loses ( in terms of value , not money - the monetary cost should have the same or lower for another compiler ) - they have to pay for licenses to software that is useless ( or worse than useless ) to students .
Now my question is - is it ethical for the school to force the students to make such a choice - "go with vendor X , and if you can't afford that ( or don't want to waste money on an obsolete product , as nobody at my school will have a problem with buying it in terms of money , just that it is not available in India , and the version the school uses is obsolete ) , do something illegal , or learn the latest version yourself" ? Is the choice ethical in itself ?
I know it is perfectly legal , and I support the right of the school to do as they please , but is this way of behaving morally correct ?
Comment