Basic introduction to principles of software engineering including unit testing, test driven development, refactoring and more.
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 all details about this course.