CME Course Map: for students entering in 2012
The name "computer engineering" was coined more than 2 decades ago and now the discipline includes embedded processors, digital signal processing and logic gate arrays in addition to computing systems. With this wider area of expertise, the computer engineer might be more aptly called a "digital systems" engineer.
DIGITAL SIGNAL PROCESSING (DSP) is a core skill for computer engineers. While general-purpose computers are used for information and data processing, special purpose computers with different structure are used for real-time signal processing. Imagine a computer that can make you sing on key with the music! Karaoke systems manufactured in Victoria by some of our former graduates (http://www.ivl.com/ ) can do just that. Signal processing theory builds on several terms of engineering mathematics. DSP enables the design of real-time electro-mechanical control systems; an outstanding example is the two-wheeled Segway.
In EMBEDDED PROCESSING, the computer engineer knows real-time operating systems that allow a microcontroller to respond at precise times when interfaced with external mechanical or electrical systems. (Think of computer control of the spark plugs in your car). The computer engineer must be able to write code in low-level assembly language or low-level C language and be able to interface with higher-level software such as C++. A modern automobile which has dozens of microcontrollers and even a toaster has a microcontroller. In today’s world, microcontrollers far outnumber "Intel" processors used in PCs. Numerically, the relationship is as insects to mammals.
In COMPUTING SYSTEMS, the computer engineering student learns the detailed electronic structure of the computer (including voltage levels, power consumption, propagation delays, transmission line considerations and bus architecture). This learning also includes the internal details of the processor (including the instruction decoder, arithmetic unit, registers, addressing modes, and caching methods). The computer engineer must understand how to electrically connect with input/output devices (such as static, dynamic and flash memory, read/write magnetic and optical disks with a variety of data formats, computer communication circuits and protocols that include error correcting codes, USB-2 and Firewire ports). The computer engineer must also design software drivers that connect these devices to the operating system.
LOGIC GATE ARRAYS are in very rapid technology advance and these are totally different from sequential processors. There are NO INSTRUCTIONS and NO LINES OF CODE. Operations occur simultaneously in parallel rather than in a sequence and the speed is hundreds of times faster. Field programmable gate arrays (FPGAs) are an exciting new tool for startup companies and medium size companies. FPGAs can be programmed on-site using only a personal computer so small companies can quickly respond to new market opportunities. These are rapidly displacing the application specific integrated circuit (ASIC) - the workhorse of electronic development over the past 30 years.
A modern cellular telephone incorporates several aspects of computer engineering.The core workings use DSP in a gate array to enable channel selection and transmission at 1800 MHz and real-time digital speech compression. The keyboard and display are operated by a microcontoller. While an upscale phone with a web browser (think of Internet Explorer) uses an "Intel" class microprocessor with thousands of lines of operating code.
Computer engineers and computer scientists work together in the creation of exciting new products. While engineers write low-level software connecting to the hardware, computer scientists write complex higher-level software that interfaces with the human user. There is a similarity to writing English text. Major works such as a novel, a poem or a stage play are not the domain of a scientist and, at the same time, English majors do not write scientific papers. Similarly, a computer engineer does not write major pieces of software and a computer scientist does not provide the interface to electrical and mechanical systems.