Catalog Description

Introduction to computer security, covering main fundamentals of Network Security, Access control, Security in programming languages, Basic cryptography, Security protocols, Authentication, and Different types of security attacks.

Basic Information

  • Course Title: Introduction to Computer Security (CMPS 122)
  • Prerequisites: Introduction to Operating Systems (CMPS 111).
  • Lectures: TuTh 09:50 AM - 11:25 AM (PhysSciences 140)
  • Instructor: Dr. Karim Sobh (

Office Hours: 12:00 - 13:30 TuTh (E2-255)

  • TA:

Karthik Mohan Kumar (, Office Hours: 10:00 - 11:30 AM, Wed 11:00 AM - 12:00 PM (E2-480)

  • Labs:
    • A set of pre-scheduled sessions performed by the TA, and locations as well as different dates and times will be communicated with the students.


Textbooks and References

  • William Stallings, and Lawrie Brown. Computer Security: Principles and Practice, 3rd Edition, 2015, Pearson Education, ISBN: 978-0-13-377392-7. (MAIN)
  • Al Sweigart. Hacking Secret Ciphers with Python: A beginner's guide to cryptography and computer programming with Python, April 14, 2013, CreateSpace Independent Publishing Platform, ISBN: 978-1482614374.
  • Ross J. Anderson. Security Engineering: A Guide to Building Dependable Distributed Systems, 2nd Edition, April 2008, John Wiley & Sons, ISBN: 978-0-470-06852-6.

Course Goals

  1. Introduce fundamental computer security concepts.
  2. Exposure to broad width of security against different domains of computing.
  3. Understand the theory and the evolution of important security concepts, e.g. cryptography.
  4. Understand the difference between different security attacks.
  5. Ability to use security attacks counter measures in the appropriate context.
  6. Hands-on implementation experience with selective algorithms and protocols.
  7. Ability to modify and amend operating system security modules.
  8. Conduct relatively special literature review in different security topics.


Major Topics Covered

  • Cryptography.
  • Internet Authentication.
  • Public Key Infrastructure (PKI).
  • Buffer Overflow.
  • Web Applications Security.
  • Malicious Software.
  • Network Security.
  • Denial of Service Attacks.
  • Intrusion Detection.
  • Intrusion Prevention and Firewalls.
  • User Authentication.
  • Operating System Security.