CS 3710: Syllabus for Introduction to Cybersecurity (ICS), fall 2025
Go up to the ICS UVa page (md)
Quick version
I realize that not everybody reads these through. So the TL;DR version:
- This course organized through Canvas, and the Canvas workspace is here
- Two midterms: Thursday, October 2nd and Thursday, November 6th, both in lecture
- The final is Monday, December 15, 2024 from 9am to noon
- We have a fairly unique extension system used in this class – be sure you understand it (and the limitations)
- Grades are 15% each midterm, 25% final exam, 40% homeworks, and 5% participation
- Most things are going to be auto-graded, but you can submit multiple times; the grades won’t be known until the late due date has passed
- If you encounter any rough spots in the course – please be patient, and provide constructive feedback, and I’ll do my best to get it all fixed
- There will be both larger programming homeworks and smaller tutorial-style homeworks or readings – sometimes one of each will be assigned at any given time
- Readings will typically have in-class quizzes when they are due
- Office hours are the hour before lecture, or by appointment
- I want you to succeed in this course and enjoy it – if you are having any problems (personal, academic, what-not) that I can help with, please let me know
And now for the really long-winded version…
Course Staff
- Aaron Bloomfield / aaron at virginia dot edu. Office: Rice Hall, room 402. Office hours will be posted on the Canvas landing page
- TA information can be found on the Canvas landing page
Course Info
- Lecture: Tu/Th 11:00-12:15 in Rice 130
- Coordination is through our Canvas workspace
- Email: please use the course contact email (listed on the Canvas landing page)
- Announcements will be typically done through the daily announcements slide set or Piazza, rather than the Canvas announcements tool
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:
- Understand the ethical and policy context for cybersecurity in today’s society
- Understand how to better safeguard one’s personal computer
- Understand the basics of advanced topics in cybersecurity including encryption, digital forensics, binary exploits, and networks
- Understand the modern concepts in cybersecurity attacks and prevention
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:
- Programming and written assignments (40%)
- Midterms (15% each)
- Final exam (25%)
- Class participation, pop quizzes (5%)
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-.
Participation: The participation grade is handled very differently depending on whether it’s a spring/fall semester or a summer term.
For a spring or fall semester, participation is based on quiz grades and occasional attendance checks. These attendance checks may become more frequent if the lecture attendance drops off significantly.
Summer is a very different situation – it’s 5 days a week for 2 hours and 15 minutes. Also, participation is worth 30% of the grade (versus 10% during a fall or spring semester). During a summer term, everybody will get full participation grade (30/30) if they attend every lecture, stay off of their laptop (or other screen), stay awake, and participate in lecture. This a Boolean AND, so it has to be all four to get points for that day. Any day that you do not get credit will be 2 points off your participation grade.
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 and late submissions: 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. For example, anywhere from 1 second late to 24 hours late receives 25% percent off.
You may request an extension on any assignment (PA or PS) for any reason – there is an automated system, linked to from the Canvas landing page, for this. That extension is 4 days. HOWEVER, you only have 8 such “free late passes” during the semester – once they are used up, there will not be any more. An extension will delay the onset of the late penalty – so if you get an extension, then the late penalty does not kick in until the 5th day after the due date.
This extension rule does not apply to quizzes, exams, or any in-class activities. It only applies to programming assignments (PAs) and written assignments (PSs).
However, there are a few specifics to this extension rule:
- As mentioned above, you only have 8 such free late passes to use throughout the semester
- The extension request must be submitted no later than 3 days after the (regular) due date. We will not consider anybody that misses this date (it actually should be in before the due date itself, but we are giving you 3 days to submit after that point).
- This extension time covers any and all situations: travel, holidays, being busy, family emergencies, SDAC (generally), dog ate your homework, religious observances, interviews, thunderstorms, power outages, temporal dislocation, etc.
- We are not expecting to allow any further extensions beyond this 4 days, unless there are considerable extenuating circumstances – basically, something that would have granted an extension for more than 4 days in the first place. If you get busy or sick at the end of your 4 day extension request, then that’s your tough luck.
- After you extension ends, the late penalty (above) kicks in for the next three days.
- This policy already includes SDAC accommodations less than 4 days (we are just extending these accommodations to everybody). Likewise, religious accommodations of a short time (a few days) are handled by this policy as well.
- If there is a valid need for an extended accommodation – SDAC, religious, health, etc. – please chat with one of the instructors, and we’d be happy to discuss it with you.
- For written assignments, if you turn your assignment in on time, then that will be the version graded – you can’t turn it in on time, then file an extension, then submit it later, and expect the later version to be graded. We will have already started grading the on-time submissions, and we just don’t have the staffing capacity to grade multiple submissions from students.
- This means that any written assignment turned in after the due date, whether late or via an extension, will end up taking much longer to be graded.
- TA and instructor office hours are optimized for the actual due date – if you file for an extension, there may not be sufficient office hours available for when you plan to submit it. Also, the next week’s office hours will have to focus on the assignment due that week.
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 two midterms and a final exam. Dates are shown above and on the Canvas landing page.
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).
Life
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.
Students with disabilities or learning needs
It is my 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 me 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 me 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.
Religious accommodations
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.
Students who wish to request academic accommodation for a religious observance should submit their request to me 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.
Harassment, Discrimination, and Interpersonal Violence
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 I can. As a faculty member, I am a responsible employee, which means that I am 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.
Support for your career development
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.
General CS Student Support
Please do not wait until the end of the semester to ask for help!
At UVA, you have many resources available to you when you experience academic or personal stress, and we understand that it’s hard to know where to go, especially for CS students as our undergraduates span both the College of Arts and Sciences (BACS) and SEAS (BSCS).
In addition to your professor, the Computer Science department has staff members located in Rice Hall who you can contact to help talk through your academic or personal challenges and get you connected to the right resources. You may reach out directly to either SJ Jimenez-Calhoun (smj4z@virginia.edu) or Sheri Grimes (prk2zq@virginia.edu), or visit during walk-in advising hours posted here: https://uvacsadvising.org/.
Academic Support
- Lisa Lampe, Assistant Dean for Undergraduate Affairs
- Georgina Nembhard, Director of Student Success
- Free tutoring is available for many CS and Engineering classes in addition to more academic support programs around Grounds for a variety of other courses.
Mental Health
- You may schedule time with the CAPS counselors at this link.
- If you need immediate assistance, call (434) 243-5150 to speak with an on-call clinician. Accommodations
- Learn about the process of applying for Student Disability Access Center (SDAC) services, completing an online application, submitting documentation, undergoing a review, and attending an appointment to establish accommodations
Community and Identity
The Center for Connection (The Connect) is a dedicated student space within UVA Engineering that fosters academic success and personal growth. Through its programs and initiatives, The Connect helps students strengthen their engineering identity while providing resources to help them thrive during their studies and beyond. Our work centers on three key areas: student belonging and development, academic support, and community programming grounded in intentional, data-driven strategies.
The Connect features an open study area, a flexible event space, and on-site staff who provide direct support and advising to students. It is part of the Office of Community, Opportunity, and Engagement.
Additional Notes
Syllabus Note: This syllabus is to be considered a reference document that may be adjusted throughout the course of the semester to address necessary changes. This syllabus can be changed at any time without notification; we will announce any major changes. Final authority on any decision in this course rests with the professors, not with this document.