Prerequisites
Students enrolling in this course are expected to have a background in security and foundational computer science skills. Experience with statistics and user experience research or design is welcome but not required.
Below, these requirements are elaborated with specific details.
Required
The following knowledge and skills are required for success in this course.
Computer and network security
Concepts
Students should have a strong understanding of computer and network security concepts including:
- Network security
- Example: How does the TLS protocol work?
- Encryption
- Example: How do different block cipher modes of operation work?
- Memory safety
- Example: How does a buffer overflow happen and what protections exist against it and similar attacks?
- Web security
- Example: How does FIDO U2F protect against phishing?
Suggested courses
Any of the following courses will likely provide the necessary background:
- IT 230. Computer and Network Security
- CS 351. Introduction to Cybersecurity
- CS 608. Cryptography and Security
- CS 645. Security and Privacy in Computer Systems
- Equivalent courses at other institutions
- Equivalent computer security experience
Programming and software development experience
Concepts
- Students should be comfortable completing programming tasks using unfamiliar programming languages and APIs
- Example: use the Web Permissions API to request access to a certain resource
- A large component of the course is a semester-long project that is likely to feature significant programming components. Students should be prepared to undertake these tasks.
- Examples:
- Create a mobile app
- Implement a prototype of an interface
- Perform data analysis and compute statistics
- Examples:
Suggested courses
- IS 513. Programming Foundations for IS
- Undergrad major in computer science
- Equivalent computer programming experience
Recommended
The following experiences and background are not required, but students who have them may get more out of the course.
User experience research or design
Concepts
- Experience designing and/or evaluating user interfaces
Suggested courses
- IS 661. User Experience Design
Statistics
Concepts
- Experience selecting and calculating statistics
- Examples:
- t-tests
- ANOVA
- Regressions
- Bootstrapping
- Examples:
Suggested courses
- IS 333. Probability and Statistics