What’s the difference between information technology and computer science?

FAQ: “What’s the difference between Information Technology and Computer Science?”

This is a question that comes up often among lay audiences and surprisingly among computing professionals as well. In this blog, I will attempt to set the record straight.

Computing is a broad field, with five major disciplines recognized in the United States. First the fast answer for those who would like it fast:

Computer Science is the study of computing theory. Computer scientists are often good at answering the question, “what is a computer system capable of doing?” or “can our computer system do this?” Computer scientists show us what can be done by doing it and proving it.

Information Systems is the study of meeting the practical computing needs of a business, with an emphasis on information. Information Systems professionals specialize in getting the maximum business impact out of the implementation of a system.

Information Technology is the study of meeting the computing needs of a business, with an emphasis on technology. Information Technology professionals specialize in answering the question, “what technologies are available and how can we reliably implement and integrate them with our existing systems?”

Software Engineering is the study of building software that meets the needs of the customer on time and within budget. Software engineering is a “spin-off” of computer science, informed by the engineering disciplines.

Computer Engineering is the study of the design of the machine, its components, and peripheral devices. This discipline is a “spin-off” of electrical engineering.

Notice that these definitions do not refer to any particular foundational topics in computing, such as networking, programming, databases, web technologies, operating systems, security, or user interface design. This is because all the disciplines will approach all seven of these topics from their particular vantage point (or sometimes, not at all).

Some Examples

Take networking for example: the computer scientist will specialize in the deep understanding and development of networking protocols, with a mind toward efficiency, scalability, and reliability. The information systems professional will specialize in utilizing these communication protocols to effectively transmit the information to the people or machines that need it when they need it. The information technology professional will specialize in selecting, implementing and maintaining the network technologies and guarding it against compromise. The software engineer will specialize in implementing a network protocol by designing the software, testing it, debugging it and assuring that it performs as close to its theoretical efficiency as possible. The computer engineer will design and build the networking hardware: routers, switches and cabling.

Take programming for example: The computer scientist will specialize in programming for efficiency, elegance, and power, creating strong artificial intelligence agents or very fast algorithms for data mining. The information systems specialist will utilize these powerful programs and algorithms to solve business problems. The information technology specialist will specialize in understanding the capabilities and limitations of different systems and assess them for ease of integration into the existing computing infrastructure of their system. Additionally, the information technology specialist may write software that knits a system of disparate technologies together (middleware) and be charged with maintaining the technology with updates, user access, and troubleshooting problems. A classic example of an information technology skill is integrating a corporate database with a website and a secure interface to make corporate information assets available on the web.

As a final note, computing is a very broad field with each of the five computing disciplines overlapping and informing one another. Computing professionals, regardless of their discipline, must be able to respect, understand and communicate effectively with one another. In many cases, you will find someone with a degree of one flavor crossing into the realm of another. Information technology professionals play an important role in making things work the way they should and properly educated information technology professionals will have a positive effect upon upper management’s decision to hire the right computing professional for the right job. For this reason, it is imperative that information technology professionals understand the skills and opportunities afforded by information systems, computer science, software engineering, and computer engineering professionals.

For those who would like to delve deeper into these definitions, I suggest you turn to the Association of Computing Machinery’s 2005 Computing Curricula Overview Report: http://www.acm.org/education/education/curric_vols/CC2005-March06Final.pdf