Manage your programming labs using Parikshak
Numerous studies indicate that the practical skills in a typical computer science or IT graduate is quite poor. Many cannot even write a simple program like finding the mean of a set of numbers, or counting the vowels in a string. On the other hand, a mandatory signature of an IT professional is the ability to write program -- at least in some programming language --, and the required skills of abstraction and program design. I will come back to these later topics in a later post. Keeping this in mind, NCST (which later became CDAC Mumbai) had introduced a special examination from the early days. It came to be called the 'machine graded programming test', or MGPT affectionately. It was a scary test for many, but it was mandatory to clear that to get NCST diploma, and hence students persisted. And when they do clear the test, I think, they may have felt that they climbed Everest, or flew all the way to Moon. The test got the reputation of a hard test, because it was different from the usual examinations, and it tested multiple aspects in one go.
Students would get a problem statement, saying, let us say, they have to write a program to sort a given set of N numbers. They will be told of any restrictions like no-duplicates, only-positive, etc, and also how the numbers will be input. For example, first N and then a series of N numbers, or a series of numbers terminated by $. The statement also included what and how they should produce as output. These had to be obeyed without any deviation, or else the system will flag your program as erroneous. A sample (or two in some cases) will be provided of the input and the corresponding output. All these helped to define the objective clearly and unambiguously.
And they needed to produce a program, fully debugged, which will produce the desired output against a set of hidden inputs which the system will throw to your program. Nothing less was acceptable. No one would look at your program usually, and no question of getting marks for 'my logic was right'. Only 'my program is right' counted.
The challenge was that, possibly for the first time in their life, they were going from a problem statement all the way to a working solution, on their own. Understanding the requirement, designing the solution, coding in the language specified, and debugging were all part of that journey. One would stumble on some block or other, often for silly errors as one may later recognise. "Oh I initialised i to zero, instead of -1", laments like that can often be heard at the end of an examination.
Most of the programming courses is not taught for an objective like this. First of all, courses on programming languages focus mostly on syntax. We teach them every construct and function in the language, even the archaic and never to be used, but not how and when to use them effectively. At the end, they can write essays on a construct, but not predict the output of a piece of code, or write a line of code. There are hardly courses on programming per se. Topics such as software engineering are done in such a drab manner, its importance and relevance is hardly noticed. As a consequence, a student is ill-prepared when given a problem statement and asked to write a program. That is why the test appeared hard for them.
Many of our diploma students who graduated and went on to various job profiles, swears by the MGPT even today. One wrote to me, that if there is anyone who has cleared MGPT, I don't need to know anything else to recruit him.
The labs in a college are a challenge, to say the least. The problems are many: usually the problem sets are defined in the syllabus, students have limited time in the lab to try out things, faculty have limited time to review each code, the testing of code is fairly random, and so on. Copying from each other is not unusual, and there is not much one can do to check against this.
That is where I find a match between the two scenarios -- the poor teaching/learning of programming in our degree programs, and the great feedback we had been getting for Parikshak based tests. By the way, Parikshak is the name of the tool that was used to set up the test, conduct the test, and monitor it. And here is the proposal: run the programming lab in your college using Parikshak. What does Parikshak do?
As a teacher you can create your own problems using Parikshak, covering all the components I mentioned earlier. Believe me, it is a good training/learning for the teachers. Learning to create good, clean programming problems is something to be learned. Once this is done, you can make it available to your students as a test or assignment. In a test, they get only one chance at the problem, and in an assignment they can login multiple times within a period (a week or a month or whatever). Students login, and select one of the problems which are open for them. They can view the statement, the I/O specification, and the sample. They have a window where they can write code matching the requirements. They can test run it with their own inputs at any time, and any number of times. When they are ready, they can "submit" to Parikshak, and it will test it against the faculty solution. It will report the result as a series of X/Y, X meaning your program did not work as expected for an input, and Y meaning it did. You can go back and revise the program, if there are any Xs, and repeat till the allotted time runs out. In an assignment, the system allows you to modify the program you created earlier, whereas in a test a new environment opens for each test.
The teacher will have access to the full record of the student activities, which problems were tried, what codes were written, how many times it was submitted, the result each time, and so on. He can look at the codes being written by students, and work on collective feedback for discussion in the class next time. All this can be done, without even going to the lab. Parikshak is on cloud, and you can access all these from wherever you are, and whenever you want.
At the end of the semester, or year, you can use these logs to decide how much marks to give to a student for the lab course -- a far more objective way to give your 'internal marks'. Since students get immediate objective feedback to their submissions, they have more opportunities to try a problem, and more problems too. Did I tell you that there is also a utility embedded in Parikshak for detecting plagiarism among submissions? You can now, do something about this menace!
Adopting Parikshak not only makes your life simpler as a teacher allowing you to be more productive, but enables the student to use the lab in a far more enriching way than before. If you want to license Parikshak for programming labs (or even recruitment for that matter), please write to me, or post a comment here.
IT Management - InfraOps - Cybersecurity - GRC
1 年I do remember the Parikshak. It was an interesting experience indeed. Class of 1999.
Java Developer | Spring Boot | Hands on experience on Python, C and C++ | Finance and Telecom Domain | Knowledge of DS and Algorithm | Quick Learner
2 年Parikshak is worst coding plateform I have ever seen. We were using that in last SEBI examination, even though all code was correct, we were getting REs
SE V(μServices, Golang), Innovator, PSM II Certified (24+ years Exp)
4 年"And when they do clear the test, I think, they may have felt that they climbed Everest, or flew all the way to Moon." So true :)
Program Director, IBM Automation Partnerships & Strategic Alliances
7 年The first MGPT was always a big leveller. In a typical NCST diploma batch, one would have a mix of complete greenhorns and those that knew a thing or two about programming. The first month would pose a serious existential issue for all the greenhorns as the "experienced ones" would strut their stuff. Inevidently the first MGPT would be such a disaster for everyone that post it the class would become a place for equals :). Amazing assessment concept!
Transformation | Leadership | Strategy | Customer Success | Technology | Start-ups
7 年thanks Sasi Sir for bringing this to masses. I remember my NCST Bangalore days. it always felt like climbing a mountain post seeing the Ys. I have never gone through a more challenging evaluation methodology. This could be a game changer .... I support this to take it to all possible colleges. A suggestion could be that we target IITs and / or NITs and push it hard to adopt the method for certain Post Graduate courses.