Sunday, January 22, 2012

CS & IT Academia: Is Teaching Excellence Important?

Last Updated On January 24th 2012

At the outset I would like to say that I am not against CS/IT research. Without CS/IT industry & academic research, wonderful inventions of computer Operating Systems, computer Languages, Databases, the great & revolutionary force of the Internet etc. would not have happened. What I am against is teaching excellence in CS/IT academia suffering due to an unbridled enthusiasm for research.

In my considered opinion, "Teaching Excellence" seems to be not so important in Indian CS & IT academia. What really matters is "Research Excellence". The pressure to publish research papers and bag research projects of sizeable monetary value may be resulting in many teachers having no option but to dilute teaching ideals - they are also human and have to accomplish so many things in limited time. Of course, students have to be taught reasonably so that they do well at the exams but going beyond that to achieve excellence in teaching may be very challenging due to research pressure. Career advancement wise, there is no significant reward or recognition for "Teaching Excellence". "Research Excellence" gains recognition, even fame at times, and career advancement.

Why is that the case? An academic CS/IT department should focus on teaching, isn't it? Well, one look at UGC norms (http://www.ugc.ac.in/policy/revised_finalugcregulationfinal10.pdf) (I presume AICTE norms will be similar) for appointment & promotion of academics, including CS/IT academics, gives the clear answer. "Teaching excellence" is not really a promotion criteria.

  • For appointment as Assistant Professor a NET/SLET/SET qualified Masters' degree holder with 55 % marks is acceptable. But a PhD degree holder who is not NET/SLET/SET qualified can also be appointed as Assistant Professor.
  • For promotion to Associate Professor, at least 3 publications for stage 4 Associate Professor, and 5 publications for stage 5 Associate Professor are needed (PhD is mandatory for direct appointment as Associate Professor).
  • For promotion to full Professor, the norms are PhD + post-doctoral research output of high standard, patents & IPR, additional research degrees like D.Sc., D.Litt. Number of years of teaching experience also matter in the promotion to Associate Professor & Professor but it really is just the number of years.
  • How well the person taught seems to be covered under Academic Performance Indicators - Category I: Teaching, Learning and Evaluation related activities, but they are based on the teacher's self-assessment! So, I guess, it will just be a formality with all teachers scoring well in it, irrespective of the reality :).

In other words, the unfortunate situation seems to be that, from UGC/AICTE norms point of view, Teaching Quality does not matter for career advancement, so long as students perform reasonably in paper based examinations. Very shockingly, for a practice oriented field like CS/IT, Teaching Quality for the practice oriented lab. courses also do not really matter and the unfortunate reality in most CS/IT departments in the country is that the lab. courses are notorious for being graded liberally so that almost everybody scores well!

Given the UGC norms for career advancement, most Indian CS/IT academics will focus on research instead of teaching. The CS/IT academic will, of course, try to do a decent job in teaching but it does not make sense for him to waste time trying to excel at teaching. He will get far better career rewards by being an excellent researcher who is a reasonable but not excellent teacher. Yes, of course, there will be CS/IT academics who excel at both teaching and research. The cream of the CS/IT academic field excel at both research and teaching. But I think, given the workload pressure, a significant number of CS/IT teachers would find it very difficult to excel both at teaching and research. You may also want to read another post of mine, "Is a PhD in CS/IT Necessarily a Good Teacher?": http://eklavyasai.blogspot.com/2011/09/is-phd-in-csit-necessarily-good-teacher.html.

Some conscientious academics may choose to excel at teaching giving them lesser time for research and thereby not do well as a researcher. Their career growth gets stifled though they get the emotional reward of a clean conscience and earn the love and respect of students for being a good teacher.

Those teachers who choose to focus only on teaching and stay away from research will almost inevitably get into trouble with academic administrators. One cannot blame the administrators as they are bound by UGC/AICTE norms which, I guess, expect them to "encourage" research :).  They also have to deal with the general expectation the leaders in government & industry have from academia to excel in research.

Such non-research oriented teachers may even be treated as liabilities even if they are excellent teachers as they, due to their disinterest in research, may not have a PhD. It may be as if the teacher is lowering the image of the department/college/university! Such persons tend to get fed up of Indian CS/IT academia and move into CS/IT software development industry (but not industry research) where their CS/IT knowledge/expertise is given a red carpet welcome. This is a sad state of affairs! In practice oriented streams like CS & IT such attitudes hurt rather than help. Who does it hurt? The poor students who lose the opportunity to gain from an excellent teacher who is disinterested in research.

Perhaps these UGC/AICTE norms work well for areas like Physics, Maths, Mechanical Engineering, Electrical Engineering etc. But for practice oriented CS/IT field I think they are very inappropriate. UGC/AICTE should treat CS/IT separately and come up with different norms where promotion is possible for excellent CS/IT teachers who are disinterested in research. Please note that UGC has separate norms for the practice oriented disciplines of Music & Dance, Drama and Visual (Fine) Arts. The CS/IT discipline has exploded into almost all facets of life all over the world in the past two or three decades with self-taught experts like Bill Gates (Microsoft), Steve Jobs (Apple) & Mark Zuckerberg (Facebook) becoming world famous icons. These three icons are/were technologists and not researchers. The fact that such self-taught experts have risen to very high stature in CS/IT industry seems to me to be good enough reason for UGC/AICTE to treat CS/IT differently.

I need to clarify that I am not making these remarks for the benefit of myself. By God's Grace, I retired from commercial international software industry over a decade ago. God's will/destiny led me to offer free service, mainly as a "visiting faculty", to Indian CS academia for teaching lab courses and being a consultant for project work for 9 years now. Given the strong practical know-how I have from over 18 years in the international software industry and the fact that I am offering free service, I have a plethora of opportunities for service of which teaching in CS/IT academia is just one possibility.

I am making these remarks in the context of regular (paid) CS/IT academics for whom the academic job is a livelihood. Imagine a CS/IT non-PhD but, say M.C.A. (Master of Computer Applications), qualified teacher who is also NET/SLET/SET qualified and who excels as a teacher but is disinterested in research. He will be a great boon to students. But, over time, as he sees that promotions are not coming his way he will get dispirited and disinterested. Further, academia has a PhD club mentality and so he will be treated as a second-class citizen in academia. Either he will also see the "academic light" and start focusing on research relegating teaching excellence to the background OR he will quit academia.

Leaders from the Indian government and sometimes even from Indian industry talk about improving research in Indian universities. While that seems to be a very laudable goal, I think they should also talk about improving teaching standards in universities & colleges. In my opinion, a university/college is a portal first and foremost for teaching/learning (education) and then for research. But I am not really an "academic" and so maybe I am getting it wrong. I think I am an old school guy who feels that the FIRST and FOREMOST DUTY of a TEACHER is to TEACH and TEACH WELL.

Thursday, January 19, 2012

Holistically Elite CS/IT Education vs. Technically Elite CS/IT Education

Last Updated On January 21st 2012

A holistic, service to society view would favour CS/IT education which combines technical know-how with application of this technical know-how to current socially relevant problems especially rural Indian society's problems as they are the most needy section of the country. Students who are taught in this fashion will have technical know-how and also experience the joy of serving the needy through CS/IT and earning their love. Such students may, later on in life, not only flourish commercially in industry or in academia but also contribute back to society, especially its needy, through software solving its problems, thereby leading to inclusive and harmonious growth of the community at large.

Some of the points touched upon in this post are general to higher education and not specific to CS/IT. But I am qualified by industry work & teaching experience and academic lab course teaching & projects' consultant experience only in CS/IT. So I make specific suggestions mainly about the CS/IT academic stream. I would also like to state that CS/IT being an applied field may have direct service to society application possibilities as well as research possibilities. Pure science fields like Physics, Chemistry, Bio-sciences or Mathematics may contribute via fundamental research. I do not have significant knowledge about these fields to comment on them. But by no means am I implying that their fundamental research contributions are "any lesser" in service to society than applied CS/IT software development contributions or CS/IT research contributions.

For CS/IT students to develop such a country-citizen/world-citizen, broad-minded outlook some time has to be devoted to teaching them application of human values/ethical values/spiritual values to CS/IT field. Some, perhaps most, educational institutions may prefer to be secular and not get involved with spirituality/religion but will certainly want to promote moral/human/ethical values. The financial system challenges that are threatening Europe, US and the world in general has its roots in grossly unethical & immoral actions of the financial system elite. The brunt of the suffering is not borne by the financial system elite who caused the problem in the first place but by the poor commoners who were taken for a royal ride by the financial system elite. So I think that all educational institutions, whether secular only or a combination of secular+spiritual, will agree that for the betterment of the world, education in moral/human/ethical values is urgently needed, especially at higher education levels, as it is the lack of these values in the "highly educated" financial system elite which has brought the global financial system and the global community in general to such a precarious state.

But some educational institutions focus on pursuing excellence in specialized fields only and achieve fame in those specialized fields. It is these "elite" institutions that are revered by society today and almost every other educational institution tries to emulate them. I learned a new term the other day, "Ivy League Envy", from this Economist, Dec. 10th 2011, article, Schumpeter - University challenge: http://www.economist.com/node/21541398. The students from these "elite" institutions typically get the highest-paid fresher jobs in their area of specialization. Money earned by students and not their contribution to society, especially its poor, is the typical measure of success for most of the freshly passed out students and their parents. In India, for the CS/IT field, it is the IITs & now, probably, the IIITs which fall in this "elite" category.

In my view, these are "elite" from a speciality-excellence point of view only. There are other educational institutions which are "holistically elite" giving the "right", in my humble opinion :), balance of speciality-knowledge & human values knowledge.

I guess there will always be hallowed portals of "elite" education both at material/secular levels [MIT, Harvard, Oxford, IITs etc.] and at spiritual levels [Elite institutions among Christian seminaries, Muslim Madrasas, Jewish seminaries, Buddhist monasteries, Hindu monasteries etc.]

A few educational institutions go for a combination of spiritual/moral/ethical, cultural, sports & 'secular' education as they want to give both an education for life (truthful, ethical, peaceful and loving way of life - moral/ethical/spiritual life) & an education for a living (material life). These holistic educational institutions cannot aim for the same level of excellence in secular education like that of the elite secular only educational institutions. But it must be noted that they achieve excellence by holistic standards and so become a hot destination for parents & students desiring holistic education. So they are "holistically elite" as against being "secular only elite".

But some parents and students may want to avoid any value based education, especially at higher education levels like CS/IT graduate/post-graduate level. There should be NO compulsion. Such parents & students can steer clear of value-based educational institutions. Anyway, as of today, value-based higher education institutions are a very small minority.

Another vital factor is the "big paycheque" motivation for students & parents. The "holistically elite" CS/IT fresher graduate would get a decent paycheque but it would typically be significantly lesser than the paycheque of the "technically elite" CS/IT fresher graduate. So students & parents interested in a "big paycheque", also can steer clear of value-based educational institutions.

Then we have an issue of best education for intellectually-elite students versus best education for intellectually-commoner students. [Note that an intellectually-elite student may be weak in social/humanistic skills, whereas an intellectually-commoner student may be very talented in social/humanistic skills i.e. he may be a social-humanistic-nature-wise-elite student.] Some intellectually-talented educators would like to focus on creating the best education system for the intellectually-elite.

In my humble opinion, we should not suffocate the elite and force them to learn in commoner student ways. Society must allow the crème de la crème to pursue excellence in its chosen fields. We must keep alive, within bounds of reason and social acceptability/relevance, the portals, physical and digital, which inspire, ignite and elevate minds to achieve excellence. Such excellence can be in secular fields like Physics, Evolution, Computing, Medicine, Sociology, Economics and also in spiritual fields. Why limit ourselves to only Darwin, Newton, Neils Bohr, Einstein ... We should also have beacons of love, joy, peace & light like Jesus, Buddha, Mohammed, a Mahatma Gandhi, a Mother Teresa, a Pope John Paul II, a Ramana Maharishi (http://en.wikipedia.org/wiki/Ramana_Maharshi) etc.

But we should not ignore the non-elite, the 99 %, as the Occupy movement refers to itself. We need solutions to cater to their educational needs as well. That is ABSOLUTELY VITAL for social peace and harmony. The intellectually-elite can have the freedom to pursue their area of excellence only if social peace and harmony is ensured.

In conclusion, I feel that "holistically elite" CS/IT education is what society needs today far more than "technically elite" CS/IT education. The amount of money that students earn after they finish their education should not be the primary measure of success of the "holistically elite" educational system. The contribution made by students using the CS/IT skills they have gained from academia, after they finish their education, or in some rare cases, even while they are undergoing their education, to society's needs, especially the needs of society's poor, and how much love, joy & peace they bring to their individual life, their family and the community in general should be the primary measure of success of the "holistically elite" CS/IT educational system.

Wednesday, January 18, 2012

Texas A&M University's Approach to Teaching Programming in (US) CS Academia

In the paper, "Programming in an undergraduate CS curriculum" by Bjarne Stroustrup, WCCCE ’09 May 1-2, 2009, Vancouver, British Columbia, Canada: http://www2.research.att.com/~bs/software.pdf, the author makes a case for a strong "software curriculum" in undergraduate CS curriculum so that "software professionals" get produced by CS academia. The paper also presents the largely positive results from Texas A&M University (TAMU), USA adopting this strong "software curriculum". So it is not just a proposal but a "software curriculum" that is proven in practice. I have been informed that this "software curriculum" is considered a success and is being used even now at TAMU.

Prof. Bjarne Stroustrup is a world-famous Computer Science industry-and-academic-researcher, technologist and Distinguished Professor & holder of College of Engineering Chair in Computer Science at Texas A&M University. He is known throughout the software world for the creation and the development of the widely used C++ programming language. He is an ACM fellow as well as an IEEE fellow. For more details, see: http://en.wikipedia.org/wiki/Bjarne_Stroustrup, http://www2.research.att.com/~bs/.

At the outset I would like to say that such an approach may OR may not be appropriate for Indian CS / IT departments. I am simply sharing it as an outstanding programming expert's point of view and details of the experience of teaching programming in that fashion in CS academia.

The paper starts with an analysis of the problems in the way programming is taught/learned in CS academia.

Now for a quote from the paper. But first, here is the copyright notice of the paper.
"Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
WCCCE ’09 May 1-2, 2009, Vancouver, British Columbia, Canada. Copyright 2009 ACM ...$5.00"

Now the actual quote, "That way, you can (and often do) see students with high grades in algorithms, data structures, and software engineering hack solutions in an operating systems course with total disregard for data structures and algorithms, resulting in a poorly performing unmaintainable mess."

It then moves on to stating that "software professionals" should be produced by CS academia. This article has a focus on teaching programming while acknowledging clearly, of course, that Computer Science has many other areas to be taught as well.

The "software curriculum" part of Texas A&M University CS curriculum is then described (4 courses: Introductory programming (using C++), Data structures & algorithms, programming languages (besides C++) & a primarily project-based Design Studio course).

What should be the first programming language (Java ?) is considered. Interesting that this question haunts many CS departments :). The Introductory programming course teaches C++ based on Stroustrup's book, "Programming - Principles & Practice using C++". It is not 'C' (subset of C++) followed by C++ as is the case in many Indian CS departments, I believe. The course is explained in quite some detail.

The author frankly shares the problems with "execution" of the course (e.g. some students want 'C' part first). Grading approach and TAs handling of students is also mentioned. Comments on how Professors should teach the course is also given quite frankly.

A concluding section named Etc. has comments on some topics including approach of increasing level of professionalism rather than pandering to demands for "better trained" students (from industry), "easier and more exciting courses" (from students), "things done the way we are used to" (from teachers) ...

I think this paper is a MUST-READ for CS / IT academia programming course teachers/policy-makers/decision-makers. The reader need not agree with Stroustrup's views & approach but, IMHO, the reader will benefit by knowing how Stroustrup & team handled the task of teaching programming in a CS department.

However, there is a high degree of inertia & even resistance in Indian CS & IT academia to accept a practical "software curriculum" aimed at producing "software professionals". Prof. Stroustrup & team at Texas A&M University, USA, have to be congratulated on bringing about this change in their undergraduate CS curriculum thereby, I am quite sure, benefiting students, parents & employers. Indian CS & IT academia should carefully study this wonderful "software curriculum" and, if required, adapt it appropriately for its needs so that Indian CS & IT academia can also produce "software professionals" and make students, parents & employers happy.