18-642 Embedded System Software Engineering

{642 Banner Image}

Fall 2021 | Prof. Philip Koopman
Carnegie Mellon University, ECE Department

Fall 2022 Notes: Class weekly Thursday 6:30-9:20 PM US ET; delivery mode is In Person Expectation (IPE); fully inverted mode (primary lectures pre-recorded; weekly class meeting is for discussion and special presentations). Synchronous attendance at the weekly class meeting is required even if some or all students are remote due to special circumstances. Class meetings will not be recorded under any circumstance. Syllabus information is tentative and subject to change before classes begin. The syllabus below on this web page will be updated by the first day of class, but is not expected to vary dramatically other than different guest speakers.

Fall 2022 Wait List: There is a wait list for the course. We'll resolve the wait list based on availability of TAs and classroom size, with the process typically taking place in the first week or two of class meetings. Please note that your position on the wait list is not your order of admission because of department policies (for example, grad students in relevant degree programs are admitted before undergrads even if the undergrads have an earlier wait list position). Please respond to any course instructor e-mails regarding the wait list promptly to help us enroll as many students as possible within the course carrying capacity limits.

[Main Course Page] | [FAQ] | [Policies]
Please read the FAQ before e-mailing the instructor!
Archive.org has a complete set of lectures and slides from Fall 2021 here: archive.org link

Consult Canvas to determine when assignments are officially released. Links to materials will go live when updated on Canvas, so please don't worry about broken links until we get to that week. Syllabus is subject to change as the instructor deems necessary based on resource limitations and schedule disruptions caused by the ongoing COVID-19 pandemic.

2021 syllabus is below -- subject to change for 2022.

Fall 2021
Lecture Date
Lecture Slides
For reference
Video Lectures
Due on Wednesday night;
(AV lectures due Sunday night)
Due on Following Monday Night
Group Exercise
Due on Following Tuesday Night
Due on Following Friday Night
  Classes Start Project 1 intro video is playable on Canvas assignment page.     Proj #1 (Startup)
Due Fri 3-Sep-2021
Week 1
1 Course Topics Overview Embedded Software
Code Quality,
Safety, Security

(44 min)
HW #01
Self Intro
(DUE Wed 1-Sep-2021)
  Proj #2 (Initial Cleanup)
Due Fri 10-Sep-2021
  2 Admin Info Course Overview & Administrative Matters
(Video on Canvas only)
(40 min)
HW #02
Computer Safety Literacy Stories; slide & video
(DUE Tue 7-Sep-2021)
  100 (No slides) AV: Look Who's Driving
(54 min) (PBS Nova)
  120 Overview of Automated Vehicle Terminology and J3016 Levels
OPTIONAL Background Info
(No quiz on Canvas)
AV: Overview of Automated Vehicle Terminology and J3016 Levels
(20 min)
  Live: Discuss: Q&A on course policy & content Discuss: Self-intro Part 1 (HW #1) Fill out weekly survey after class each week.    
  Labor Day
No office hours
Week 2
3 SW Process SW Process
(49 min)
HW #03   Proj #3 (Code Style)
Due 17-Sep-2021
  4 Code Style for Humans Code Style for Humans
(15 min)
HW #04    
  5 Code Style for Compilers Code Style for Compilers
(21 min)
  6 Peer Reviews Peer Reviews
(33 min)
  GP #06
Peer Review Exercise
  Live: 6:30 PM Guest: Junko Yoshida,
Business & Technology Journalist
Finish Self-Intro/
Peer Review Exercise
7:30 PM Guest:
Alex Roy, Argo AI
Week 3
7 Requirements Requirements
(24 min)
HW #7 GP #07
Alarm Clock Requirements
Proj #4 (Group Peer Review & Display Change)
Due 24-Sep-2021
  8 Global Variables Globals
(13 min)
  9 Spaghetti Code Spaghetti
(18 min)
HW #9    
  10 Toyota UA Case Study Toyota UA
(60 min)
HW #10    
  Live: Guest: 6:30 PM
Ben Bauchwitz, Duke Univ. (Tesla Testing)
Discuss: HW #3, HW #4 Guest: 7:30 PM
Shelly Van Dyke & Antoine Dubois, NXP
Discuss: HW #2 (failure stories)  
Week 4
11 Stack Overflow Stack Overflow
(8 min + optional videos)
    Proj #5 (Refactor & Design)
Due 1-Oct-2021
  12 Software Architecture and HLD Software Architecture and HLD
(15 min)
  GP #12: Alarm clock
Sequence Diagrams
  13 Statecharts Statecharts
(19 min)
HW #13    
  14 Traceability Traceability
(11 min)
  101 AV: Software Safety for Vehicle Automation -- Intro AV: Software Safety for Vehicle Automation -- Intro
(10 min)
  Live: Guest 6:30 PM:
Dr. Beth Osyk
Seegrid Technology
Discuss: HW #9 Guest 7:30 PM
Jack Weast, Intel/Mobileye
Week 5
15 Testing Overview Testing Overview
(20 min)
  GP #16: Alarm clock
Proj #6 (Redesign SD and Requirements)
Due 8-Oct-2021
  16 Unit Testing Unit Testing
(18 min)
HW #16    
  17 Integration Testing Integration Testing
(15 min)
18 System Level Test System Level Test
(18 min)
  102 AV: Validating Machine Learning-Based Systems AV: Validating Machine Learning-Based Systems
(30 min)
  Live: 6:30 PM Guest:
Deborah Prince, Underwriters Laboratories
7:30 PM Guest:
Dr. Charles Shelton, Bosch
Discuss: GP #12    
Week 6
19 Race Conditions Concurrency & Race Conditions
(21 min)
  GP #p05 Peer Review Proj 5 Proj #7 (Redesign Statechart and Code)
Due 22-Oct-2021
  20 SQA Isn't Testing SQA Isn't Testing
(13 min)
  21 Lifcycle & CM Lifecycle & CM
(19 min)
  22 Software Maintenance Software Maintenance
(15 min)
HW #22 Mid-Semester Cumulative Review HW
(Start early! Due in two weeks)
  103 AV: SOTIF and Edge Cases AV: SOTIF and Edge Cases
(31 min)
  Live: Guest 6:30 PM
Michael Lucido, GM
Discuss: GP #16 Guest 7:30 PM
Finch Fulton, Locomation
Week 7
  No Class
Mid-semester break
No office Hours
Good week to get ahead on lectures and homeworks if you have the time to do so.      
    Mid-semester decompression week No lectures/no quizzes HW #24 Time Stories (due in 2 weeks) GP #p06 Peer Review of Proj 6 Continue to work on Proj #7
Week 8
23 Key Metrics Key Metrics
(13 min)
    Proj #8 (Static Analysis, Build)
Due 29-Oct-2021
  24 Date & Time Date & Time
(26 min)
  25 Floating Point Pitfalls Floating Point Pitfalls
(17 min)
HW #25 Floating Point    
  26 Safety Overview Software Safety Overview
(16 min)
  Live: Retrospective Q&A 7:30PM Guest:
Dr. Qi Hommes, Zoox
Week 9
27 Dependability Dependability
(19 min)
HW #27 Dependability GP #p07 Peer Review of Proj 7 Proj #9 (Unit Test part 1)
Due 5-Nov-2021
  28 Critical Systems Critical Systems
(21 min)
  29 Safety Plans Safety Plan
(26 min)
  30 Single Points of Failure Single Points of Failure
(17 min)
  104 AV: Implications of Removing the Human Driver AV: Implications of Removing the Human Driver
(32 min)
  Live: Guest: 6:30 PM
Nat Beuse, Aurora
Guest 7:30 PM:
Reilly Brennan, Trucks.VC
Week 10
31 Safety Requirements Safety Requirements
(17 min)
HW #38 Security Stories 1 GP #p08 Peer Review of Proj 8 Proj #10 (Unit Test part 2 & Runtime Monitor part 1)
Due 12-Nov-2021
  32 Critical System Isolation Critical System Isolation
(17 min)
  33 Redundancy Managment Redundancy Management
(20 min)
  105 AV: Safety Architectures AV: Safety Architectures
(28 min)
  Live: Guest 6:30 PM:
Jackie Erickson, Optimus Ride
NTSB Hearing Intro (6 min)
Discuss: Time stories
Guest: 7:30 PM
Dr. Ensar Becic, NTSB
Fri 5-Nov   Community Engagement Day
No office hours
      Free one-day extension for Project due today.
Week 11
34 Safety Architecture Patterns Safety Architecture Patterns
(42 min)
HW #39 Security Stories 2 GP #P09 Peer Review of Proj 9 Proj #11 (Runtime Monitor part 2)
Due TUESDAY 23-Nov-2021
35 Data Integrity Data Integrity
(29 min)
  106 AV: How Safe Is Safe Enough? AV: How Safe Is Safe Enough?
(21 min)
  Live: Guest 6:30 PM:
Dr. Kim Wasson, Joby Aviation
Discuss: Security stories  Guest 7:30 PM:
Dr. Barbara Czerny, Aptiv
Week 12
36 Cryptography Cryptography
(33 min)
HW #41 End of Semester Cumulative Review
(Must be completed -- two weeks)
GP #P10 Peer Review of Proj 10 Proj #12 (Final Hand-in)
Due 6-Dec-2021
37 Security Plans Security Plan
(29 min)
38 Security Threats Security Threats
(24 min)
  107 AV: Building Trust AV: Building Trust
(14 min)
  108 AV: Getting to Deployed + Safe AV: Getting to Deployed + Safe
(14 min)
  Live: Guest 6:30 PM:
Dr. Mallory Graydon, NASA
Discuss: Security Stories Guest 7:30 PM:
Dr. Sagar Behere, Aurora
Week 13
  No Class Meeting Thanksgiving Break   GP #P11 Peer Review of Proj 11
Due 3-Dec-2021
      Do yourself a favor and finish rest of course lectures THIS week. Work on HW #41 this week.   Continue Working on Proj #12
24-26 Nov   No Office Hours Wed-Fri this week Thanksgiving Break      
Week 14
39 Security Vulnerabilities Security Vulnerabilities
(29 min)
    Continue Working on Proj #12
  40 Security Mitigation & Validation Security Mitigation & Validation
(34 min)
  41 Security Pitfalls Security Pitfalls
(24 min)
(This includes a review of previous concepts)
  109 AV: UL 4600 AV: UL 4600
(20 min)
(Due with other lectures Wed night)
  Live: Guest: TBD Retrospective Q&A      
No Class Meeting
  Please do end-of semester (W15) weekly survey after Project 12 hand-in.   Proj #12 (Final Hand-in)
Mon 13-Dec-2021 at 4:00PM   Last day to hand in late assignments or request Incomplete course grade. No extensions past this date without an "Incomplete" grade request in writing.      
Supplemental lectures (optional enrichment material):

Supplemental materials: