Building Secure Python Applications
SDEV 300 | 3 Credits
Course Desc: Prerequisite: CMIS 242, CMIS 215, or CMIS 225. A hands-on study of best practices and strategies for building secure Python desktop and web applications. The objective is to design and build Python applications that are resistant to common security threats. Topics include syntax, data structures, style guides, data munging, web application frameworks, and the use of secure coding tools and processes to guard against application vulnerabilities.
Detecting Software Vulnerabilities
SDEV 325 | 3 Credits
Course Desc: Prerequisites: CMIS 320 and SDEV 300. An in-depth, practical application of techniques and tools for detecting and documenting software vulnerabilities and risks. The goal is to research, select, and use software to analyze code and isolate and prioritize application code and processes that could lead to failure or compromise data integrity or privacy. Topics include the top 25 software vulnerabilities, secure coding guidelines, static code analysis, and software assurance metrics.
Database Security
SDEV 350 | 3 Credits
Course Desc: Prerequisite: CMIS 320. A study of processes and techniques for securing databases. The objective is to design, build, and maintain databases to minimize risks and security attacks. Topics include privileges and roles, user accounts, encryption, authentication methods, and auditing.
Securing Mobile Apps
SDEV 355 | 3 Credits
Course Desc: Prerequisite: SDEV 325. A hands-on study of best practices for designing and building secure mobile applications. The aim is to formulate proper defenses and processes to mitigate common attacks. Focus is on mobile device infrastructure, security models, and mobile applications. Topics include code analysis, risk modeling, native and web mobile applications security, secure mobile communication, and back-end application attacks and counterattacks.
Secure Software Engineering
SDEV 360 | 3 Credits
Course Desc: Prerequisite: CMIS 242. An in-depth study of the processes, standards, and regulations associated with secure software engineering. The objective is to plan, manage, document, and communicate all phases of a secure software development cycle. Topics include security requirements, secure software life cycle development, threat modeling, and Security Technical Implementation Guides (STIGs).
Secure Programming in the Cloud
SDEV 400 | 3 Credits
Course Desc: Prerequisite: SDEV 300. A hands-on study of programming secure applications in the cloud. The goal is to design and build applications in the cloud while implementing appropriate security policies. Topics include cloud computing models, risks and security challenges of programming in the cloud, and data security.
Mitigating Software Vulnerabilities
SDEV 425 | 3 Credits
Course Desc: Prerequisites: SDEV 325 and SDEV 360. An in-depth analysis and evaluation of the mitigation of software vulnerabilities. The aim is to detect and mitigate software vulnerabilities by evaluating code. Topics include language-specific software vulnerabilities, mitigation, and input validation.
Risk Analysis and Threat Modeling
SDEV 455 | 3 Credits
Course Desc: Prerequisite: SDEV 360. An examination of the risks and threats associated with application development. The objective is to identify valuable assets, create system architecture diagrams, decompose applications, identify and prioritize threats, and document results in a threat model. Topics include security requirements and objectives, threat identification and mitigation, and calculating risk.
Software Security Testing
SDEV 460 | 3 Credits
Course Desc: Prerequisite: SDEV 425. A hands-on study of exploits, attacks, and techniques used to penetrate application security defenses and strategies for mitigating such attacks. The objective is to apply appropriate methodologies for software penetration testing to identify application weaknesses and logic flaws and to test and create scripts for exploitation and discovery. Topics include web architecture, application infrastructure, reconnaissance, discovery, mapping, and exploitation.
Workplace Learning in Software Development
SDEV 486A | 3 Credits
Course Desc: Prerequisites: 9 credits in the discipline and prior program approval (requirements detailed online at www.umgc.edu/wkpl). The integration of discipline-specific knowledge with new experiences in the work environment. Tasks include completing a series of academic assignments that parallel work experiences.
Workplace Learning in Software Development
SDEV 486B | 6 Credits
Course Desc: Prerequisites: 9 credits in the discipline and prior program approval (requirements detailed online at www.umgc.edu/wkpl). The integration of discipline-specific knowledge with new experiences in the work environment. Tasks include completing a series of academic assignments that parallel work experiences.