Robotics C++ Physics II AP Physics B Electronics Java Astronomy Other Courses Summer Session  

ACM, Computing Curricula 2005: Overview Report, September 30, 2005.

 

The Computing Disciplines

 

“There are many kinds of computing degree programs. There are dozens around the world. The variety of names used for the programs is even broader. The programs represent a number of computing disciplines. In this report, we focus on five that are prominent today: computer engineering, computer science,

information systems, information technology, and software engineering. These five satisfy our criterion for inclusion: each one has, or will soon have, a volume of undergraduate curriculum guidelines that is approved and published by one or more international professional and scientific societies. We expect

that, in the future, additional computing disciplines may satisfy this criterion. When that is the case, they may be included in future editions of this report.”

 

What is Computing?

 

“In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes; processing, structuring, and managing various kinds of information; doing

scientific studies using computers; making computer systems behave intelligently; creating and using communications and entertainment media; finding and gathering information relevant to any particular purpose, and so on. The list is virtually endless, and the possibilities are vast. Computing also has other

meanings that are more specific, based on the context in which the term is used. For example, an information systems specialist will view computing somewhat differently from a software engineer.

 

Regardless of the context, doing computing well can be complicated and difficult. Because society needs people to do computing well, we must think of computing not only as a profession but also as a discipline.”

 

Descriptions of the Disciplines

 

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.

 

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.

 

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.

 

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. This reflects its origins as outlined in Section 2.2.2. 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.