Computer engineering is concerned with the design of computer systems for their many applications.
A computer system consists of hardware and software components, and the computer engineer must be knowledgeable in the design of both. The Computer Engineering program provides the fundamentals of hardware design through courses in electrical circuits, electronics, digital systems, computer organization, and microcomputer systems. The fundamentals of software design are provided through courses in data structures, algorithm design, operating systems, and software engineering. Students also take courses in the key application areas of computers, namely control systems and communication systems. Students may take several elective courses in Electrical Engineering and Computing Science.
Computer engineers are uniquely equipped in being educated to design computer systems where the hardware and software components are closely coupled, and where both components are critical to the design's success. The background of our graduates is sufficiently broad that they are able to pursue careers in related areas, ranging from software design and systems analysis to electronics design.
Computer engineering draws on material from the two disciplines of electrical and computing science. Because of this, the Computer Engineering program is offered jointly by the Department of Electrical and Computer Engineering and the Department of Computing Science. The program is administered by the Department of Electrical and Computer Engineering.
Software Option in Computer Engineering
This option is concerned with the systematic and comprehensive development of software systems. The rapidly growing complexity of such systems along with their stringent requirements such as to their reliability, security, user-friendliness, maintainability, testability, portability, interoperability and cost effectiveness is a challenge to the software industry. To prepare for this challenging and rewarding reality, the software option provides a balanced curriculum including the theoretical and applied foundations in computing, mathematics, physical science, the engineering sciences and current technology.
Computer engineers in the software field specify, describe, and analyze digital systems bridging the gaps between the digital world and real world. They develop small (such as remote control software) and large (e.g., the Internet) software systems. Starting from user requirements, they use sound engineering practices to construct, test, and maintain software artifacts. Programming is a relatively small phase of the overall project lifecycle.
The Software Option provides students with comprehensive foundations for this rapidly evolving field by dwelling on engineering design principles, the discrete and continuous mathematics, logic and the theory of software. It incorporates the best practices of the software industry. The course material is tightly coupled with practical exercises and experiments, using up-to-date industrial software development tools.
The Software Option is offered jointly by the Department of Electrical and Computer Engineering and the Department of Computing Science. The option is administered by the Department of Electrical and Computer Engineering.
Nanoscale System Design Option in Computer Engineering
This option provides an introduction to the processes involved in the fabrication of nanoscale integrated circuits and to the computer aided design (CAD) tools necessary for the engineering of large scale systems on a chip. By selecting this option, students will learn about fault tolerance in nanoscale systems and gain an understanding of quantum phenomena in systems design.
The option retains most of the core elements of the traditional Computer Engineering Program and contains a number of new offerings in the form of program electives. Changes from the Traditional Computer Engineering Program occur only after second year.