Skip to content

klavins/ECEP520

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECE P 520: Software Engineering for Embedded Applications

Modern embedded systems programming starts with the hardware and extends all the way to the cloud. The resulting myriad of programming languages, libraries, tools, data structures, and algorithms may seem difficult for any one programmer to master. In this course, we introduce the fundamentals of programming languages and software engineering common to all levels of embedded systems programming, giving students the conceptual tools they need to tackle any project.

Specifically, this course takes a detailed look at two programming languages, C++ and Javascript; teaches students how to use build tools, version control, and advanced editors; describes how to use and create software libraries; and ties everything together with a more substantial software engineering project.

Lectures: Thurs 6pm - 9pm

Homework: Due weekly

Instructor: Prof. Eric Klavins. Office hours: TBA

Teaching Assistants: Justin Vrana and Kung-Hung (Henry) Lu

Canvas Page: (with announcements, discussions, and grades): https://canvas.uw.edu/courses/1255003

Syllabus (Approximate)

  • Week 1: Basic tools: Git, Docker, Make, UNIX, and the C compiler
  • Week 2: C syntax and data types
  • Week 3: Building APIs in C
  • Week 4: Fundamentals of C++ and object oriented programming
  • Week 5: C++ Standard Template Library
  • Week 6: Event loops, process control, and scheduling
  • Week 7: Events and finite state machines
  • Week 8: Networking
  • Week 9: Cloud computing
  • Week 10: Projects

Homework

Homework will be assigned weekly, and will be due the following Wednesday. Homework will be submitted by pushing your code and other materials to a github repository. We will clone your code and attempt to run it and grade it based on functionality, completeness, and style. Code is expected to be documented and have associated unit tests.

Resources

  • The Elma process manager
  • Prof. Klavins' Dockerhub account
  • We will be using Github for version controlling all of our code.
  • Please use the Visual Studio Code to edit your code for this course.
  • Google Test unit testing environment
  • Docker container creation and management system
  • C++ language documentation
  • Doxygen API documentation generator

References

About

EE590: Advanced Programming for Embedded Systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published