The importance of software bug detection tools is high with the constant threat of malicious activity. Companies are increasingly relying on software bug detection tools to catch exploitable bugs before the program is released. This paper describes a course on software bug detection techniques that is aimed at undergraduates. Courses in software verification are often taught at the graduate level and too theoretical and research oriented for undergraduates. A key component of the course is the programming assignments where students gain practical experience in creating their own software bug detection tools using a source to source converter for a subset of C++. Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education – Computer Science Education D.2.5 [Software Engineering]: Testing and Debugging – symbolic execution, testing tools. General Terms Reliability, Security, Verification. Keywords software testing, software verifica...