Wednesday, November 11, 2009

How the Nature of Assessments Influence What Competencies You Develop in Programming…

During the last two years, I have interacted with a good number of students of Computer Science & IT from various universities in India. These students are not from the top ones like the IITs, BITS, Pilani, the NITs. Several students exhibit just 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.

In my opinion, it is a fairly simple problem. 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 my institution, 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! Well, there are other competencies, too, that you have to develop to make a great career, but I will talk about them some day.

1 comment:

  1. I am neither a student nor teacher but someone that has a vested interest in both :-) I think the system has to change all over and it has to start with teachers and parents. Personally I feel the students have little choice in this. Parents have to stop pressuring their kids to obtain "high" marks. In some states the marks scored by 12th(Plus2) standard students are so ridiculously high that its laughable. Teachers should challenge the students with problems that stimulate critical thinking and logical reasoning. They should make it clear that the method is more important than the answer and give appropriate weightage when they evaluate tests. That being said I sincerely doubt that this will ever happen. Education is big business in India and the schools and colleges won't do anything that might jeopardize their "standing" in the education industry. The only place this can be fixed is on the job. This is why I suspect the major IT companies recruit large number of fresh graduates and put them through their system of indoctrination for whatever programming language their clientele wants. The less fortunate ones head for the closest mom and pop shop that offers the longest alphabet soup of programming acronyms :-) I think careful mentoring on the job by experienced professionals can help mold fresh minds into good programmers. But again this has to be treated as an investment by the employer and not merely as a body to bill a client for. Is this possible? Absolutely. Will it happen? Maybe.

    In a conversation with a friend who works for THE company in India I learned some shocking facts. In a bid to impress the client with "speedy" bug fixes the project managers encourage engineers to post their problems on Internet forums to be answered by the world at large or search Google for code snippets that can be cut and paste! At what price profit?

    ReplyDelete