A friend of mine attended IIT Bombay and one particular subject that left him in awe was the Abstractions and Paradigms in Programming from the first year introductory department course from computer science. This particular course opened new horizons on programming for him.
The course began from functional programming, imperative and carried on to object orient and so on. These programmings were carried on in schemes. Now, this functional programming language, which happens to be entirely new to be figured out, holds an entirely different sort of excitement for anyone who has worked on C++ all their lives.
It makes you realize programming doesn't have a particular pattern, instead has such wide horizons that require to be explored. Just imagine it as someone who has removed patches from your eyes and you've witnessed an incredibly new dimension altogether. This course bears the evidence that Computer Science is so much more than mare programming.
This particular professor associated with CS studies is one of the best professors around India. His name is Prof. Amitabha Sanyal. By simply working around him- whether with any lab assignments, brainstorming over further projects, or just by listening to him in his class, you can learn a lot of things.
When my friend started at IIT Bombay, it was pretty much the same for him as it is for any JEE fresher. He had no clue about the experiences IIT was about to drench him in. You probably won't find the first-year course that interesting but you'd get used to it. If you participate in extracurricular activities, you're going to have so much fun.
My friend started taking this course in the 2nd semester at IIT Bombay. This interest finally led him to do his Ph.D. in - Computer Science.