My first CP paper

I went through the ruins in my table today and found and tore away many useless things - hall tickets, application forms, document copies, etc. They were all taking up precious little space and my mind felt lighter with all of them gone - they brought back memories and I am tired of memorizing!

One thing which caught my attention was the CP question paper of my First Semester in Engineering. CP was a particularly tough paper back then, it was compulsory for all branches of Engineering (one of the very grave follies of the University because of which even Mechanical and Civil Engineering students had to go through it) and the language was C - Turbo C to be precise.

The programs in the first question were about computing compound interest and Ackerman's <(yes, they had spelled it wrong) function - a good testing combo for a compulsory question (Many wished it were easier!). This was the first time I had seen the Ackermann's function and the question had mentioned it was popular with lecturers and students of Computer Science! I finished them with ease and moved on to the next question.
Expected score: 15 out of 20

The programs in the second question were about finding four-digit perfect squares which are concatenations of two-digit perfect squares (e.g. 1681) and a weird convergence-to-1 algorithm.
The algorithm goes like this
  • If the number is odd, multiply by 3 and add 1.
  • If the number is even, divide by 2.
  • Repeat until number is 1.
Both were pieces of cake which I ate in a jiffy and went to the next question.
Expected score: 16 out of 20

The programs in the third question were about neat tabular display of marks of 50 students and computing mean, variance and standard deviation (The formulas for each of them were given!). Again, good for me, but surprisingly, it was taking longer than expected because it was the first time I was writing full-fledged programs. My answer-sheet was getting dirtier with scribblings, cancellations, so I resorted to rough work.
Expected score: 14 out of 20

The programs in the fourth question were tricky - a program to compute and display tip speeds for a set of shank speeds against an input value of diameter (Whoa!) and a program to find minimax values in a 2-D array. It took a while for me to comprehend the first question though it turned out to be a simple program, but the second program caught me - I was not particularly good at functions at the time and this program had to do exactly that. So, I took an arduous, far less intuitive way out and the program turned out to be so large, I was assured it would not fetch me any marks!
Expected score: 10 out of 20

The programs in the fifth question were about structures - a point structure program and an employee structure program. The employee structure program was long as it required searching and sorting. Good, but time-consuming.
Expected score: 13 out of 20

So, I expected 68 out of a good first-time CP paper. I could be more intuitive with the programs, but for lack of time. Many others had struggled, because they expected "standard" programs and not out-of-the-box ones. The results came out later and many failed (CP is tough for many, even in IT and CS streams!), and I scored 45 - dismal and pathetic compared to my expectations. I applied for revaluation, but nothing came through it. I never got discouraged though - I had found programming interesting and fun, and I felt I had chosen the perfectly right career path. I have the copy of my answer-sheet with me till now, which I read through sometimes to brush up on programming basics!


.NET Framework - an addiction

I seriously do not know Java. No matter how much I try, I have never managed to code up a page in Java, let alone an entire application. On the other hand, my first application in .NET was so quick and easily done that I felt I am a .NET pro since ages!
The first languages I learned were HTML and ASP-VBScript, and I never managed to come out of the Web markup mode for quite some time.

I have Eclipse and JCreator installed at home - the Add or Remove Programs list terms them as 'rarely' used. The first programming language I learnt was C and believe me, C is beautiful. All the includes, conditions, loops, functions, structs, arrays, pointers got me hooked on to C big time and I thought C is the best language in the world. Then came C++, and OOP was revealed to me. For some time, I still preferred C, but eventually, for want of better programming experience, I embraced C++.

Java was introduced to me after a considerable period of time, and frankly, I never got round to it. Java was never meant for me and it always took me quite some time to code up a line. I always felt there must be something like Java, yet different from it. This is certainly not it.

And then came the big one - C#. It was just C all grown up, and I forgot all about Java. I must thank Visual Studio 2008 here for introducing me to all the beauties of C#, and believe me, Visual Studio 2008 is a great IDE. I could have used it to learn VB (mind you, VB 2008 is not IN ANY WAY like VB 6 of old), but I preferred C# due to my firm grounding in C and C++. The environment allowed me to learn C# well and fast, and applications were developed in no time. In fact, my final year project was a dazzling WPF application, which was supposed to be developed over a year, but being the quintessential engineering student, I started in the last 2 weeks and finished it just before the deadline. After all, the .NET Framework is just meant for RAD (Rapid Application Development).

Microsoft managed to wean away many Java developers like me towards the .NET Framework, not just because it gained significant mileage over a short period of time, but because it has some sound principles running behind it, original and otherwise. Platform Independence through Intermediate Language, Garbage Collection, Language Interoperability are just some of the principles guiding the .NET Framework and they go a long way in keeping developers loyal to .NET. However, the .NET Framework is so popular maybe only because of the Visual Studio, an excellent IDE which has evolved from its 2005 version to its 2008 version as the .NET Framework has evolved from its 2.0 version to 3.5. With new technologies like WPF, WCF, LINQ and WF (of which I have 'mastered' WPF as yet) in its latest 3.5 version, .NET is indeed attractive.
(.NET 4.0 and correspondingly, Visual Studio 2010 to be released later this year)

Java is still preferred by the 'pure' programmers - people who require complete control over each and every aspect of their application and leave nothing at the mercy of their IDE. That is precisely the reason why Java does not assist much in laying out a good UI for your application - Java programmers still grapple with the SetBounds function for different UI elements in their application. .NET, on the other hand, just says, Do not stress yourself out, lemme help you! .NET is as powerful as Java, but easier to learn and more addictive than Java.