Computer Engineering As A Discipline
Computer Engineering As A Discipline
Chapter 2
T his chapter presents some of the characteristics that distinguish computer engineering from other computing
disciplines. It provides some background of the field and shows how it evolved over time. It also highlights
some of the characteristics expected from its graduates, preparation for entering the curriculum, and student
outcomes and assessment. The chapter also highlights the importance of graduates to have a proper sense of
professionalism to ensure a proper perspective in the practice of computer engineering.
2.1 Background
Computer engineering embodies the science and technology of design, construction, implementation, and
maintenance of software and hardware components of modern computing systems and computer-controlled
equipment. Computer engineering has traditionally been viewed as a combination of both computer science (CS)
and electrical engineering (EE). It has evolved over the past three decades as a separate, although intimately related,
discipline. Computer engineering is solidly grounded in the theories and principles of computing, mathematics,
science, and engineering and it applies these theories and principles to solve technical problems through the design
of computing hardware, software, networks, and processes.
Historically, the field of computer engineering has been widely viewed as “designing computers.” In reality,
the design of computers themselves has been the province of relatively few highly skilled engineers whose goal was
to push forward the limits of computer and microelectronics technology. The successful miniaturization of silicon
devices and their increased reliability as system building blocks has created an environment in which computers
have replaced the more conventional electronic devices. These applications manifest themselves in the proliferation
of mobile telephones, personal digital assistants, location-aware devices, digital cameras, and similar products. It
also reveals itself in the myriad of applications involving embedded systems, namely those computing systems that
appear in applications such as automobiles, large-scale electronic devices, and major appliances.
Increasingly, computer engineers are involved in the design of computer-based systems to address highly
specialized and specific application needs. Computer engineers work in most industries, including the computer,
aerospace, telecommunications, power production, manufacturing, defense, and electronics industries. They design
high-tech devices ranging from tiny microelectronic integrated-circuit chips, to powerful systems that utilize those
chips and efficient telecommunication systems that interconnect those systems. Applications include consumer
electronics (CD and DVD players, televisions, stereos, microwaves, gaming devices) and advanced microprocessors,
peripheral equipment, systems for portable, desktop and client/server computing, and communications devices
(cellular phones, pagers, personal digital assistants). It also includes distributed computing environments (local and
wide area networks, wireless networks, internets, intranets), and embedded computer systems (such as aircraft,
spacecraft, and automobile control systems in which computers are embedded to perform various functions). A
wide array of complex technological systems, such as power generation and distribution systems and modern
processing and manufacturing plants, rely on computer systems developed and designed by computer engineers.
Technological advances and innovation continue to drive computer engineering. There is now a convergence of
several established technologies (such as television, computer, and networking technologies) resulting in widespread
and ready access to information on an enormous scale. This has created many opportunities and challenges for
computer engineers. This convergence of technologies and the associated innovation lie at the heart of economic
development and the future of many organizations. The situation bodes well for a successful career in computer
engineering.
Page 9
Computing Curriculum – Computer Engineering Curriculum Report
Ironman Draft 2004June8
With the ubiquity of computers and computer-based systems in the world today,
computer engineers must be versatile in the knowledge drawn from standard topics in
computer science and electrical engineering as well as the foundations in mathematics
and sciences. Because of the rapid pace of change in the computing field, computer
engineers must be life-long learners to maintain their knowledge and skills within their
chosen discipline.
2.3.1 Distinctions
1. Possess the ability to design computer systems that include both hardware and
software to solve novel engineering problems, subject to trade-offs involving a
set of competing goals and constraints. In this context, “design” refers to a level
of ability beyond “assembling” or “configuring” systems.
In contrast, electrical engineers concern themselves mostly with the physical aspects
of electronics including circuits, signal analysis, and microelectronic devices. Computer
scientists concern themselves primarily with the theoretical and algorithmic aspects of
computing with a focus on the theoretical underpinnings of computing. Software
engineers have a focus on the principles underlying the development and maintenance of
correct (large-scale) software throughout its lifecycle. Information systems specialists
encompass the acquisition, deployment, and management of information resources for
use in organizational processes. Information technology specialists would focus on
meeting the needs of users within an organizational and societal context through the
selection, creation, application, integration, and administration of computing
technologies. Computer engineering technologists concern themselves with making
computer-based products work properly and in the maintenance of those products.
Computing Curricula - Computer Engineering Appendix A - Body of Knowledge
Ironman Draft 2004June8
CE-NWK Computer Networks [21 core hours] CE-OPS Operating Systems [20 core hours]
CE-NWK0 History and overview [1] CE-OPS0 History and overview [1]
CE-NWK1 Communications network architecture [3] CE-OPS1 Design principles [5]
CE-NWK2 Communications network protocols [4] CE-OPS2 Concurrency [6]
CE-NWK3 Local and wide area networks [4] CE-OPS3 Scheduling and dispatch [3]
CE-NWK4 Client-server computing [3] CE-OPS4 Memory management [5]
CE-NWK5 Data security and integrity [4] CE-OPS5 Device management
CE-NWK6 Wireless and mobile computing [2] CE-OPS6 Security and protection
CE-NWK7 Performance evaluation CE-OPS7 File systems
CE-NWK8 Data communications CE-OPS8 System performance evaluation
CE-NWK9 Network management
CE-NWK10 Compression and decompression
CE-PRF Programming Fundamentals [39 core hours] CE-SPR Social and Professional Issues [16 core hours]
CE-PRF0 History and overview [1] CE-SPR0 History and overview [1]
CE-PRF1 Programming Paradigms [5] CE-SPR1 Public policy [2]
CE-PRF2 Programming constructs [7] CE-SPR2 Methods and tools of analysis [2]
CE-PRF3 Algorithms and problem-solving [8] CE-SPR3 Professional and ethical responsibilities [2]
CE-PRF4 Data structures [13] CE-SPR4 Risks and liabilities [2]
CE-PRF5 Recursion [5] CE-SPR5 Intellectual property [2]
CE-PRF6 Object-oriented programming CE-SPR6 Privacy and civil liberties [2]
CE-PRF7 Event-driven and concurrent programming CE-SPR7 Computer crime [1]
CE-PRF8 Using APIs CE-SPR8 Economic issues in computing [2]
CE-SPR9 Philosophical frameworks
CE-SWE Software Engineering [13 core hours] CE-VLS VLSI Design and Fabrication [10 core hours]
CE-SWE0 History and overview [1] CE-VLS0 History and overview [1]
CE-SWE1 Software processes [2] CE-VLS1 Electronic properties of materials [2]
CE-SWE2 Software requirements and specifications [2] CE-VLS2 Function of the basic inverter structure [3]
CE-SWE3 Software design [2] CE-VLS3 Combinational logic structures [1]
CE-SWE4 Software testing and validation [2] CE-VLS4 Sequential logic structures [1]
CE-SWE5 Software evolution [2] CE-VLS5 Semiconductor memories and array structures [2]
CE-SWE6 Software tools and environments [2] CE-VLS6 Chip input/output circuits
CE-SWE7 Language translation CE-VLS7 Processing and layout
CE-SWE8 Software project management CE-VLS8 Circuit characterization and performance
CE-SWE9 Software fault tolerance CE-VLS9 Alternative circuit structures/low power design
CE-VLS10 Semi-custom design technologies
CE-VLS11 ASIC design methodology
Courses % time
Math 14
Physics or Chem. 13
Intro. Computing 5
Computer Hardware & Microcomputers 7
Software Engineering 7
Lab & Design Work 9
Electrical engineering electives 9
Other technical electives 9
Oral/Written Communications 5
Social Science/Humanities 13
Other electives* 9