Computer security is a hugely diverse and dynamic field of computer science. Not only would it be impossible to become expert in any one aspect of security in a single semester, but that currency would quickly fade in a year or two. This class is designed to address these constraints.

Why do I care?

Almost certainly your job will not be a "Security" job. Mostly CIT majors have that job title. However, it is every software engineer's job to provide security assurances to the client. The ramifications of failing to provide these assurances can be tramatic. In other words, the purpose of CS 470 is to help you keep your job!


By the end of this semester, you will be able to:

CS 470 is essentially a research class where you will develop the skills to become a security expert in whatever domain is important to you when you enter the work force

Class Organization

All the weeks but the first (an introduction to the topic and the course), the eighth (midterm), and the final (final exam) will follow the same pattern: 1) there will be some reading and a preparation quiz, 2) there will be a small-group teach one-another activity, and 3) there will be a weekly ponder-and-prove assignment. In addition, there will be a unit project due at midterm, a unit project due at the end of the class, a midterm exam, and a final exam.


There will be a two dozen pages of reading in the textbook and a couple research articles. The details for each reading assignment will be presented at the beginning of each week. After you have completed the reading, please take the preparation quiz. You may take the quiz up to five times, the highest of which will be retained. In other words, stop when you reach 100%.

You will have until Monday Night to complete each preparation quiz.

Teach One-Another

Every week will have a teach one-another problem set. You are to complete this with the other members of your group. This group will be assigned to you after the first week of the semester and you will continue working with them for the remainder of the semester. Get to know the members of your group individually; they will be a life-saver. You are to work on the problems in the problem-set together. Please do not divide-and-conquer the problems; the best groups work on each problem together. There is often not a clear-cut answer for the problems; you will need to debate various approaches with the members of your group. The first week, the instructor will assign roles to the various members of your group. After that time, the members of the group will make role assignments. You can expect to operate in each of the roles several times during the course of the semester. You will have until Friday Night to complete each.


Every week will have a ponder & prove activity. Some will be done individually; some will involve the whole class. Some will be programming problems; some will be research problems. The details of each will be presented in each week's assignment.

You will have until Saturday Night to complete each.

Prove - Midterm & Final

There will be a midterm towards the middle of the semester and a final exam. Both are closed-book; you cannot look at your notes or the textbook while taking the exam. The midterm and final each will have two parts: a timed fact component and a skills part for which plenty of time will be provided.


The grading breakdown for the class will be:

Preparation (reading quiz) 20% Thirteen reading quizzes due Monday morning. Most weeks, there will be about thirty pages of reading.
Teach One Another (problem set) 20% Thirteen problem sets due Friday night to be completed as a group.
Ponder (weekly assignment) 50% There will be one assignment per week, each tailored to the specific needs of the week. No two will be alike.
Prove - (Midterm & Final) 10% The midterm and final will consist of two parts: a timed fact component and a skills component
Grades are as follows: 100% → 90%  A:  Demonstrated mastery of the class
89.9% → 80%  B:  All of the key concepts and skills have been learned
79.9% → 70%  C:  Acceptable, but might not be ready to graduate
69.9% → 60%  D:  Developing; the class has yet to be mastered
59.9% → 0%  F:  Failed to understand or complete the course

There will also be the usual +’s and -’s. All grades are reported on I-Learn. If you feel that I-Learn does not accurately reflect your earned grade, please discuss this with your instructor.

Most of the learning activities have a time estimate associated with them. These signify how long it takes the average student to complete the activity for the average grade. Some students will complete the assignment significantly faster or slower than the average, and getting an "above average" grade may take much more time and effort. Please use the estimates as guidelines; they are not guarantees.


You may work with your classmates but all submitted work for assignments must be original. Share ideas; do not share code! Assistance from a classmate should be on par with the help you would expect from a lab assistant. The penalty for copying or plagiarizing of assignments might be one or more of the following: -100% on an assignment, being asked to withdraw from the class, a failing grade in the class, or disciplinary action by the university. For more information about this, please see this document on plagiarism.

Late work will generally not be accepted in this class. That being said, there are exceptions. If you know of an upcoming event that will keep you from turning something in on-time, you need to make prior arrangements with the instructor. As a general rule, the instructor will be more accommodating before the due date than after.


There will be two main ways to communicate with the instructor in CS 470: BYU-Idaho e-mail and the Announcements.

In addition to this, you will be assigned to a group in the second week. Expect to collaborate with members of your group on most assignments through the course of the semester. They should be the first people you turn to for just about anything.


BYU-Idaho is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by BYU-Idaho Disability Services. If you need assistance or feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established policy and procedures.

If you have any disability that may impair your ability to complete this course successfully, please contact Disability Services as soon as possible, preferably before the beginning of the semester, in order to insure that you receive appropriate accommodations.

Disability Services Contact Information:


BYU-Idaho prohibits sex discrimination against any participant in its education programs or activities. Prohibited sex discrimination includes incidents of sexual harassment (including sexual violence), dating violence, domestic violence, sexual assault, and stalking (collectively “sexual misconduct”).

As an instructor, one of my responsibilities is to help create a safe learning environment for my students and for the campus as a whole. University policy requires that I report all incidents of sexual misconduct that come to my attention. If you encounter sexual misconduct, please contact the Title IX Coordinator at or 208-496-9209. Additional information about sexual misconduct and available resources can be found at