Computing Disiplines

From

Jump to: navigation, search

Contents

What is Computer Science?

"Computer science is no more about computers than astronomy is about telescopes." Quote from the highly regarded computer scientist Edsger Dijkstra. Contemplate Edsger's statement while you read through the descriptions of computing (informatics) disciplines.

Background

Computer Science is a very young discipline of study (compared to many other sciences). In it's early years, computer science struggled for legitimacy in many institutions and was the "umbrella" discipline for just about any topic related to computing. It was, after all, a new discipline (in the 1950's-1970's) without the historical foundations and scientific rigor supporting most academic fields at the time. Partly as a result of the entry of computing technology into the cultural and economic mainstream, and partly due to the maturing scientific study of computation, the battle for legitimacy has largely been won.


As the study of computation has matured and gained legitimacy, it has also broadened in scope. Prior to the 1990's, computing was primarily focused on computer science. Over the years, an increasing number of fields have become part of a much larger, more encompassing discipline of computing. Computing is not just a single discipline but is a family of disciplines. This family of disciplines commonly includes: computer science (CS), information technology (IT), information systems (IS and MIS), software engineering (SE), computer engineering (CE), and a multitude of other sub-disciplines of each of these areas. During the 1990s, important changes in computing and communications technology and the impact of that technology on society led to important changes in this family of disciplines. With the ongoing growth of the various fields of computing, and the necessary specialization of the professionals, engineers, and scientists that are involved, Computer Science is now a much more focused disipline that can be characterized as the scientific study of the nature of computation.

The various Disciplines of Computing

Given this background, the following are brief characterizations of these disciplines; followed with more complete details from the 2005 ACM Computing Curricula report and Wikipedia.


Computer Science (CS): A scientific discipline focused on the study of the nature and characteristics of computation (which at it's core is the study of process and algorithms). Dr. Peter J. Denning has proposed the following as a definition (from ACM/IEEE funded research) "Computer Science is the study of BOTH natural and artificial PROCESSES"

Software Engineering (SE): An engineering discipline focused on the application of professional engineering practices and the application of scientific principles of computation to the design and construction of software solutions to real world problems.

Computer Engineering (CE): An engineering discipline focused on the application of professional engineering practices and the application of scientific principles in physics, electronics, and computation to the design and construction of computing hardware solutions to real world problems.

Information Technology (IT): A professional discipline focused on the application and management of computing systems to solve business/organizational problems (IT has a computing hardware and operating systems orientation to these solutions). Note: ITAA has adopted the following as a definition: "the study of computer-based information systems, particularly software applications and computer hardware."

Information Systems (IS): and Management Information Systems (MIS): Professional disciplines focused on the application and management of computing software systems to solve business/organizational problems (IS and MIS have software systems and information management orientations to these solutions; MIS has a greater emphasis in business knowledge, where IS has a greater emphasis in IT & SE knowledge).

Computer Science

The following is adapted from the Wikipedia definition of Computer Science:


Despite its name, much of computer science does not involve the study of computers themselves. In fact, the renowned computer scientist Edsger Dijkstra is often quoted as saying, "Computer science is no more about computers than astronomy is about telescopes." The design and deployment of computers and computer (hardware) systems is generally considered the province of disciplines other than computer science. For example, the study of computer hardware is usually considered part of computer engineering, while the study of commercial computer systems and their deployment is often called information technology or information systems. Computer science research has also often crossed into other disciplines, such as artificial intelligence, cognitive science, physics, and linguistics.


Computer science is considered by some to have a much closer relationship with mathematics than many scientific disciplines. Early computer science was strongly influenced by the work of mathematicians such as Kurt Godel and Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, and algebra.


The relationship between computer science and software engineering is a contentious issue, which is further muddied by disputes over what the term "software engineering" means, and how computer science is defined. David Parnas, taking a cue from the relationship between other engineering and science disciplines, has claimed that the principal focus of computer science is studying the properties of computation in general, while the principal focus of software engineering is the design of specific computations to achieve practical goals, making the two separate but complementary disciplines.


Descriptions of the Major Computing Disciplines

The following is adapted from the 2005 ACM Computing Curricula Report

Computer Science

Computer science spans a wide range, from its theoretical and algorithmic foundations to cutting-edge developments in robotics, computer vision, intelligent systems, bioinformatics, and other exciting areas. We can think of the work of computer scientists as falling into three categories. They design and implement software. Computer scientists take on challenging programming jobs. They also supervise other programmers, keeping them aware of new approaches. They devise new ways to use computers. Progress in the CS areas of networking, database, and human-computer-interface enabled the development of the World Wide Web. Now CS researchers are working with scientists from other fields to make robots become practical and intelligent aides, to use databases to create new knowledge, and to use computers to help decipher the secrets of our DNA. They develop effective ways to solve computing problems. For example, computer scientists develop the best possible ways to store information in databases, send data over networks, and display complex images. Their theoretical background allows them to determine the best performance possible, and their study of algorithms helps them to develop new approaches that provide better performance.

Computer science spans the range from theory through programming. Curricula that reflect this breadth are sometimes criticized for failing to prepare graduates for specific jobs. While other disciplines may produce graduates with more immediately relevant job-related skills, computer science offers a comprehensive foundation that permits graduates to adapt to new technologies and new ideas.


Software Engineering

Software engineering is the discipline of developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. More recently, it has evolved in response to factors such as the growing impact of large and expensive software systems in a wide range of situations and the increased importance of software in safety-critical applications. Software engineering is different in character from other engineering disciplines due to both the intangible nature of software and the discontinuous nature of software operation. It seeks to integrate the principles of mathematics and computer science with the engineering practices developed for tangible, physical artifacts. Prospective students can expect to see software engineering presented in two contexts. Degree programs in computer science offer one or more software engineering courses as elements of the CS curriculum. Some offer a multi-course concentration in software engineering within CS. A number of institutions offer a software engineering degree program.

Degree programs in computer science and in software engineering have many courses in common. Software engineering students learn more about software reliability and maintenance and focus more on techniques for developing and maintaining software that is correct from its inception. While CS students are likely to have heard of the importance of such techniques, the engineering knowledge and experience provided in SE programs go beyond what CS programs can provide. The importance of this fact is so great that one of the recommendations of the SE report is that, during their program of study, students of SE should participate in the development of software to be used in earnest by others. SE students learn how to assess customer needs and develop usable software that meets those needs. Knowing how to provide genuinely useful and usable software is of paramount importance. In the workplace, the term software engineer is a job label. There is no standard definition for this term when used in a job description. Its meaning varies widely among employers. It can be a title equivalent to computer programmer or a title for someone who manages a large, complex, and/or safety-critical software project. The layman must be mindful not confuse the discipline of software engineering with the ambiguous use of the term software engineer as used in employment advertisements and job titles.

Computer Engineering

Computer engineering is concerned with the design and construction of computers and computer-based systems. It involves the study of hardware, software, communications, and the interaction among them. Its curriculum focuses on the theories, principles, and practices of traditional electrical engineering and mathematics and applies them to the problems of designing computers and computer-based devices. Computer engineering students study the design of digital hardware systems including communications systems, computers, and devices that contain computers. They study software development, focusing on software for digital devices and their interfaces with users and other devices. CE study may emphasize hardware more than software or there may be a balanced emphasis. CE has a strong engineering flavor. Currently, a dominant area within computing engineering is embedded systems, the development of devices that have software and hardware embedded in them. For example, devices such as cell phones, digital audio players, digital video recorders, alarm systems, x-ray machines, and laser surgical tools all require integration of hardware and embedded software and all are the result of computer engineering.


Information Systems

Information systems specialists focus on integrating information technology solutions and business processes to meet the information needs of businesses and other enterprises, enabling them to achieve their objectives in an effective, efficient way. This discipline’s perspective on information technology emphasizes information, and views technology as an instrument for generating, processing, and distributing information. Professionals in the discipline are primarily concerned with the information that computer systems can provide to aid an enterprise in defining and achieving its goals, and the processes that an enterprise can implement or improve using information technology. They must understand both technical and organizational factors, and they must be able to help an organization determine how information and technology-enabled business processes can provide a competitive advantage. The information systems specialist plays a key role in determining the requirements for an organization’s information systems and is active in their specification, design, and implementation. As a result, such professionals require a sound understanding of organizational principles and practices so that they can serve as an effective bridge between the technical and management communities within an organization, enabling them to work in harmony to ensure that the organization has the information and the systems it needs to support its operations. Information systems professionals are also involved in designing technology-based organizational communication and collaboration systems.

A majority of Information Systems (IS) programs are located in business schools. All IS degrees combine business and computing coursework. A variety of IS programs exist under various labels which often reflect the nature of the program. For example, programs in Computer Information Systems usually have the strongest technology focus, while programs in Management Information Systems emphasize the organizational and behavioral aspects of IS. Degree program names are not always consistent.


Information Technology

Information technology is a label that has two meanings. In the broadest sense, the term information technology is often used to refer to all of computing. In academia, it refers to undergraduate degree programs that prepare students to meet the computer technology needs of business, government, healthcare, schools, and other kinds of organizations. In some nations, other names are used for such degree programs. In the previous section, we said that Information Systems focuses on the information aspects of information technology. Information Technology is the complement of that perspective: its emphasis is on the technology itself more than on the information it conveys. IT is a new and rapidly growing field that started as a grassroots response to the practical, everyday needs of business and other organizations. Today, organizations of every kind are dependent on information technology. They need to have appropriate systems in place. These systems must work properly, be secure, and upgraded, maintained, and replaced as appropriate. Employees throughout an organization require support from IT staff who understand computer systems and their software and are committed to solving whatever computer-related problems they might have. Graduates of information technology programs address these needs. Degree programs in information technology arose because degree programs in the other computing disciplines were not producing an adequate supply of graduates capable of handling these very real needs.

IT programs exist to produce graduates who possess the right combination of knowledge and practical, hands-on expertise to take care of both an organization’s information technology infrastructure and the people who use it. IT specialists assume responsibility for selecting hardware and software products appropriate for an organization, integrating those products with organizational needs and infrastructure, and installing, customizing, and maintaining those applications for the organization’s computer users. Examples of these responsibilities include the installation of networks; network administration and security; the design of web pages; the development of multimedia resources; the installation of communication components; the oversight of email systems; and the planning and management of the technology lifecycle by which an organization’s technology is maintained, upgraded, and replaced.

Personal tools
MediaWiki Appliance - Powered by TurnKey Linux