Concepts, theory, tools, and practice to understand, design, and write embedded software. This course covers computing elements, structures in embedded software, resource access protocols, uniprocessor scheduling, programming-language support, languages for MDD, worst-case execution time analysis, and overview of embedded distributed systems. [Offered: S] Prereq: ECE 254 or 354 or SE 350; Level at least 4A Electrical Engineering or Computer Engineering or Software Engineering