Honors
- Dean's List (Fall 2022, Fall 2024)
- Honor Roll (Fall 2023, Spring 2024, Fall 2025)
Education
Estimation theory considers the extraction of useful information from raw sensor measurements in the presence of signal uncertainty. Common applications include navigation, localization and mapping, but applications can be found in all fields where measurements are used. Mathematic descriptions of random signals and the response of linear systems are presented. The discrete-time Kalman Filter is introduced, and conditions for optimality are described. Implementation issues, performance prediction, and filter divergence are discussed. Adaptive estimation and nonlinear estimation are also covered. Contemporary applications will be utilized throughout the course.
Control system design with an emphasis on observer-based methods, from initial open-loop experiments to final implementation. The course begins with an overview of feedback control design technique from the frequency domain perspective, including sensitivity and fundamental limitations. State space realization theory is introduced, and system identification methods for parameter estimation are introduced. Computerbased methods for control system design are presented.
This course introduces the mathematical and engineering aspects of digital signal processing (DSP). An emphasis is placed on the various possible representations for discrete-time signals and systems (in the time, z-, and frequency domains) and how those representations can facilitate the identification of signal properties, the design of digital filters, and the sampling of continuous-time signals. Advanced topics include sigma-delta conversion techniques, multi-rate signal processing, and spectral analysis. The course will be useful to all students who are concerned with information bearing signals and signal processing in a wide variety of application settings, including sensing, instrumentation, control, communications, signal interpretation and diagnostics, and imaging.
Students will learn how to design, fabricate, and solder a printed circuit board (PCB) from concept to implementation. In addition to teaching best design practices, the course will address the variety of real-world constraints that impact the manufacturing of electrical circuits on PCBs.
Students will learn computational methods for common tasks in electrical engineering such as creating and plotting signals and data, analyzing and implementing digital filters, numerically computing integrals, solving differential equations, and simulating dynamical systems.
This course introduces electromagnetic theory with a focus on its practical applications. It begins with a thorough review of vector calculus, coordinate systems, and key theorems. Following this foundation, an inductive approach is employed, commencing with the first principles of electrostatics and magnetostatics (Coulomb's and Biot-Savart laws) progressing to the derivation of Maxwell's equations by incorporating Faraday's Law and the concept of displacement currents. Key topics covered include the principles underlying electric generators, AC and DC motors. This groundwork facilitates the development of circuit theory, including the establishment of conditions for its validity. The course culminates with an introduction to transmission line theory, impedance matching, and the utilization of the Smith Chart.
Students will study the large signal and small signal behavior of active components including opamps, diodes, bipolar junction transistors, and field effect transistors. Students will explore the frequency response analysis of standard circuit configurations. Students will engage laboratory exercises to compare how well their theoretical analysis compare to the actual circuit.
The design and implementation of systems consisting of analog and digital components with a microcontroller to perform a dedicated task. Student will implement systems using a variety of microcontroller subsystems including timers, PWM, ADC, serial communication subsystems and interrupts. Students will learn embedded systems programming techniques like, fixed-point math, direct digital synthesis, lookup tables, and row scanning. Student will program the microcontroller using a high-level programming language like C or C++.
This laboratory is a semester-long design and build activity centered around a challenge problem that varies from year to year. Solving this problem requires the design and prototyping of a complex system and utilizes concepts from multiple electrical engineering courses. Students work in intra-disciplinary teams to build modular sub-systems and integrate them to a complete system.
This course covers signals and noise in electrical systems. Topics covered include information theory, signal to noise ratio, random variables, probability density functions, statistics, noise, matched filters, coding and entropy, power spectral density, and bit error rate. Applications are taken from radar, communications systems, and signal processing.
The interpretation, representation and analysis of time-varying phenomena as signals which convey information and noise; applications are drawn from filtering, audio and image processing, and communications. Topics include convolution, Fourier series and transforms, sampling and discrete-time processing of continuous-time signals, modulation, and z-transforms.
System modeling through an energy flow approach is presented, with examples from linear electrical, mechanical, fluid and/or thermal systems. Analysis of system response in both the time domain and frequency domain is discussed in detail. Feedback control design techniques, including PID, are analyzed using both analytical and computational methods.
This comprehensive course will help students consolidate their understanding of all fundamental computer science concepts. Topics include symbolic communication, Boolean logic, binary systems, logic gates, computer architecture, assembly language, assembler construction, virtual machines, object-oriented programming languages, software engineering, compilers, language design, and operating systems. Using a hardware simulator and a programming language of their choice, students construct an entire modern computer from the ground up, resulting in an intimate understanding of how each component works.
Reasoning about algorithm correctness (proofs, counterexamples). Analysis of algorithms: asymptotic and practical complexity. Review of dictionary data structures (including balanced search trees). Priority queues. Advanced sorting algorithms (heapsort, radix sort). Advanced algorithmic concepts illustrated through sorting (randomized algorithms, lower bounds, divide and conquer). Dynamic programming. Backtracking. Algorithms on unweighted graphs (traversals) and weighted graphs (minimum spanning trees, shortest paths, network flows and bipartite matching); NP-completeness and its consequences.
This course is an introductory course in discrete mathematics and algebraic structures. Topics include: formal logic; proofs, recursion, analysis of algorithms; sets and combinatorics; relations, functions, and matrices; Boolean algebra and computer logic; trees, graphs, finite-state machines, and regular languages.
Covers the basic concepts of computer architecture and organization. Topics include machine level instructions and operating system calls used to write programs in assembly language, computer arithmetics, performance, processor design, and pipelining techniques. This course provides insight into the way computers operate at the machine level.
Introduction to software engineering processes and object-oriented design principles. Topics include the Agile development methodology, test-driven development, UML diagrams, use cases and several object-oriented design patterns. Course work emphasizes good programming practices via version control and code reviews.