Computer Engineering Option
The Department of Electrical and Computer Engineering offers a four-year program leading to a Bachelor of Science in Engineering degree with specialization in computer engineering. The purpose of the program is to produce a broadly educated individual, who qualifies as a professional in the analysis, design and application of computer systems. A broad background in engineering is developed through the engineering core curriculum and further courses from electrical and computer engineering. The program’s focus on computer engineering is developed through a blend of courses in computer engineering and computer science. The graduate computer engineer will be professionally qualified in a number of technical specialties that include computer architecture, interface design, communications and networking, and software engineering. In professional life, the computer engineer considers carefully the role of the engineer in dealing with a broad spectrum of commercial, legal, and ethical issues.
Program Educational Objectives
The program educational objectives of the computer engineering program are to graduate students who will:
Objective 1: Embark upon successful professional practice in Computer engineering and graduate study.
Objective 2: Engage in projects requiring teamwork and the design of Computer systems with hardware and software components.
Objective 3: Utilize their broad educational experience, ethics, and professionalism to make a positive impact on their local and professional communities.
The computer engineering faculty is committed to sustaining a vigorous academic environment that values quality and diversity in the educational experience. Program strengths include a major engineering design experience; integration of hardware/software and computer systems issues, especially in the context of real-time, embedded, and networked systems; use of contemporary engineering design and modeling tools throughout the curriculum; and advanced engineering design options in hardware, software and networking. The curriculum provides a thorough basis in mathematics, probability and statistics, physical sciences, engineering sciences, laboratory experience, and design experience. This background enables students to apply computer engineering principles to a variety of contemporary problems. An engineering approach is emphasized throughout computer related coursework.
Engineering Core for Computer Engineering
- CPE 112 - Introduction to Computer Programming - 3
- EE 213 - Electrical Circuit Analysis I - 3
- EE 202 - Introduction to Digital Logic Design - 3
- EE 310 - Solid State Fundamentals - 3
Computer Engineering Option (excluding Engineering Core):
- EE 100 - Fundamentals of Computer, Electrical, and Optical Engineering - 3
- EE 203 - Digital Logic Design Laboratory - 1
- CPE 212 - Fundamentals of Software Engineering - 3
- CPE 221 - Computer Organization - 3
- CPE 323 - Introduction to Embedded Computer Systems - 3
- EE 315 - Intro. to Electronic Analysis and Design - 3
- EE 316 - Electronic Devices and Design Laboratory - 1
- CPE 322 - Digital Hardware Design Fundamentals - 3
- CPE 324 - Digital Hardware Design Laboratory - 1
- CPE 325 - Intro. to Embedded Computer Systems Lab - 1
- CPE 353 - Software Design and Engineering - 3
- CPE 381 - Fundamentals of Signals and Systems for Computer Engineering 3
- EE 384 - Digital Signal Processing Laboratory - 1
- CPE 431 - Introduction to Computer Architecture - 3
- CPE 434/435 - Operating Systems and Laboratory - 4
- CPE 438 - Real Time & Embedded Systems - 3
- CPE 448 - Introduction to Computer Networks - 3
- CPE 453 - Senior Software Studio - 3
- EE 385 - Random Signals and Noise (or ISE 390) - 3
- CPE 495 - Computer Engineering Design I - 3
- CPE 496 - Computer Engineering Design II - 3
- CS 214 - Discrete Structures - 3
- CS 317 - Design & Analysis of Algorithms - 3
- CPE Electives (300-level or above approved by a computer engineering advisor) - 6
Undergraduate Computer Engineering Courses (CPE)
112 Introduction to Computer Programming in Engineering (3 hrs)
Solution of engineering problems using a digital computer. Hardware structure of the stored-program computer; programming in a high level language such as C or C++, engineering approximation of dynamic systems; top-down design and algorithms. Practice in solving engineering problems. Prerequisite: MA 113 or MA 115 or higher. Corequisite: CPE 112L.
112L Laboratory Component of Introduction to Computer Programming (0 hrs)
Corequisite: CPE 112.
212 Fundamentals of Software Engineering (3 hrs)
Introduction to structured programming using C++. Search and sort algorithms. Introduction to data structures. Applications to engineering related problems. Prerequisite: CPE 112.
221 Computer Organization (3 hrs)
Functional organization of stored-program digital computers including number representation, assembly language programming, computer hardware, micro-operations, and control logic; microprocessor architecture. Prerequisite: EE 202.
322 Digital Hardware Design Fundamentals (3 hrs)
Advanced concepts in Boolean algebra, use of hardware description languages as a practical means to implement hybrid sequential and combinational designs, digital logic simulation, rapid prototyping techniques, and design for testability concepts. Focuses on the actual design and implementation of sizeable digital design problems using representative Computer Aided Design (CAD) tools. Prerequisite: CPE 221. (Same as EE 322.) Corequisite: CPE 324.
324 Digital Hardware Design Laboratory (1 hrs)
Corequisite: CPE 322.
323 Introduction to Embedded Computer Systems (3 hrs)
The course examines both hardware and software aspects in building embedded computer systems, as well as methods to evaluate design tradeoffs between different technology choices. The students develop an appreciation of technology capabilities and limitations and appreciation of all system components necessary to be able to design and implement a basic embedded computer system and interface it to the outside world. Experiments performed in the Microcomputer Laboratory provide considerable experience, allowing students to develop programs in assembly language and C and program embedded systems to perform required functions. Prerequisites: CPE 221. Corequisite: CPE 325.
325 Microcomputer Laboratory (0 hrs)
Corequisite: CPE 323.
353 Software Design and Engineering (3 hrs)
Basic concepts of software engineering. Software development activities including specification, design, implementation, testing, and documentation. Software project management concepts. Includes a multi-student software project. Prerequisites: CS 317, CPE 212.
381 Fundamentals of Signals and Systems for Computer Engineers (3 hrs)
Introduction to the fundamental concepts in continuous and discrete signals and systems, and methods of signal and system analysis. Topics covered: Fourier series, Fourier and Laplace transforms, system representation by transfer functions and impulse response functions, convolution integrals, discrete time signals and system, sampling techniques, Z and discrete Fourier transforms. Prerequisite: EE 213 and MA 238. No credit for EE or OPE students.
412 Introduction to Parallel Programming (3 hrs)
Introduction to processing in parallel and distributed computing environments. General concepts of parallel machine models, processes, mutual exclusion, process synchronization, message passing, and programming languages for parallel computing and scheduling. Design and analysis of parallel algorithms. Parallel programming environments: Pthreads for shared memory multiprocessor systems and PVM/MPI for distributed networked computers. Prerequisites: CPE 212 and CS 317. CPE 434 Recommended.
423 Hardware/Software Co-Design (3 hrs)
Study and design of Systems On a Chip (SOC). Emphasis on Field Programmable realizations of SOC systems. Prerequisite: CPE 322 or 426, or permission of instructor.
426 VLSI Design Using Hardware Description Languages, 426 Modeling, and Synthesis (3 hrs)
Modern VLSI design techniques and tools, such as silicon compilers, (V)HDL modeling languages, placement and routing tools, synthesis tools, and simulators. Students will design, simulate, and layout using both programmable logic families and ASIC libraries. Prerequisites: EE 202 and EE 315.
427 VLSI Design I (3 hrs)
Introduction to VLSI design using CAD tools, CMOS logic, switch level modeling, circuit characterization, logic design in CMOS, systems design methods, test subsystem design, design examples, student design project. Design project to be fabricated and tested in EE/CPE 428. Prerequisites: EE 202 and 315. (Same as EE 427.) Corequisite: CPE 427L.
427L Laboratory Component of VLSI Design I (0 hrs)
Corequisite: CPE 427.
428 VLSI Design II (3 hrs)
Advanced experience with CAD tools for VLSI design, IC testing. Design Project from EE/CPE 427 to be fabricated and tested. Implementation and verification of test programs, IC testing and troubleshooting, legal, economic, and ethical design issue. Oral presentations and written reports are required. Prerequisite: CPE/EE 427. (Same as EE 428) Corequisite: CPE 428L.
428L Laboratory Component of VLSI Design II (0 hrs)
Corequisite: CPE 428.
431 Introduction to Computer Architecture (3 hrs)
Study of existing computer structures. Computer organization with emphasis on busing systems, storage systems, and instruction sets. Performance models and measures, pipelining, cache and virtual memory, introduction to parallel processing. Prerequisite: CPE 322 and CPE 323.
434 Operating Systems (3 hrs)
Study of the fundamentals of operating systems. Emphasis on processes, file management, inter-process communication, input-output, virtual memory, networking and security. Prerequisites: CPE/EE 321, CPE 353. Corequisite: CPE 435.
435 Operating Systems Laboratory (1 hr)
Laboratory component of Operating Systems course. Experiments include implementation of device drivers, process and thread management, virtual memory management, dynamic memory management, file-systems. Corequisite: CPE 434.
436 Internals of a Modern Operating System (3 hrs)
In-depth study of the design of modern operating systems such as Unix, NT and Linux. Emphasis on the internals and implementation details of interrupt processing, real-time clocks, device independent I/O, process management, memory management, file management. Prerequisites: CPE 434
438 Real Time and Embedded Systems (3 hrs)
Study of design methodologies for reliable real time systems. Prerequisites: CPE 434.
448 Introduction to Computer Networks (3 hrs)
Introduction to the concepts and architecture of computer networks. Review of communication protocols using the Internet and the TCP/IP model as major examples. High-speed networking, congestion control, data compression, security and distributed processing. Prerequisites: CPE 112 w/C and CPE 221.
449 Introduction to Information Assurance Engineering (3 hrs)
Introduction to cryptography and computer security through hardware and physical security to a knowledge of audit methods, security management, and public law. The course will introduce security engineering skills such as business process analysis, software security, IAE evaluation, and IAE testing. Prerequisite: CPE 448. Corequisite: CPE 449L
449L Laboratory Component of Introduction to Information Assurance Engineering (0 hrs)
Corequisite: CPE 449.
453 Senior Software Studio (3 hrs)
Hands-on experience developing a substantial multi-student software project using a defined software process. Overview of software estimation techniques. Metrics for software project management. Risk management. Application of software testing techniques. Process assessment and improvement. Prerequisites: CPE 353.
461 Translation Systems (3 hrs)
Grammars, parsers, and lexical analyzers; implementation of translators via top-down and bottom up techniques; grammar analysis to identify ambiguities. Practical applications of translators including conversion of file formats and compilation of traditional computer languages. Prerequisites: CPE 212 and CPE 321. Recommended CPE 431.
490 Special Topics in Computer Engineering (1, 2, or 3 hrs)
Topics will vary. The course may be repeated when topics vary. Prerequisite: Consent of Advisor.
495 Computer Engineering Design I (3 hrs)
First course in the senior capstone design sequence. The focus of this class is the application of techniques to the design of electronic systems that have digital hardware and software components. Students will apply the theory acquired from numerous engineering courses to solve real-world design problems. Prerequisites: CPE 353, EE 315, and CPE 323. Must be taken in the same academic year as CPE 496.
496 Computer Engineering Design II (3 hrs)
Second course in the senior capstone design sequence. The focus of this class is the application of techniques to the design of electronic systems that have digital hardware and software components. Students will apply the theory acquired from numerous engineering courses to solve real-world design problems. Prerequisite: CPE 495. Must be taken in the same academic year as CPE 495.
499 Project in Computer Engineering (3 hrs)
Individual design project under the direction of an ECE faculty member. Prerequisites: Senior standing and permission of instructor.
- Hits: 6095