Embedded systems and real-time operations dominate the work of most computer engineers and Virginia Tech’s CPE faculty has revised the curriculum to emphasize that focus.
Beginning with the graduating class of 2008, CPE students will no longer be required to take computer science classes, but will study system architecture, operating systems, and data structures in the ECE department with an engineering focus. Computer engineering is a relatively new field and the curriculum revision reflects a natural evolution of focus, according to Nat Davis, who oversaw the curriculum revision.
In the past, CPE students took a mix of computer science, computer engineering, and electrical engineering courses, separating the hardware from the software. The new curriculum provides a stronger integration of hardware and software that is more appropriate to computer engineering.
With the new curriculum, students still will get strong exposure to programming and data structures with Engineering Problem Solving with C++ (ECE 1574) and Introduction to Data Structures and Algorithms (ECE 2574). In addition, all students will be required to take Software Engineering (ECE 3574), which is currently offered as an elective.
A new sophomore-level course is being developed called Computer Organization and Architecture (ECE 2500). The course will provide an understanding of the processor-level components of computer systems, their design and operation, and their impact on operating systems. The current course in Computer Organization (ECE 4504) will be revised to become a senior-level processor design course.
The new curriculum keeps the strong design focus that has been a hallmark of the program. In addition, two of the upper-level design courses are being updated to reflect the new focus: Microprocessor System Design (ECE 3534) and Embedded System Design (ECE 4534). For ECE 3534, teams of students used to check out a suitcase with an integrated microcontroller board, power supply, and protoboard to develop their projects. Beginning this semester, students will buy their own microcontroller boards instead of a textbook. They can take it home and play with different concepts at their leisure. The new board has more memory than the old suitcases, which enables more complicated software projects and less wiring. Students use C in addition to assembly, which more closely reflects how embedded systems are programmed in industry.
Bob Lineberry, an ECE tech support engineer, demonstrates the new microcontroller board that students now purchase for ECE 3534, Microprocessor System Design. The new boards' functions enable students to design more complicated software projects while getting less tangled in wiring issues. The boards connect directly to student laptop PCs. Lineberry managed a team of student programmers, including Troy Berg and Dan Nash, who developed the PC user interface that controls the board.
The senior-level Embedded Systems course will now be required of all CPE students and will satisfy the Capstone Design requirement for EE students wishing to focus on computers. As in the other courses, the hardware has been updated to accommodate embedded systems and real-time processing. This semester, students are using new 4x6 printed circuit boards with an ARM processor and peripherals, such as serial ports, analog to digital converters, lights, and buttons.
The course starts out with a series of homework projects in which the teams build compiler tools for the board, then compile a mini operating system for the board, then generate an application for the board. “All of the programming is done in C at a very high level, instead of assembly,” said Mark Jones, who is revising the course. Once the students had worked with the basics, they embarked on a semester-long project that comprises 50 percent of their grade
The teams are assigned to reflect a mix of experience in skills, according to Jones. “This more closely resembles the industrial environment, where you work with people of different backgrounds who are not necessarily your friends,” Jones said.
The projects relate to an HO-scale model train layout designed by Jones. The layout is composed of switches, a turntable, and several engines and cars, all under remote, digital control. Each team selects its own project, but must adhere to electrical and data standards. The designs must be power aware and each must include a real-time aspect. Teams are to write specifications, determine formal testing objectives, and specify how they are to be evaluated. As in real-world efforts, teams must supply documentation, a formal proposal, and interim reports. Beginning next year, at the end of the semester, teams will present formal poster sessions to judging teams.
The variety of requirements and parameters for the project does not limit the possibilities, according to Jones. “Teams have many options. They can take scenery and figures and make them react in a certain way to specific trains as they pass. They can set a camera in the train yard and create a system to sort trains by color or identity. They can develop a system for a train to react to another train on the track; or a system that generates sound in speakers as it tracks a train. All these projects have a real-time component,” he said.
The projects include a fair amount of interfacing to the real world and responding instantly in reasonable ways. “But these are senior computer engineering students,” he said. “This is a class to pull together all their skills in a complex project with embedded systems operating in real time.”