Monday, 21 July 2014

Areas of research in Computer Science

This is a list of some of the areas of research in the field of computer science. Computer science is a rapidly changing area of research. It is difficult to predict the future because of this tremendous growth. The amount of digital data being generated is doubling every day. Thus, there are many interesting problems around us and computer science can be used effectively to solve many of those problems.


  1. High Performance Computing - improve system performance through techniques like using GPU's for computing
  2. Database – store, manage and process data
  3. Data Warehousing – maintaining huge database with data integrated from many sources, usually many databases
  4. Data Mining (or KDD) – process huge amount of data and come up with interesting patterns (like cluster analysis, anomaly detection, association rule mining) in the data.
  5. Artificial Intelligence - Artificial Intelligence is a field of computer science which deals with the study of how machines can be imparted with intelligence so that they can think and act on their own with a given data set. It involves knowledge representation, reasoning, planning,  natural language processing, machine learning, computer vision, robotics and strong AI, so that a computer mimics a human being.
  6. Computer Graphics - representation of image and video data
  7. Image Processing - analyze and manipulate image through techniques like compression, noise removal, background removal
  8. Computer Vision - extract information through techniques like pattern detection and recognition
  9. Artificial Neural Networks – reproduce the nervous system
  10. Bioinformatics – store, manage, process biological data
  11. Cryptography – protection of data
  12. Semantic Web – convert entire data in the WWW into a standard format which can be read by machines, because traditionally web is designed to be read by humans and not machines
  13. Multi agent system - a system in which intelligent agents communicate with each other in order to solve a problem which is difficult for a single agent to solve. http://www.cs.iastate.edu/~honavar/Papers/power-ieee04.pdf MAS involve ongoing interaction without ongoing communication.
  14. Theoretical Computer Science – theory of computation (automata theory or formal language theory, complexity theory and computability theory)
  15. Cluster Computing - It is similar to distributed computing, but here the computers are connected in a specific way, for example, a LAN. Whereas distributed computing spans huge geographical areas. There may be huge difference between the hardware configurations of cluster and distributed computing. Cluster is tightly coupled while the other is lightly coupled.
  16. Distributed Computing – software components located on a distributed system, which involves many computers on a common network through which they communicate with each other. Few aspects of DC are CORBA, Socket Programming, RPC, RMI. The users perceive it as a single node. As opposed to a centralized system, a distributed system has multiple points of control/failure. Common characteristics are resource sharing, concurrency, scalability, fault tolerance, transparency.
  17. Grid Computing – sharing of hardware resources, grid is where interaction is with the system as a whole and not with any node(s) in particular.
  18. Cloud Computing – sharing of services, store, manage, process data on remote servers, it involves many services like SaaS(Gmail), PaaS, AaaS, Iaas and etc.
  19. Parallel Computing – divide same problem into small problems which can be solved simultaneously
  20. Crowdsourcing - it is the process of obtaining needed services, ideas, or content by soliciting contributions from a large group of people, and especially from an online community, rather than from traditional employees or suppliers.