Teorijska nastava obuhvata uvod u bezbednosne aspekte i podršku od strane programskih jezika (enkapsulacija, upravlјanje izuzecima, bezbedno kodiranje, različite bezbednosne greške), sistemsko programiranje (tipovi podataka, strukture podataka, kontrola toka, biblioteke, OOP), bezbednost stringova (različite ranjivosti stringova i eksploiti), upravlјanje dinamičkom memorijom, bezbednost intedžera, formatirani izlazi, konkurentno programiranje, rad sa fajlovima, bezbednost platforme (.Net, JRE) i alati za procenu kvaliteta koda. Praktični nastava bezbednog i robusnog programiranja biće u formi istraživanja i identifikaciji ranjivosti kodova. Koristiće se sistemski programski jezici, a takođe fokus će biti na bezbednosnim karakteristikama u drugim programskim jezicima - runtime okruženjima (Java, JVM). Studenti rade na projektima u kojima mogu pronaći i popraviti sigurnosne propuste u aplikaciji (
sans.org/top25-software-errors) i/ili razviti aplikaciju koja demonstrira upotrebu jakih bezbednosnih mehanizama.