Friday, February 6, 2015

Dangers of pro-MATLAB-research and anti-software-development Computer Science higher education policy

[Please note that some of the content of this post may have been already written in earlier post(s). However, I have now felt it appropriate to label an extreme higher education policy as anti-software-development. So that is new in this post.]
It seems to me that some Indian Computer Science department(s) which do not have campus recruitment by software companies, have adopted a rather extreme policy where they have become almost anti software development as that takes too much time & effort to teach properly, and, very importantly, Indian top-level academic administration policy as well as academic institution accreditation processes do not reward or appreciate good teaching of software development practice. Instead, the rewards and recognition, both for individual faculty and the department, are for research publications. So some CS department(s) seem to have opted to strongly encourage students to use MATLAB script programming in their project work as that will help in quick results which in turn will facilitate a student-faculty research paper publication from the student's project work.

If the student concerned is strong in regular (general purpose, object-oriented) programming languages like C++, Java or C#, then he/she using MATLAB script programming for some part of the project work may be OK. But if the student is weak in regular programming language skills then the project work is the ideal opportunity for the student to do all programming work in these regular programming languages, thereby strengthening his/her regular programming language skills. Very unfortunately, it seems to me that in some Indian CS department(s) many students are misguided to produce quick research results using MATLAB script programming, without any concern about their weakness in regular programming language skills.

But what about the software lab. courses where regular programming languages are taught? Do those teachers not do a good job? Well, the big problem, it seems to me, is that teaching lab. courses in those sections of Indian CS & IT academia where campus recruitment by software companies does not take place, is a thankless and very poorly paid job. So most career-growth-oriented as well as senior faculty avoid teaching lab. courses and focus on more respected (in Indian academia) theory courses and research work. Lab. courses get neglected and are dumped onto junior faculty or even support staff like system administrators/technical staff. And, the senior academic administrators, knowingly or unknowingly, contribute to this mess by having lab. courses evaluation being either an internal evaluation done by the teacher himself/herself or, even if external evaluation is involved, the evaluation being very generous and easy to score. Students being failed in software lab. courses is almost unheard of in most of Indian CS & IT academia, I believe.

I don't think I would be wrong if I term such education policies as anti-software-development.

Who suffers most with such education policies? It is those students who after finishing their bachelor's or master's degree in Computer Science or Information Technology, seek a challenging and well paying job in the software industry. Their weakness in software development can be exposed by an experienced technical interviewer in less than half an hour (sometimes just a few minutes) of technical questioning.

How can this situation be corrected? Some suggestions:
1) The anti-software-development education policy of some Indian CS department(s) must be abandoned. Students must be encouraged to do software development using regular programming languages like C++, Java and C#.

2) Software lab. course teachers should be knowledgeable about programming and should be well paid. If knowledgeable teachers are not available among existing teaching staff then industry experienced persons should be recruited as well paid visiting faculty or regular faculty if their educational qualifications meet UGC/AICTE (Indian top-level academic regulatory bodies) criteria.

3) Students should be advised that a research publication is NOT a necessary requirement for their bachelor's or master's project work. [Please note that most masters students in CS/IT in India seem to come from a non-CS/IT bachelor degree background, and so may not be proficient in programming when they start their masters in CS/IT studies.] Students should be further advised that if they are not confident about their software development (programming, design etc.) skills then it is better for them to do a project involving a lot of software development without any research component. Please note that Masters degree by research is an exception as the title of the degree itself states that it is a research oriented degree.

4) Faculty should be actively discouraged from 'strongly encouraging' students to take up research problems for their (bachelors' and masters') project work. It should be left to the students' informed choice. Ideally, students who are already proficient in software development should be advised (but not 'strongly encouraged') to take up research problems in their project work so that they get exposure to the vital field of CS & IT research.

Those educational institutions where campus recruitment by software companies is a vital selling point to attract students, will have to pay much more attention to software lab. courses as their campus recruitment results will get negatively affected if they neglect software lab. courses. So the picture may be dramatically different in such Indian academic institutions.

No comments:

Post a Comment