This course introduces the basic building blocks that make microprocessors work. You will learn how to design and test digital circuits using hardware description languages and computer-aided design tools, and then bring those designs to life by building and testing them on breadboards.
This course introduces mathematical logic, methods of proof, combinatorics, and discrete structures. Its main goal is to develop the ability to think clearly, reason logically, and solve problems using mathematical tools.
Designed primarily for freshmen, this course introduces the fundamentals of electricity, signals, and circuits. In addition to lectures, it includes a hands-on lab that guides students through the complete circuit design process: schematic design, simulation, prototyping, board fabrication, component assembly, and final testing.
In this course, you'll learn how electrical circuits really work. Topics include Kirchhoff’s laws, nodal and mesh analysis, operational amplifiers, RLC circuits, how circuits respond over time, and how they behave with alternating current (AC). Because the course involves mathematical modeling and analysis, a solid background in calculus and linear algebra is helpful.
Through hands-on lab projects, you will design, implement, and test your own microcontroller systems. You'll explore how hardware and software work together and how to balance tradeoffs between the two when building real systems. The primary programming language used in the course is assembly language, which gives you a close-up view of how software directly controls hardware.
This course explores how engineers deal with randomness, uncertainty, and noise. You will learn the basics of probability, random variables, and random processes, and see how they are used to analyze unpredictable events and noisy signals. By the end of the course, you'll be able to model uncertainty mathematically and make informed decisions based on probabilistic reasoning.
You will learn how to model dynamic systems and understand how they behave over time and across different frequencies. Using tools such as root locus, Bode plots, and the Nyquist criterion, you'll explore how engineers analyze stability and performance. The course emphasizes classic controller design methods, such as PID control and lead-lag compensation, to help systems respond in a stable, reliable, and efficient way.