If you choose a computing major, what career options are open to you? We have provided information for each of the majors listed here:
Typically involves software and hardware and the development of systems that involve software, hardware, and communications.
Currently the most popular of the computing disciplines; tends to be relatively broad and with an emphasis on the underlying science aspects.
Essentially, this is computing in an organizational context, typically in businesses.
Focuses on computing infrastructure and needs of individual users; tends to involve a study of systems (perhaps just software systems, but perhaps also systems in support of learning, of information dissemination, etc.).
Focuses on large-scale software systems; employs certain ideas from the world of engineering in building reliable software systems.
Computer engineering (CE) students study the design of digital hardware and software systems including communications systems, computers and devices that contain computers. For them, programming is focused on digital devices and their interfaces with users and other devices. An important area within computing engineering is the development of embedded systems. 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 are all the result of computer engineering.
Computer engineering majors are offered by a fairly large number of universities, almost always within engineering. This major requires significant study of mathematics.
Aaron Staley, Computer Engineering Major
As I was playing Unreal Tournament one day as a fifteen-year-old, I decided that it would be really awesome if the game had more features. I soon learned unrealscript–a java-like language that much of the game is written in–and wrote modifications which customized the game in any way I wished.
To me, computer engineering is about customization. I know of no other field that allows a person to so easily turn a vision in their mind into reality. And so, upon entering college, I opted to do computer engineering–and have stuck with it ever since.
Computer hardware engineers’ research, design, develop, test, and oversee the installation of computer hardware and supervise its manufacture and installation. Hardware refers to computer chips, circuit boards, computer systems, and related equipment such as keyboards, modems, and printers…. The work of computer hardware engineers is very similar to that of electronics engineers, but, unlike electronics engineers, computer hardware engineers work exclusively with computers and computer-related equipment. The rapid advances in computer technology are largely a result of the research, development, and design efforts of computer hardware engineers.
Computer science (CS) spans the range from theory through programming to cutting-edge development of computing solutions. Computer science offers a foundation that permits graduates to adapt to new technologies and new ideas. The work of computer scientists falls into three categories: a) designing and building software; b) developing effective ways to solve computing problems, such as storing information in databases, sending data over networks or providing new approaches to security problems; and c) devising new and better ways of using computers and addressing particular challenges in areas such as robotics, computer vision, or digital forensics (although these specializations are not available in all computer science programs). Most computer science programs require some mathematical background.
Let us consider what is involved in a career path in each area.
- Career Path 1: Designing and implementing software. This refers to the work of software development which has grown to include aspects of web development, interface design, security issues, mobile computing, and so on. This is the career path that the majority of computer science graduates follow. While a bachelor’s degree is generally sufficient for entry into this kind of career, many software professionals return to school to obtain a terminal
master’s degree. (Rarely is a doctorate involved.) Career opportunities occur in a wide variety of settings including large or small software companies, large or small computer services companies, and large organizations of all kinds (industry, government, banking, healthcare, etc.). Degree programs in software engineering also educate students for this career path.
- Career Path 2: Devising new ways to use computers. This refers to innovation in the application of computer technology. A career path in this area can involve advanced graduate work, followed by a position in a research university or industrial research and development laboratory; it can involve entrepreneurial activity such as was evident during the dot-com boom of the 1990s; or it can involve a combination of the two.
- Career Path 3: Developing effective ways to solve computing problems. This refers to the application or development of computer science theory and knowledge of algorithms to ensure the best possible solutions for computationally intensive problems. As a practical matter, a career path in the development of new computer science theory typically requires graduate work to the Ph.D. level, followed by a position in a research university or an industrial research and development laboratory.
- Career Path 4: Planning and managing organizational technology infrastructure. This is the type of work for which the new information technology (IT) programs explicitly aim to educate students.
Career paths 2 and 3 are undeniably in the domain of computer science graduates. Career paths 1 and 4 have spawned the new majors in software engineering and information technology, respectively, and information systems graduates often follow Career path 1, too. Computer scientists continue to fill these positions, but programs in software engineering, information technology, and information systems offer alternative paths to these careers.
Information systems (IS) is concerned with the information that computer systems can provide to aid a company, non-profit or governmental organization in defining and achieving its goals. It is also concerned with the processes that an enterprise can implement and improve using information technology. IS professionals must understand both technical and organizational factors, and must be able to help an organization determine how information and technology-enabled business processes can provide a foundation for superior organizational performance. They serve as a bridge between the technical and management communities within an organization.
What information does the enterprise need? How is that information generated? Is it delivered to the people who need it? Is it presented to them in ways that permit them to use it readily? Is the organization structured to be able to use technology effectively? Are the business processes of the organization well designed? Do they use the opportunities created by information technology fully? Does the organization use the communication and collaboration capabilities of information technologies appropriately? Is the organization capable of adapting quickly enough to changing external circumstances?
These are the important issues that businesses rely on IS people to address.
A majority of IS programs are located in business schools; however, they may have different names such as management information systems, computer information systems, or business information systems. All IS degrees combine business and computing topics, but the emphasis between technical and organizational issues varies among programs. For example, programs differ substantially in the amount of programming required.
Traditionally, many graduates of IS programs have functioned in roles that are similar to the roles for which IT programs explicitly prepare their students. Information systems graduates continue to fill these roles, but the new programs in information technology offer an alternative path to these positions.
Information technology (IT) is a label that has two meanings. In common usage, the term “information technology” is often used to refer to all of computing. As a name of an undergraduate degree program, it refers to the preparation of students to meet the computer technology needs of business, government, healthcare, schools, and other kinds of organizations.
IT professionals 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. They assume responsibility for selecting hardware and software products appropriate for an organization. They integrate those products with organizational needs and infrastructure, and install, customize and maintain those applications, thereby providing a secure and effective
environment that supports the activities of the organization’s computer users. In IT, programming often involves writing short programs that typically connect existing components (scripting).
Planning and managing an organization’s IT infrastructure is a difficult and complex job that requires a solid foundation in applied computing as well as management and people skills. Those in the IT discipline require special skills – in understanding, for example, how networked systems are composed and structured, and what their strengths and weaknesses are. There are important software systems concerns such as reliability, security, usability, and effectiveness and efficiency for their intended purpose; all of these concerns are vital. These topics are difficult and intellectually demanding.
Software engineering (SE) is concerned with 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. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications. It integrates significant mathematics, computer science and practices whose origins are in engineering.
Students can find software engineering in two contexts: computer science programs offering one or more software engineering courses as elements of the CS curriculum, and in separate software engineering programs. Degree programs in computer science and in software engineering tend to have many courses in common; however, as of Spring 2006 there are few SE programs at the bachelor’s level. Software engineering focuses on software development and goes beyond
programming to include such things as eliciting customers’ requirements, and designing and testing software. SE students learn how to assess customer needs and develop usable software that meets those needs.
Both computer science and software engineering curricula typically require a foundation in programming fundamentals and basic computer science theory. They diverge in their focus beyond these core elements. Computer science programs tend to keep the core small and then expect students to choose among more advanced courses (such as systems, networking, database, artificial intelligence, theory, etc.). In contrast, SE programs generally expect students to focus on a range of topics that are essential to the SE agenda (problem modeling and analysis, software design, software verification and validation, software quality, software process, software management, etc.). While both CS and SE programs typically require students to experience team project activity, SE programs tend to involve the students in significantly more of it, as effective team processes are essential to effective SE practices. In addition, a key requirement specified by the SE curriculum guidelines is that SE students should learn how to build software that is genuinely useful and usable by the customer and satisfies all the requirements defined for it.
Most people who now function in the U.S. as serious software engineers have degrees in computer science, not in software engineering. In large part this is because computer degrees have been widely available for more than 30 years and software engineering degrees have not. Positions that require development of large software systems often list “Software Engineer” as the position title. Graduates of computer science, computer engineering, and software engineering programs are good candidates for those positions, with the amount of software engineering study in the programs determining the suitability of that graduate for such a position.
Most IT professionals who have computing degrees come from CS or IS programs. It is far too soon for someone who wants to work as a software engineer or as an information technology practitioner to be afraid that they won’t have a chance if they don’t graduate from a degree program in one of the new disciplines. In general, a CS degree from a respected program is the most flexible of degrees and can open doors into the professional worlds of CS, SE, IT, and sometimes CE. A degree from a respected IS program allows entry to both IS and IT careers.
Media attention to outsourcing, offshoring, and job migration has caused many to be concerned about the future of computing-related careers. It is beyond the scope of this web site to address these issues. The report of the British Computer Society addresses these issues as they impact the U.K. The Globalization Report of the ACM Job Migration Task Force reflects an international perspective, not just a U.S-centric one.
Because computing is such an important and dynamic field, many interdisciplinary majors, some very recent developments, exist at some schools. Here are just a few examples of these opportunities. Some of these programs are offered at a number of U.S. schools as of Spring 2006; some only at a handful of U.S. schools.
- Bioinformatics combines elements from at least biology, biochemistry, and computer science, and prepares students for careers in the biotechnology and pharmaceutical industries, or for graduate school in informatics. Some programs may also include elements from information systems, chemistry, mathematics, and statistics.
- Computational science means science done computationally, and serves as a bridge between computing technology and basic sciences. It blends several fields including computer science, applied mathematics, and one or more application sciences (such as physics, chemistry, biology, engineering, earth sciences, business and others). Some programs also include information systems.
- Computer Science and Mathematics combines computer science with mathematics of course. Some of these programs are found at schools that do not have a full major in computer science; some are found at universities with very large computer science departments.
- Gaming and Animation. Majors for students interested in creating computer games and computer animations are being developed at a number of schools. These majors have various flavors and may combine either or both of computer science and information technology work with either or both of art and (digital) media studies.
- Medical (or health) informatics programs are for students interested in students who want to work in a medical environment. Some students will work as technology experts for hospitals; some in public health; some students may be premed or pre-dental. Coursework may be drawn from any or all of computer science, information systems, or information technology in combination with biology, chemistry, and courses unique to this interdisciplinary field.
Be aware that especially in the newer interdisciplinary areas, different schools use different names for the same subject. For example, one school’s “bioinformatics” may be another school’s “computational biology.”