Course Overview

Course Coverage

This course introduces the student to the fundamentals of computer security. Foundational concepts such as confidentiality, integrity, and availability are discussed in the context of both designing systems and evaluating existing systems for vulnerabilities. Cryptography is explored as a tool that can be applied to many aspects of computer security. Theoretical discussions of security principles are enriched by examples from real world systems and protocols.

Student Learning Outcomes

By the end of the course, students will be able to:

  • Apply knowledge of computing and mathematics appropriate to the discipline, including common data structures, basic algorithms, and modular arithmetic;
  • Design, implement, and evaluate security policies and mechanisms to enforce those policies;
  • Discuss the central issues of computer security: confidentiality, integrity, and availability;
  • Design protocols and systems to minimize security vulnerabilities;
  • Analyze current threats and how to minimize the associated risks in the areas of: computer security, OS security, web security, and cryptography;
  • Evaluate the strengths and weaknesses of various public and private key encryption techniques;
  • Explain the usefulness of cryptographic hash functions;
  • Communicate effectively with a broad range of audiences, and function effectively on teams using software engineering principles to accomplish a common goal.
Next