COMPUTER ENGINEERING DEGREE FOCUS AREAS GUIDE 2006-2007 UNIVERSITY OF MINNESOTA, MINNEAPOLIS 13 August 2006
COMPUTER ENGINEERING DEGREE FOCUS AREAS GUIDE TABLE OF CONTENTS Revised 13 August 2006 SECTION PAGE # 1. INTRODUCTION...2 2. FACULTY AREAS OF INTEREST/ADDRESSES...2 3. Computer Eng Degree Focus Area Description...3 3.1. Computer Architecture...3 3.2. Computer and Embedded System Design...3 3.3. VLSI and Computer-Aided Design (CAD)...3 3.4. Networks and Communication...3 4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS...4 4.1. Computer Architecture (at least 26 credits)...5 4.2. Computer and Embedded System Design (At least 26 credits)...5 4.3. VLSI and Computer Aided Design (CAD) (at least 26 credits)...6 4.4. Networks and Communication (At least 26 credits)...6 1
1. INTRODUCTION The computer revolution has created vast industries and countless jobs that employ professionals trained in computer engineering, computer science, and information technology all closely related disciplines involving the understanding and design of computers and computational processes. Computer profession specialties constitute a continuum. At one pole is computer science, primarily concerned with theory, design, and implementation of software. It is a true engineering discipline, even though the product is an intangible a computer program. At the other pole is computer engineering, primarily concerned with firmware (the microcode that controls processors) and hardware (the processors themselves, as well as entire computers). It is not possible, however, to draw a clear line between the two disciplines; many practitioners function, to at least some extent, as both computer engineers and computer scientists. This Guide includes a list of focus areas and the corresponding electives within each focus area that are offered through the Department of Electrical and Computer Engineering for computer engineering majors. The electives described in this Guide provide a good background relating to a particular specialty and also serve as an introduction to specializations in graduate study. Since these courses are designed to compliment the undergraduate curriculum, they will not give highly specialized knowledge in any particular focus area. Please note that the courses listed in this Guide are not required for graduation. The courses listed under a particular focus area are simply suggested electives that will provide some concentration in a selected focus area. Consult the CompE Curriculum Guide for the CompE degree requirements. Selection of elective courses permits some specialization in the following areas: Computer Architecture Computer and Embedded System Design VLSI and Computer-Aided Design Networks and Communication 2. FACULTY AREAS OF INTEREST/ADDRESSES Computer Architecture Hsu, Wei Cheng 612-625-2013 EE/CS 4192 hsuxx012@umn.edu Kim, Chris 612-625-2346 EE/CS 4161 kimxx624@umn.edu Kinney, Larry 612-625-4359 EE/CS 6121 kinney@umn.edu Kumar, Vipin 612-624-8023 EE/CS 4192 kumar@cs.umn.edu Lilja, David 612-625-5007 EE/CS 6109 lilja@ece.umn.edu Tripathi, Anand 612-625-9515 EE/CS 5205 tripathi@cs.umn.edu Yew, Pen-Chung 612-625-7387 EE/CS 4192 yew@cs.umn.edu Computer and Embedded System Design Kinney, Larry 612-624-9803 EE/CS 4178C kinney@ece.umn.edu Tripathi, Anand 612-625-9515 EE/CS 5205 tripathi@cs.umn.edu Voyles, Richard 612-624-8306 EE/CS 4192 voyle002@umn.edu VLSI and Computer-Aided Design (CAD) Bazargan, Kiaresh 612-625-4588 EE/CS 4159 kia@ece.umn.edu Harjani, Ramesh 612-625-4032 EE/CS 4165 harjani@ece.umn.edu Parhi, Keshab 612-624-4116 EE/CS 6181 parhi@ece.umn.edu Riedel, Marc 612-625-6086 EE/CS 4167 mriedel@umn.edu Roychowdhury, Jaijeet 612-626-7203 EE/CS 4155 jaijeet@ece.umn.edu Sobelman, Gerald 612-625-8041 EE/CS 4157 sobelman@ece.umn.edu Sapatnehar, Sachin 612-625-0025 EE/CS 4153 sachin@ece.umn.edu Shragowitz, Eugene 612-625-3368 EE/CS 4192 shragowit@cs.umn.edu Networks and Communication Cherkassky, Vladimir 612-625-9597 EE/CS 6111 cherkass@ece.umn.edu Du, David 612-625-2560 EE/CS 4225B du@cs.umn.edu Zhang, Zhi-Li 612-625-8568 EE/CS 4192 zhang089@umn.edu Guidance in selecting elective courses can be obtained from a member of the Central ECE Advising Committee or any faculty member in your area of interest. A list of faculty with interests in the various focus areas is given in Section 2. 2
3. COMPUTER ENG DEGREE FOCUS AREA DESCRIPTION The Computer Engineering Degree Curriculum is a combination of the core courses from electrical engineering and computer science most closely related to the design of computers or to the design of systems containing computing devices. This curriculum encompasses nearly all areas of electrical engineering: e.g. 1) the design of workstation, mainframe, and supercomputers; 2) the design of communication control and signal processing systems with their special purpose processors; and 3) the design of instruments, appliances, toys, etc., that use microprocessors or microcontrollers. The four suggested Computer Engineering Focus Areas reflect different levels of design. 3.1. Computer Architecture The pervasiveness and impact of computers are driven by their ever increasing speed and decreasing cost. Major reasons for the decreasing cost are advancements in the fabrication and design of VLSI circuits. Similarly, increasing speed results from improvements in the materials, devices, and fabrication of integrated circuits. But increasing speed also results from innovations in the organization and the functionality of the computer. Computer architects analyze the behavioral of computers with different functionality and organizations, and they develop new approaches to improve the computer s speed. A computer architect would work for a company that designs computers, either general purpose computers or computers intended for particular applications. 3.2. Computer and Embedded System Design Nearly all devices and instruments contain computers, usually in the form of a microcontroller in a so-called embedded system. While these computers are not as powerful as many personal computers and most workstations, they are far more ubiquitous. They are used for sensing and control in automobiles, aircraft, industrial assembly lines, appliances, instruments, etc. An engineer designing an embedded system needs a background in computer hardware, software, and electronics used in sensors and controllers. This background is exactly what is provided with the computer engineering degree. implementations of general purpose computers, i.e. microprocessors or microcontrollers. Yet many more implement special purpose systems used in communication, control, signal processing, and other application areas. A computer engineer who designs a special purpose system needs a background in the application area as well. Computer Aided Design (CAD) tools, sometimes called electronic design automation (EDA), are software programs that aid engineers in the design and analysis of devices, circuits, and systems. In the computer engineering area, CAD tools aid in the design integrated circuits (e.g. VLSI circuits), computers, and software systems. Engineers involved in CAD development need a background in the type of system for which the CAD tools are intended, i.e. devices, circuits or systems, and in the design and implementation of software systems. Students with a VLSI circuits background could work for any company that designs or manufacturers integrated circuits. Larger companies include Medtronic, Intel, Motorola, Texas Instruments and Hewlett Packard. Many of these companies also develop CAD tools to aid in their designs and, hence, employ students with a CAD background. Other companies such as Mentor Graphics, Synopsys, and Cadence develop CAD tools for sale to other companies. 3.4. Networks and Communication The rapid growth of the Internet, distributed and parallel computing, and both wired and wireless communication has made networks and communication a part of many electronic systems. The networks and communication engineer must understand both the hardware and software required to provide information transfer between systems. Such an engineer may be involved in implementing network technologies, implementing a network system, managing a network installation, or interfacing a network via hardware and software to other devices. Such an engineer may work for a company that manufacturers network equipment or for a company that utilizes a network or distributed data processing and communication in its manufacturing and engineering operations. 3.3. VLSI and Computer-Aided Design (CAD) The design of a Very Large Scale Integrated (VLSI) Circuit requires many steps. Some steps include the development and processing of semiconductor materials and the implementation of electronic devices and circuits from these materials. Other steps are the implementation of system components from the circuits, implementation of the system from its components, and the placement and interconnection of the components. Courses within the computer engineering program can be chosen to provide the background needed to perform any of the latter steps. Some VLSI systems are 3
4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS 4.0. Course Suggestions Listed below are suggested courses to take if you are primarily interested in a particular focus area. Note that it is not necessary to follow any one of these to obtain the BCompE degree; the degree requirements are as specified in the CompE Curriculum Guide. The course lists are simply suggestions from faculty of courses relevant to a particular focus area. A given student may not be able to take all the courses in the student s focus area of interest. The student may need to take other courses to satisfy some requirement or the student may not be qualified to take some of the courses. The latter situation may occur if the student does not have the prerequisites for the course or, in the case of 5000 level courses, the requisite gpa to take the course. 5000 level courses are intended primarily for graduate students and, in general, an undergraduate can take a 5000 level course only if their gpa is 3.2 or larger. See the EE Curriculum Guide for the procedure required to register for a 5000 level course. Also, students should consider that, during their career, they are likely to have many different jobs and work in many different areas of CompE. In order to prepare for this diversity of work, it may be best to select courses from several different areas rather than trying to specialize in the undergraduate program. Specialization can be obtained after graduation through graduate work, company courses, etc. Note that the credit requirements listed are for students who entered the University of Minnesota Fall 2006 or later. 4
4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS 4.1. Computer Architecture (at least 28 credits) * OR EE 4981H-4982V - Senior Honors Project I-II (2 credits each) EE 5364 Advanced Computer Architecture (3 credits) EE 5371 - Computer Systems Perf Measurement & Evaluation (3 credits) CSci 4011 - Formal Languages & Automata Theory (4 credits) (1902 or 2011 or #; no cr for grads in CSci) CSci 5103 - Operating Systems (3 credits) (4061 or #) CSci 5106 - Programming Languages (3 credits) (4011 or #) CSci 5161 - Introduction to Compilers (3 credits) (4011 or #) CSci 5451 - Intro to Parallel Computing: Arch, Algor & Prog (3 credits) (4041 or #) Math 5651 - Basic Theory of Probability & Statistics (4 credits) Math 5705-5707 Enumerative Combinatorics A & B (4 credits each) Math 5711 - Linear Programming & Combinatorial Optimization (4 credits) 4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS 4.2. Computer and Embedded System Design (At least 28 credits) * OR EE 4981H-4982V - Senior Honors Project I-II (2 credits each) EE 4111 - Analog Electronics Design W/ Operational Amplifiers (4 credits) EE 4231 - Linear Control Systems (3 credits) EE 4235 - Linear Control Systems Laboratory (1 credit) EE 4501 - Communications Systems (3 credits) EE 4505 - Communications Systems Laboratory (3 credits) EE 4541 - Digital Signal Processing (3 credits) EE 5141 - Integrated Sensors & Transducers (4 credits) EE 5364 - Advanced Computer Architecture (3 credits) CSci 5511 - Artificial Intelligence I (3 credits) (2011 or #) CSci 5551 - Intro to Intelligent Robotic Systems (3 credits) (5511 or #) CSci 5561 - Computer Vision (3 credits) (5511 or #) ME 3321 - Thermodynamics (4 credits) (Chem 1021, math 2243, Phys 1301, IT student [wood & paper sicence eng g major] 5
4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS 4.3. VLSI and Computer Aided Design (CAD) (at least 28 credits) * OR EE 4981H-4982V - Senior Honors Project I - II (2 credits each) EE 5301-5302 - VLSI Design Automation I-II (3 credits each) EE 5323-5324 - VLSI Design I-II (3 credits each) EE 5327 - VLSI Design Laboratory (3 credits) EE 5333 Analog Integrated Circuit Design (3 credits) CSci 5283 - Computer-Aided Design I (3 credits) (prereq CSci 2021 or #) CSci 5285 - Computer-Aided Design of VLSI (3 credits) (prereq CSci 2021 or #) Math 5165-5166 - Mathematical Logic I-II (4 credits each) Math 5705-5707 - Combinatorics A-B (4 credits each) Math 5711 - Linear Programming & Combinatorial Optimization (4 credits) 4. CompE DEGREE FOCUS AREA COURSE SUGGESTIONS 4.4. Networks and Communication (At least 28 credits) * OR EE 4981H-4982V - Senior Honors Project I-II (2 credits each) EE 4501 - Communications Systems (3 credits) EE 4505 - Communications Systems Laboratory (3 credits) EE 5501 - Digital Communication (3 credits) EE 5505 - Wireless Communication (3 credits) EE 5581 Information Theory & Coding (3 credits) CSci 5131 Advanced Internet Programming (3 credits) (= 4341; 5106 or 5211 or #; (4081 or 5801), 5707 recommended) CSci 5211 - Data Communications & Computer Networks (3 credits) (=4211; [4601 or #], basic knowledge of Computer Architecture, operating systems, probability) Math 5251 - Error-Correcting Codes, Finite Fields, Algebraic Curves (4 credits) Math 5651 - Basic Theory of Probability & Statistics (4 credits) Math 5652 - Introduction to Stochastic processes (4 credits) Math 5711 - Linear Programming & Combinatorial Optimization (4 credits) 6