CS 468 Secure Programming and Systems

Spring 2016

Time and Place: Monday, Wednesday 1:30 pm - 2:45 pm at Innovation Hall, Room 134

Instructor: Dr. Xinyuan (Frank) Wang

Office: Room 5331, Engineering Building

Office phone: (703) 993-9461

Office hours: TBD or by appointment

Email: xwangc at gmu dot edu

Course Website: blackboard


Teaching Assistant: Maofei Chen

Office hours: TBD at the Engineering Building Room TBD

Email: mchen18@masonlive.gmu.edu

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 majors, along with other students whom possess the required programming and system software background. Upon successful completion of the course, students will gain the knowledge and experience of designing, implementing and validating a secure and distributed application or system with the necessary tools.

Course Outcomes

  • Describe the fundamental ethical responsibilities computer scientists have in securing and protecting computers.
  • Explain basic mathematical principles underlying encryption algorithms.
  • Explain basic mathematical principles underlying authentication algorithms.
  • Demonstrate an understanding of cryptographic protocols.
  • Demonstrate an understanding of secure programming via attack models and vulnerability analysis.
  • Demonstrate an understanding of the fundamentals of secure software design.
  • Describe how Operating Systems implement security for critical system components.
  • Explain formal security policy models for access control.
  • Explain network and transport level security protocols with IPSec.
  • Illustrate fundamental understanding of security principles by programming projects in cryptography, secure programming and communications.

Course Prerequisite

Grade of C or better in CS310 and CS367 or permission by the instructor.

The students are expected to have solid background in data structure and computer system internals. Proficiency in C programming is essential in order to be successful in the course projects.

Textbook and Readings

Text Book

Class Schedule (click to see)

Class schedule is tentative and subject to change. Please check frequently.


Homework & Programming Assignments


Class Discussion Participation


Midterm Exam


Final Exam


Late submissions will be have 10% penalty for each dat past due. There will be no early exams and make-up exams are strongly discouraged.

The final grade is computed according to the following rules:

·        A+: >= 95%; A: [90%, 95%); A-: [85%, 90%)

·        B+: [80%, 85%);  B: [75%, 80%); B-: [70%, 75%)

·        C+: [66%, 70%); C: [63%, 66%); C-: [60%, 63%)

·        D: [55%, 60%)

·        F: < 50%.

Academic Integrity

All students are required to follow all university, school and department policies regarding academic integrity. Violation of the Honor Code will result in a grade of F for the course, as well as any penalties imposed by the university and/or the CS department.

Disability Statement

If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office of Disability Services (SUB I, Rm. 222; 703-993-2474; www.gmu.edu/student/drc) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs. All academic accommodations must be arranged through the ODS.


This course contains materials provided by Dr. Bob Simon.