ECE 458
Engineering Software for Maintainability
Tyler Bletsch
Description from DukeHub
Students will refine their ability to engineer software, with a focus on maintainability. Teams complete a large programming project whose requirements undergo evolutions during the semester. Prior to each evolution, teams submit their code for the current requirements and a written document analyzing their current design and reflecting on how past design choices impacted their most recent work. Teams must consider appropriate engineering standards and realistic constraints. Prerequisite: ECE 230L, 250D, 270DL, and 280L and (COMPSCI 308 or 307D or ECE 351 or instructor permission) and (MATH 353 or 356) and (STA 130L, MATH 230, MATH 231, ECE 555, ECE 380, STA 240L, EGR 238L, or MATH 340) and (PHYSICS 152L or 26) and (CHEM 101DL, 20, or 21).
Skills
- programmingdescription: "software" and 2 more
- designdescription: "design" and 1 more
AI-resilient: 1 of 5
- No: Physical, lab or field work
- Yes: Live work with people · "teams"
- No: Judgment someone is accountable for
- No: A craft you practice with your hands or body
- No: Small, in-person format
The checks lean on Microsoft Research, Working with AI (2025), which found generative AI applies least to physical work and hands-on work with people. A signal, not a promise. How the score works
More in ECE
- Fundamentals of Electrical and Computer Engineering ECE 110L
- Fundamentals of Electrical and Computer Engineering - Lab ECE 110L9
- Introduction to Microelectronic Devices and Circuits ECE 230L
- Introduction to Microelectronic Devices and Circuits-Lab ECE 230L9
- Fields and Waves: Fundamentals of Information Propagation ECE 270DL
- Fields and Waves: Fundamentals of Information Propagation (Lab) ECE 270L9