Software Development for Trusted Systems
Software systems need to be free from security vulnerabilities, such as buffer overflow and stack smashing. Unfortunately, avoiding these weaknesses when programming in popular languages like C and C++ requires special discipline and attention to details not often stressed in introductory courses. This course teaches students to recognize security weaknesses and other vulnerabilities in existing software and to use techniques that avoid those vulnerabilities when developing new software. They practice using secure coding standards and disciplined development methods on industrial case studies and a course project. Prerequisite: Programming experience in C or C++, or permission of the instructor.