Credits: 3
Semesters Offered
Spring 2021, Spring 2022Learning Objectives
Students will gain experience in embedded software system design with an emphasis on handling important characteristics that are common in embedded applications -- resource constraints (limited resources for processing and limited memory), and real-time interfacing to the physical world. Topics that will be covered and integrated into the students design experience include embedded processor architectures, object-oriented design, model-based design, software testing, version control, real-time processing, embedded signal processing, and concurrent programming
Topics Covered
- Embedded software design flow
- Object-oriented software design
- UNIX/Linux concepts
- Unit testing
- Dataflow modeling
- Embedded image processing
- Machine learning for image analysis
- Collaborative software development using version control systems
Learning Outcomes
- Design and implement embedded software using C++ and shell scripts.
- Understand and apply test-driven design methodologies for software development.
- Apply Linux-based tools to design, implement, and debug embedded software.
- Analyze design decisions to understand and optimize design trade-offs in complex projects.
- Utilize teamwork and communication skills to formulate and execute a project plan and software system design with other team members.
- Improve presentation and technical writing skills through oral presentations and written reports.