BYU logo Computer Science
CS 465 Introduction to Security and Privacy

Syllabus

Welcome

CS 465 is designed to give a broad introduction to computer security using CS 224 and CS 260 as prerequisites. Since some of you may not have taken CS 260, the course provides some introductory web programming material for you.

Because the course is still being revised, I would like your feedback on how things are going during the semester. This includes workload, assignment complexity, time spent on out-of-class activities, etc. Please help me know if I’m meeting my target. In return, I’ll be flexible if anything unexpected happens, assignments are not clear, or work takes longer than expected.

Course Description

This course is designed to provide a broad introduction to digital security and privacy. It helps students think about security as a software engineer and become ready to take further coursework in security and privacy.

Major topics include:

  • operating system security
  • software security
  • network security
  • web security
  • threat modeling
  • usable security and privacy

This course is designed to meet the BYU Aims: this course should be spiritually strengthening, intellectually enlargening, character building, and lead to lifelong learning and service.

Learning Outcomes

The learning outcomes for this class are:

  • Fluency: Develop fluency in the language and concepts related to securing computing systems

  • Attacks and Defenses: Be able to execute introductory attacks against computer systems and deploy defenses against those attacks

  • Secure software: Write software that uses cryptographic primitives to securely communicate and store information

  • Security Mindset: Think like an attacker to identify key assets, risks, and mitigations associated with the security and privacy of a system

  • Ethical Practices: Develop personal values that apply gospel principles and ethical practices to to computer security topics that may arise in a future career

Materials

We will use a few different free resources for this class. These are all linked in the class schedule. The two primary resources are:

Computer Security and the Internet: Tools and Jewels from Malware to Bitcoin

Second Edition. Paul C. van Oorschot. Springer, 2021.

Available at: https://people.scs.carleton.ca/~paulv/toolsjewels.html

If you are on campus or using the BYU VPN, you can also access a free PDF of the book here: https://link.springer.com/book/10.1007/978-3-030-83411-1

Operating Systems: Three Easy Pieces

Available at: https://pages.cs.wisc.edu/~remzi/OSTEP/

Course Requirements

  • Reading Quizzes: Prior to each class, students should complete assigned reading and a short quiz. (approximately 5% of your grade)

  • Homework: Homework is used to practice material from the class and get you ready for projects. Homework is graded, some of it automated. (approximately 10% of your grade)

  • Projects: Projects give students hands-on experience with the topics covered in class. (approximately 50% of your grade)

  • Discipleship: A set of assignments that will help you develop into a disciple-scholar. These assignments are graded based on demonstrating engagement with the topic. (approximately 10% of your grade)

  • Exams: There will be two exams - one mid-term and one cumulative final.
    (approximately 35% of your grade)

Learning Environment

Class time will be divided into three sections:

  • answering questions about the reading
  • reviewing key topics from the reading
  • doing exercises designed to provide practical insight into key topics

At the end of most units, students will complete a project to demonstrate their mastery of the material covered in the lectures.

Course Communications

  • Use this website for the course schedule and assignments.

  • Use Canvas to turn in assignments and see your grade.

  • Use slack for class discussion. I encourage you to post your questions on slack so other students, the TAs, and the instructor can answer them for everyone. Here is a slack invitation.

  • Use TA office hours to get help on course concepts and the projects. TAs are not expected to debug your program, but can talk to you about the concepts and whether your solution is going in the right direction.

  • Use Instructor office hours as needed. Office hours with the instructor are generally underutilized! You are welcome talk to me for:

    • questions about concepts or assignments you aren’t clear on
    • general advice about your career
    • just getting to know each other

    I do not have fixed office hours but you can schedule time to meet with me in person or via Zoom as needed, during reasonable day-time hours. I do have a full-time job off campus so please have some flexibility in scheduling. Contact me on slack or via email.

How to Be Successful in This Course

Come to class having finished the readings, prepared to ask any questions you had about the material. For projects, start early. This will enable you to get the help you need. Most importantly, if you need help, please talk to a TA or to me. We really are here to help you.

Collaboration

Projects

There are some group assignments for this class. In those cases, you are encouraged to work together. Please turn in a single assignment for your group. Put all of your names on the assignment, and then we will be sure to get you all the same grade.

Any assignment not marked as group work is designed for individual work. In this case, you are welcome to discuss the assignment with other class members and how to solve it, but you may not view, share, or copy another student’s code.

Homework

Homeworks are assigned periodically. Late homework can be submitted up to one week late for 60% of what you would have earned for the assignment. Homeworks later than this will be awarded at 40% of your max, up until the exam that covers the material.

Projects

Projects are typically due Fridays at Midnight. You start with a +5 balance of “early days”. A project submitted early will earn you more early days, capped at +10. You can’t earn early days if you have a late project that is not submitted (university hollidays excepted). Each day a project is late will lower your early day balance, to a minimum of -10. Students who end the semester with a negative balance will be penalized up to 2% of your final grade.
This is capped to 10% total final grade reduction if you’ve submitted an honest attempt at every project.

In short, you have some flexibility and a good initial balance. This ought to cover the long weekend you need to be out of town, the pet dental emergency, the roommate wedding, or the occasional illness.

If you find yourself needing more than this due to legitimate issues, talk to me as soon as you think you’ll have a problem. I will try to be flexible.

You should talk to me if:

  • You are falling more than a week behind in class, so we can make a plan to help you succeed.

  • You have official university accommodations that I can help you with.

  • You have any physical or mental health issues, or major life events that will impact your ability to finish.

For all of your assignments, I’m much more interested in you engaging with the material and completing the work than I am with enforcing this policy. Use the grace period I’ve given you and talk to me if you are facing bigger issues.

Submission and Passoff

Projects may be written in the language of your choice unless instructed otherwise. For some of the projects there is an automated passoff system. Each project has passoff instructions that should be followed carefully.

Most assignments will be sumitted via Canvas.

This is generally no longer necessary, but for historical reasons, in the event of a Canvas failure , you may pass off a project after the deadline for full credit, and without using late days, provided you email a SHA-256 checksum of all files associated with your project to the me or the TA before the deadline. You can generate the checksum again at passoff to convince the TA that your assignment was completed on time. You can generate a checksum on linux using openssl (e.g., >openssl dgst -sha256 [filename] ). Search online for how to do this on other systems. I leave this section in my syllabus so that I can make a lame joke while discussing this on the first day of class. If I forget to, remind me.

AI Policy

Your goal in using AI should be to help you learn, not to do your work for you.

  • Do not use an AI tool to write or debug your code.
  • You may use an AI tool to help you understand code you are given that is unfamiliar to you (“what does this function do?”).
  • You may not use an AI tool to find vulnerabilities in code (that’s part of what you’re doing in this class).
  • You may use an AI tool to help understand concepts in the class.

Please do not cheat yourself! The assignments are not about me getting the result from you - they are about you working on the material yourself - inappropriate AI use will merely rob you of the learning experiences the assignments are designed to give you.

Belonging

My goal is for everyone in this class to know that they are valued and belong. I wholeheartedly support the BYU Statement on Belonging.

The TA and instructors pledge to answer all questions in a caring and helpful manner.

If you feel you are lacking support and would like some mentoring, please contact the CS belonging team in TMCB 1112. They are a wonderful resource to get you any help you need.

If you have difficulty with your mental health, please seek counseling. See CAPS for counseling and the University Accommodations Center for accommodations. If you need help with accommodations, send me a note on slack and we can handle that quickly and easily for you. Likewise if , let’s talk about getting you some help.

I strive to be supportive of anyone who struggles with the class. I am supportive of anyone who is from a historically underrepresented group in CS, anyone who is LGBTQ+, or anyone who has an illness or other extenuating circumstances that is impacting their performance in the class. If you are reading this syllabus and email your name/netid to me, you will get 3 points of extra credit, as long as your email arrives before the beginning of our second class period. You are welcome to talk to me any time about difficulties you are having.

Academic Integrity

Please remember the reason you are at BYU—to become like Jesus Christ. Part of this journey is to study and learn (see D&C 88:118, D&C 93:36, D&C 130:18-19).

When you fail to be honest in your studies, you are missing an opportunity to grow more like Christ. We encourage you to do your utmost to ensure that you don’t compromise your integrity as you work to learn the material in this course.

Please review the BYU Honor Code and the Academic Honesty Policy.

If you are tempted to cheat because you are falling behind in the class, please come talk to me instead. I’m sure we can work something out to help you master the material for this class.

Try to focus on collaboration instead of cheating. Collaboration means discussing ideas and approaches to solving a problem, without viewing or sharing code.

What constitutes cheating?

Cheating includes:

  • Copying part or all of another student’s project code with the exception of your partner(s) on group projects. This includes students from previous semesters.

  • Breaking the AI policy.

  • Copying code from online sources without crediting them. You are welcome to look up solutions to specific problems (e.g. how to use a library) online, but should not be searching for exact solutions online.

  • Using or paraphrasing someone else’s words without crediting them.

If you are unsure about whether or not something constitutes cheating, please confirm with an instructor or TA.

What happens if you cheat?

If you have chosen to be dishonest, please come talk to your instructor! I will lovingly help you as you seek to reconcile with the truth. It will likely feel uncomfortable and will take courage and humility, but the peace and satisfaction of knowing you are again in the right is completely worth it. Learn for yourself the joy of repentance.

The usual outcome for cheating on an assignment is a zero on that assignment. If you have cheated on multiple assignments, you will receive an E for the course.

In most cases, the names of those who have cheated will be given to the Honor Code Office.

Extra Credit

There will occasionally be extra credit offered through various means. There will probably be an extra-credit project, and an extra-credit homework assignment, and a variety of in-class CTF-style security-related puzzles. You’ll see an example on my screen some time during the second class session, and we’ll discuss it after enough have solved the challenge. Please do your own work. None of these extra-credit opportunities are likely to have a noticable effect on your final grade in the course - they are primarily for fun and not worth many points, compared to the other assignments.

Final Grades

All points are equal. Your final score will be calculated as a percentage of total/possible points, using the standard university grade distribution formula. Point totals are approximate and may vary by a small amount (e.g. a mid-term exam might be 172 or 179 points instead of the intended 175 etc).

BYU Policies

Honor Code

In keeping with the principles of the BYU Honor Code, students are expected to be honest in all of their academic work. Academic honesty means, most fundamentally, that any work you present as your own must in fact be your own work and not that of another. Violations of this principle may result in a failing grade in the course and additional disciplinary action by the university. Students are also expected to adhere to the Dress and Grooming Standards. Adherence demonstrates respect for yourself and others and ensures an effective learning and working environment. It is the university’s expectation, and every instructor’s expectation in class, that each student will abide by all Honor Code standards. Please call the Honor Code Office at 422-2847 if you have questions about those standards.

Preventing & Responding to Sexual Misconduct

The health and well-being of students is of paramount importance at Brigham Young University. If you or someone you know has experienced sexual harassment (including sexual violence), there are many resources available for assistance.

In accordance with Title IX of the Education Amendments of 1972, BYU prohibits unlawful sex discrimination, including sexual harassment, against any participant in its education programs or activities. The university also prohibits sexual harassment by its personnel and students. Sexual harassment occurs when

  • a person is subjected to unwelcome sexual speech or conduct so severe, pervasive, and offensive that it effectively denies their ability to access any BYU education program or activity;
  • any aid, benefit, or service of BYU is conditioned on a person’s participation in unwelcome sexual conduct; or
  • a person suffers sexual assault, dating violence, domestic violence, or stalking on the basis of sex.

University policy requires all faculty members to promptly report incidents of sexual harassment that come to their attention in any way, including through face-to-face conversations, a written class assignment or paper, class discussion, email, text, or social media post. Incidents of sexual harassment should be reported to the Title IX Coordinator at t9coordinator@byu.edu or (801) 422-8692 or 1085 WSC. Reports may also be submitted online at https://titleix.byu.edu/report or 1-888-238-1062 (24-hours a day).

BYU offers confidential resources for those affected by sexual harassment, including the university’s Sexual Assault Survivor Advocate, as well as a number of non-confidential resources and services that may be helpful. Additional information about Title IX, the university’s Sexual Harassment Policy, reporting requirements, and resources can be found at http://titleix.byu.edu or by contacting the university’s Title IX Coordinator.

Student Disability

Brigham Young University is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. A disability is a physical or mental impairment that substantially limits one or more major life activities. Whether an impairment is substantially limiting depends on its nature and severity, its duration or expected duration, and its permanent or expected permanent or long-term impact. Examples include vision or hearing impairments, physical disabilities, chronic illnesses, emotional disorders (e.g., depression, anxiety), learning disorders, and attention disorders (e.g., ADHD). If you have a disability which impairs your ability to complete this course successfully, please contact the University Accessibility Center (UAC), 2170 WSC or 801-422-2767 to request a reasonable accommodation. The UAC can also assess students for learning, attention, and emotional concerns. If you feel you have been unlawfully discriminated against on the basis of disability, please contact the Equal Opportunity Office at 801-422-5895, eo_manager@byu.edu, or visit https://hrs.byu.edu/equal-opportunity for help.”

Extra Credit

Occasionally you will see interesting puzzles on my screen in class. They might not be obvious, but they will be obvious enough that you should be able to recognize them. You have my permission to try to access the puzzles and challenges you find during class. Some times they’ll be a bit of encrypted text, other times a link. The external resources you should be OK poking around in are https://iwontfixyourcomputer.com and https://cloudbuild.clift.org, and maybe a few hidden files on https://www.clift.org

These extra credit assigments are supposed to be fun and interesting - they will not likely make a difference in anyone’s final grade. Feel free to ignore them. Please don’t stop paying attention in class when you see one and spend the next hour of our class time ignoring me and working on the extra credit. They are mostly not time-sensitive.