ASSIGNMENT 7 · CHAPTER 16

Validate a component contract

Read the named source pages, check the five objectives, apply the concepts, then reassess your decision when new evidence appears. The total-time estimate includes preparation; report your actual time.

Practical hour. This build is this chapter’s practical hour. The assignment is not submitted without it. Running the tests is a separate row in the rubric; longer writing does not make up for it.

الساعة التطبيقية. هذا البناء هو الساعة التطبيقية لهذا الفصل. لا يُسلَّم الواجب بدونه. تشغيل الاختبارات صف مستقل في السلّم، لا يُعوَّض بطول الكتابة.

Course learning outcome 8: Compose standardized reusable components, practised by building and testing the adapter. The tests and the coverage step practise outcome 11: design and implement test cases across testing strategies.

مخرج التعلم 8: تركيب المكوّنات القياسية القابلة لإعادة الاستخدام، ويُمارَس ببناء المهايئ واختباره. والاختبارات وخطوة التغطية تمارس المخرج 11: تصميم حالات الاختبار وتنفيذها.

45–65 min total5 points totalDeadline: course LMSIndividual response
  1. Warm-up
  2. FIT → CONTRACT → BOUND → ACT + EVIDENCE
  3. Commit Part A
  4. STRESS → REFIT
  5. AI declaration + human review
  6. Export and submit in LMS
Checking storage…Not yet saved

1 · WARM-UP · 5 MINUTES · NOT GRADED

A function accepts a number called duration. Does its name and input type tell you whether this means minutes or seconds?

Show / hide warm-up answer

No. The unit is part of what the input means. The calling app and the component need agreed rules for units, limits and what happens on an error.

Lecture guide

X03, B01, R09, D16 and D16B; original slides 14–22 and 40–59.

FIT identifies the relevant problem. CONTRACT builds this chapter’s artifact. BOUND states the limits. ACT + EVIDENCE records the action, owner and verification. STRESS then tests your reasoning before REFIT.

Chapter map · Relevant mechanism · 20-rule map · Practice card. Source and chapter-unit identifiers are not canonical rule numbers.

CURRENT EDITION · MASTERY V2

Required preparation and assessment scope

Read: Composition types: slides 40–43; Interface semantics and OCL: slides 51–55.

Complete the five-objective preparation check after the assigned reading before you start.

Scope notes and earlier editions

Blackboard supplies the calendar deadline. All five chapter objectives, the classroom concepts and named reading are in assessment scope. Optional toolkit activities are enrichment unless assigned.

One assigned source application and one short transfer answer are included below, within the existing 5-point rubric. A reading click or a practice score is not proof of mastery.

Already started the previous edition? Resume or export your previous work using the same ID and browser. Previous drafts stay separate. Completed submissions do not need repeating unless the instructor requests it.

READ BEFORE ANSWERING

How your work is assessed · 5 points

CriterionScoring
FIT · 1 point1: Defines the problem using the chapter ideas accurately, distinguishes facts from assumptions and connects it to the proposed action. The short answer applying a second chapter idea must correctly apply the second concept; FIT and that answer together earn this single point.
Partial credit: 0.75 · 0.5 · 00.75: The right concept and mechanism, but one link is thin: a fact and an assumption are not separated, or the transfer answer applies the second concept only partly.
0.5: A relevant concept is named but applied generically or to the wrong mechanism, or the transfer answer is missing or incorrect.
0: No chapter concept is applied, the case is misread, or the answer depends on invented facts. A generic “hold and test” statement does not satisfy this criterion.
CONTRACT · 1 point1: A coherent pre/post contract, justified unit conversion, valid range and a discriminating boundary or invalid-input test. Apply one idea from the assigned reading to your technical work and explain the connection. Include your predicted outcomes, both local runs and a correct interpretation of any discrepancy; test logs replace a descriptive paragraph. Build: every course check passes, your own tests catch every known bug (mutation test), and you can make your code change for the short discussion (micro-viva) and explain which tests change; the text uses what the build showed.
Partial credit: 0.75 · 0.5 · 00.75: A coherent contract and test, but one element is incomplete—for example, the invalid-input behavior or the interpretation of one local run.
0.5: The contract omits the unit or the valid range, the tests do not distinguish the baseline from the corrected model, or a discrepancy is misread. Or the build fails course checks that the written record does not explain.
0: No usable contract or test log, or results reported without running the local models.
TESTS RUN · requiredRequired for submission: a recorded run of your own tests and the course checks on your final code, a second run after you change one test input, and the coverage sentence. Part A cannot be committed without them. Not replaceable: longer writing does not make up for a missing run. A run with failing checks is accepted when your text explains it. The build itself is marked in CONTRACT.
THEIR CHANGE · requiredRequired for submission: run 3, their change, with your code and tests unchanged, and your answer to two questions: did your tests stay green, and is the result still correct? Not met when your answer does not match what the run shows, for example “the result is still correct” when it is not. This row adds no points and takes none; the instructor reviews a row that is not met.
IN-CLASS CHECK · requiredTwo questions on paper in the lecture after the deadline, with no devices, about your own submission: a small change to your code and one new fact. Both correct: the mark stands. One correct: the mark is halved. Neither: a two-minute conversation with the instructor decides. This row adds no points. See AI rules and the in-class check.
BOUND · 1 point1: States relevant assumptions, the situations covered, and a result you can observe that would make you review the decision.
Partial credit: 0.75 · 0.5 · 00.75: A relevant boundary and trigger, but one is imprecise—for example, a trigger that cannot be observed as written.
0.5: The boundary is generic (“if problems occur”) or does not match the claim and the plan.
0: No boundary, or a boundary that contradicts the case facts.
ACT + EVIDENCE · 1 point1: Gives a workable action with clear limits, who is responsible, and evidence someone else can check, while distinguishing checks already completed from checks you plan to do.
Partial credit: 0.75 · 0.5 · 00.75: A feasible action and useful evidence, but one element is missing—for example, the responsible role, or whether the evidence is completed or proposed.
0.5: The action is vague or not feasible in the case, or the evidence cannot be inspected by someone else.
0: No action, or evidence that is invented or reported as completed when it is only proposed.
REFIT · 1 point1: Explains how the new evidence affects the initial claim and justifies RETAIN, REVISE or REPLACE with a consistent final answer.
Partial credit: 0.75 · 0.5 · 00.75: The effect of the new evidence and the RETAIN / REVISE / REPLACE choice are justified, but the final record leaves one inconsistency with the new boundary.
0.5: A choice is stated but not justified from the new evidence, or the final record repeats Part A without addressing the change.
0: No REFIT, or a response that ignores or contradicts the new evidence.

Five points use the same familiar structure. The chapter artifact changes; the LMS determines how assignment points contribute to the course grade.

Learning-outcome alignment

This task supports CLO 8 of the course specification (section B). The Python build, its tests and the coverage step also support CLO 11. It is course-written practice, not an official national readiness assessment or an approved item-weight mapping.

Strong and weak answers for each criterion · how other answers are accepted
CriterionStrong exampleWeak example
FITStrong: The concept is interface semantics: the OCR and summariser interfaces match in syntax but not in meaning. Given: lines carry confidence values; the adapter drops them. Assumption, marked: the summariser treats every line as true.
Why: Names the chapter concept, keeps to the given facts and marks the assumption.
Weak: Both passed their tests, so the composition is fine.
Why: Supplier tests cover each component, not the composition; no case fact used.
CONTRACTStrong: Precondition for the summariser: every line has confidence ≥ 0.9 and a declared number format. Postcondition for the adapter: low-confidence lines are marked uncertain, never dropped silently.
Why: Writes testable pre- and postconditions at the boundary.
Weak: The adapter should be careful with numbers.
Why: No condition anyone could test.
BOUNDStrong: The composition is trusted while the OCR confidence threshold holds and reports use Western or Arabic-Indic digits as declared. A report in another script reopens it.
Why: Names the dependency and an observable trigger.
Weak: It works for normal reports.
Why: No dependency and no observable trigger.
ACT + EVIDENCEStrong: Action: the adapter rejects or flags lines below the threshold, owned by the integration engineer. Evidence: a boundary test with a low-confidence Arabic-Indic value, proposed, showing the flag reaches the doctor.
Why: Feasible action, a named role, evidence with its status.
Weak: Test it with more reports.
Why: No specific action, owner or inspectable evidence.
REFITStrong: The 5.8 read as 3.8 shows my adapter contract was missing the confidence precondition. I replace the adapter postcondition: low-confidence numeric lines are passed as uncertain and the summariser must not state them as fact. My first plan assumed dropping confidence was safe.
Why: Names what changed, chooses REPLACE with a reason, admits the first assumption.
Weak: I keep the adapter; the doctor would notice a wrong value.
Why: Moves the check to a person without evidence; ignores the given fact.

Other answers are accepted when: the answer names the chapter concept that decides, uses only the facts given in the task, writes at least one testable condition at the component boundary, and names evidence from a boundary test or record that someone else can check. A different contract that meets these conditions earns the same marks as the model answer.

The examples are about a different practice case. They show the kind of reasoning that earns the mark, not the answer to this task.

What distinguishes an unsupported answer from a stronger one?

Different practice example · weak: “The names and types match, so integration is correct.”

Stronger: For a different temperature adapter, matching numeric types does not establish Celsius/Fahrenheit semantics. State the conversion and an expected boundary result, then report the actual result separately.

The stronger answer names a mechanism, its scope and inspectable evidence. It does not certify a real system. Your assessed answer must address this task’s own facts.

The assignment in nine steps الواجب في تسع خطوات

  1. 115 minPrepareLecture, the two readings, the five practice questionsاحضر المحاضرة، اقرأ المصدرين، وحلّ الأسئلة الخمسة
  2. 21 minOpenOpen it with your Student ID, in the same browser every timeافتح الواجب برقمك الجامعي، ومن نفس المتصفح دائماً
  3. 320 minPart AFIT · artifact · BOUND · ACT + EVIDENCE, 120–180 wordsاكتب حكمك الأول: المشكلة، المهمة، الحدود، القرار والدليل
  4. 430 minBuildPlan, complete the code, write 3+ tests, Runاكتب الخطة، أكمل الكود، 3 اختبارات على الأقل، ثم Run
  5. 51 minCommitReview & commit Part A: it becomes read-onlyثبّت الجزء A: يصبح للقراءة فقط
  6. 62 minNew evidenceIt opens on the page right after you commit. Read itيظهر الدليل الجديد في الصفحة مباشرة بعد التثبيت: اقرأه
  7. 710 minPart BBoundary status, then RETAIN / REVISE / REPLACE and whyهل تغيّر قرارك؟ اختر وبرّر، ثم اكتب القرار النهائي
  8. 82 minSignDeclare AI use, type your name, tick the boxصرّح بالذكاء الاصطناعي، اكتب اسمك، وضع العلامة
  9. 93 minSubmitPrint / PDF, then upload the PDF in Blackboardصدّر PDF وارفعه في Blackboard

Select a step to see it on a picture of this page. Online guide: How to do an assignment.

Before you start

  • Save often. Use Save draft while working and download a backup before leaving a shared device.
  • Commit, then the new evidence. Part A becomes read-only when you commit, and the new evidence opens on this page straight away. Complete Part B, export the PDF and upload it in Blackboard.
  • AI rules and the in-class check. Part A is written without AI. After the deadline, a 10-minute paper check on your own submission decides whether your mark stands. Read the rules for each step before you start.

New to this format? Read the step-by-step guide. The sequence preserves your first judgment; it is not a secure examination system.

AI rules and the in-class check

قواعد الذكاء الاصطناعي والتحقق في المحاضرة

FCIT Generative AI Policy, Option C (Mixed Approach). Each step below has its own permitted AI level. You remain responsible for showing your own understanding, and using AI beyond the permitted level may be treated as academic misconduct. The level of every assessment is listed in the course specification.

سياسة الذكاء الاصطناعي التوليدي في كلية الحاسبات وتقنية المعلومات، الخيار C (النهج المختلط). لكل خطوة أدناه مستوى مسموح لاستخدام الذكاء الاصطناعي. وتبقى مسؤولًا عن إثبات فهمك بنفسك، واستخدام الذكاء الاصطناعي بما يتجاوز المستوى المسموح قد يُعامل مخالفةً أكاديمية. ومستوى كل تقييم في المقرر مذكور في توصيف المقرر.

  • Studying the lecture before you start. AI-Assisted · for learning: AI may explain an idea and ask you to restate it in your own words. It may not answer this case.

    قبل البدء: مذاكرة المحاضرة: بمساعدة الذكاء الاصطناعي · للتعلّم: يمكن للذكاء الاصطناعي أن يشرح فكرة ويطلب منك إعادة صياغتها بكلامك، ولا يجيب عن حالة هذا الواجب.

  • Part A answers (FIT, COMPARE, BOUND, ACT + EVIDENCE, reading, second idea). AI-Free: No AI. Write them yourself.

    إجابات الجزء A: بدون ذكاء اصطناعي: بدون ذكاء اصطناعي. اكتبها بنفسك.

  • The AI draft in the scenario. AI-Free: It is the material you critique. Find the claims the supplied facts do not support.

    مسودة الذكاء الاصطناعي في الحالة: بدون ذكاء اصطناعي: هي المادة التي تنقدها: حدّد الادعاءات التي لا تدعمها الحقائق المعطاة.

  • Python build. AI-Assisted: AI may explain an error message. It may not write your functions or your tests.

    البناء في بايثون: بمساعدة الذكاء الاصطناعي: يمكن للذكاء الاصطناعي أن يشرح رسالة الخطأ، ولا يكتب دوالك ولا اختباراتك.

  • After you commit (STRESS and REFIT). AI-Assisted: AI may question your reasoning. The final decision and the words are yours.

    بعد تثبيت الجزء A: بمساعدة الذكاء الاصطناعي: يمكن للذكاء الاصطناعي أن يسألك عن تفكيرك، والقرار الأخير وصياغته لك.

  • AI-use declaration. Required: Name the tool and the steps where you used it, what you changed because of it, and what you chose not to take, and why.

    تصريح استخدام الذكاء الاصطناعي: مطلوب: اذكر الأداة والخطوات التي استخدمتها فيها، وما غيّرته بسببها، وما رفضت أخذه ولماذا.

In-class check · AI-Free. In the lecture after the deadline you answer two short questions on paper, with no devices, about your own submission: a small change to your code (which test fails, and why) and one new fact (does your decision change?). It takes about 10 minutes. Both answers correct: your assignment mark stands. One correct: your mark is halved. Neither: a two-minute conversation with the instructor decides the mark. If you miss that lecture with an accepted excuse, the check is done in office hours. This applies the ownership rule on every assignment: your written work and your own explanation must agree.

التحقق في المحاضرة · بدون ذكاء اصطناعي. في المحاضرة التي تلي موعد التسليم تجيب على ورق، وبدون أي جهاز، عن سؤالين قصيرين حول واجبك أنت: تغيير صغير في الكود (أي اختبار سيفشل ولماذا)، ومعلومة جديدة (هل يتغير قرارك؟). يستغرق نحو 10 دقائق. إذا كانت الإجابتان صحيحتين تبقى درجة الواجب كما هي، وإذا كانت إجابة واحدة صحيحة تصبح نصف الدرجة، وإذا لم تصح أي منهما تُحدَّد الدرجة بعد نقاش قصير مع الأستاذ مدته دقيقتان. ومن غاب عن تلك المحاضرة بعذر مقبول يُجري التحقق في الساعات المكتبية. هذا تطبيق لقاعدة الملكية الموجودة في كل واجب: يجب أن يتفق ما كتبته مع شرحك له.

How to do it, with an example · كيف تحلها، مع مثال

Identity

Loaded from the entry page. Drafts are separated by Student ID in this browser.

Submission details

Check the current deadline and submission instructions in the LMS.

How this assignment connects to the lecture and the five objectives

ONE METHOD · TWO DIFFERENT CASES

From the classroom card to this assignment

The lecture has 20 slides and three short practice stations: claim + evidence; mechanism + limits; changed condition + revised decision. Here you transfer that reasoning to the separate assessed scenario below. Do not copy the practice answer or submit another full classroom report.

Unchanged: 5 raw points, existing deadline, local draft identity, confirmed Part A commitment, STRESS then REFIT, AI declaration and Blackboard submission. Already completed work does not need repeating merely because the lecture was updated.

Five chapter objectives → existing evidence opportunities

These are local chapter objectives. They do not renumber the approved syllabus outcomes or establish an official national mapping. The lecturer judges correctness and sufficiency; a field being filled is not attainment.

Chapter objectiveWhere it is practised / evidenced within this task
Objective 16.1 Describe component characteristics and interfaces.FIT
Objective 16.2 Compare development for and with reuse.source application + BOUND
Objective 16.3 Choose sequential, hierarchical or additive composition.CONTRACT
Objective 16.4 Diagnose interface incompatibility and specify an adapter.transfer question + lab record
Objective 16.5 Read an OCL precondition/postcondition and design a test.lab test cases + lab record + REFIT

2 · PART A · 20 MINUTES

Assessed scenario · fictional teaching case

Task format: Review an AI assistant’s answer. The same five criteria apply.

A fictional lab-booking app uses an existing software component with the function reserve(roomId, duration).

  • The app sends duration in minutes. The component's instructions say duration is in seconds and must be between 1 and 7200, inclusive. An accepted request returns a reservation ID.
  • A small connecting function (adapter) currently passes both values to the component without changing them.
  • A sample request with duration = 30 returns an ID. Nobody has tested the saved end time or what happens with invalid input.

Your decision: use the component, adapt the connection, replace the component, or hold the limited trial. Explain what must be checked before relying on it.

An AI assistant's draft answer — review it; do not copy it: “Use the component as it is. The sample request with duration = 30 returned a reservation ID, so the connection works correctly. Both sides call the value duration, so the adapter only needs to pass it through. Any duration up to 7200 is accepted, so a three-hour booking (180 minutes) is safe. No more tests are needed before the trial.”

Teaching simulation. Use only the supplied facts. You may calculate from them. Do not invent additional test results, thresholds or completed audits. If you propose extra evidence or a new threshold, label it proposed.
Quick word help · معاني المصطلحات

شرح مختصر للكلمات المستخدمة في هذا الواجب. ارجع إليه أثناء الحل.

Words in this case

Component
An existing software part that provides a service.
جزء برمجي موجود يقدم خدمة يمكن لبرنامج آخر استخدامها.
Adapter
A small function that connects parts with different expectations.
دالة صغيرة تصل بين جزأين تختلف متطلباتهما، مثل وحدة قياس الوقت.
Contract
The rules the caller and component agree to follow.
قواعد يتفق عليها البرنامج المستدعي والمكوّن المستخدم.
Precondition / postcondition
A rule before the call / a promise after a successful call.
شرط قبل الاستدعاء / نتيجة يجب ضمانها بعد نجاحه.
Boundary test
A test at or near a limit of the allowed input.
اختبار عند حد من حدود الإدخال المسموح أو قريب منه.
OCL
Object Constraint Language: notation for writing precise rules.
لغة لكتابة القيود بدقة؛ يسمح السؤال أيضًا بصياغة واضحة أخرى.

Words used in every assignment

FIT
What problem matters, and why?
ما المشكلة المهمة؟ ولماذا؟
BOUND
When does your recommendation apply? What would make you review it?
متى يصلح قرارك؟ وما الذي يستدعي مراجعته؟
ACT + EVIDENCE
What will you do, who is responsible, and what supports it?
ما الإجراء؟ ومن المسؤول؟ وما الدليل؟
STRESS
New information shown after you lock Part A.
معلومات جديدة تظهر بعد تثبيت الجزء A.
REFIT
Review your decision using the new information.
راجع قرارك في ضوء المعلومات الجديدة.
RETAIN / REVISE / REPLACE
Keep the decision / adjust it / choose a different decision.
أبقِ القرار / عدّله / استبدله بقرار آخر.
Fact / assumption / proposed
Given evidence / something you assume / something you suggest doing or testing.
حقيقة معطاة / افتراض يحتاج تحققًا / إجراء أو اختبار تقترحه.
Artifact
The work you produce: for example a test plan, comparison or set of rules.
المخرج الذي تعدّه، مثل خطة اختبار أو مقارنة أو مجموعة قواعد.
Transfer answer
Apply a second chapter idea to the question, using your own explanation.
طبّق فكرة ثانية من الفصل على السؤال، واشرحها بأسلوبك.
Mutation test / micro-viva
Your tests try code with known bugs / a short discussion where you explain and change your code.
اختباراتك تكشف أخطاء مقصودة في الكود / مناقشة قصيرة تشرح فيها كودك وتعدله.

Keep the written response to about 120–180 focused words; use compact tables or notation. Include the source application and transfer answer in that budget. Your Python code, tests and build record are not counted in it. State facts, assumptions and proposed evidence separately. Quote or cite the assigned source precisely; explain its role. Report actual study time at the end.

A1 · FIT · 1 POINT

Explain the difference between matching the function name and input types (syntax) and agreeing on what the values mean (semantics). Name the service the component provides and one rule the calling app must follow. Name one claim in the AI draft that the supplied facts do not support, and the fact that shows it.

PYTHON BUILD · ASSESSED IN CONTRACT

Build the connecting function (adapter)

Write reserve_minutes(component, room_id, minutes). Check that the input meets the required condition before calling the component. Convert minutes to seconds. Then check that the returned result meets the promised condition. Write tests for these before-and-after rules.

First time? Try the not-assessed practice build and a complete worked example on How to do an assignment.

Budget about 30 minutes. Python runs in your browser: nothing to install, and nothing is uploaded. The first run downloads Python once (about 10 MB, internet needed). Passing every check is necessary, not sufficient: your written record must use what the build shows.

Your tests also run against versions of the code with known bugs. Each bug must make at least one of your tests fail. This is called mutation testing. Your build record gives you a small code change to explain in a short discussion (micro-viva), selected using your Student ID. Be ready to make it and explain which tests change and why.

Primary source · about 15 minutes: B. Meyer, “Applying ‘Design by Contract’,” IEEE Computer 25(10), 1992. Read about the rule before a call (precondition), the promise after a successful call (postcondition), and which side is responsible if either is broken. Which side does ValueError protect? Which side has broken its promise when ContractError is raised? Use the answer in your build plan.

The course checks your build must pass
  • minutes are converted to seconds
  • 1 and 120 minutes are accepted
  • invalid minutes are rejected before the call
  • a wrong end time breaks the postcondition
  • your own tests: at least three, all passing
  • your tests catch every known bug (mutation test)

Keep the given names. Write at least three functions whose names start with test_. Tab inserts four spaces.

Write your plan, then run.

COVERAGE STEP · COURSE OUTCOME 11 · DESIGN AND IMPLEMENT TEST CASES ACROSS TESTING STRATEGIES

The build record measures which lines and branches of your code your own tests run. The course checks are not counted.

  1. Make your three tests pass and read the coverage lines in the build record.
  2. Change one input in one of your tests. Run again: the record shows Run 2.
  3. Write one sentence: which branch is still not tested, and which input would test it.

RUN 3 · THEIR CHANGE · A PART YOU DID NOT WRITE CHANGES

The component team ships version 2. The call is the same, reserve(room_id, duration), but duration is now in milliseconds (1 to 7,200,000).

- reserve(room_id, duration)   # duration in seconds, 1..7200
+ reserve(room_id, duration)   # duration in milliseconds, 1..7,200,000

After your tests pass (Run 2), run their change. Do not edit your code or your tests first.

A2 · CONTRACT · 1 POINT

Write a precondition (what must be true before the call) and a postcondition (what must be true after it succeeds). Use clear notation; OCL-style notation is also allowed. State the unit conversion the adapter needs. Give one test at a limit or with invalid input, and the result you expect to observe. Use your actual build record to explain a difference between the original and corrected behavior, one limit of the model, and any prediction you corrected.

Use your executed test log above. Explain one observed difference between models and one limit of the model; revise an incorrect prediction explicitly. The log replaces prose about tests you might run.

A3 · BOUND · 1 POINT

State the allowed input range and the documented behavior you rely on. Name one unanswered question about how errors are reported or handled.

A4 · ACT + EVIDENCE · 1 POINT

Choose use, adapt, replace or hold. Name who is responsible for connecting the software. State what evidence is needed to check the agreed rules after the parts are connected.

Name the test, activity record or review that supports your decision. State the conditions it covers, who checks it, and what evidence is missing. Clearly separate results already available from checks you are only proposing.

ASSIGNED SOURCE APPLICATION · INCLUDED IN THE EXISTING RUBRIC

Give a slide number from the assigned reading. Explain its idea in your own words, then point to the part of your answer it supports or challenges. A slide number alone is not enough.

TRANSFER CHECK · SCORED WITH FIT

A report component calls a storage component to do its work. Name this type of component composition (way of connecting components). Compare it with a design in which two components work side by side and their outputs are then combined.

Commit is not LMS submission. Confirmation freezes FIT, CONTRACT, BOUND, ACT and EVIDENCE before the new information appears.

Privacy: responses are stored locally in this browser under Chapter + Student ID. They are not sent to the instructor by this page. Submit the checked PDF through the LMS.