View Class Schedule 
► ProgramsSecure Programming Best Practices

Secure Programming Best Practices


The primary objective of this course is to teach professional computer programmers about the common methods used by hackers to exploit vulnerabilities in computer programs, and how to program defensively to avoid introducing such vulnerabilities into their own programs.

Topics covered include:
  • Introduction to Secure Coding
  • Data validation (input validation, type safe data structures)
  • Safe coding subsets (most languages have a defined set of safe and unsafe functions)
  • Deprecated functions (and why not to use them)
  • Safe library functions
  • Failsafe defaults and exception handling
  • Designing Secure Architecture
  • Cryptography
  • Buffer Overflows
  • Secure Programming Concepts
  • Windows Socket Programming
  • Writing Shellcode
  • Writing Exploits
  • Programming Port Scanners and Hacking Tools
  • Securing E-Commerce Applications
  • Software Activation, Piracy Blocking and Automatic Updates
  • Secure Application Testing
  • Writing Secure Documentation and Error Messages

Class Format and Schedule

This is a self-paced, instructor-mentored course. Students access the course lessons through UMBC Training Centers' Web-based Blackboard Learning Management System (LMS). A textbook will be mailed to the student shortly after successful class registration. Students complete lessons independently, working at their own pace. Students may email questions to the instructor and submit programming exercises to the instructor for review and feedback.

To complete the course, the student must complete and submit the required programming assignments within the Blackboard LMS. Students will have 90 days from the date of course registration to complete the course. It is recommended that students complete at least one Blackboard module (lesson) per week. Nothing prevents the student from working at a faster pace and completing in the course in a shorter amount of time.

System Requirements

A complete list of system requirements can be found here.


Students should have at least one year of professional computer programming experience in a structured programming language such as Java, Python, C#, or C.  Familiarity with Web and Internet technologies is recommended.  A good understanding of the concepts of modern computer operating systems, computer architecture, and computer networks is recommended.


This course is offered Online and is available 24/7.


Price includes textbooks, instructor-based assistance and support, and access to the Online Course Materials for up to 90 days.

Due to the self-paced nature of this course and the student having access to the course content 24 hours a day for 90 days, students enrolled in this course are not eligible to audit a future session.

Group Training Available

UMBC Training Centers can deliver any of our courses in a group training environment at our facilities or yours. Group training can be an effective and economical method to quickly assure competency and consistency of knowledge and skills within an organization or department.