Embedded Systems Pathway
Computing is moving away from the traditional keyboard/mouse paradigm and instead is becoming embedded into the world around us through vast numbers of microprocessors. Every large scale data center in existence today is composed of many microprocessors that coordinate interconnections between larger computing systems.
From the computational heart of a robot, to the central processing units (CPUs) controlling an automobile or airplane, and the microprocessors embedded in every mobile phone and smart device — the Embedded Systems pathway helps students to develop the hardware, software and firmware behind each of these systems. Students following this pathway learn how to interface with sensors and actuators, as well as how to optimize systems to operate under a variety of different constraints.
This pathway is a good fit for students who are interested in:
- The computing side of engineering
- Understanding the entire computing stack, which provides an advantage in designing embedded computing solutions that are fast, efficient and low-cost
Does a student need a graduate degree specializing in this area to be marketable to industry?
No. However, while a student with a bachelor’s degree can easily find employment, a master’s degree opens up a noticeably wider range of positions in this area. A doctoral degree is generally required for research or teaching.
What are some examples of real-world applications?
Knowledge about embedded systems is widely applicable in the real world. Two important examples of real-world applications are:
- Medical devices, such as implantable and point-of-care diagnostics tools, which extensively rely on embedded systems
- Autonomous vehicles, which include a network of interconnected sensors and microprocessors that rely on real-time embedded systems engineering
Do embedded systems touch on global impact, equity and/or quality of life?
Yes. Embedded systems make up much of the digital world, and so they have a huge impact on how we think about equitable access to technology, as well as the responsible use and sustainability of that technology.
Areas of Impact
Air and Space
From the embedded systems that control the flight systems in aircraft, to the autonomous guidance and driving of a Mars rover, computer engineers with a focus in embedded systems are experts in creating such hardware and software systems.
Computing Data and Digital Technologies
Development of computing systems focuses on the hardware and software underpinning of computational systems and in harnessing current and future digital technologies.
Environmental Sustainability and Energy
There is an evolving need for developing new sensing systems that can better monitor energy in homes and buildings, as well as better monitor the environment (wildfires, soil, air quality) so appropriate action can be taken on information these sensors deliver.
Health and Medicine
As health and medicine evolve to use ever greater amounts of electronics, development of computing systems helps to create these diagnostic and treatment systems. From a smartphone that can automatically detect disease to the electronics that capture data and recreate imaging from CT and PET scanners, this technology relies heavily on embedded systems.
Infrastructure, Transportation, and Society
As the COVID crisis has shown, modern automobiles are reliant on a large number of digital chips and embedded systems to function. As we move toward self-driving automobiles, this will increasingly be the case. Development of computing systems brings together the hardware and software that underpins this technology.
Robotics and Manufacturing
Robotic systems couple hardware actuators with computing hardware and software to achieve a set of motions. Students following the Embedded Systems pathway, especially those who broaden into the related Control Systems pathway, will bring computation skills to these electromechanical systems.
Related Career Paths
Graduates will have the advantage of being qualified for jobs at companies that require skills in firmware and embedded systems, as well as software development skills. This includes well-known companies such as Google, Apple, Amazon and Microsoft, and it also includes other large-scale industries such as automotive, manufacturing/robotics and aerospace.
Embedded Systems Courses
These courses are suggested for those following the Sustainable Energy Systems pathway but are not required to complete the BSECE degree program:
EE 371 — Design of Digital Circuits and Systems
This course provides a theoretical background and practical experience with tools and techniques for modeling complex digital systems, using the Verilog hardware description language. Students will learn how to maintain signal integrity, manage power consumption and ensure robust intra- and inter-system communication.
EE 469 — Computer Architecture I
How does the machine code produced by a compiler translate into computation by a processor? How can we improve the performance of a processor, and what are the trade-offs that must be made? These questions and many more are answered by this course, as students receive an initial exposure to computer architecture and design their own processor in Verilog Hardware Design Language, an industry standard for hardware description.
EE 474 — Introduction to Embedded Systems
Computers are all around us, from the smartphones in our pocket, to the control systems in cars, planes, and robots, to many other systems where a microprocessor is embedded into a system it controls. This course takes a practical approach to introducing the hardware and software components needed to build an embedded system from the ground up.
CSE 373 — Data Structures and Algorithms
Fundamental algorithms and data structures for implementation. Techniques for solving problems by programming. Linked lists, stacks, queues, directed graphs. Trees: representations, traversals. Searching (hashing, binary search trees, multiway trees). Garbage collection, memory management. Internal and external sorting.
CSE 374 — Intermediate Programming Concepts and Tools
Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.
EE 475 — Embedded Systems Capstone
In this capstone class, students will work in teams to apply knowledge they gained in EE 474, Introduction to Embedded Systems, and from other previous ECE courses to prototype and build a substantial project that mixes hardware and embedded software and communication. Students often build projects in specific application areas that include but are not limited to health, robotics, Internet of Things (IoT), and smart systems. Students will also hear from experts in embedded systems to learn about emerging platforms, trends and job opportunities/prospects.
Students studying Embedded Systems should also consider the following customizable pathways:
Enriching Your Path
The following courses are also recommended for those following the Embedded Systems pathway:
- EE 342 — Signal Processing II
- EE 419 — Introduction to Networks
- EE 447 — Introduction to Control Systems
Students are also encouraged to take courses that provide a large amount of programming experience such as:
- CSE 410 — Operating Systems
- CSE 413 — Compilers
- CSE 414 — Databases
- CSE 415 — Artificial Intelligence
- CSE 416 — Machine Learning