COL100 Frequently Asked Questions

  • What can I expect to learn from these courses?

    This course aims to introduce the methods of algorithmic thinking, analysis of correctness, and design of building blocks of efficient algorithmic procedures. They will also introduce the issues involved in translation of algorithmic ideas into working programs. These courses are largely programming language independent, but will introduce major programming paradigms like the functional, imperative and object-oriented.

  • Why do I have to learn the principle of mathematical induction and invariants? What good are these? I can program effectively even without these.

    Correctness is perhaps the most cruicial aspect of program design. Through these tools you will learn how to reason about the correctness of your algorithmic designs and programs. In the words of Prof Banerjee “It is the same reason why budding young cricketers are painstakingly taught batting techniques in cricket academies before they are encouraged to bat like Virendra Sehwag. While there may be geniuses who can hit the ball consistently out of the park with total disregard for foot positions and correctness of weight transfer while hitting the ball, most aspiring cricketers would do well to learn the basics of technique.”

  • How important is to master the syntax of the programming languages used in the course?

    While syntax is important to correctly compile your programs, it will be sufficient for you to know just enought syntax so that the programs used by the instructors in the class can be understood. Note the course is on principles and not on the detailed features of any programming language.

  • I am finding the course hard. What can I do?

    Talk to your instructor and the TAs and let them know exactly what is bothering you. Be open to their suggestions.

Subodh Sharma
Subodh Sharma
Associate Professor and Pankaj Gupta Chair Professor in Privacy and Decentralisation