Go up to the ICS UVa page (md)
I realize that not everybody reads these through. So the TL;DR version:
And now for the really long-winded version…
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 source code in that repository is released under a GPL 3.0 license, and all the non-source code material in that repository is released under a Creative Commons license (CC BY-SA). Note that this license and the public availability does NOT apply to the lecture videos.
Lectures: Lecture attendance is required. There will be occasional attendance quizzes to verify this. These quizzes may be online, so bring a connected device (phone is fine) to take said quizzes.
Readings: Due to the rapidly changing nature of this topic, there is no assigned textbook. Various online readings will be assigned. You should expect a reading quiz on the day that a reading is due. These quizzes may be online, so bring a connected device (phone is fine) to take said quizzes.
Purchases: As mentioned above, no textbook is required for this course. You don’t have to purchase anything else for this course. But you do have to have a relatively modern notebook computer (any computer purchased in the last 3 or so years will suffice). If you do not have one, or yours breaks during the semester, get in touch with us as the department can loan you one.
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. The course content is split into six “modules”: introduction, ethics and policy, cryptography, networks, binary exploits, modern topics, and digital forensics.
The course objectives are:
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 (or, ideally, submit a email ticket) 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 Canvas, 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” (during office hours or right after class) is often a good way to get a more immediate response.
Prerequisites: CS 2100 (Data Structures and Algorithms 1) and CS 2130 (Computer Systems Organization 1), each with a grade of C- or above. (If you are on the old curriculum, then CS 2150 (Program and Data Representation) – with a grade of C- or above – is a sufficient pre-req). As per departmental policy, this pre-req will be checked, and if it is not met, you will be de-registered from the course.
Grades: Grades will be calculated by the following formula:
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. In particular, if the grade averages are very high, then you will need higher than a 90 to get an A-.
Assignments: During a regular (fall or spring) semester, the intent is for there to be one assignment due every week (except the week of the midterm and Thanksgiving week). A typical module will have two assignments. During a summer term, there will be less than that. The written homeworks will be submitted as a PDF, and will consist of writing, math, and short programs. All submissions are through Gradescope, the link to which is on the Canvas landing page. Due to the class size, and the limited TA support, all the programming assignments will be auto-graded. 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 language/platform/OS you wish. Some assignments may require a specific operating system setup, or a particular required programming language, which will be provided if 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. The Gradescope submission auto-grader will verify this upon submission (and immediately report the results back to you). Most assignments will be graded by automated 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 as soon as possible. General SDAC accommodations are handles as per our SDAC Accommodations (md) page.
Extensions: You may request an extension on any homework assignment for any reason. That extension is up to 4 days. To do so, you will have to fill out an extension request form, the link to which will be provided on the Canvas landing page. You can assume that the extension will be automatically provided by filling out the form.
This extension rule does not apply to quizzes, exams, or any in-class activities. It only applies to homework assignments.
However, there are a few specifics to this extension rule:
Grading: Programming assignments are auto-graded, and will be returned after the end of the extension and late period – which means after 8 days after the due date. The provided input and required output will be clearly specified in the assignment write-up. When you submit your assignment, a few acceptance tests will be run. These tests are meant to ensure that your program works with the required input and output. They will test the provided examples in the assignment write-up, but they are NOT meant to be comprehensive. Your grade will NOT be based on the acceptance tests – instead, there will be a separate battery of comprehensive tests that will be used to determine your grade. These tests (and their results) will not be revealed until the homework is returned – if they were, then one could just write a program with only print()
statements to pass all those tests.
Exams: There will be one midterm exam (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. You have to be present, in person, at the final exam period.
Regrades: You may submit graded homeworks and exams for regrading within one week of when they are returned to you (less time for the final due to the end of the semester). Regrades are submitted via Gradescope (for written assignments) or email tickets (for programming assignments). As long as people submit responsibly, I will not institute a frivolous regrade policy that existed in some earlier semesters (if one is instituted, you will be told of this ahead of time). This time limit will be strictly enforced.
Honor pledge: The UVA Honor Code is in effect for this course. There is one course specific addition: 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.
Generative AI: Unless stated otherwise, you may NOT use any generative AI tools, such as ChatGPT, to write the code of the assignments. Note that there is one assignment (Ethics) where you are specifically instructed to do so. If you want to figure out how to do something small, such as how to perform a substring in Python, that’s fine, as that is analogous to looking it up on stackoverflow. You must cite any and all generative AI that you use in such a manner (a one-line comment above the line you got this way is sufficient).
Bad things happen. People forget things and make mistakes. Bad days coincide with due dates. etc. We aim to have our extension policy, above, help to cover these types of issues. If you believe that circumstances warrant an change in deadline, a second chance, or some other accommodation in order to more accurately synchronize grade with knowledge, come talk to your professor and we’ll resolve the situation as best we can. Note that there needs to be a significant reason for this, as we already are providing a free 4 day extension.
It is our goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with one of us outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at cmacmasters@virginia.edu to schedule an appointment. For general questions please visit the SDAC website. If you have already been approved for accommodations through SDAC, please send us your accommodation letter and meet with me so we can develop an implementation plan together.
Note that we expect most (or perhaps all) accommodation requests will be handled by our extension policy, above.
It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
As with the previous section, we expect most (or perhaps all) accommodation requests will be handled by our extension policy, above.
Students who wish to request academic accommodation for a religious observance should submit their request to us by email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available.
The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, or veteran status. UVA policy also prohibits retaliation for reporting such behavior.
If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It or contact EOCR, the office of Equal Opportunity and Civil Rights.
If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (“CAPS”) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).
As your professors and as people, know that we care about you and your well-being and stand ready to provide support and resources as we can. As a faculty member, we are responsible employees, which means that we are required by University policy and by federal law to report certain kinds of conduct that you report to me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.
Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. I wish to encourage and support you in activities related to your career development. To that end, please notify me by email as far in advance as possible to arrange for appropriate accommodations.
You have many resources available to you when you experience academic or personal stresses. In addition to your professor, the School of Engineering and Applied Science has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!
You may schedule time with the CAPS counselors through Student Health. When scheduling, be sure to specify that you are an Engineering student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.
The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.