Data structure & algorithms form backbone of programming. It is expected that any computer science graduate to have very good experience in using various data structures like linked lists, queues, stacks, trees, hash tables etc. During my REC Warangal days, passing thru the Data structure course was a real torture. The professor will ensure we slog thru our bones by having a very strict evaluation mechanism to evaluate every other assignment. Let me explain this in detail.
To start with, every week a new assignment topic will be given. We will create a basic design and start coding them, while theoretical part was still thought in the classroom. By the end of the week (Sunday 5 PM) we were supposed to copy the corresponding C file into a particular directory with a particular format. If it is done even at 5:01, it will not be allowed as an automated script would block write access to directory. Followed by this, every C program will be turn thru a Shell script, which will find 20% of total lines randomly and delete from the program by placing some special character (ex: /* $ */) as a placeholder. There is also a mandate that all assignments should not have any comments, thereby preventing students escaping by filling up comment lines instead of actual C program statements.
The story is not over yet! During lab session (in the next week), one hour of time will be provided where each one of us needs to fill-up deleted 20% lines followed by successful compilation and execution of the program. Here also timings are very strict. Just after one hour a script will automatically logout each of us from the computer. In the final phase of evaluation each of us should show the truncated program (from previous phase, whatever state it may be) and explain/answer some difficult questions related to data structure, asked by the professor. At any point of time the professor gets doubt (of copying assignment) whole assignment score will be nullified.
At the age of 18, it was too much of a pressure to handle. Completing program on time, copying to specified directory before Sunday 5 PM, Missing a meal/dinner, Skipping sleep, trying to fill-up missing lines within a hour and answering questions was a too long a process. In order to make it effective, the professor distributed marks across all these phases, thereby one cannot escape so easily without working hard. At the end of evaluation, I used to get a huge sigh of relief and sleep like a baby for hours together. Each one of us used to curse the professor for torturing us so much!
Today when I look back, I get a totally different perspective. If not for that strong evaluation mechanism, each one of us could have become lazy and never learned the art of programming. We could have mugged up some programs and passed exams. In my another post about going technical hands-on, I mentioned about debugging some of my old Kernel programs within a week, even though I was out of touch from programming for years together now. Definitely, the DNA which got injected in form of data structure programming is still there in my blood, which is helping me to pick-up programming with ease.
I also tried out a Shell script (of deleting 20% random lines from a C program), will upload it soon.