Software Engineering for Computational Science introduces essential skills and tools required to write, maintain, and share software. The use of terminals, unix utilities, text editors, compilers, and debuggers is introduced. C++ is introduced and used for most examples and assignments. The proper use of version control and other best practices are introduced early and used throughout the course. Assignments center around the ongoing development of a small scientific application.