“Computer science is not really about computers -- and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes...and geometry isn't really about using surveying instruments. Now the reason that we think computer science is about computers is pretty much the same reason that the Egyptians thought geometry was about surveying instruments: when some field is just getting started and you don't really understand it very well, it's very easy to confuse the essence of what you're doing with the tools that you use."
- Hal Abelson
Computer Science is the study of theoretical foundations of information and computation and of practical techniques for their implementation and application. And then, there’s Computer Engineering - the application of Computer Science to actually design, create and build new, exciting stuff.
About the Department of CSE, IITB
For things that are indispensable to most of us, computers and the Internet are surprisingly recent. It is often hard to imagine and digest the fact that there was no Internet till the '90s. The field of Computer Science was previously thought to be a sub-discipline of Electrical Engineering and much of the faculty members at CSE are in fact Electrical Engineers. However, Today Computer Science is considered a fundamental Science and is a discipline on its own. The Department of Computer Science and Engineering at IIT Bombay was established very recently in 1982 and is one of the newest departments in IITB. Today, the department of CSE at IIT Bombay is one of the largest CSE departments in the country.
From 2008, the department only offers the B. Tech Programme at the time of admission in the undergraduate level. However, students have the option of converting to a Dual Degree (B. Tech + M. Tech) programme subject to reasonable academic performance.
Website - http://www.cse.iitb.ac.in
What would I learn as a CSE B. Tech. in IITB?
A study in Computer Science is not all about coding or learning multiple programming languages as it is popularly thought. In fact, it is not even all about computers. The most crucial chunk of what you will take away from a B. Tech in CSE, IITB is much different.
The B. Tech. curriculum is designed to introduce an undergraduate student to the entire breadth of the field of Computer Science and Engineering with a huge diversity in the courses. While the mandatory core curriculum rarely goes into the depths of any particular field, the department also offers numerous electives that the students can take up based on the sub-disciplines that interest them. The B. Tech. programme at IIT Bombay is one of the most flexible among all IITs, with a very lean mandatory component - called the core curriculum, leaving you plenty of time to explore the various fields that interest you - CSE or otherwise.
True to its name, a B. Tech. study in CSE, IITB has two major components. - Science and Engineering. But, before that you will be acquainted with the crucial tool that will enable the study of Computer Science and all of Engineering - Programming. This will majorly be in your first year where students of all departments will take up course in Introductory Programming. In addition CSE first years will also have an advanced Programming course, where they will be introduced to a number of programming paradigms.
Science will occupy the major chunk of your courses in your second year. You will be introduced to courses in Data Structures, Algorithms, Discrete Mathematics, Theoretical Machines, Logic, Computability, etc... Once you’ve learnt enough Science, it is now time to learn to how to apply them and create and design stuff a.k.a. engineering. This is what you would be doing in your third year with courses like Operating Systems, Computer Architecture, Networks, and Databases. Artificial Intelligence, etc... The final year is left free to explore those fields that most interest you. This is in the form of electives - in the department and otherwise and also through an optional B. Tech. Project (BTP).
Below are a few sub-disciplines of Computer Science and Engineering that you will be introduced to as part of the B. Tech Curriculum and every field has both Science and Engineering components to it.
Algorithms and complexity:
Ever wondered how Google Maps is able to find the quickest directions to your destination, that too, so fast? Computers of today aren’t really that smart. They can merely perform calculations faster than we can. It is the algorithms that they’re instructed with that make them seem smart. Finding directions on Google Maps, Graph Search on Facebook are all products of highly complex algorithms. Not only that, bank websites today are secure only because of the fact that no one has yet discovered an algorithm to quickly factorize a large number. Who knows, maybe you’re going to give banks a run for their money!
The above examples can give a fairly good idea of the impact of research in this field. Discovery of new algorithms can expand the horizons of possibility and can make life a lot easier in the future. You will have courses in Discrete Mathematics, Data Structures and Design and Analysis of Algorithms as a part of your B. Tech Curriculum.
This is one field that needs no introduction, thanks to the numerous Hollywood movies. Aside from machines take over humans, Artificial Intelligence is all about making machines do things that would require intelligence if done by humans. It is indeed one of the most exciting and actively researched fields in Computer Science. Artificial Intelligence in itself has a number of subfields that involve Machine Learning, Natural Language Processing, Computer Vision, etc... You will have an introductory course in AI as a part of the core B. Tech. Curriculum. A number of more advanced courses in AI are offered and may be taken up either as electives or honours or just for the heck of it.
Compilers and Programming Languages:
It might amaze a novice programmer how a Compiler is effectively able to translate a program to machine language and even point out errors in the code. This field studies the systematic translation of human-level programming languages into machine language, and clever optimizations along the way. Design of new programming languages and modifications of the existing ones are heavily influenced by the study of compilers. An introductory course in Compilers as a part of your core B. Tech Curriculum will set you ready for further study in the field. The GCC Resource Centre at IITB studies and contributes to the GNU Compiler Collections (popularly known as GCC), an open-source and one of most widely used collection of compilers.
Theory of Computation and logic:
This is one of most interesting fields in the whole of the B. Tech Curriculum by popular opinion. Surprising as it may seem, the most powerful computer in the world can actually be written down on paper. You will first be introduced to machines as abstract entities that can be drawn on paper through a general model of computation called an automaton. This theoretical field builds greatly on the simple models to give an in depth understanding of what computation really is. It has generated a great interest among theoreticians and can boast of a rich literature. Just throwing a buzz word - you might have heard of Turing Machines. Even if you haven’t, don’t worry - you will study them all here. This field, much like that of algorithms lends its results to other fields of computer science, one of them being artificial intelligence.
Data Security is all about ensuring that your data is accessed by and transmitted to only those to whom it is intended and none else. What with the NSA apparently spying on everyone, there has never been a time when there were more hot discussions about Data Security than right now and this field is predicted to explode in coming years. Data Security is commonly achieved through Cryptography. It is the modification of data in such a manner that only the intended people are able to understand it. It is an area of active research and increasingly secure and fast encryption methods constantly being developed.
Although you won’t have any courses purely in Cryptography in your core B. Tech curriculum, you will encounter cryptography many of the courses such as Networks, Algorithms, Architecture, etc... It is a sub-discipline in itself and there are courses in Network Security and Cryptography offered to interested students.
Ever wondered how computers, the Internet, etc work in real life? How are the instructions typed on a keyboard are actually understood, translated and executed in the form of electrical impulses?
The study of Computer Systems will help you with that question. You will study operating systems, databases, embedded systems and distributed systems, etc. comprising of the major industrial fields in computer engineering and is the main application part of computer science. It involves developing hardware and software for a wide variety of systems such as computer networks (e.g. the internet), databases (used by every major company/institution for handling huge amounts of data), and operating systems (the basic software on any computer system which provides the interface between the hardware and the user).
Courses in this field cover the following aspects:
B. Tech Project
Previously a mandatory component of the B. Tech curriculum, the B. Tech. project (BTP) is now optional. The BTP is a yearlong project that allows you to have a taste of research at the undergraduate level. You can choose any field in Computer Science that interests you the most and work on a new, unsolved research problem under the guidance of a professor. It is done in the 4th year of undergraduate studies and carries 18 credits spanning over two semesters. The first semester is called BTP stage I and carries 6 credits, the second semester (BTP stage II) is more intense in terms of the flavour of research involved and carries 12 credits.
Honours in Computer Science
A B. Tech. student is said to have “Graduated with Honours in Computer Science and Engineering” when she/he has done a certain number of courses from the honours course list of the Department over and above the normal credit requirement. (24 credits are required from the 2013 batch). These courses are typically done in the second, third and fourth years. The exact details of the programme are clearly specified in the Academic Rulebook of the Institute.
The department has a fairly flexible honours programme allowing the choice of a great number of courses for Honours requirements. Many undergraduate courses are offered as honours courses and every postgraduate course usually is. You will be informed in detail about the exact format of the Honours programme after your first year.