Indian Computer Science (CS) & Information Technology (IT) Academic Reform (Past) Activism Blog Book by Ravi S. Iyer - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

 

Ten Computer Science (CS) & Information Technology (IT) higher education policy changes to improve practice of software development in India

 

Associated blog post date: 25th Aug. 2014, link: http://eklavyasai.blogspot.com/2014/08/ten-computer-science-cs-information.html , short link: http://bit.ly/ten-changes

Note that the contents of this article may slightly differ from associated blog post. Similarly, contents of later articles in this book may slightly differ from their associated blog posts. Further note that most of the blog posts and comments on the posts have author name as Eklavya Sai Maalik which I (Ravi S. Iyer) was using as a pseudonym in the past.

I submitted the following today (25th August 2014), with the same title as that of this blog post, to an appropriate Indian govt. online forum (which is accessible only to its registered users - but any Indian citizen can easily register in it for free):

1) Have two career tracks for CS/IT academics: Research Oriented and Software Development Oriented

2) Like the measure for competence in research for the CS/IT academic is the research publication record, the measure for competence in software development of the CS/IT academic should be the quality and quantity of his/her software contribution record.

3) Change teacher eligibility tests (NET/SLET/SET) for CS & IT disciplines to have 50% weight-age practical test (on computer) involving programming and some amount of design, and 50% weight-age on theory.

4) Allow industry-trained & self-taught professionals who are not academically qualified in CS/IT to become CS & IT Teachers by clearing teacher eligibility tests (NET/SLET/SET)

5) Encourage industry professionals to contribute as well paid visiting faculty/industry consultants.

6) Study CS/IT professional licensure & certification in USA and other technologically advanced countries and explore possibility of introducing similar CS/IT licensing and certification exams in India.

For more on points 1 to 6, see my paper, "Improve the Practice of Software Development in India by Having a Software Development Career Track in Indian CS & IT Academia", whose text contents have been given earlier in this book.

 7) Teachers who create course material for a course (as against using course material from other sources) should have their course material reviewed by other teachers just like research papers are reviewed. Appropriate career growth related credit should be given to teachers whose course material gets a good review. The review may include student assignment submissions including source code, so that reviewers get an idea of how students are benefiting from the course.

8) Lab. courses should be evaluated as strictly as theory courses. It should have external examiners like theory courses. There should be no hesitation in failing students who fare poorly in assignment submissions and exams. Administrators should examine lab. course result patterns and compare it with theory course result patterns. Very high success rates in lab. courses contrasted by quite different success rates in theory courses should ring alarm bells and invite investigation.

9) Lab. course credits should be at least equal to theory course credits. Further, the number of lab. courses should be roughly equal to the number of theory courses. [I believe, the typical current ratio is 4 to 5 theory courses and 2 lab. courses in a semester, with theory courses having 3 credits and lab. courses having 2 credits.]

10) The practice of relegating lab. courses to junior teachers must be abandoned. Given the vital importance of practice in CS/IT, senior teachers should teach lab. courses.

For more on points 7 to 10, see the next post below: Concrete Suggestions for Measuring Teaching Quality in Practice-Oriented Computer Science/Information Technology streams.

 

Concrete Suggestions for Measuring Teaching Quality in Practice-Oriented Computer Science/Information Technology streams

 

Associated blog post date: 4th June 2013, last updated on 16th Sept. 2014, link: http://eklavyasai.blogspot.com/2013/06/concrete-suggestions-for-measuring.html , short link: http://bit.ly/conc-suggs

At the outset, I request the kind indulgence of readers for blowing my own bugle a little, with the intention of substantiating my case.

Yesterday I received an email from a recently passed out M.Tech. (Computer Science) student (I don't know if exam results have been declared yet but the student is a high-flyer and will, in all probability, pass). He thanked me for my C++ classes which he felt played a significant role in him clearing a job interview and getting a job offer which he intends to take up.

--- Start passed out student message extract ----

I must thank you for getting this offer because my interview was solely based on C++ programming and very little of algorithms. Even the latter was with respect to data structures that are part of the C++ STL. Your C++ classes, and at a later stage your slides were of great help to understand the basics of C++. Therefore, I felt this urge within to inform you about this.

--- End passed out student message extract ----

I would have taught him the C++ course when he was in Ist M.Sc. (Maths) in academic year 2009-10. The department is a Mathematics & Computer Science department. Many of the two year M.Sc. (Maths) program students continue on to do the two year M.Tech. (Computer Science) program. [BTW in March 2012 I parted ways with the above-mentioned department and educational institution.]

Now I would not like to comment much on why the tech. interview (as per the student's description) did not cover algorithms in some depth. IMHO, ideally there should have been a balance of questions on both algorithms and the particular programming language skills they are interested in, which was C++ in this case.

However, the reality of the situation is that the practical programming skills imparted to the student via the lab. course was instrumental in him clearing the job interview and landing the job. So the teacher concerned would seem to have done a good job and would earn the appreciation of academic administrators.

But the way things are run in UGC/AICTE regulated educational institutions in India, with accreditation agencies like NAAC being powerful forces, good teaching quality like in the above case, are not recorded in any fashion in their evaluation metrics. If I am not mistaken, the teaching quality assessment according to UGC/ACITE norms is supposed to be or can be a self-assessment! Naturally all teachers will be assessed as good or excellent teachers then :-) (unless there are many theory exam failures).

The key measure that is recorded is the research publication record. NAAC (the key national accreditation agency for UGC institutions, I believe) seems to be focused mainly on the research publication record of institutions it accredits and grades. So academic administrators have become obsessed with research publication record to ensure that the institutions they administer get a good NAAC rating. This results in a scenario where academic administrators put immense pressure on teachers to publish research papers, and almost ignore promoting excellence in teaching quality.

Now, in my special case, I had retired from commercial work in Sept. 2002, and was offering honorary service of teaching lab. courses in a 'deemed' university. I was utterly disinterested in an academic career or in academic research (my designation during my stint was Honorary Staff, Honorary Faculty and finally Visiting Faculty). I was only interested in my spiritual career and part of that involved serving students by teaching them what they needed to know using my knowledge base of 18 years international software industry practitioner experience and also studying new knowledge areas required to teach specific lab. courses allotted to me. So my focus was on excellence in teaching lab. courses. I have had the satisfaction of teaching them to the best of my ability, given the circumstances, and receiving the love and gratitude of the students in return. From a spiritual and ex-software industry practitioner/professional career point of view I consider it to be a very successful stint (9 years) of spiritual and industry-quality service.

But from an Indian academic system point of view my question is, will the typical Indian CS/IT academic focus on excellence on teaching lab. courses like the C++ course I taught? IMHO, the clear answer is No (there may be some exceptions, of course - I am talking about the typical Indian CS/IT academic). As his/her bosses are mainly bothered about NAAC grading and UGC/AICTE norms for which the only thing that really matters is research publication record.

Further, lab. courses are looked down upon as unimportant courses which can be handled by junior staff like Teaching Assistants or Research Assistants (Research Scholars). The evaluation of lab. courses are very lenient. Rarely is a student failed and many students get the top grade. Theory courses have paper examinations with external evaluation. That is considered far more important in the (UGC/AICTE) Indian academic system. Theory courses have more credit than lab. courses. [If UGC/ACITE publish statistics about failures in CS/IT lab. courses in the institutions they regulate, I am quite sure it will be a miniscule number. However, the failures in CS/IT theory courses will be, I am quite sure, a not insignificant number, in comparison.]

This is very strange for a very practice oriented field like Computer Science/Information Technology. As the above freshly passed out student interview example clearly shows, the vital skill that is assessed during typical CS/IT job interviews is the practical skill. Of course, theory is important too and ideally there should be a balance between theory and practice. But, IMHO, an administration policy where the teaching of the practice of software development (lab. courses) is relegated to junior teachers and considered unimportant, is a disastrous education policy for a practice-oriented field like Computer Science/Information Technology.

What can we do to rectify the situation? Teaching Quality must be measured even if the measures may have some flaws in it (like the flaws in measuring research contributions). Over time the flaws in measuring teaching quality could be addressed/controlled. I have a few concrete suggestions for measuring teaching quality of lab. courses in Indian (UGC/AICTE) CS/IT academia:

1) Teachers who create course material for a course (as against using course material from other sources) should have their course material reviewed by other teachers just like research papers are reviewed. Appropriate credit should be given to teachers whose course material gets a good review. The review may include student assignment submissions including source code, so that reviewers get an idea of how students are benefiting from the course.

2) Lab. courses should be evaluated as strictly as theory courses. It should have external examiners like theory courses. There should be no hesitation in failing students who fare poorly in assignment submissions and exams. Administrators should examine lab. course result patterns and compare it with theory course result patterns. Very high success rates in lab. courses contrasted by quite different success rates in theory courses should ring alarm bells and invite investigation. If the teachers concerned are found to have done an overly lenient job of evaluation they should be penalized.

Additional suggestions to improve the teaching of the practice of software development, not related to measuring teaching quality, are:

a) Lab. course credits should be at least equal to theory course credits. Further, the number of lab. courses should be roughly equal to the number of theory courses. [I believe, the typical current ratio is 4 to 5 theory courses and 2 lab. courses in a semester, with theory courses having 3 credits and lab. courses having 2 credits.]

b) The practice of relegating lab. courses to junior teachers must be abandoned. Given the vital importance of practice in CS/IT, senior teachers should teach lab. courses.

Initially I had suggested student feedback as one measure of teaching quality, as follows:

*) Student feedback about the course should be collected. Industry training institutes heavily use participant feedback to get an idea of the quality of teaching and suggestions for improvement. Academia can learn from them. Yes, there may be some serious concerns like students using it as a weapon against the teacher, and the teacher targeting classes where he/she receives bad feedback. But there surely must be ways to mitigate such issues. Students are the key customers/stakeholders, usually paying customers, of the education system. Teachers in academia must learn to respect this fact and learn to accept criticism from students about their teaching, just like teachers in industry training institutes respect (or are forced to respect) criticism from participants/students of their courses.

--- end suggestion ---

I received vehement criticism from a US CS academic (over two separate mails which he allowed me to share with others). I have shared below the key parts of the mail exchange:

The US CS academic wrote:

It may not have occurred to you but some students punish good teachers for being demanding and for not being soft at grading. I have seen the most outrageous *anonymous* student feedback for a professor who caught many cheating. The easiest way for a professor to get a good rating from anonymous feedback is to lower standards and give higher grades.

My response was: Oh Lord! While I thought that certainly there were possibilities of students using the anonymous feedback as a weapon against the teacher, I did not know that they actually do go that far. You have the experience of such feedback systems in academia - I don't (though I do have industry feedback experience, which I think is a very different ball game). I am quite shocked to know of this. Hmm.

The US CS academic wrote back:

Note that anonymous accusations traditionally are absolutely disregarded or in cases even illegal under Western law. Except, it seems for professors. Disgusting.

My response (slightly edited to give more clarity) was: Thank you so much for bringing out this aspect so clearly. I think an academic who gets targeted via such anonymous feedback/accusations would go through horrifying emotional torture. He/She would feel there has been no justice, no chance for him/her to prove his/her case.  Hmm.

I really need to pause, think hard, and ensure that my blog post does reflect this horrifying abuse possibility. And then explore whether there is a "safe" way to use student-customer feedback as one measure of teaching quality. As of now, I am quite clueless about suggestions on how to prevent abuse of student feedback like the cases you mentioned and how to address/prevent/resolve the 'disgusting' nature of anonymous feedback accusations being considered as a negative measure of teaching quality.

Thanks again for the reality-bite.

--- end mail exchange extracts ---

After learning about the US academic's experience with abuse of anonymous student feedback to punish good teachers I realize that my earlier view that "there surely must be ways to mitigate such issues" may be wrong. I am not so sure any more about ways to prevent or even mitigate such issues in the Indian UGC/AICTE regulated institutions context. [For the 'cheating' example shared above one could ignore feedback from such students but they could influence their student-colleague-friends to give bad feedback.] My experience of teaching in academia is limited to an educational institution with a focus on human and spiritual values where the students were exceptionally well behaved and had tremendous respect for their teachers. Perhaps there is a very real possibility of such abuse of anonymous student feedback to punish good teachers in some other Indian educational institutions.

Direct (non-anonymous) student feedback used as a measure of teaching quality, when negative, has the possibility of seriously damaging the human relationship between student and teacher. So I don't think that can be considered.

Therefore I withdraw the suggestion of using student feedback as a measure of teaching quality.

 

Discussion on Concrete Suggestions for Measuring Teaching Quality ...

 

Associated blog post date: 5th June 2013, link: http://eklavyasai.blogspot.com/2013/06/discussion-on-concrete-suggestions-for.html , short link: http://bit.ly/disc-conc

This post is a follow up discussion post to the Concrete Suggestions for Measuring Teaching Quality in Practice-Oriented Computer Science/Information Technology streams post (given earlier in this book).

A correspondent who is now doing a PhD in Computer Science in a US university wrote (slightly edited):

Interesting views from you on teaching lab courses, balance between lab and theory, and evaluating teaching techniques and teachers. If you are interested, here is how I have perceived teaching in the US. Note that this is just my view and I have taken only a few courses/classes and come to this conclusion by mere observation.

I firmly believe that teachers must be evaluated on an yearly basis. Here in the US, at the end of every semester the students go through an anonymous survey where they rate their instructors and the facilities in the lab. There is a "Best Teacher Award" every semester. There is also a "Best Researcher Award" too. In spite of all such measures in place, there are good and poor teachers here as well. I have come to understand that being a good teacher is a matter of attitude more than anything else. I have seen the busiest of professors spend inordinate amounts of time and effort to make themselves understood and convey the course content very effectively. On the other hand, I have seen/heard of professors who take their tenure-ship for granted and just breeze through the classes. These teachers get poor ratings in surveys but nothing seems to be done about it. While I believe that we need anonymous online evaluation of instructors and facilities, I also believe that the system can only do so much and inspirational/excellent teaching is a matter of teacher-attitude.

Regarding programming courses, let me go through how its done in the US. I have been a teaching assistant (TA) for basic Java, C++ and Assembly Language programming courses. There is proportional weight given to different aspects, like Exams, Assignments, Labs, Quiz(surprise tests in class). The instructor meets the students in class, twice a week for a total of 3 - 4 hours. He/She is also available for office hours during other times of the week. The instructor and TAs are available by email anytime during the semester. The introductory programming courses have one lab every week where the TA is there to help the students understand the lab. The instructor usually designs the lab and the students get all the help they need to complete the labs. The labs are evaluated, though very leniently. Every fortnight there is an assignment. And these are tough assignments that require at least a few hours to a couple of days to complete successfully. All of these are graded very objectively and there is always a check for plagiarism. One important aspect of the courses here - the instructor decides the syllabus and the evaluation criteria. This is a bit tricky to implement in India but seems to work in the US in most cases. A fifteen week course usually ends up having 8 assignments, 14 labs, 10 quizzes and 3 exams. There is also a website for the course where assignments, labs, lecture slides, solutions, reviews for exams and course material is regularly uploaded. I mentioned all of this to tell you the different aspects that go into making a programming course successful, here in the US. I am not certain that there is this much of rigour that goes into programming courses in most Engineering institutions in India. No wonder we have very different programmers in US compared to India.

I believe technology (course website, plagiarism checks, etc.) and resources (labs, TAs) are definitely needed to make a programming course successful. But the most important aspect is the instructors' attitude towards the course. With all of this technology and resources, we still have effective and ineffective instructors and that's just a matter of attitude.

I (Ravi) responded (slightly edited):

Thanks for the detailed info. and thoughtful comments. They are very useful.

Allowing teaching excellence to be an optional goal left to the attitude of the teacher, IMHO, is a disastrous management approach to quality education. A good management approach *must* reward excellent teaching and punish bad teaching. Such rewards and punishments will ensure that teachers will develop the right attitude towards their primary duty of teaching else they will be either left behind in their career or even asked to pursue another career option.

In my view, the key point here is that the academic administrative authorities in your US university have some measure of teaching quality (as viewed by the student-customers of the system). It may not be a perfect measure like academic research publication record is not a perfect measure of academic research contribution. This measure along with other informal assessments allows the academic administrative authorities to reward good teaching, not reward indifferent teaching, and punish bad teaching. Whether the academic administrative authorities in your US university are doing so or not, would be a confidential matter, and so not known to us. However, by the view you have that there are some ineffective instructors (bad teachers) in the system in your university, it seems that the academic administrative authorities are not acting effectively on the student feedback or are not in a position to do so.

In UGC/AICTE Indian educational institutions, for CS/IT lab. courses, there seems to be no proper measure available to academic administrative authorities to differentiate between good, indifferent and bad lab. course teachers. The course grades (given to students) seem to be given very leniently, so they are not a proper measure. This creates a situation where there is no incentive whatsoever for good teaching or any disincentive for bad teaching for CS/IT lab. courses. Is it any wonder then that most Indian CS/IT graduates are poor in software development skills/practice of software development?

The recently passed out M.Tech. (CS) student who gave the comments mentioned in the Concrete Suggestions for Measuring Teaching Quality in Practice-Oriented Computer Science/Information Technology streams post (given earlier in this book) wrote (slightly edited):

Sir,

I went through your suggestions. I would like to propose a few other minor things which are as follows:

1) A programming lab. course should not just teach the syntax and features of a language but the endeavour should be to teach the small things, which make a big difference, such as indentations while writing code, writing easy to understand comments, choosing meaningful variable names and planning the modules before writing a piece of code. I think these programming aesthetics should be part of the evaluation process.

2) This one may not always be possible. However, with a little motivation from the teacher and some interest from the students it is not as humongous a task as it may apparently be. I am talking about including a small software development project as part of the course. This can be a group project. At the end of the course the students can be made to give a presentation about their software to external examiners. (I do not know if you remember but we had a similar component, although without external examination, in the Web Programming using ASP.NET and C# lab. course that you had conducted for us. Also, 5 of us had volunteered the same year to write an assembler for a hypothetical architecture that was used in our Systems Programming text book to explain the concepts of assemblers, linkers, loaders, etc. We wrote the bare bones of it in C and this has undergone evolution over the years in the hands of subsequent batches. Now, I believe all the features of an assembler that were discussed in the course have been implemented and the software can be used to demonstrate an assembler to students. However, I am not sure if it still has a GUI.)

I (Ravi) responded (slightly edited):

Thanks for your comments.

On point 1, I agree. But I feel this should be part of the two semester 'C' programming course that is taught at B.Sc. level, which is the first programming course lab. in the Department of Mathematics & Computer Science system (in that educational institution).

On point 2, it is useful input. I agree. The issue from a teacher's perspective is time. Sometimes there is a bare minimum of topics that must be covered in a lab. course, and that leaves no time for group projects in such lab. courses, especially in time-wise, very tight educational systems.

 

Wrote to Prime Minister, Shri Narendra Modi, on improving practice of software development in Indian CS & IT academia

 

Associated blog post date: 28th May 2014, link: http://eklavyasai.blogspot.com/2014/05/wrote-to-prime-minister-shri-narendra.html , short link: http://bit.ly/wrote-to-PM

I sent the following message yesterday (27th May 2014) to Honourable Prime Minister (of India), Shri Narendra Modi, via the PM website link: http://pmindia.nic.in/feedback.php

Subject: Education

Comments: Sir, in an interaction you had with TV18 during your campaign, you had mentioned about employability issues in our education system. I share a similar concern in the field of Information Technology in India. I request you or your aides to go through my pre-print paper on arXiv.org, Cornell University, USA, titled, Improve the Practice of Software Development in India by Having a Software Development Career Track in Indian CS & IT Academia. Abstract link: http://arxiv.org/abs/1202.1715 and Paper link: http://arxiv.org/ftp/arxiv/papers/1202/1202.1715.pdf.

Please note that for the past many months (if not a year or two) this pre-print paper of mine is the first or second result for Google search for the following terms

poor programming skills Indian CS graduates

poor programming skills Indian CS and IT graduates

poor programming skills Indian Computer Science graduates

improve programming skills Indian CS graduates

improve programming skills Indian software graduates

--- end comments ---

A little while after I submitted the message, I received a standard email acknowledgement from PMO Public Response Unit, do-not-reply@gov.in, mentioning, "Your Mail is being  reviewed."

So far, so good. Let's see whether matters go beyond this perhaps automated response.

[8th Feb. 2020 Update: As far as I can recall, matters did not go any further - i.e. there was no further response from PMO (Prime Minister's Office) on this matter.]

 

Poor software development skills Indian CS graduates - Google Search Results

 

Associated blog post date: 25th Jan. 2013, link: http://eklavyasai.blogspot.com/2013/01/poor-software-development-skills-indian.html , short link: http://bit.ly/poor-swdev

I felt it appropriate to share on this blog a mail I sent on December 27th, 2012 to the (Indian) Ministry of Human Resource Development, Ministry of Communication & Information Technology, UGC, AICTE and AIB-ITE heads (top academic administrators of the country) and Planning Commission Nodal officer. I also felt it appropriate to share that I received a prompt response from the office of a Minister of State from the Ministry of Communication & Information Technology, which was copied to all the other mail recipients of the original mail. The response acknowledged receipt of the mail and mentioned that the mail will be forwarded to another official in the same ministry for "his kind perusal and needful further action thereof". I have not had any further response from them so far (January 25th 2013).

I am quite happy that at least the mail was acknowledged by a Union minister of state's office. Hopefully it may result in some discussion/debate on the matter.

The mail was sent on December 27th, 2012 and its contents are given below:

Dear Gentlemen,

Teaching software development skills effectively to current and future generations of Indian Computer Science (CS) and Information Technology (IT) graduates is, in my humble opinion, vital for India's material/economic development. In fact, software has become so pervasive now that software development skills are becoming necessary for graduates of other streams like Bio-sciences/Bioinformatics, Physics, Chemistry, as well as, I presume, most, if not all, engineering streams (Electrical engineering, Civil engineering, Chemical engineering etc.)

However the current standards of teaching of software development skills in most of Indian academia are quite unsatisfactory.

Google search for

poor software development skills Indian CS graduates

 Or

improve software development skills Indian CS graduates

gives my academic paper/article, "Improve the Practice of Software Development in India by Having a Software Development Career Track in Indian CS & IT Academia", as the first result.

As you gentlemen are very influential in formulating and implem