Basic introduction to principles of software engineering including unit testing, test driven development, refactoring, CI, and automation.
Paper We published the paper Teaching Software Engineering As Programming Over Time in the IEEE/ACM 4th International Workshop on Software Engineering Education for the Next Generation which contains further details on this course.