The faculty of the Department of Computer Science teach the broad spectrum of computing and information technology courses and offer a track of specialization at the BS and MS levels in computer security. Four courses on computer security include undergraduate course and a graduate courses in computer security and applied cryptography. Topics that focus on secure systems and development of secure software are embedded in both graduate and undergraduate courses in secure programming methods, algorithms and data structures, database management systems, software engineering, programming languages, operating systems, networks, concurrent software, real-time systems, and ethics in computing. We train initially our students to use safe languages and we teach sound software engineering methodology. ("safe languages" means strongly typed and storage secure. This means compile-time and run-time checking and garbage collection to prevent operator-operand mismatch, buffer overruns, and storage leaks. "Sound methodology" means input-checking techniques and control-, data-structure-, and design-patterns for correct programming. We train advanced students who must work with unsafe languages (PERL, C, php, etc.) sound methodology to compensate for the lack of language support. This includes manual insertion of pointer, type, and storage checks. We also have courses specialized to areas that require security techniques specific to the problem area (e.g., networking, web programming, database courses). Finally, we train our students to verify the security properties of their programs through rigorous code testing and formal model-checking.