CSE Roadmap

Core tier · about 4 hours · 4 parts

Part 3 of 4 · 2 min read

Exercises

Easy

Easy 1: Run it (30 minutes)

Run python -m pytest -q and python run_all.py in code/mini-privacy.

Done when: you report precision and recall and list the four misses.

Easy 2: Inventory (30 minutes)

List every place a customer's email address would be copied in an agent you know.

Done when: each place has a retention limit or is marked "unknown".

Easy 3: Add a rule (30 minutes)

Add a rule for dates of birth like 1990-04-02 after the word "born".

Done when: recall improves and you check that it creates no new false positive on the corpus.

Hint

keep the rule anchored to the word "born" to avoid matching invoice dates.

Medium

Medium 1: Names without titles (4 hours)

Add a list-based or model-based name detector.

Done when: you report recall and the false positives it creates on ordinary words such as "Rose" or "Will".

Hint

evaluate on names that are also common words.

Medium 2: Retention job (3 hours)

Run expire on a schedule with per-kind limits.

Done when: a test shows logs gone after 30 days and raw records kept to 365.

Medium 3: Boundary detokenisation (3 hours)

Make a send-email tool receive a token and detokenise only the recipient field.

Done when: the model and the trace never contain the real address.

Hint

the tool, not the model, receives the vault reference.

Hard

Hard 1: Real detector comparison (8 hours)

Compare regex, Presidio and an NER model on labelled tickets. (I did not run this, so your numbers are the ground truth.)

Done when: you report precision and recall per type with intervals.

Hard 2: Erasure across stores (8 hours)

Implement erasure across a database, a vector index and logs for a demo agent. (I did not run this.)

Done when: a test deletes a subject and a scan of all stores finds no trace of them.

Hint

store the subject id on every derived artefact.

Hard 3: Re-identification (6 hours)

Show how combining age band, postcode and job could identify a person in your data. (I did not run this.)

Done when: you propose a generalisation that reduces uniqueness and measure the change.