Embedded systems include almost any computing system other than traditional computers. Examples include cell phones, set-top boxes, traffic-light controllers, alarm systems, automotive systems, etc. Embedded systems is one of the fastest growing areas in computing, having high impact on people's lives, and with tremendous potential for innovative new products. In addition to the catalog subjects below, we'll focus on team skills and effective communication. Key concepts covered include the importance of TRADEOFFS (including between software and hardware) and the need to understand APPLICATIONS (requiring knowledge of fields outside of core computing or electronics).
Past student evaluations of this course consistently echo two key points: Students work hard (but not unreasonably so), and learn a LOT of useful and interesting material (that they later often email was central in their getting a great job). Catalog description : CS 122A. Intermediate Embedded and Real-Time Systems (5) Lecture, 3 hours; laboratory, 6 hours. Prerequisite(s): CS 012, CS 120B/EE 120B. Covers software and hardware design of embedded computing systems. Topics include hardware and software codesign, advanced programming paradigms including state machines and concurrent processes, real-time programming and operating systems, basic control systems, and modern chip and design technologies. Laboratories involve use of microcontrollers, embedded microprocessors, programmable logic and advanced simulation, and debug environments.
To ensure minimum competency in both principles and practice, students must pass the lab component and the lecture component individually, meaning 60% or more of the points of each, in order to pass the course.