Overview of
Computing Disciplines/Degree Programs
[NOTE: The following is based on (or taken
directly from) the report,
Computing
Curricula 2004 – June 1, 2004 Strawman Draft, which was produced as a cooperative
project of the Association for Computing Machinery (ACM), the Association
for Information Systems (AIS), and the Computer Society of the IEEE
(IEEE-CS)].
“Computing” – which can be defined in a general
way to mean any activity of a technical nature involving computers – is a
wide-ranging field of study and, as such, presents a wide range of career
choices to students. To prepare for entry into the computing profession, a
student typically earns a four-year Bachelor’s degree in a particular
computing discipline. On an undergraduate level, degree programs are
offered primarily in five disciplines. Those five academic
disciplines – and their corresponding primary focus area(s) – are as
follows:
-
Computer Engineering (CE):
Focuses on the design and construction of computers and computer-based
systems/devices (i.e., hardware and related software).
-
Computer Science (CS):
Views computing from a broad, scientific basis, focusing on: 1) developing
effective ways to solve computing problems, 2) devising new ways to use
computers, and 3) designing and implementing software (“programming”).
-
Information Systems (IS):
Focuses on the “information” aspects of “information technology.”*
-
Information Technology
(IT): Focuses on the
“technology” aspects of “information technology.”*
-
Software Engineering (SE):
Focuses on developing and maintaining software systems (particularly
large, complex systems) that behave reliably and efficiently, and are
affordable to develop and maintain.
* Information Technology (IT) focuses on the management and processing
of information within businesses and other organizations.
Further
discussion of each cited discipline is provided further below under “Discipline
Descriptions.”
As Computing is a relatively new field of study,
one that has (and continues to) grow and expand rapidly, there is
significant overlap between academic degree programs offered, complicating
student choices as to which degree program they should chose. To that
extend, the following observations are offered to aid students:
-
Based on the number of academic degree
programs currently in existence, the three main computing disciplines are:
Computer Science (with an estimated 4000 programs existing worldwide),
Information Systems (with an estimated 2000 programs existing worldwide),
and Computer Engineering (with an estimated 800 programs existing
worldwide). The other two computing disciplines – Information Technology
and Software Engineering – are newly emerging as separate degree programs
from the other existing disciplines (specifically, Information Technology
is emerging from both Information Systems and Computer Science programs,
while Software Engineering is emerging from Computer Science programs).
Both these new disciplines are currently offered as degree programs at
only about 200 colleges worldwide. Thus, students interested in either IT
or SE can (and should) also look to IS or CS programs as well to
potentially meet their needs.
-
If a student is specifically interested in
hardware and related software, then CE is the logical program choice. If a
student is looking to gain expertise at the interface between the
information needs of business and computing, then IS is the clear choice.
Finally, if a student is interested primarily in computer programming
(software development), CS is the prime choice.
-
In general, a CS degree from a respected
program is the most flexible of degrees, potentially opening doors into
the professional worlds of all the other computing disciplines.
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 between them. Its curriculum focuses on the theories,
principles, and practices of relevant areas of traditional electrical
engineering and mathematics, and applies them to the problems of designing
computers and the many kinds of computer-based devices.
Computer engineering
students study the design of digital hardware systems, including computers,
communications systems, and devices that contain computers. They also study
software development with a focus on the software used within and between
digital devices (not the software programs directly used by computer users).
The emphasis of the curriculum is on hardware more than software, and it has
a very strong engineering flavor.
Currently, a dominant
area within computing engineering is embedded systems, the development of
devices that have software components embedded in hardware. For example,
devices such as cell phones, digital recorders, alarm systems, x-ray
machines, and laser surgical tools all require integration of hardware and
embedded software, and they are all the result of computer engineering.
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 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 lets them develop new
problem-solving approaches that provide better performance.
-
They devise new ways to use computers.
Progress in the CS areas of networking, database, and
human-computer-interface came together as the world-wide-web, which
changed the world. Now, researchers are working to make robots be
practical aides and even demonstrate intelligence, databases create new
knowledge and, in general, use computers to do new things.
-
They design and implement software.
Computer scientists take on challenging programming jobs. They also
supervise other programmers, keeping them aware of new approaches.
Computer science spans the range from theory to programming. Other
disciplines can produce graduates better prepared for specific jobs, while
computer science offers a comprehensive foundation that permits graduates to
adapt to new technologies and new ideas.
Information systems specialists focus on integrating information technology
solutions and business processes to meet the information needs of businesses
and other organizations and enable organizations to achieve their objectives
in an effective and efficient way. This discipline's perspective on
"Information Technology" emphasizes information, and sees technology as an
instrument to enable the generation, processing and distribution of needed
information. Professionals in this discipline are primarily concerned with
the information that computer systems can provide to aid the organization in
defining and achieving its goals and the processes that organizations can
implement using information technology. Information systems professionals
often work in organizations that are large and complex, and with information
systems that are correspondingly large and complex. They understand both
technical and organizational factors, and must be able to help the
organization determine how information and technology-enabled business
processes can provide the organization with a competitive advantage.
The discipline now called information systems began more than forty years
ago to address the data processing needs of business in the areas of
accounting, payroll, and inventory .As the role of computing has expanded
throughout the organization, so has the scope of information systems. Today,
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.
Most departments offering programs in Information Systems (IS) are located
in business schools, and most IS degrees are combined computing and business
degrees. A wide variety of IS programs exists under various labels which
often reflect the nature of the program. For example, programs in Computer
Information Systems (CIS) usually have the strongest technology focus,
whereas programs in Management Information Systems (MIS) sometimes emphasize
organizational and behavioral aspects of the IS discipline. The names of the
degree programs are not consistent. Therefore, it is important to evaluate
the details of the curriculum that a specific program follows to understand
how its purpose.
Information technology is a label that has two meanings. In the broadest
sense, we often use "information technology" interchangeably with "computer
technology". In a more focused sense, it refers to academic degree programs
that prepare students to meet the technology needs of business, government,
healthcare, schools, and other kinds of organizations.
In
the previous section, we said that the field of Information Systems focuses
on the "information" aspects of "information technology". The field of
Information Technology is the complement of that perspective. IT's emphasis
is on the technology itself more than on the information it conveys. IT is a
new and rapidly growing discipline, which started as a grass roots 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 the appropriate systems in place. Those systems must work
properly and be secure.
Professionals must upgrade, maintain, and replace them as appropriate. The
people who work throughout an organization require support from IT staff
that thoroughly understands computer systems 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 failed to produce 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 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 products; and the planning and management of the
technology life-cycle by which an organization's technology is maintained,
upgraded, and replaced.
Software engineering is the discipline of developing and maintaining
software systems that behave reliably and efficiently, and are affordable to
develop and maintain. This reflects its origins. However, more recently it
has evolved in response to the increased importance of software in
safety-critical applications and to the growing impact of large and
expensive software systems in a wide range of situations.
Traditionally, computer scientists produced software, and electrical
engineers produced the hardware on which the software runs. As the size,
complexity, and critical importance of software grew, so did the need to
ensure that software performs as intended. By the early 1970s, it was
apparent that proper software development practices require more than just
the underlying principles of computer science; they also need the rigor that
the engineering disciplines bring to the reliability and trustworthiness of
the artifacts they engineer.
Software engineering is different in character from other engineering
disciplines, due to both the intangible nature of software and to the
discontinuous nature of software operation. It seeks to integrate the
science of computer science with the engineering principles developed for
tangible, physical phenomena. 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. In
addition, most programs offer a multi-course concentration in software
engineering within the computer science discipline.
-
A number of institutions offer a software
engineering degree program.
Degree programs in computer science and in software engineering generally
have many courses in common. Software engineering students generally study
more applied mathematics and less theory than computer science students do.
They tend to take a more rigorous and pragmatic view of software reliability
and maintenance. While computer science students might study areas such as
artificial intelligence or computer graphics, software engineering students
focus more on techniques for developing and maintaining software that is
correct from its inception to avoid costly and potentially dangerous
situations later. While CS students are likely to have heard of the
importance of such techniques, the engineering knowledge and experience
provided in SE programs goes beyond what CS programs can provide. Such is
the importance of this 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 from some
significant application domain. Thus knowing how to provide genuinely useful
and usable software is of paramount importance.
In
the workplace, "software engineer" is a job label. There is no standard
definition for this term when used in a job description. The role of a
"software engineer" 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 public must be
mindful not confuse the discipline of software engineering with the
ambiguous use of the term 'software engineer" as used in employment
advertisements. The two terms are quite often very different meanings.
|