Redesigning an Electrical Engineering curriculum with a focus on systems principles and engineering design

With new courses at the freshman, sophomore, and junior levels, Michigan ECE is training tomorrow’s engineers to be leaders in a diverse workforce in service to society.

EECS 300: graduate student instructor at a lab station Enlarge
Graduate student instructor Mayukh Nath shows us some of the equipment in the EECS 300 lab area, which also serves as the lab for EECS 200.

The University of Michigan undergraduate program in electrical engineering has been redesigned to place a stronger emphasis on systems principles and engineering design, with projects having a positive impact on society. The onslaught of COVID-19 led to imaginative solutions that could further enrich these lab-based courses even post-pandemic.

“These new courses will give students experience early in their student careers synthesizing what they learned in different courses and then applying it to a complete system having an application that is in service to society,” said Mingyan Liu, Peter & Evelyn Fuss Chair of Electrical and Computer Engineering (ECE). “This goes to the heart of what it means to be an engineer.”

Big changes have been happening in ECE-related areas, such as automation, new materials for electronics, communications, big data, and sustainable energy; and students need to be prepared to be the masters of that change.

The ECE Undergraduate Curriculum Innovation Committee was formed in 2015 to do an in-depth review of the curriculum, and if needed – make changes that would address the global challenges and job demands faced by our students. 

“We were trying to develop some form of course sequence that would make connections between the fundamental coursework, and also provide motivation for how they’re going to solve societal problems once they graduate,” said committee chair Jamie Phillips.

"This goes to the heart of what it means to be an engineer."

Mingyan Liu, Peter & Evelyn Fuss Chair of ECE

By 2018, plans were in place to incorporate two new courses, sophomore and junior level, into the core EE curriculum. In parallel to this planning, a new course with many of the same goals was developed for freshman engineers, and taught for the first time in 2018. These three courses are:

  1. ENG 100: Self-Driving Cars, Drones, and Beyond: An Intro to Autonomous Electronic Systems (1st year undergraduate course open to all engineering disciplines)
  2. EECS 200: Electrical Engineering Systems Design I (2nd year undergraduate course in electrical and computer engineering)
  3. EECS 300: Electrical Engineering Systems Design II (3rd year undergraduate course in electrical and computer engineering)

Each of these courses have two defining features:

  1. Training in systems and open-ended engineering design
  2. Introduction to a broad range of EE topics, and how they can be applied to areas of positive societal impact, such as health care, energy & sustainability, automation, and communication

“Design is this unfortunate observation that most problems aren’t homework problems,” said Shai Revzen, co-designer of EECS 300. “That is, most problems aren’t specified well enough for you to know how you should approach the answer.”

With each new problem you want to solve in the world, there’s a wealth of possibilities that need to be narrowed down before you can plan a technical solution. Fortunately, this process can be taught – and it’s called engineering design.

“If you’re smart about design it doesn’t just affect the product, it affects the process,” says Revzen. “And if you’re smart about the process, then you end up working less to get a better result. And that’s true no matter what your discipline is.”

"If you're smart about design it doesn't just affect the product, it affects the process."

Prof. Shai Revzen

With each project, students are trained to consider the overall system, even if they only work on one part of it. A successful solution to the problem will have considered how all the individual parts fit together into a unified system that can be implemented in the real world.

By selecting topics of immediate importance to society, students understand their unique contribution to a rapidly evolving world. A world that is not only technologically savvy, but facing issues of inequity, globalization, and uncertainty.

Adversity breeds innovation

COVID-inspired engineering innovation is all around us, but perhaps most hidden is the work being done by teachers across the country moving to digital platforms in an effort to educate our students.

The COVID-19 crisis meant that the EE curriculum, known for its hands-on labs, was going to require some significant re-thinking in many of its courses, including these three which are all heavily lab based.

In the following review of ENG 100, EECS 200, and EECS 300, each course will be described as originally envisioned and taught, as well as how COVID-19 forced significant changes to how the labs were done. Some of the solutions may be continued post-pandemic; they may also serve as a model for how other institutions, perhaps lacking major lab equipment and/or space, could offer similar courses.

ENG 100: Self-Driving Cars, Drones, and Beyond: An Intro to Autonomous Electronic Systems

Video describing the course ENG 100 in its first semester (2018)

At Michigan, students don’t select their majors until their sophomore year – after they’ve had a chance to learn more about all the different areas in engineering. For most students, their first engineering course will be an Engineering (ENG) 100 course. Focused on different projects, these courses introduce students to the technical, economic, safety, environmental and social aspects of a real-world engineering problem.

“They get to see how things really work for autonomous vehicles.”

Prof. Robert Dick

ECE faculty had already developed a first-year course in solar energy and wireless systems, and felt it was time to introduce students to the world of autonomous systems from an ECE perspective. What better way than through a robotic system?

Autonomous systems such as quad copters and self-driving cars are being used today in a wide range of applications; from helping first responders, to smart farming, to driving you to work, to delivering goods to your home.

This newest ENG 100 course features core ECE topics such as embedded systems, sensors, circuits, signal processing algorithms, and control algorithms. Students learn, develop, and implement key functionalities in an autonomous drone to manage sensing, data acquisition and processing, and motion control. Their final project is to set their drone loose to navigate a maze.

“We wanted them to get serious design experience working with commercially used software platforms. The flight controller they build upon and extend is quite complex,” said Robert Dick, co-creator of the course along with Liu. “They get to see how things really work for autonomous vehicles.” 

This team-based course has become quite popular among freshmen.

COVID-19 forces change: virtual drone project a winner

The first students to take ENG100 tested their drones in the outdoor MAir facility. The testing location was later moved inside the EECS Building atrium in order to provide a less windy, more stable environment. 

"There are a lot of future possibilities we can think of even post pandemic."

Prof. P.C. Ku

However, with the building in lockdown due to COVID-19, they moved again, this time to a more traditional lab space. The class had the space all to themselves last term, but had to pivot again for the current term, when they had to share the space with another ENG 100 course. This meant a physical maze would be out of the question. Prof. PC Ku, slated to teach the course this term, immediately started looking for alternatives to a physical drone. 

Not a programmer (his specialty is nanophotonics), Ku wanted to find an already-developed solution that could simulate a drone, complete with the same sensors used in the previous semesters, yet allow the students to develop, test, and implement their own algorithms.

That solution turned out to be Microsoft’s open source platform known as AirSim, a simulator for drones and other autonomous systems that is built on Unreal Engine.

However, AirSim needed to be altered so that it didn’t do all the work for the students.

The task fell on graduate student Juhyeon Kim, who, in addition to his expertise in quantum optics, also happens to be a gaming aficionado.

“Many 3D games use Unreal Engine to calculate the physical phenomenon,” said Kim. “I adapted the system so that in addition to sensing distance in a virtual environment, we can set the direction and power of the wind, and we can even add rain or snow, which we can’t do in the physical lab. I think that’s one exciting thing that we can do with the simulation environments.”

Here is a brief clip showing the drone simulator:

The simulated drone makes its way through the maze. The green lines indicate LiDAR sensors.

“I’m very excited about the project,” said Ku. “We’re going to set up the virtual maze, but then the students don’t have to be limited by it. They may decide to do something more fun, more challenging. And there are a lot of future possibilities we can think of even post pandemic.”

EECS 200: Electrical Engineering Systems Design I

Electrical Engineering System Design I is the first of two new required courses in electrical engineering focusing on engineering design – using a 2-wheeled robot platform with a societally-relevant challenge.

Students spend time exploring the subsystems that allow the robot to sense, think, and act; and then work together in teams to help the robot achieve a specific goal, such as navigating a maze to find an object, mimicking a search and rescue activity. Starting from a stripped-down robot the first week, the final robot has heat sensors, a video camera, and distance sensors for navigation.

“One week in the lab you’re working on some kind of hardware. The next week you’re working on some software that makes that hardware do something,” said Leland Pierce, the research scientist and lecturer who developed the labs and is now teaching the entire course.

“It’s very modular,” said Jamie Phillips, who developed the course. “You break down a particular piece that’s like a guided laboratory type experience, but is ultimately going to apply to your final project. As you get towards the later stage of the class, you say, ‘Okay, we’re going to take these pieces together that you built and now here’s the primary design challenge. You have an open-ended way of piecing those modules together to accomplish your goals.”

"I was still exploring what I wanted to do as an engineer, but seeing this entire systems perspective drove me towards embedded systems.”

Michael Shkolnik, Undergraduate student

The engineering design element is a bit more advanced than in an ENG100 course, but students are still guided through the process until the final project. At that point, students create their own design, and explain why their choices make sense. 

The course was introduced Fall term 2019, and one of the first students to take the course was Michael Shkolnik. He took the course because it seemed like it would allow him to graduate faster (at that time, he could have remained under the old system of requirements).

“It was a lot of fun,” said Shkolnik, who is now taking EECS 300. “We went over all these broad concepts that relate to so many different fields of engineering – and by the end we made this really cool robot. I was still exploring what I wanted to do as an engineer, but seeing this entire systems perspective drove me towards embedded systems.” 

Michael enjoyed the course so much, he is now a teaching assistant for EECS 200.

COVID-19 response: creating a realistic virtual lab

How do you make sure students get their tuition’s worth in a course designed to provide hands-on experience in the midst of a pandemic?

Pierce spent months developing software that closely mimics the lab setup. Everything students did in the lab, such as grabbing wires to connect the breadboard socket to the breadboard banana socket, and cables to connect the breadboard to the power supply, or grabbing a motor – they can now do virtually. The virtual lab also mimics sensors, arduinos, cameras, and includes a ruler to measure distance.

EECS 200 Lab Station Enlarge
Individual lab station for EECS 200 accommodates a team of four, or just one person during COVID-19 restrictions.
EECS 200 lab simulation Enlarge
Simulated lab equipment for EECS 200

“The lab itself has a bunch of test equipment and each one of these virtual gadgets is basically the exact same test equipment that they have in the lab,” said Pierce. “I programmed it up to look the same and operate the same in the browser. It’s all clicks instead of grabbing equipment.”

A misplaced wire won’t work. And even if everything is properly connected, if they don’t realize a certain power threshold needs to be met to turn the wheels of the robot, nothing will happen – just like in real life. These unexpected problems can be frustrating for students – but it’s an important part of the process. 

This virtual lab setup was a huge amount of work for a relatively temporary solution, but it could make its way into the curriculum even post-pandemic.

Demo of the simulated vehicle searching for the missing person, symbolized by the orange bottle. Narrated by Dr. Leland Pierce.

“Every semester we have people that miss labs or don’t finish labs or need more time. I think this could be a way to assist with that,” said Pierce. 

But perhaps even more importantly, he added, “I’m hoping that I can turn this into something that schools that don’t have access to this kind of technology could use. This is about as close as you can get to the actual instruments.”

Currently, students can take the course remotely using Pierce’s virtual setup, or come into the lab and work on real equipment, depending on their comfort level. Very strict measures are in place to prevent any spread of COVID-19.

“After taking EECS 200,” said Shkolnik more than a year later, “I took 215 [Intro to Electronic Circuits], 216 [Intro to Signals and Systems], 270 [Intro to Logic Design], and 370 [Computer Architecture], and I could come back to this class and every single time, I would think – ‘Oh, I learned that in this class; I saw this control systems concept in this class.’ You don’t really realize it at the time, but it is a pretty valuable experience and helps change things that are super theoretical to things that I actually worked with in a lab setting.”

EECS 300: Electrical Engineering Systems Design I

EECS 300: graduate student instructor at a lab station Enlarge
Graduate student instructor Mayukh Nath shows us some of the equipment in the EECS 300 lab area, which also serves as the lab for EECS 200.

“You have to really engage students and turn them from what I call makers into engaged young engineers and, ultimately, engineers that can lead other young engineers."

Steve Battel, Professor of Engineering Practice

By the time students reach EECS 300, they will have taken several additional courses in electrical engineering and are ready for more challenging adventures in engineering design.

Just like the faculty selected to create ENG 100 and EECS 200, the two faculty who were most closely involved in developing EECS 300 were uniquely suited to bringing the course to life.

Brian Gilchrist brings his experience in multidisciplinary design, and Shai Revzen his love for open-ended design, reflected in his senior-level Hands-on Robotics course. To design the labs, Revzen recruited master’s student Duncan Abbot, co-founder of a VR company who worked with Revzen as an undergraduate student. In fact, Abbot wanted to teach the course so badly, he enrolled for his master’s degree just to be a graduate student instructor for the course.

A recent addition to the team is Professor of Engineering Practice, NAE member, and ECE alumnus Steve Battel, who brings his lifelong passion for mentoring young minds and building high tech electronic devices for space. His machines fly all over the solar system.

“You have to really engage students and turn them from what I call makers into engaged young engineers and, ultimately, engineers that can lead other young engineers,” said Battel.

The original lab project for the course was a Smart Water project. Students would build water sensors with the goal of reducing the cost of current systems that monitor water quality. But the challenges of in-door water testing, especially under COVID-19 restrictions made testing too difficult.

This semester, the project pits the Internet of Things vs. COVID-19. 

“Students are applying IoT technology to enhance campus safety in COVID-19 times by tracking the number of people entering and exiting a building, the classroom, or an open study area,” said Gilchrist.

The project touches upon the knowledge gained in four pre- or corequisite courses, integrated into a single application. The project forces the students to be systems thinkers and think wholistically.

“For the new project, we decided that it had to be something that could be tested even at home,” said Abbot, who says the project also brings up interesting conversations around the future of such technologies and privacy.

“The students have access to a wide variety of sensors, including a camera,” explained Abbot. “There’s a really interesting chip that has a camera, wifi, and bluetooth; it’s just insane. The bluetooth could scan someone’s phone and find out who they are.”

COVID-19 inspired lab kits

eecs 300 lab kit Enlarge
Lab kits identical to this were sent to every student taking EECS 300 so they could complete the labs at home.

As was instituted in several other ECE undergraduate courses in response to COVID-19, lab kits were sent to each and every student in the class so they could all work from home if needed. Teams are made up of students who are a combination of hybrid or remote.

A positive aspect of each student having their own kit is they each get experience implementing the lab. 

“Before – it could be the case that 1 or 2 team members would take over, so that some didn’t get the complete experience,” said Abbot. “I’m finding more people are struggling with this than when I taught the course in person, and that’s probably because everyone is doing it this time instead of only the people who are good at it.”

The lectures in EECS 300 are not strictly tied to the labs. “A key component to the selection of guest faculty instructors,” said Gilchrist, “is to have disciplinary experts illustrate the connection of their field to the project as well as reveal more advanced concepts they might see in later courses.”

As in the ECE-inspired ENG 100 course and in EECS 200, students leave EECS 300 with a clearer understanding of which future courses match their own passions. And they will more fully understand the expertise of future professional team members after they enter the workforce. There is a strong benefit, when working in multidisciplinary teams, to have some level of understanding of all disciplines involved.

Cumulative benefits + Next steps

The next major step in the education of Michigan undergraduate students is their senior-level major design experience (MDE) course. Through the journey of ENG 100, EECS 200, EECS 300, and their MDE, undergraduate students will have strengthened their independent learning skills, design skills, and their project management skills. And they will have done it while developing their problem-solving and engineering design skills.

Perhaps most importantly, students graduating from the program will find themselves well equipped to lead diverse teams working together to solve the increasingly complex, system-level problems of modern society.

Given the success of the new courses described above, Revzen is now leading a committee charged with reviewing Michigan ECE’s current MDE courses, with an eye to further advancing their problem-solving and system design skills.

“Students start out with an almost hobbyist level introduction to engineering in ENG 100,” said Revzen, “and end up with an MDE where we’re sending them out to the wilds of this design problem, with only a little bit of guidance from faculty, to try out all these things they’ve learned and make all these connections in their head. We’re training students to be that lead designer in a team.”


The leaders and developers

The curricular changes described above was a team effort. Here are the primary contributors:

ENG 100 team of developers

  • Robert Dick, faculty committee member and primary developer
  • Mingyan Liu, faculty committee member and primary developer
  • PC Ku, faculty developer of the COVID-19 version of the course
  • Juyheon Kim, doctoral student developer of the labs for the COVID-19 version of the course
  • David Wentzloff, faculty committee member
  • Herb Winful, faculty committee member

EECS 200 team of developers

  • Jamie Phillips, faculty committee member and primary developer
  • Leland Pierce, faculty committee member and primary lab developer of both in-person and COVID-19 versions of the lab
  • Cindy Finelli, faculty committee member
  • Brian Gilchrist, faculty committee member
  • Necmiye Ozay, faculty committee member
  • Dave Wentzloff, faculty committee member

EECS 300 team of developers

  • Brian Gilchrist, faculty committee member and primary developer
  • Shai Revzen, faculty committee member and primary developer
  • Duncan Abbot, master’s student and primary lab developer
  • Cindy Finelli, faculty committee member
  • Necmiye Ozay, faculty committee member
  • Jamie Phillips, faculty committee member
  • Dave Wentzloff, faculty committee member

ECE Undergraduate Curriculum Innovation Committee

  • Jamie Phillips, faculty committee chair (and now Chair of the Department of Electrical and Computer Engineering at the University of Delaware)
  • Brian Gilchrist, faculty committee member, committee chair
  • Anthony Grbic, faculty committee member
  • Stephane Lafortune, faculty committee member
  • Catie Lenaway, staff committee member
  • Somin Lee, faculty committee member
  • Ted Norris, faculty committee member
  • Clay Scott, faculty committee member
  • Vijay Subramanian, faculty committee member
  • Zhengya Zhang, faculty committee member