Fall 2025 Course Review: EECS 571

2026-01-05

Course Title: Principles of Real-Time Computing

Rating: 2/5

Instructor (Kang G. Shin)

A senior professor who runs the Real-Time Computing Lab (RTCL), and is also co-author of our textbook. I'm not going to comment on him since he has retired.

Course topics

Honestly, I was not exactly following the trajectory of this course, so I'm only listing what I remember. The topics might change with a different professor in future semesters.

  • Concepts
    • Real-time computing
    • Cyber-physical system (CPS)
  • Task scheduling in increasingly complex scenarios
    • Uniprocessor: RM, EDF, LLF
    • Priority inversion
    • Multiprocessor: partitioned, global
    • Mixed criticality
    • Dependencies
    • Fault tolerance
  • Guest lectures by Ke Sun: The applications of ML in RTC

The lectures are primarily theoretical. We are focused on guarantees: if you can't guarantee these tasks will meet their deadlines, they're unschedulable. In this regard, this course is similar in spirit to 482 and 491.

My favorite part was when we proved the Liu & Layland utilization bound which I was taught in 473. I also enjoyed learning about multiprocessor scheduling and how utilization bound no longer works there.

Comical amount of acronyms

Every task has a WCET. When scheduling tasks, RM is a form of TFP, EDF a form of JFP, and LLF (aka MLF or LSTF) a form of JDP. To fix priority inversion use PIP or PCP. This is the highest acronym density I've encountered in an EECS course.

Class presentation

We had a mandatory class presentation where each of us has to present a paper related to the course. However, they did not say how old they can be, so while my peers presented recent papers, I found one that's slightly younger than me. It presents the Hyperbolic Bound (2003), which is an improvement upon the Liu & Layland Bound (1973) given that you know the utilization rate of individual tasks, not just the total. And my goal is to get creative with my slides.

Slide deck thumbnails. The presentation is on a 2003 paper on the
hyperbolic bound, a real-time computing topic. Illustrations include
various graphs, a "thumbs-up" stock image, the neocat thinking emote, Tom
(from Tom & Jerry) shrugging, "Theorem Proved" in the dark souls "You
Died" font, and gigachad saying "no".

Google Slides link

I was the only one whose image credits go to Desmos, Volpeon, and Know Your Meme.

I was treading the line between a serious academic presentation and standup comedy, but it was a Monday morning, and not many people were awake, let alone laughed.

Project

I'll be frank, the project had nothing to do with what was taught. We were instructed to come up with a proposal of our own, that needed to be a cyberphysical system with hints of real-time elements. My team's project is a remotely operated vehicle with adaptive haptic feedback. The vehicle is an AgileX Hunter 2, a robotic car running Ubuntu 18.04. The "adaptive haptic feedback" is basically just changing the spring constant in my teammate's Fanatec steering wheel depending on the speed of the vehicle as predicted on the operator end.

It was not easy to test, since we were mostly constrained in the RTCL, a lab on the 4th floor of BBB. Our testing environment was the hallways. My teammate would tape his phone to the front of the robot and stream the video to his laptop via Discord. One of us would control the steering wheel and pedals, and the other would follow the robot around with its stock remote control in case it goes rogue.

Compared to other projects, I would say this is the simplest one. I wish not to elaborate further.

On the presentation day, we brought the robot to the conference room (also in BBB) and presented a live demo with me remotely driving the robot on a loop around the hallway. The video stream is projected on the screen for everyone to see, and my teammate followed the robot.

Presentation quote out of context:

This steering wheel allowed us to play a game starting with "F" and ending with "orza Horizon".

Exam

There was one singular final exam on lecture time. The exam was tediously long. Honestly, I haven't heard of several things mentioned on the exam (e.g. "cyclic executive") because I skipped these lectures. At least Prof. Shin was kind enough to say before the exam started that Q3 was the hardest one and we should do it last. And it was.

Q3 required us to schedule three periodic tasks and a periodic ISR, each acquiring various locks and preempting each other, and we had to simulate them, taking account of dependencies, at each time step figure out which task should run next. The diagram went on so long I ran out of space, so I continued on scratch paper, but ultimately failed to finish it on time. So I just wrote "is Sisyphus happy?" in a box.

Verdict

It was my first time taking a 500-level course. By the time you read this, the course should have changed. But here are my thoughts:

  • Lectures could be better motivated
  • I am an engineer and I don't foresee the theory coming up in my job
  • Project was lowkey irrelevant to lectures
  • The three papers to summarize per homework was a lot of work
  • The grading was super lenient

EECS 571 taught me enough to hold a discussion with an expert in the field of real-time computing for around 5 minutes, but there is still much to learn.