Technology and society · GCSE · OCR J277 1.6.1, AQA 8525 3.8, Edexcel 1CP2 5.2.2 · about 15 min
Automation and work, how daily life changed, and how automatable a job is.
[1 mark]Which kind of work is automated first?
[1 mark]Which statement about automation is most accurate?
[1 mark]Give a drawback of remote work.
[1 mark]Online shopping grew quickly. Give a cost of that.
[1 mark]A job is 40% stacking (0.5 automatable) and 60% advice (0). What percentage is automatable?
For each job in jobs, work out its automatable share: the total of each task's share times how automatable it is. Print <job>: <n>% rounded to the nearest whole number, sorted from the most automatable to the least. Add AT RISK to any job of 60% or more. At the end print most human task: <task>, the task with the lowest automatable value across every job.
# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()
# job: [(task, share of the job, how automatable 0 to 1), ...]
jobs = {
"shop assistant": [("stacking shelves", 0.4, 0.9), ("helping customers", 0.4, 0.2), ("counting stock", 0.2, 1.0)],
"nurse": [("taking notes", 0.3, 0.7), ("caring for patients", 0.6, 0.05), ("ordering supplies", 0.1, 0.9)],
"warehouse picker": [("finding items", 0.6, 0.95), ("packing", 0.3, 0.8), ("checking damage", 0.1, 0.4)],
}The hint students can ask for: A job's score is the total of each task's share times how automatable that task is. Sort the jobs by that score, mark the ones at or above the threshold, and find the single task with the lowest automatable value anywhere.
from bugbot import *
connect()
jobs = {
"shop assistant": [("stacking shelves", 0.4, 0.9), ("helping customers", 0.4, 0.2), ("counting stock", 0.2, 1.0)],
"nurse": [("taking notes", 0.3, 0.7), ("caring for patients", 0.6, 0.05), ("ordering supplies", 0.1, 0.9)],
"warehouse picker": [("finding items", 0.6, 0.95), ("packing", 0.3, 0.8), ("checking damage", 0.1, 0.4)],
}
scores = {}
for job, tasks in jobs.items():
scores[job] = sum(share * auto for task, share, auto in tasks)
for job, score in sorted(scores.items(), key=lambda kv: kv[1], reverse=True):
if score >= 0.6:
print(f"{job}: {score * 100:.0f}% AT RISK")
else:
print(f"{job}: {score * 100:.0f}%")
every = [t for tasks in jobs.values() for t in tasks]
print("most human task:", min(every, key=lambda t: t[2])[0])
Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.