CS 3710: Introduction to Cybersecurity (ICS)

Go up to the ICS UVa page (md)

Summer 2020

Course Staff

Course Info

Course content: All the course content is available free online at http://aaronbloomfield.github.io/ics, which is from a public github repository: https://github.com/aaronbloomfield/ics. All the material in that repo is released under a Creative Commons license (CC BY-SA). Note that this license and public release does NOT apply to the lecture videos.

Online: This class is going to be completely online due to the covid-19 pandemic. While we all had to pivot to online classes this past spring semester, this is the first class I have taught that is completely online. I’m sure some things are not going to work out well. Please provide feedback as the summer term progresses so I can get a feel for what works and what does not. While you can always submit a support ticket, you can also submit anonymous feedback as well.

Lectures: They will all be via a Zoom meeting 98953912940 (https://virginia.zoom.us/j/98953912940). While that meeting repeats every day, we won’t be having office hours or lecture on the weekends or on Memorial Day (May 25th). Note that you have to be authenticated, via Collab, before you can join – click on the Online Meetings tab in the Collab workspace. Lecture attendance is REQUIRED. Office hours are from 10:00-10:30, so the meeting starts at 10:00. However, lecture still starts at 10:30. Most days there will be a short discussion (half hour or so), and two pre-recorded lecture videos to watch on your own time – the intent is that you can watch them between by the 12:15 end time of class if you so choose. The lectures that will not follow this schedule (just the first half hour being synchronous) are the first one, the last two, and those of the exams. Note that there will be occasional pop quizzes in lecture, both on the readings and the lecture videos.

Reading: Due to the rapidly changing nature of this topic, there is no assigned textbook – the best textbook on the topic is already 5-10 years out of date. Readings will consist of handouts, online materials, and articles (both media and scholarly). Much of the background for this course depends on completing the readings. Thus, occasional pop quizzes will happen to ensure that everybody is doing the reading (and to ensure that people are showing up to class!).

Purchases: As mentioned above, no textbook is required for this course. You don’t have to purchase anything for this course. But you do have to have a relatively modern computer – both for the course content (online meetings and video) and for VirtualBox (see Computing Resources, below). I presume that you have a broadband Internet connection – if not, let me know, and we can work around that.

Course Description: This course is meant as a general introduction to cybersecurity. It will prepare students to take any of the follow-on cybersecurity courses within the curriculum.

Availability: It is important to me to be available to my students, and to address their concerns. If you cannot meet with me during office hours, e-mail and I will try to find the time to meet. That being said, like everybody else I am quite busy, so it may take a day or more to find a time to meet. And if you have any comments on the course - what is working, what is not working, what can be done better, etc. - I am very interested in hearing about them. There is an anonymous feedback tool through Collab, or you can send me an e-mail (please do NOT email the TAs directly). I tend to get bogged down by e-mail as the semester progresses, so seeing me “in person” (meaning online office hours) is often a good way to get a more immediate response.

Prerequisites: CS 2150 (Program and Data Representation) with a grade of C- or above. As per departmental policy, this pre-req will be checked, and if it is not met, you will be de-registered from the course. If you are not a UVa student, then you will need to have: three semesters of programming experience, knowledge of programming in C or C++, and knowledge of programming in assembly.

Course objectives: Students who complete the course will:

Grades: Grades will be calculated by the following formula:

Note that grades will be letter grades (A-F), and NOT credit/no-credit grades as was done this past spring semester.

I expect that grades will follow the standard decade curve: 90 and above is an A of some sort (A-, A, or A+), 80 and above is some sort of a B, etc. Note: I reserve the right to modify the weighting (changing the curve, adding pop quizzes, etc.), especially if attendance drops off significantly. If this does happen, it will be clearly announced in lecture (and on the daily announcements slide set).

Assignments: The course content is split into six “modules”. The intent is for each module to have two assignments: a written homework and a programming homework. The written homeworks will be submitted as a PDF, and will consist of writing, math, and short programs. The programming assignments will have their source code submitted. You will need to be familiar with the homework policies (md), as you will be bound by them on the assignments.

Course rules: You are fully responsible for all material presented in class and on the required readings. Exams and due dates are scheduled in advance. A grade of zero will be recorded for missed exams and late assignments unless prior arrangements are made (see below for details) or there are truly extenuating circumstances (which will require appropriate documentation). Assignments turned in after the due date are penalized 25% per day (or fraction thereof) late; this means a maximum of 3 days (i.e. 72 hours) late. In most cases, you are free to develop assignments on any platform/OS you wish. Some assignments may require a specific operating system setup, which will be provided when necessary. However, you are responsible for porting your code to the system the class is using and ensuring that it runs correctly for us when we grade your assignment. Our reference system will specified for each assignment, but will generally be Ubuntu Linux. Some assignments will be graded by automated unit testing.

Disabilities: The University of Virginia strives to provide accessibility to all students. If you require an accommodation to fully access this course, please contact the Student Disability Access Center (SDAC) at (434) 243-5180 or sdac@virginia.edu. If you are unsure if you require an accommodation, or to learn more about their services, you may contact the SDAC at the number above or by visiting their website at http://studenthealth.virginia.edu/student-disability-access-center/faculty-staff.

Special Circumstances: Students with special circumstances (athletics, extra time required on exams, final exam conflicts, SDAC considerations, etc.) need to let me know during the first week of class.

Exams: There will be one midterm exams (worth 20% of the final grade) and one final exam (worth 25% of the final grade).

Under NO circumstances will anybody be allowed to take the final exam early. You may ONLY request to take the final exam at a different time if you have a final exam CONFLICT, not a busy final exam schedule. Since there are no other exams scheduled during that time, it is unlikely that you will have a conflict.

Regrades: You may submit graded homeworks and exams for regrading within 4 days of when they are returned to you (less time for the final due to the end of the semester); this is done via the course tools. As long as people submit responsibly, I will not institute a frivolous regrade policy that existed in CS 2150 (if one is instituted, you will be told of this ahead of time). This time limit will be strictly enforced.

Computing resources: There are two specific computer resources needed for this course:

Honor pledge: The UVa Honor Code is in effect for this course. There are two course specific additions.

  1. An Ethics Honor Pledge will have to be signed to continue in this course – see the course introduction slide set for details.
  2. You may not look at any other student’s code for ANY reason, period. Not to debug, not to help, not to learn. You may not let another student look at your code for any reason. Needless to say, you cannot copy code from online sources unless the assignment specifically allows it (and in those cases, you must cite your source). The next paragraph describes this more.

Students are encouraged to discuss programs and assignments in general. However, helping others find bugs in existing programs, using another person’s code, or writing code for someone else is cheating and a violation of the University’s Honor System. Basically, you should not be looking at another person’s code for ANY reason (obviously you can after BOTH have submitted the assignment, or if there is a group project). This includes consulting programming solutions to assignments from previous years. This also includes looking up solutions online. Any honor violation or cheating will be referred to the honor committee, and will result in an immediate failure for the course, regardless of the outcome of the honor trial or your other grades. No exceptions! I am very strict on this, and one have successfully raised honor charges against students in the past due to violations of this policy - and I’ve blocked people from graduation because of honor offenses.

Your Well Being: The Engineering School proudly serves as a safe space for its students and aims to promote their well being. If you are feeling overwhelmed, stressed, or isolated, there are many individuals here who are ready and wanting to help. In addition to the course instructors, you can seek help through the Engineering Undergraduate office (Thornton A122), or Alex Hall (aec5d, 924-7601) who is the assistant dean of students for the Engineering school.

Alternatively, there are also other University of Virginia resources available. The Student Health Center offers Counseling and Psychological Services (CAPS) for its students. Call 434-243-5150 (or 434-972-7004 for after hours and weekend crisis assistance) to get started and schedule an appointment. If you prefer to speak anonymously and confidentially over the phone, call Madison House’s HELP Line at any hour of any day: 434-295-8255.

If you or someone you know is struggling with gender, sexual, or domestic violence, there are many community and University of Virginia resources available. The Office of the Dean of Students, Sexual Assault Resource Agency (SARA), Shelter for Help in Emergency (SHE), and UVA Women’s Center are ready and eager to help. Contact the Director of Sexual and Domestic Violence Services at 434-982-2774.

Topic coverage: This course will be split into six different topic areas, which are meant to be a introduction to a follow-on course that is available (or will soon be available) to take. Each topic area is expected to take about 6 lectures to cover, and will have two homeworks. The topic areas are listed below. Note that the content and the order they are covered may change as the semester progresses.

As far as the summer term is considered, each day is considered two “lectures” in the accounting below.