CS468 Secure Programming and Systems
||Art and Design Building L008
|| Monday, Wednesday 1:30 - 2:45
|| 5328 Engineering Building
|| Tuesday 2:00 to 3:00, or by appointment
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.
Grade of C or better in CS310 and either CS 365 or CS 367.
Cryptography and Network Security: Principles and Practice, 6/E by William Stallings.
Publisher: Prentice Hall
- Secure Programming
- Secure Systems
- Securing Networks and Distributed Systems
All class materials, including lecture notes, are available through your blackboard accounts or on the course
website CS468 S2014.
There will be several programming projects in cryptography, malware and
secure communication. All projects will be programmed using the C
- If your code does not compile, you will get no credit.
- Assignments and Projects are individual efforts.
- We reserve the right to use MOSS to detect plagiarism.
Your grade will be calcuated as follows:
- 45% Programming projects and labs
- 10% Class participation and short written homework assignments
- 20% Midterm exams
- 25% Final exam
No credit if your project does not compile. Projects are due at the
start of class, not during class. Late assignments/projects lose 10%
credit per day and will not be accepted
3 days after the due date.
No early exams will be given. If you must miss an exam an makeup will be arranged at the discretion of the instructor, provided
you have a written and verified excuse.
- 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
GMU Academic Calendar
Disability Resource Center