During the last two years, I have interacted with a good number of students of Computer Science & IT from various universities in India. These are not the top ones like the IITs, BITS, Pilani, the NITs. Several students exhibit fairly rudimentary competencies in programming even after having completed the course at college and even obtaining fairly good marks or grades. One of the simple problems that I ask them to solve is this:
The problem involves taking a positive integer as input from the user, and computing the sum of the individual digits of the input integer. If the result is not a single digit integer, the process of summing up the individual digits of the number continues till it reduces to a single digit number. The input integer and the reduced single digit integer are to be displayed. Write a computer program using the C programming language that performs these tasks.
I have found a fairly large number of students who struggle to solve even this problem. Yet, they appear to have passed the course at college and have secured good marks/grades. Where does this disconnect stem from?
No prizes for guessing! It is the nature of assessments that these students had to go through at college. Many of the students have shared with me that they are not able to solve such problems because they were not required to prepare for answering such types of questions in their final semester exam. I then picked up a set of question papers from various universities and examined them. Predominantly, the nature of the assessment is such that one can get a decent number of marks by answering a wide range of questions that require descriptive answers, and not any problem solving. Of course, there are a few problems to be solved with the student having a generous choice of problems to choose from. So it is possible for many students to obtain decent marks without having the ability to solve problems by writing programs.
Now if a student knows that in assessment she would be required to answer question such as “What is recursion?” why would she practice solving problems that involve recursion? Of course, one might say that she must practice solving problems using recursion since it is one the important competencies to develop. I agree. But the sad fact is that most students would quickly adapt to doing only the required amount of work in a course that would enable them to pass a course with decent scores. I was lucky on two counts. One, I had an inspiring teacher. Two, the nature of assessments at BITS, Pilani ensured that I had to develop programming competencies. Sadly, many students are not so lucky as I was on both these counts.
If you are a teacher, please do reflect on the need to align assessments to the stated learning objectives of a course, and what competencies a student would have to develop by doing the course. If you are a student, my appeal to you is to focus on developing competencies at problem solving using programming. Learn by Doing! Never mind the bland nature of assessment in your university. You would pass the course and get good marks anyway! But the competencies you develop in problem solving & programming could form the foundation of a great career!