Courses in Electrical and Computer Engineering

I ECE 110 (= I ESE 110) Introduction to Engineering (2)
(Formerly I CEN 110/I CEN 140.) An introduction to engineering, including problem solving and other skill sets essential for engineers. Using a combination of assignments and classroom lectures and presentations, students will learn how to formulate, articulate, and solve engineering problems, and how to present engineering work in written and oral form. Students will learn about the different disciplines within engineering and the multidisciplinary nature of modern engineering. Students will gain a better understanding of how fundamental scientific principles relate to engineering. Only one of I CEN/I ECE/I ESE 110 and I CEN 140 may be taken for credit. Corequisite or prerequisite: A MAT 100 or A MAT 112 or A MAT 118.

I ECE 111 Introduction to Electrical and Computer Engineering (4)
(Formerly I CEN 150/ I CEN 111.) An introduction to fundamental concepts, skills, and technologies in Electrical and Computer Engineering. Students are introduced to modern engineering tools and logical and systematic ways to analyze and solve problems in electrical and computer engineering. Only one of I CEN 111 and I CEN 150 and I ECE 111 may be taken for credit. Must be completed with a C or better to register for I CEN 200 or I ECE 141. Corequisite(s) or prerequisite(s): A MAT 112 or A MAT 118.

I ECE 141 Programming for Engineers (4)
(Formerly I CEN 200.) This is an introductory course in C programming language, which covers structured programming, data types, arrays, multi-dimensional arrays, functions, recursions, pointers, strings, structures and unions, bit manipulation, file processing, preprocessor, command line arguments and handling multiple source and header files. Only one of I ECE 141, I CEN 200, and I CEN/I CSI/201 may be taken for credit. Must be completed with a grade of C or better to register for I CEN 340 or I CEN 231. Prerequisite(s): A grade of C or better in both I CEN 111/150 or I ECE 111/150 and A MAT 112 or 118.

I ECE 201 (= I CSI 201) Introduction to Computer Science (4)
(Formerly I CEN/I CSI 201.)  This course first introduces with the elementary concepts of computer science such as CPU, memory, I/O devices and binary number system. It then focuses on developing basic programming skills. The topics include input and output data, data types, control structures, functions/methods, arrays, procedural and object-oriented programming concepts, and program debugging and compilation. Only one of I CEN 200 or I ECE 141 and I CEN/I CSI/I ECE 201 may be taken for credit. Prerequisites: no prerequisite; general mathematical knowledge and computer skills are recommended.

I ECE 202 Introduction to Circuits (4)
(Formerly I CEN 280.) Review of basic circuits, voltage and current division, and Thevenin and Norton equivalent circuits. Analysis of circuits using the matrix formulation of Kirchhoff's Current and Voltage Laws. Operational Amplifiers. Study of circuits with capacitors and inductors using linear differential equations. Sinusoidal steady state response of basic circuits, phasor circuit analysis, and frequency dependence. Passive filter design and analysis. Laplace Transform and s-domain circuit analysis. This course includes a laboratory. Prerequisite(s): A PHY 150 or 152 or T PHY 151 Corequisite(s): A MAT 311 and either A MAT 220 or 222.

I ECE 210 (= I CSI 210) Discrete Structures (4)
(Formerly I CEN/I CSI 210)  Mathematical reasoning, propositions, predicates and quantifiers; Boolean algebra, logic minimization; sets, functions, sequences, matrix algebra; mathematical induction and recursion; number theory, modular arithmetic, counting, permutations and combinations. Only one of I CEN/I CSI/I ECE 210 may be taken for credit. Prerequisite(s): A MAT 112.

I ECE 213 (= I CSI 213) Data Structures (3)
(Formerly I CEN/I CSI 213/I CSI 310.) This course covers commonly used abstract data structures such as lists, stacks, queues, trees and graphs. The implementation and time-space analysis of these data structures is discussed in the context of recursion, sorting and searching algorithms.  May not be taken by students with credit for I CSI 310. Only one of I CEN/I CSI/I ECE 213 may be taken for credit. Must be completed with a grade of C or better to take I CEN/I CSI 333 or I ECE 233. Prerequisite(s): Grade of C or better in I CEN/I CSI 201, or I CEN 200 or I ECE 141.

I ECE 231 Digital Systems (4)
(Formerly I CEN 340.) An introduction to digital logic hardware used in modern computing systems. Boolean algebra, number systems, digital arithmetic, basic logic gates, combinational logic circuits, complex logic building blocks, including multiplexers, decoders and flip-flops, registers and memory arrays. Methods and techniques for the analysis, design and synthesis of combinational logic, sequential logic and memory circuits. An introduction to, and "hands-on" experience with, state-of-the-art electronic design automation (EDA) software tools, and hardware description languages (HDL) such as VHDL for practical applications of digital logic designs and implementations using field programmable logic arrays (FPGAs). This course includes a laboratory. Only one of I CEN 340 and I ECE 231 may be taken for credit. Prerequisite(s): I CEN/I ECE/I CSI210, a grade of C or better in I CEN/111/150 or I ECE 111 , and a grade of C or better in I CEN 200 or I ECE 141.

I ECE 233 The Hardware/Software Interface (4)
A foundation in assembly language programming, computer architecture design, and embedded systems. The analysis, design, implementation, testing, and debugging of assembly language programs. Tracing how instructions are executed on CPU architectures, as well as the performance trade-offs and hazards with different architecture designs. The compiling of a higher-level C program into binary machine-language instructions and executing those instructions on an underlying hardware architecture. The fundamentals of embedded systems, including balancing of hardware and real-time constraints, programming control using state machines, and communication with peripherals. Students build a small embedded system by developing the programmable control system and integrating that software with electronic and mechanical components. Only one of I CSI/I CEN 333 or I ECE 233 may be taken for credit. Prerequisite(s): I ECE 231 and a grade of C or better in I ECE/I CSI 213.

I ECE 300 Introduction to Electronics (4)
(Formerly I CEN 380.) Basic electronic and physical properties of semiconductors materials. Functional characteristics and electronic models of silicon semiconductor diodes and transistors (field effect transistors and bipolar junction transistors). DC biasing, static current-voltage (I-V) characteristics, and transient behavior of transistors, and transistor circuits. Analog transistor applications such as single stage and multi-stage amplifiers. Operational amplifiers. Frequency response and feedback characteristics of transistor circuits. Digital circuit applications with single and multi-stage transistor circuits. The use of computer aided circuit design and simulation tools and techniques. Hands-on lab experimentation constructing circuits to test and measure functional and performance characteristics. Only one of I CEN 380 and I ECE 300 may be taken for credit. Prerequisite(s): I CEN 280 or I ECE 202.

I ECE 310 Engineering Electromagnetics (4)
(Formerly I CEN 310.) Review of Maxwell's equations and time harmonic electric and magnetic fields. Plane waves in lossless and lossy media, group velocity, Poynting vector, and flow of electromagnetic power. Normal and oblique incidence of plane waves at plane boundaries. Transmission lines, the Smith chart, and impedance matching. Waveguides. Introduction to antennas and antenna arrays. The course includes a laboratory. Only one of I CEN/I ECE 310 may be taken for credit. Prerequisites: I CEN 280 or I ECE 202.

I ECE 360 Emerging Technologies (3)
(Formerly I CEN 360.) This course will explore current emerging technologies and related technical management practices on a global basis. The content of this course will vary from semester to semester. Each offering will cover an advanced engineering topic in Computer Engineering. May be repeated for credit when content varies. Prerequisite(s): permission of instructor.

I ECE 371 Signals and Systems (3)
(Formerly I CEN 350.) This course introduces students to Signals and Systems. The course is divided into three parts: introduction, theory, and applications of continuous time signals and systems, and theory and applications of discrete­-time signals and systems. The course is organized so that students not only get a solid understanding of the theory, enhanced by analytic examples and software examples using MATLAB, but also learn about applications and develop confidence and proficiency in the material by working on analytic and computational problems. Only one of I CEN 350 and I ECE 371 may be taken for credit. Prerequisites(s): I CEN 280/I ECE 202.  

I ECE 400 (= I CSI 400) Operating Systems (3)
(Formerly I CEN/I CSI 400.) Design and implementation of operating systems. Topics include historical overview of operating systems and their principles, systems programming, file system organization and I/O, resource allocation, memory management and virtual memory, virtual machines, process scheduling and synchronization of concurrent processes, deadlock detection and prevention, and security. Only one of I CEN/I CSI/I ECE 400 may be taken for credit. Prerequisite(s): I CSI 404 or I ECE 233 (formerly I ECE 333).

I ECE 401 Advanced Electronics (3)
(Formerly I CEN 401.) Linear and non-linear applications of operational amplifiers, with an emphasis on circuit design. Non-ideal operational amplifier behavior, including both static and dynamic characteristics. Amplifier stability and frequency compensation techniques. Operational amplifier based oscillators. Circuit noise. Only one of I CEN/I ECE 401 may be taken for credit. Prerequisite(s): I CEN 380 or I ECE 300.

I ECE 402 Power Electronics (3)
An introduction to fundamentals of power electronic circuits and their role in industrial, residential and power system applications. This course covers the characteristics of power semiconductor devices including diodes, thyristors, GTOs, IGBTs and MOSFETs. Analysis and design of basic dc-dc converters, single phase and multi-phase rectifiers and inverter circuits will be introduced as well as an introduction to the fundamentals of soft switching converters. Industrial applications, such as renewable energy, telecom and computing industry will be discussed. Computer simulation will be used to analyze the detailed operation of switching converters. This course includes a laboratory. Prerequisite(s): I ECE 300 or I CEN 380.

I ECE 404 (= I CSI 404) Computer Organization (3)
(Formerly I CEN/I CSI 404.) An introduction to the logical organization of the hardware components of computing systems. Topics include logic design from a functional point of view, data representation and processing, description of major components such as the central processing unit and memory, and control and communication within the components and in the system. Only one of I CSI/I CEN/I ECE 404 may be taken for credit. Prerequisite(s): I CSI/I CEN 333 or I ECE 233 and I CSI/I CEN/I ECE 210.

I ECE 410 Internet of Things (3)
(Formerly I CEN 410.) In this course students will study new communication paradigms that are enabled by the ubiquity of heterogeneous devices, networks and applications. The course will consist of three components: lectures on emerging networks and their artifacts along with studying research publications to understand their practical challenges; bridging of the cyber and the physical world using sensors, embedded in mobile devices and building applications using the Android sensor programming framework; and analytics for large-scale data and business models for Big Data. Students are expected to have introductory knowledge about networking and communication systems along with foundations in programming and statistics. Only one of I CEN/I ECE 410 may be taken for credit. Prerequisite(s): I CEN/I CSI/I ECE 416.

I ECE 411 Microwave Engineering (3)
(Formerly I CEN 411.) An introduction to radio frequency and microwave analysis and design. Transmission lines and waveguides, network characterization and analysis, impedance matching and tuning. Passive microwave devices such as power dividers, couplers, resonators, filters, and ferrimagnetic components. An introduction to active devices. Only one of I CEN/I ECE 411 may be taken for credit. Prerequisite(s) I CEN/I ECE 310 and I CEN 380 or I ECE 300.

I ECE 413 Electrical Energy Systems (3)
(Formerly I CEN 413.) An introduction to the major components of today's power system such as transformers, electric machines, and transmission lines. Renewable energy sources and systems are discussed, including wind and solar energy. Integration of energy sources into the power grid. Only one of I CEN/I ECE 413 may be taken for credit. Prerequisite(s): I CEN/I ECE 310 and I CEN 380 or I CEN 300.

I ECE 414 Electric Machines (3)
This course covers the basics of operation and design of electric machines. Fundamentals of magnetic circuits, B-H curves, Faraday's law, hysteresis, hysteresis and eddy current losses, self and mutual inductances are introduced. The analysis and operation of different types of industrial electric machines is presented, including single phase and three-phase transformers, dc motors and generators, induction machines and synchronous machines. Three-phase circuits and phase sequences in three-phase systems will also be covered. Prerequisite(s): I ECE 310.

I ECE 416 (= I CSI 416) Computer Communication Networks (3)
(Formerly I CEN/I CSI 416.) This course covers fundamentals in computer communication networks and the principles of distributed systems that leverage these networks. The course will focus on key Internet application architectures, principles and protocols, covering reliable data transfer and transport protocols; routing and forwarding; data link layer communications and principles of shared media access. Students will also be introduced to various physical layer techniques like error correction and bandwidth efficiency; content delivery networks; and software-defined networks. The students will apply their understanding of networking fundamentals while working on hands-on programming assignments, packet trace analysis and Internet measurements. Prerequisite(s): I CSI/I CEN 404 or I ECE 233 and A MAT 367 or A MAT 370.

I ECE 417 Optical Communications (3)
(Formerly I CEN 417.) The future provision of Internet-based high-bandwidth applications has led to an explosion in demand for high-speed optical communication systems. This course aims to provide knowledge of the strategies and techniques involved in the design and implementation of optical communication technologies and how these optical links form networks. This course is designed to present the operation of modern optical devices driving the growth in optical communication systems and the broader picture of optical fiber and free space networks for future communication applications. The course covers: building blocks of optical communication systems such as transmitters, receivers, transmission fibers, and amplifiers; fundamental considerations in system design including signal to noise ratio, fiber nonlinearity, chromatic dispersion, polarization mode dispersion, modulation formats, etc.; and the latest developments in high data rate, high spectral efficiency optical communication systems. Many practical and useful examples are also included. Only one of I CEN/I ECE 417 may be taken for credit. Prerequisite(s): I CEN 280 or I ECE 202, A MAT 220 and 311.

I ECE 420 Introduction to VLSI (3)
(Formerly I CEN 480.) An introduction to Very Large Scale Integrated (VLSI) circuit design. The device, circuit, and system aspects of VLSI design are covered in an integrated fashion. Emphasis is placed on NMOS, PMOS and CMOS technology. Using transistors, simple gates such as XOR, AND, OR, AOI, OAI, and flip flops, are constructed and simulated using Cadence Design Systems tools. Verilog-A is used to provide input vectors and test the correctness of the output. Only one of I CEN 480 and I ECE 420 may be taken for credit. Prerequisite(s): I CEN 380 or I ECE 300.

I ECE 421 Digital ASIC Design (3)
The design of complex digital Application Specific Integrated Circuits (ASICs). Standard cell libraries and the Verilog language are used to build complex digital synchronous circuits using Cadence layout synthesis tools. Interconnect delay estimation, clock tree synthesis, repeater and pipeline stage design are introduced. A synchronous digital circuit utilizing 100s of flip flops and digital gates is designed as a final project and sent to MOSIS for fabrication. Prerequisite(s): I ECE 420 or I CEN 480.

I ECE 422 Integrated Circuit Devices (3)
(Formerly I CEN 422.) Modern solid-state devices and their operational principles. Solid state physics fundamentals, such as carriers and their mobility, band structures, doping concentrations and PN junctions. The operation of PN diodes, PIN diodes, and Schottky diodes, as well as three terminal devices, such as BJTs, JFETs, SCRs, MESFETs and MOSFETs. Device modelling and behavior. Only one of I CEN/I ECE 422 may be taken for credit. Prerequisite(s): I CEN 380 or I ECE 300.

I ECE 431 Reconfigurable Computing (3)
(Formerly I CEN 431.) This course provides a study of FPGA architecture with detailed discussion on opportunities and challenges in this flexible platform. Topics include device architecture, programming languages and models for FPGAs including streaming and I/O, Mapping, Placement and Routing in reconfigurable logic, application design, development, verification and application specific optimization techniques. Only one of I CEN/I ECE 431 may be taken for credit. Prerequisite(s): I CSI/I CEN/I ECE 404 and I CEN 340 or I ECE 231.

I ECE 441 GPU Architecture and Programming (3)
(Formerly I CEN 461.) This course introduces the students the concept of massively-parallel programming. It is divided into two parts: in the first part, the students are expected to develop multi-threaded programs in the C programming language using pthreads. In the second part, the concepts that are learned in the first part are extended to the GPU architecture. Nvidia CUDA programming language is used as the main tool to develop GPU programs. Only one of I CEN 461 and I ECE 441 may be taken for credit. Prerequisite(s): I CEN 200 or I ECE 141 and I CEN/I CSI/I ECE 404.

I ECE 442 Systems Analysis and Design (3)
(Formerly I CEN 430.) The application of systems analysis and systems design methodologies is especially important to the success of engineering projects in a real-world environment. While the nature and the scope of hardware and software design varies widely depending on the context, a successful development begins with analyzing client needs and desires and developing engineering requirements and constraints. This course aims to provide engineering students with a solid understanding of the important methodologies, tools and techniques related to the analysis of engineering problems and the design and development of systems in a variety of contexts. Only one of I CEN 430 and I ECE 442 may be taken for credit. Prerequisite(s): I CSI/I CEN 333 or I ECE 233.

I ECE 451 Robotics (3)
(Formerly I CEN 464.) An introduction to the fundamentals of robotics, including configuration space, transformation matrix, kinematics, motion planning, and a brief introduction to robot manipulation. In addition to simulation environments, the course uses robot arms and small drones as hardware platforms for students to practice programming and test algorithms. Current final projects include navigating drones through a small field of obstacles and the use of a robot arm to pick up objects. Only one of I CEN 464 and I ECE 451 may be taken for credit. Prerequisite(s): A MAT 220, I CEN/I ECE/I CSI 210 and 213.

I ECE 453 Cyber-Physical Systems (3)
(Formerly I CEN 453.) This course is an introduction to the basics of models, analysis tools, and control for embedded systems operating in real time. Topics include models of computation, basic analysis, control, and systems simulation, interfacing with the physical world, mapping to embedded platforms and distributed embedded systems. This course has a lab component. Only one of I CEN/I ECE 453 may be taken for credit. Prerequisite(s): I CEN 350 or I ECE 371 and I CEN/I CSI 333 or I ECE 233.

I ECE 460 Mobile Design Engineering (3)
(Formerly I CEN 460.) Building on students' basic knowledge of wired computer networks, this course will explore mobile wireless networks. Students will learn about current protocols and technologies in mobile networks. Through hands-on exercises students will gain experience in wireless networks operation and configuration. Successful completion of the course will require detailed prior understanding of network-based communications, Internet protocol operations, strong systems programming skills and familiarity with UNIX. Only one of I CEN/I ECE 460 may be taken for credit. Prerequisite(s): I CEN/I CSI/I ECE 400 and I CEN/I CSI/I ECE 416.

I ECE 462 Digital Signal Processing (3)
(Formerly I CEN 370.) This course covers the techniques of modern digital signal processing that are fundamental to a wide variety of application areas. The course covers the mathematical basis of discrete-time signal analysis, discusses the theory and implementation of fast Fourier transform algorithms, and discusses the design and implementation of digital filters. The coverage of the fundamentals is complemented with introductory treatments of several advanced techniques including linear prediction, adaptive filtering, and two-dimensional signal processing. The course concludes with a discussion of the application of digital signal processing techniques toward the solution of various types of practical problems. This course makes extensive use of MATLAB as an analysis, design, and visualization tool. Only one of I CEN 370 and I ECE 462 may be taken for credit. Prerequisite(s): I CEN 350 or I ECE 371.

I ECE 463 Digital Image Processing (3)
(Formerly I CEN 463.) An introduction to digital image and video processing. The course starts with an introduction of digital image processing. It continues with fundamentals of video processing and covers closely related topics in computer vision. The course focuses on both the theory and the practical application of digital image and video processing. Students will learn hands-on programming implementation using Python, Matlab, or C++. Only one of I CEN/I ECE 463 may be taken for credit. Prerequisite(s): I CEN 200 or I ECE 141 and I CEN 370 or I ECE 462.

I ECE 470 Human Computer Interaction (3)
(Formerly I CEN 470.) An introduction to the design principals of Human-Computer Interaction (HCI), including techniques for rapid prototyping and evaluation of multiple interface alternatives. The study of the computer visual interface, including human face tracking, expression recognition, hand gesture tracking and recognition, pedestrian detection and tracking, pose tracking and action recognition. A survey of the latest research papers and technologies in the field. The course includes a project, where students will pick and implement a relevant visual tracking or recognition project in HCI. Only one of I CEN/I ECE 470 may be taken for credit. Prerequisite(s): I CEN/I CSI 333 or I ECE 233.

I ECE 471 Communication Systems (3)
(Formerly I CEN 471.) An introduction to analog and digital communication signals and systems. Representation of analog and digital signals and their spectra. Baseband pulse and digital signaling, including PAM, PCM, DM and DPCM. Bandlimited signaling without inter-symbol interference. Analog and digital bandpass signaling, including AM, FM, PM, OOK, PSK, FSK, MSK, QAM and OFDM. Transmitter and receiver operations and systems. Performance in the presence of noise. Only one of I CEN/I ECE 471 may be taken for credit. Prerequisite(s): I CEN 350 or I ECE 371 and A MAT 370.

I ECE 472 Advanced Digital Communications (3)
(Formerly I CEN 472.) An introduction to digital communications, including signal generation, signal detection, synchronization, channel modeling, and coding. Baseband pulse modulation. Signal space representation of signals and optimal receiver structures. Bandpass modulation techniques including PSK, QAM and FSK. Carrier, symbol, and frame synchronization. Channel characterization and modeling, including terrestrial channels. Error control coding. Only one of I CEN/I ECE 472 may be taken for credit. Prerequisite(s): I CEN/I ECE 471.

I ECE 473 Radiowave Propagation and Remote Sensing (3)
(Formerly I CEN 473.) In this course the basic physical mechanisms of electromagnetic wave propagation in the troposphere and ionosphere, and the fundamentals of microwave remote sensing will be studied. Theoretical and empirical models which describe several propagation mechanisms will be discussed to understand the design and analysis of communications and remote sensing (radar and radiometer) systems. Only one of I CEN/I ECE 473 may be taken for credit. Prerequisite(s): I CEN/I ECE 310 and I CEN 350 or I ECE 371.

I ECE 481 Linear Control Theory (3)
(Formerly I CEN 481.) An introduction to the analysis and design of linear control systems. Mathematical models, including state variable models. Feedback control, and stability. Root locus and frequency response compensation methods. Only one of I CEN/I ECE 481 may be taken for credit. Prerequisite(s): I CEN 350 or I ECE 371.

I ECE 490 ECE Design Lab I (3)
(Formerly I CEN 440.) Part one of a two-semester-long capstone design experience that provides the opportunity for teams of students to propose, prototype/design, build, test, demonstrate, present and fully document a working prototype of a sophisticated electronic system. In this first part, student teams interact with industry sponsors and/or faculty to develop a proposal for a system, component or process to meet desired needs and specifications within constraints. Students teams will identify opportunities, develop requirements, perform analysis and synthesis, generate multiple solutions, evaluate solutions against requirements, consider risks, and make trade-offs. Only one of I CEN 440 and I ECE 490 may be taken for credit. Prerequisite(s): I CEN 430/I ECE 442 and either I CEN 350/I ECE 371 or I CEN 380/I ECE 300.

I ECE 491 ECE Design Lab II (3)
(Formerly I CEN 450.) Part two of a two-semester-long capstone design experience that provides the opportunity for teams of students to propose, prototype/design, build, test, demonstrate, present and fully document a working prototype of a sophisticated electronic system. In this second part, student teams continue to interact with industry sponsors and/or faculty as they implement their design and conduct validation experiments to demonstrate that their design meets all engineering specifications, standards, and constraints. In documenting their work, student teams will also evaluate their designs in global, cultural, social, environmental, and economic context and develop recommendations for future development. Only one of I CEN 450 and I ECE 491 may be taken for credit. Prerequisite(s): I CEN 440 or I ECE 490.

I ECE 494 Topics in Electrical and Computer Engineering (3)
This course will explore current emerging technologies and related technical management practices on a global basis. The content of this course will vary from semester to semester. Each offering will cover an advanced engineering topic in Electrical and Computer Engineering. May be repeated for credit when content varies. Prerequisite(s): permission of instructor.

I ECE 497 Independent Research in Electrical and Computer Engineering (1-3)
(Formerly I CEN 497.) Independent research project under faculty guidance. Students will present their research as appropriate. May be repeated for credit up to a total of 6 credits with permission of department. Prerequisite(s): permission of instructor.