Academics
  /  
Courses
  /  
Descriptions
COMP_SCI 396: Foundations of Security


VIEW ALL COURSE TIMES AND SESSIONS

Prerequisites

COMP_SCI 211 and 214

Description

Have you been or do you know anyone who has been a victim of a data breach? Data breaches have become commonplace with the causes often being a simple security mistake/piece of insecure infrastructure with a massive impact. Do you see yourself building a simple application that handles user data? You would have a responsibility to protect your users’ data. Are you interested in cybersecurity as a specialization or career path? You’ll probably get to advise the design of systems to be secure from the ground up and mitigate security incidents in real time. And finally: do you envision yourself in a role where you will either build or manage any systems that people will use? Then your systems need to be secure.

Cybersecurity is fundamental to every software application or system, however small, and anyone responsible for maintaining or building any computer system will be accountable for some part of its security. We use systems, software, and tools every day that may be vulnerable to security breaches and incidents. Despite this, cybersecurity remains an afterthought in the design of software, and is often underexplored by those not passionate about the field.

The goal of this class is to provide a practical, defense-focused introduction to such security foundations. Overall, this course aims to provide a security foundation for three major applications:

1. Incorporating fundamental security when building applications
2. A starting point for security fundamentals important for students interested in a cybersecurity role
3. Technical and non-technical approaches to security

We will cover a variety of topics including (but not limited to) threat modeling, security of applications, authentication, cryptography, access control, data security, social engineering, and ethics of cybersecurity decisions (or lack, thereof). For a portion of the class, we will work with web applications, however, we do not expect any prior background and will provide required background as needed.

Students will be assessed through programming and written assignments, in-class activities, and timed assessments.

  • This course fulfills Technical Elective area.

COURSE COORDINATORS: Prof. Sruti Bhagavatula

COURSE INSTRUCTOR: Prof. Sruti Bhagavatula