Aug 06, 2026  
2026-2027 Catalog 
    
2026-2027 Catalog

SDEV 245 - Security and Secure Coding


PREREQUISITES/COREQUISITE: (SDEV 200 Software Development with Java  OR SDEV 210 Systems Programming with Rust  OR SDEV 220 Software Development Using Python  OR SDEV 230 - Software Development using C++ OR SDEV 240 Software Development Using C#  OR CSCI 201 Computer Science II ) AND (MATH 135 Finite Math  OR Higher)

PROGRAM: Software Development
CREDIT HOURS MIN: 3
LECTURE HOURS MIN: 3
DATE OF LAST REVISION: Fall 2024

This course covers secure software development processes, including designing secure applications, writing resilient code, developing test plans and conducting security testing and auditing. Students learn to identify and address common security vulnerabilities, threats, and strategies for building fault-tolerant, attack-resistant software. Students will write and analyze code to apply specific security techniques, and explore cryptography as a key tool for real-world security. The course also introduces foundational cryptography concepts, including probability, information theory, computational complexity, and number theory.

MAJOR COURSE LEARNING OBJECTIVES: Upon successful completion of this course the student will be expected to:

  1. Implement key concepts in security, including confidentiality, integrity and availability, authentication, and access control.
  2. Evaluate key concepts in cybersecurity, including cryptology, cryptography, cryptanalysis, cipher, cryptographic algorithm, private and public key encryption, public key infrastructure, and trust/trustworthiness.
  3. Examine the basic concepts of probability, random variables and probability distributions as they apply to information theory and cryptography.
  4. Demonstrate techniques to transform plaintext into ciphertext, the use of hash functions for authentication and data integrity, and the use of private and public key encryption.
  5. Analyze security vulnerabilities in the secure software development process such as various data types/structures, out-of-bounds arrays, and buffer overflows.
  6. Discuss various types of cyberattacks on software and software systems along with possible countermeasures and security controls that minimize risk and exposure
  7. Explore current industry standards, tools, and security practices in software development, including use of multiple layers of defenses, wireless security, and risks in 3rd party applications and libraries.
  8. Differentiate the benefits and limitations of using type safety (languages and data types) in the secure software development process.
  9. Implement secure coding and testing techniques including input validation, data sanitization, and exception handling.
  10. Assess the need for a company-wide security policy to mitigate software security risks and vulnerabilities.


COURSE CONTENT: Topical areas of study include -
  • Encryption techniques
  • Ciphers and ciphertext
  • Authentication and Access Control
  • Public and Private Key encryption
  • Cybersecurity attacks
  • Secure Software Development Lifecycle
  • Ethics in Software Development
  • Information Security
  • Input/Data Validation and sanitation
  • Open source and closed source software
  • Secure and quality coding principles
  • Random/Pseudo Random Numbers
  • Design diagrams and artifacts
  • Software test plans and testing techniques
  • Exception/Error handling
  • Software Security Audits
  • Software maintenance
  • Countermeasures
  • Kerberos, SSH, Radius and TACACS+
  • Software Updates
  • Data Types
  • Structures
  • Out of Bounds Arrays
  • Buffer Overflows