Computer Engineering

The baccalaureate Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering report provides insights into the nature of this field:

Computer engineering is defined as the discipline that 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.

Robust studies in mathematics and science are absolutely critical to student success in the pursuit of computer engineering. Mathematical and scientific concepts and skills must be understood and mastered in a manner that enables the student to draw on these disciplines throughout the computer engineering curriculum. One cannot overstate the role that mathematics and science play in underpinning an engineering student's academic pursuits.

A strong and extensive foundation in mathematics provides the necessary basis for studies in computer engineering. This foundation must include both mathematical techniques and formal mathematical reasoning. Mathematics provides a language for working with ideas relevant to computer engineering, specific tools for analysis and verification, and a theoretical framework for understanding important concepts. For these reasons, mathematics content must be initiated early in the student's academic career, reinforced frequently, and integrated into the student's entire course of study. Curriculum content, pre- and co-requisite structures, and learning activities and laboratory assignments must be designed to reflect and support this framework. Specific mathematical content must include the principles and techniques of discrete structures; furthermore, students must master the established sequence in differential and integral calculus.

Rigorous laboratory science courses provide students with content knowledge as well as experience with the "scientific method," which can be summarized as formulating problem statements and hypothesizing; designing and conducting experiments; observing and collecting data; analyzing and reasoning; and evaluating and concluding. For students pursuing the field of computer engineering the scientific method provides a baseline methodology for much of the discipline; it also provides a process of abstraction that is vital to developing a framework for logical thought. Learning activities and laboratory assignments found in specific computer engineering courses should be designed to incorporate and reinforce this framework. Specific science coursework should include the discipline of physics, which provides the foundation and concepts that underlie the electrical engineering content reflected in the body of knowledge in this report. Additional natural science courses, such as chemistry and biology, can provide important content for distinct specializations within computer engineering; such considerations will vary by institution based on program design and resources.

Engineering courses in the lower division serve two important functions: first, to familiarize students with the engineering disciplines, and second to establish a strong foundation for advanced coursework in their chosen specialization. It is important to engage students' innate interests early in their academic careers to cement their commitment to engineering, to further student retention, and to motivate achievement in their coursework.

Clearly a program in computer engineering requires a solid foundation in computer science, beyond mere introductory experiences. A robust lower division course of study in computer science - as defined in Computing Curricula 2003: Guidelines for Associate- Degree Curricula in Computer Science - serves this requirement well. Furthermore, because the relationships among mathematics, computer science and engineering courses are inherent, topics in these disciplines can be interwoven; these intrinsic relationships should be nurtured as the program of study unfolds.

The engineering laboratory experience is another essential part of the computer engineering curriculum, either as an integral part of a course or as a separate stand-alone course. Such experiences should start very early in the curriculum, when students are often motivated by the "hands-on" nature of engineering. Computer engineering students should be provided many opportunities to observe, explore and manipulate characteristics and behaviors of actual devices, systems, and processes. Every effort should be made by instructors to create excitement, interest and sustained enthusiasm in computer engineering students.

Many associate-degree granting institutions will be familiar with strong lab-based learning activities, drawing on years of experience with programs such as electronics technology and industry-provided networking curricula. Numerous colleges have long recognized that experiences such as survey courses in engineering often engage students in stimulating activities that peak their interests and set the stage for career choices in such fields. Likewise, many institutions currently conduct engineering-related courses or professional development activities in service to their career-track students or their local industry base. These colleges will find that they can leverage existing facilities, resources and faculty expertise in implementing a transfer program in computer engineering. However, lower division engineering courses should be taught by faculty with engineering credentials to ensure that the courses have credibility, reflect the real world practices of engineering, and properly prepare students for the upper division engineering curriculum.

In addition to the scientific and technical content noted above, effective abilities in oral and written communication are of critical importance to computer engineering professionals; these skills must be established, nurtured and incorporated throughout a computer engineering curriculum. Students must master reading, writing, speaking, and listening abilities, and then consistently demonstrate those abilities in a variety of settings: formal and informal, large group and one-on-one, technical and non-technical, point and counter-point. Many of the skills found in a technical writing course benefit a computer engineering curriculum (these include learning to write clearly and concisely; researching a topic; composing instructions, proposals, and reports; shaping a message for a particular audience; and creating visuals). Overall, student learning activities should span the curriculum and should include producing technical writing and report writing, engaging in oral presentations and listening activities, extracting information from technical documents, working in a group dynamic, and utilizing electronic media and modern communication techniques.

Professional, legal and ethical issues are important elements in the overall computer engineering curriculum, and must be integrated throughout the program of study. This context should be established at the onset and these matters should appear routinely in discussions and learning activities throughout the curriculum. The ACM Code of Ethics notes that "When designing or implementing systems, computing professionals must attempt to ensure that the products of their efforts will be used in socially responsible ways, will meet social needs, and will avoid harmful effects to health and welfare." The Code goes on to provide an excellent framework for conduct that should be fostered beginning early in students' experiences. In addition, the Model Rules Of Professional Conduct issued by the National Council of Engineering Examiners (NCEE) include the tenets that practitioners "shall be objective and truthful in professional reports, statements or testimony" and shall "hold paramount the safety, health and welfare of the public in the performance of their professional duties." Again, these ethics should be incorporated into instructional activities wherever possible.

Colleges must ensure that degree programs ultimately fulfill all general education and related requirements arising from institutional, state, and regional accreditation guidelines. The curriculum recommendations contained herein are intended to be compatible with those requirements, but recognize that in some instances, institutions may find it necessary to make specific alterations. Articulation agreements often guide curriculum content as well, and are important considerations in the formulation of programs of study, especially for transfer-oriented programs. Institutions are encouraged to work collaboratively to design compatible and consistent programs of study that enable students to transfer from associate-degree programs into baccalaureate-degree programs.

In addition to specific program content, curriculum designers must give consideration to learning activities, instructional techniques and student success. There are specific techniques that can be incorporated that reflect the nature of the work of computer engineers. Activities should be designed so that students learn to work in teams and in the context of projects, gain insights into the real-world setting and associated considerations, see both theory and application, and appreciate the role of foundation material in setting the stage for intermediate topics.

Specific course descriptions, course learning outcomes, program outcomes and program course sequences are not included for the Computer Engineering transfer curriculum. Those interested in seeing such elements are advised to consider reviewing the associate-degree Computer Engineering transfer programs currently offered by the following institutions (2007):

Georgia Piedmont Technical College (GA)

Hillsborough Community College (FL)

Kansas State University (KS)

Miami Dade College (FL)

University of Arkansas at Little Rock (AR)

In addition, readers may want to take note of the associate-degree Computer Engineering accreditation offered by ABET.