Contact tracing: part 2
This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are:
- to build your skill applying computational thinking to a problem
- to assess your knowledge and skills of different programming practices
What is this problem set trying to do[edit]
You must be able to look at a real-world problem and using computational thinking, decompose it into smaller parts. you will be using file operations, user input, and perhaps serialization.
The Problem[edit]
Contact tracing is the process of identifying, assessing, and managing people who have been exposed to a disease to prevent onward transmission. When systematically applied, contact tracing will break the chains of transmission of COVID-19 and is an essential public health tool for controlling the virus.
Contact tracing for COVID-19 requires identifying people who may have been exposed to COVID-19 and following them up daily for 14 days from the last point of exposure.[2]
It may be helpful to start with Contact tracing: part 1
You must write a program which a medical professional would use to interview a patient newly diagnosed with covid-19. Your program must:
- accept input for the patient:
- name
- first name, last name, alias
- address
- city, postal code, street
- phone number
- best phone number to reach you, secondary phone number
- email
- email, other best way to electronically reach you
- date of infection
- MM-DD-YYYY
- todays date
- MM-DD-YYYY
- name
- This data must be saved in an external file so your program has persistence (you can stop the program and then re-run the program and the data will be saved).
- Your program must assign a UNIQUE ID to each patient.
- This data will be used and accessed by other parts of your contact tracing app, so please design it carefully.
- This program must stand alone; it should not include any other parts of any other program.
- All data must be correctly checked for type or an exception must be raised. Do not allow invalid data!
How you will be assessed[edit]
Your solution will be graded using the following axis:
Scope
- To what extent does your code implement the features required by our specification?
- To what extent is there evidence of effort?
Correctness
- To what extent did your code meet specifications?
- To what extent did your code meet unit tests?
- To what extent is your code free of bugs?
Design
- To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
- To what extent is your code eliminating repetition?
- To what extent is your code using functions appropriately?
Style
- To what extent is your code readable?
- To what extent is your code commented?
- To what extent are your variables well named?
- To what extent do you adhere to style guide?
References[edit]
A possible solution[edit]
Click the expand link to see one possible solution, but NOT before you have tried and failed!
not yet!