Syllabus

Table of contents

  1. Course components
  2. Learning objectives
  3. Grading policy
    1. Points allocation
    2. Grading scale
    3. Late policy
  4. Other course policies

Course components

The course consists of hands-on lab assignments, lectures and guest lectures on each topic, and discussions of recent papers from the hardware security literature. Your expected work includes:

  • Readings. Most classes will have assigned readings. You should do these readings before coming to class and be prepared to discuss their content. Occasionally we will also recommend optional readings; you are encouraged to read those, but not required.
  • Lab assignments. There will be four lab assignments. You will be asked to implement your own code and test it on a real machine. Details on these assignments will be provided in class. Students enrolled in the 12-unit version of the course may substitute the last lab assignment for an open-ended research project (with the instructor’s approval).
  • Discussions. You should attend all classes in person and participate in discussions. You are encouraged to ask questions about the readings during class. Based on the quality of the questions, we will give bonus points toward your final grade. Please inform the instructor if you cannot make it to the class due to travel or sickness.
  • Reviews. Before each discussion class, students enrolled in 17-435 will submit one discussion question about the assigned reading(s). Students enrolled in 17-715 will instead submit a peer-review-style review of one assigned reading. Submissions are due by 11:59pm the day before class. The lowest two discussion-preparation scores will be dropped.
  • Presentation (17-715 only). Each student enrolled in the 12-unit version of the course will lead or co-lead one topic-centered discussion synthesizing 2–5 related papers. The papers will be selected primarily from recent computer security and computer architecture conferences. Details on the discussion format will be provided in class.

Learning objectives

  • Ability to assess software for resilience against microarchitectural vulnerabilities.
  • Ability to implement, evaluate, and explain proof-of-concept microarchitectural attacks and countermeasures on real systems.
  • Ability to critique academic papers in the field of microarchitectural security, articulate the arguments made by them, and assess the evidence used to support these arguments.
  • (17-715 only) Ability to synthesize a research topic across multiple works and lead a technically substantive discussion.
  • (17-715 only) Ability to write concise, constructive, and technically grounded reviews of microarchitectural-security research.

Grading policy

Points allocation

The total points possible are allocated as follows.

17-435 (9-unit version):

  • 65% lab assignments
  • 5% discussion questions
  • 30% final exam
  • ≤ 10 pp extra credit

17-715 (12-unit version):

  • 50% lab assignments *
  • 20% presentation
  • 10% reviews
  • 20% final exam
  • ≤ 10 pp extra credit

* Project option: Lab 4 is replaced by a 20% project; the remaining labs count for 30%.

Grading scale

We will translate your final class percentage into a letter grade as follows (subject to change):

  • A (Excellent): ≥89.5*
  • B (Good): 79.5–89.5*
  • C (Satisfactory): 69.5–79.5
  • D (Passing): 59.5-69.5
  • R (Failure): <59.5

* To earn an A or B, you must get a score of at least 60% on the exam (post-curve, if applicable).

Late policy

Each of you has a total budget of 3 free late days that you can use for lab assignments during the semester without impacting your final grade. Once the budget has been used up, late submissions are subject to a 10% penalty per late day, with a maximum penalty of 50%. If a single lab assignment is submitted more than 5 days late (even if part of them are free late days), no credit will be awarded for that assignment. There are no late days for discussion questions / reviews: if you submit after the deadline, you get no credit.

Other course policies

  • Ethics, Law, & University Policies: This course covers techniques that can be used to attack real computer systems. You may use these techniques only on staff-authorized lab infrastructure or on systems that you own or have explicit permission to test. Do not scan or attack CMU production systems, third-party services, or another student’s machine. Protect any credentials or data you encounter, and report unintended access or exposure to the course staff immediately. You are responsible for following CMU’s computing policy and applicable law.
  • Academic Integrity: This course follows CMU’s academic integrity policy. Labs and reviews are individual assignments. You are welcome to discuss course concepts and high-level approaches with other students, but you may not share code or solutions. For presentations, you may reuse slides, figures, or other material available online, but you must clearly cite your sources. Suspected violations will be handled according to CMU’s academic integrity process.
  • Accommodations for students with disabilities: If you have a disability and require accommodations, please contact the Office of Disability Resources. If you have an accommodations letter from the Office of Disability Resources, we encourage you to discuss your accommodations and needs with the course instructors as early in the semester as possible. We will work with you to ensure that accommodations are provided as appropriate.
  • Statement on student wellness: As a student, you may experience a range of challenges that can interfere with learning, such as strained relationships, increased anxiety, substance use, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may diminish your academic performance and/or reduce your ability to participate in daily activities. CMU services are available, and treatment does work. You can learn more about confidential mental health services available on campus at: http://www.cmu.edu/counseling/. Support is always available (24/7) from Counseling and Psychological Services: 412-268-2922.
  • Recording Policy: You may not record any classroom activities without express written consent from the instructor. If you have (or think you may have) a disability such that you need to record or tape classroom activities, you should contact the Office of Disability Resources to request an appropriate accommodation.
  • Mobile Devices: Please refrain from using your computer/tablet/phone/etc. in class. Research on learning shows that the use of laptops in class can be distracting, affecting everyone’s learning experience. Moreover, it can be seen as disrespectful to both your peers and the guest speakers who spend time and effort in preparing their presentations. Exceptions will only be granted if needed under an approved accessibility accommodation.
  • AI Policy: You may use AI tools as a tutor, for example for explanations, brainstorming, or debugging, as long as you completely understand any work you submit. You may not upload course lab materials to external AI services or use AI services to solve assignments for you. Course staff may ask you to explain or walk us through your lab submissions; if you cannot explain the concepts behind your submitted work, you will receive no credit for that assignment.