Computer engineering (CE) is a highly multi-faceted discipline, requiring knowledge of the basic sciences, traditional and discrete math, physics
of electronic devices, and electronics as well as the more commonly thought
of core elements of software design and engineering, programming languages,
compiler construction, operating systems, digital circuit and logic design,
microprocessors, assembly language programming, computer organization and
architecture, digital system (including Central Processing Unit) design,
networks, and performance evaluation. (The latter is not an exhaustive
list, but is what is central to CE and what is focussed on in the URI curriculum.)
A key ingredient to successful digital system design is making appropriate
design tradeoffs amongst the hardware and software components of the system
to achieve a suitably-performing cost-effective design. The exact nature
of the latter varies from problem to problem. Thus, design is a major component
of the URI CE major's experience.
In order to provide a unified thrust for the CE student, tying together
what is traditionally unrelated content from different courses, the ELE
department has instituted the Integrated Computer Engineering Design
(ICED) curriculum (also known as the "Designing Across the Curriculum"
program). In practice, over the course of a student's studies she or he
will design an actual complete, working, computer including both the processor
and the compiler. Thus, the computer will be able to execute high level
language programs. Since networks are becoming endemic to society (viz.
the Internet), different students' computers will be connected together
in a network as part of the final system design.
The design tasks to achieve these aims are distributed amongst the required
core courses as follows (these courses contain other topics, as well):
-
ELE 201/202
- Digital Circuit Design: Familiarization with industry-standard
Computer Aided Design (CAD) tools. Design, simulation, construction and
test of components for the computer, as well as simple control circuits.
-
ELE 305/306
- Introduction to Computer Architecture: Design and simulation
of a simple machine instruction set for the student's computer, using CAD
tools. High-level design is performed.
-
ELE 405
- Digital Computer Design: Design, simulation, construction and
test of the digital hardware realizing the instruction set devised in ELE
305. Gate-level design is performed. Once again, the (same) suite of CAD
tools is used.
-
CSC 402
- Compiler Design: A compiler providing translation from a high-level
programming language to the machine instruction set of the student's computer
is written and tested.
-
ELE 437
- Computer Communications: A simple wireless or wired local area
network is designed, incorporating standard network elements such as layering,
error detection and recovery, and throughput management.
-
ELE 408 - Computer Systems Laboratory: The hardware and software of the
computer are integrated, and the overall system is debugged and evaluated
using benchmark programs. Lastly, the different computers of the entire
class are hooked together in a simple network; communication amongst them
is achieved.
Other optional or potential components:
-
CSC 412 - Operating Systems and Networks: A simple operating system / monitor
is written and tested for the computer.
-
ELE 447
- VLSI Design and Simulation: The computer hardware, or parts thereof,
are realized again, this time by designing a custom Integrated Circuit
(IC). The same CAD tool suite is used once more. The IC is fabricated.
Note in the above that CAD tools are used throughout the design process.
The Electrical and Computer Engineering department has available to it
the complete Mentor Graphics CAD tool suite, and many workstations to run
it.
|