Software and Security (95-748)

This course exposes students with limited exposure to programming and software engineering foundational development practices to enable further understanding of the challenges of insecure and vulnerable software and how to prevent throughout the application lifecycle. Students are exposed to basic programming constructs (such as variables, control structures, data structures, programming syntax, memory management, access control, networking and cryptographic implementation) as well as the specific examples on common vulnerabilities. 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, software risk management framework, threat model and secure software development best practices are explained to students to provide exposure to how software can be made more secure and resilient.

  • Units