Software and Security
Description: This course exposes students with limited exposure to programming and software engineering development foundational concepts to enable further understanding of the challenges of insecure and vulnerable software. Students are exposed to basic programming constructs (such as variables, control structures, data structures, programming syntax) as well as the specific principles of object-oriented programming languages. The course also surveys the types of threats and vulnerabilities inherent in software and the origins of these deficiencies. A brief overview of secure coding concepts and techniques are provided to students to provide exposure to how software can be made more secure and resilient and how security can be part of overall software development process.