Computer science is based on the fundamentals of mathematics, computer science students develop critical reasoning and complex problem solving abilities that will help them in all walks of life. Some of the sub disciplines of computer science are theoretical computer science, theory of computation, information and coding theory, algorithms and data structures, programming language theory, formal methods, applied computer science etc. and students can specialize in any one (or more) of these areas during their undergraduate or graduate studies. Presently, job opportunities are great for computer science students all over the world. Even during difficult times such as recession, a highly skilled and bright computer science professional will always be in demand.