George Mason University

Department of Computer Science

CS468 Secure Programming and Systems

Tuesday, Thursday Noon to 1:15 pm

Innovation Hall Room 134

Instructor: Dr. Robert Simon
Office: ST-II, Room 423
Phone: (703) 993-1556
E-mail: simon AT cs gmu edu

Office Hours: Tuesdays 1:30 to 3:30



Course Description:

This course is designed to provide students with an understanding of the theoretical underpinnings of modern security systems, along with the principles of secure system and protocol design. This course is intended for upper-division computer science students, along with other students whom possess the required programming and system software background.  As part of the class students will gain the knowledge and experience of programming and validating a secure and distributed application.  Successful completion of this class will give students some of the basic tools in how to design and implement secure systems.




Course Topics

      Introduction to Computer Security


      Secure Programming

      Secure Systems

      Securing Networks and Distributed Systems


Detailed Course Description

Provided the first week of class


Tentative Grading Plan

      40% Project

      10% Assignments

      25% Midterm exam

      25% Final exam


Course Outcomes

1.      Describe the fundamental ethical responsibilities computer scientists have in securing and protecting computers

2.      Explain basic mathematical principles underlying encryption algorithms.

3.      Explain basic mathematical principles underlying authentication algorithms.

4.      Demonstrate an understanding of cryptographic protocols.

5.      Demonstrate an understanding of secure programming via attack models and vulnerability analysis

6.      Demonstrate an understanding of the fundamentals of secure software design

7.      Describe how Operating Systems implement security for critical system components

8.      Explain formal security policy models for access control

9.      Explain network and transport level security protocols with IPSec.

10.  Illustrate fundamental understanding of security principles by programming a self-encrypting and self-modifying program for file manipulation