**Fundamentals of Digital Design**

In this class we are introduced to combinational logic and how to translate boolean equations to logic gates, truth tables and Karnaugh maps. In fact, much of the first part of the class is focused on simplifying boolean equations. Later on in the class, students learn about sequential logic and how to implement logic functions with flip flops using current and next states. The end of the class focuses on state machines and microprocessors. We study the LC-3 (Little Computer 3) microprocessor specifically to learn how processors work in general. The lecture concepts are fairly easy to grasp, and the homework is usually not terribly demanding or time consuming. The lab assignments are the most difficult part of the class. They generally increase in difficulty from, at the beginning, putting a very simple combinational logic circuit on a breadboard to, at the end, actually designing the hardware components of a microprocessor using the Verilog hardware description (programming) language. Another lengthy lab involves designing a functional stopwatch and downloading the program (done in Verilog) to an FPGA board. Though the labs are time consuming and sometimes frustrating, the finished lab product is often very cool (testing a working stopwatch that you designed). Overall students find this to be a fun and informative class.

Learning Outcomes | Lab Example**Circuits**

This is often taken as the first Electrical Engineering course. The course begins with a review of fundamental concepts including voltage, current and power. The basic circuit elements are also discussed, along with application of Ohm and Kirchhoff's laws to circuit analysis. Finally, students learn about Laplace and phasor transforms and how to solve differential equations to analyze circuits. In the lab portion of the class, students apply principles learned during the lecture to build a stereo sound system. Building the stereo system is a fun way to learn "hands-on" and gain experience using oscilloscopes, digital multimeters, and other analytical equipment.

Learning Outcomes | Syllabus | Lab Example**Digital System Design **

This class is a continuation of ECEn 224. You use FPGA's (field-programmable-gate-arrays) and program them using VHDL, a hardware description language. You learn how to make hardware behave like software using state machines and timer circuits. Programming in VHDL is very different from Java or C++. All the lines of code execute in parallel, rather than sequentially. You learn to use seven-segment displays, UART serial communication, SRAM, and a VGA controller to display images on a VGA computer monitor. One of the labs is to program a Pong game. Labs tend to take a long time (more than 3 hours), so this class is a heavy load, but it can be very satisfying.

Learning Outcomes**Computer Systems **

This class will help you to understand low level representation of hardware and software in modern computing. This includes being able to optimize code performance and speed in low or high level programming. You will also be able to understand the basic architecture of a modern processor and be able to modify the instruction set architecture. The class addresses the basic security flaws of computing and how to exploit them. Additionally, you will gain a better understanding of compilers, linkers, debuggers in order to better develop, debug, test and optimize software.

Learning Outcomes | Lab Example**Real-Time Operating Systems **

This class will help you to understand how hardware and software interface by explaining more detailed kernel features as well as interrupt service routines. The class includes designing and implementing your own real-time kernel, applications, and interrupt service routines. You will also learn to use C programs, compilers, debuggers and a real-time operating system as tools to design and implement real-time application software.

Learning Outcomes | Syllabus | Lab Example**Embedded Systems **

This course expands on embedded systems principals taught in ECEn 330. In ECEn 427, students learn embedded system design by developing a working version of Space Invaders for a microprocessor-based FPGA embedded. During the course students develop their embedded systems skills by interfacing with off-chip components, integrating intellectual property, and building custom hardware. Students will also gain valuable experience using industry standard embedded system CAD tools.

Learning Outcomes**Introduction to Digital VLSI Circuits**

This course introduces digital logic design in CMOS technology. This is basically how to design digital logic which will be implemented on silicon wafers. Topics covered include: CMOS device characteristics, analysis and design of CMOS circuits, transistor and gate sizing, floorplanning and layout, timing analysis and gate characterization, signal noise, power, process scaling, as well as design-for-test principles and design-process economics. Labs for this course further prepare the student for real-world applications through using Cadence design software (used heavily in industry) in the BYU CAEDM Linux environment.

Learning Outcomes**Electronic Circuit Design **

This class is notorious for being one of the more difficult classes you take in the program. Then again, you hear that about most of the courses. One professor introduced the class by saying, "This class will be the most demanding and challenging course you will ever take in your undergrad experience." Although the course is challenging conceptually, the work load is doable. In this class you learn a lot about circuit design with emphasis on op amps, BJTs, MOSFETS, diodes and a little about CMOS. You will want to remember what you learned in 240 (resistors, capacitors, inductors, voltage division, etc). You also want to keep your electronics box from ECEn 240 to use in the labs. In the labs you get to work with a partner and build a lot of cool circuits based on what you learn in class. Preparing well for the class by doing the reading before lectures will help to reduce time in the in the lab and make the labs a lot more enjoyable. Most of the labs involve building op amps from BJTs and MOSFETS to create different circuits like a sound detector that could light up different LEDs depending on the type of noise you make in a microphone. They have recently added a lab where you create your own laser tag game.

Learning Outcomes | Syllabus**Electromagnetic Fields and Waves **

This class covers a range of topics in electromagnetics: vectors, Maxwell's equations, 137 Gauss's Law, electric properties of materials, electric fields, magnetic fields, Ampere's Law, 138 plane waves, polarization, reflection and refraction, and antennas. The math requires some 139 multivariable calculus but was usually not too hard.

Learning Outcomes | Syllabus | Lab Example**Probability Theory **

This class covers basic probability, including functions of random variables, probability mass and density functions, convergence, and independence. The hardest part of this class is figuring out how to use the math (which isn't hard) to solve problems (which probability model to use, what numbers to plug in where, etc). It is sort of like physics that way. Some of the homework problems require you to program in MATLAB. Sometimes it doesn't seem like probability applies to engineering, but it does have many uses in areas like signal processing and robot navigation.

Learning Outcomes | Syllabus | Lab Example**Signals and Systems **

This topics covered in this class include continuous- and discrete-time signals, power and energy of signals, sampling properties, convolution, Fourier transforms, Laplace transforms, and z-transforms. The material you learn in this class is used a lot in classes like 485 and 487 that deal with signal processing. There is quite a bit of math involved, including both linear algebra and ordinary differential equations. The various transforms you learn about require similar math, so if you work on understanding the first units, the rest of the class should not be too difficult. There is a weekly lab that is done in MATLAB.

Learning Outcomes | Syllabus | Lab Example**Introduction to Mixed-Signal VLSI **

This class is a mix of learning more analog circuits and learning how to layout circuits in 2D using software. If you're interested in working for the semiconductor industry, designing and laying out microprocessors on the transistor level, this is the class for you. You learn about circuits including operational amplifiers (op-amps), A/D converters, and D/A converters. You learn first-hand how the dimensions of a MOSFET (channel length and width) will influence the bandwidth and performance of an amplifier circuit. You get to lay out all the many layers of MOSFETs and all the vias and wires that connect them together using colorful CAD software. The title "Mixed Signal VLSI" indicates that your digital (VLSI) circuits interface with analog signals. If you like analog circuits or digital circuits, this is a great class.

Learning Outcomes | Syllabus | Lab Example**Introduction to Semiconductor Devices **

This class talks about how semiconductor devices are made and how they work. You learn about how electrons and holes behave in semiconductors. Some of the topics covered in this class are crystal structure and energy bands, donors and acceptors, generation and recombination, PN junctions, metal/semiconductor contacts, MOSFETs, CMOS, and memory structures. The processing (fabrication) topics include optical lithography, wet and dry etching, metallization, thermal oxidation, diffusion, ion implantation, and annealing. Monday and Wednesday lectures are about devices and how they work, while Friday lectures are about how semiconductors are fabricated ("the chemical engineering part of electrical engineering"). The homework isn't usually too difficult, but it does take time to read and understand the book.

Learning Outcomes | SyllabusThis is the lab part of 450. It isn't required, but it is a fun and interesting lab and helps you to see how the processes talked about in class are used. This lab is in the cleanroom on the 4th floor of the Clyde building (the devices made there are so small that the number of particles in the air has to be controlled to minimize contamination). In the first half of the semester, you learn a different cleanroom process each week (metal deposition, photolithography, wet etching and annealing, measuring contact resistance, oxide growth). You then use these processes to make a full color picture on a silicon wafer using thin films. During the second half of the semester, you use those same processes to build and measure MOSFETs (which can help you understand the 450 material better). There are two group reports (due at the end of each half of the semester) and weekly individual lab reports. Most students report their experience in 452 as the most fun they have ever had in a laboratory setting.

Learning Outcomes | Syllabus | Lab Example**Digital Communication Theory**

In this class, you learn about signal processing with digital signals. It builds on the material you learn in 380. The topics covered in this class include basis functions, matched filters, pulse shapes, pulse and quadrature amplitude modulation, quaternary phase shift keying, carrier phase synchronization using unique word and different encoding, symbol timing synchronization, and phase locked loops. There is a 3 hour lab every week (but the labs frequently don't take that long to complete). This lab is done in MATLAB and helps you understand how the different parts of the system you learn about in class work together (filters, detectors, phase locked loops, etc).

Learning Outcomes | Syllabus | Lab Example**Communication and Power Circuits **

This class is a fun combination of analog circuit design and radio communication theory. If you like building circuits in 212 and 313, this is one of the only classes where you get to use your lab kit to make more analog circuits. If you find radios interesting, you will learn about AM and FM, along with other types of modulation. You learn some of the basic circuits in a radio, including detector circuits, and oscillator circuits. You build circuits including an oscillator and a resonant (tuned) circuit. There is some discussion of Fourier transforms and the frequency domain, so a background knowledge of Fourier transforms is useful. You also learn a little bit about power circuits.

Learning Outcomes | Syllabus**Digital Communication Theory**

In this class, you learn about signal processing with digital signals. It builds on the material you learn in 380. The topics covered in this class include basis functions, matched filters, pulse shapes, pulse and quadrature amplitude modulation, quaternary phase shift keying, carrier phase synchronization using unique word and different encoding, symbol timing synchronization, and phase locked loops. There is a 3 hour lab every week (but the labs frequently don't take that long to complete). This lab is done in MATLAB and helps you understand how the different parts of the system you learn about in class work together (filters, detectors, phase locked loops, etc).

Learning Outcomes | Syllabus | Lab Example**Electromagnetic Radiation and Propagation**

This class is a continuation of ECEn 360 and 362. You learn advanced topics for electromagnetic waves and how they propagate in different materials. You learn that some materials are anisotropic, meaning that light with different polarities will propagate at different velocities. Using an anisotropic medium, you can create a quarter wave plate that converts a linearly polarized wave into a circularly polarized wave and vise versa. You learn about dispersion, where different frequencies of EM waves travel at different velocities in a medium. You also learn about attenuation of EM waves in different media. You will learn about slab waveguides, rectangular waveguides, circular waveguides and modes. The mathematics are advanced and somewhat difficult, using principles of linear algebra (matrices), differential equations, and integrals.

Learning Outcomes**Introduction to Optical Engineering **

This class goes in depth into optics, specifically optical communication. You learn about optical fibers, including multi-mode fiber and single-mode fiber. You learn about the optimal frequencies for propagation with low attenuation or low dispersion, and the trade-offs of each. You learn about beam splitters, and lenses. You learn how to couple light into a fiber, how to detect light at the end of a fiber, and how to amplify a light signal. You will analyze lenses made specifically for a certain frequency and model them using special software (OSLO). Lasers are covered briefly. You get to go into an optical lab to observe attenuation and dispersion in optical fibers. You get to splice two fibers together using specialized equipment. You use equipment that measures reflection so you can determine if a fiber has flaws in it. A very fun class if you enjoy optics or electromagnetics.

Learning Outcomes | Syllabus | Lab Example# Computer Engineering Class Guide

Mouse over a class on the flowchart to see a description of the class. Click to go to the course website.