"a. The expected top-of-climb outside air temperature (OAT) was entered into the OAT field on the n1 limit page instead of the OAT at the airport (a figure of - 52°C as opposed to +16°C); and
b. The correct assumed temperature of 48°C was entered into the FMC."
When I write software (mostly medical) I take great care to "sanitise" operator input, i.e., make sure that it is likely or even possible. For example, in calculating fluid resuscitation there are cross-checks between the "date-of-birth", "age" and "weight" fields.
Entering a 48kg for a 1-year-old will generate an explanatory error - "Do you really have a 1-year-old who weighs 48kg. Input refused."
The OAT at Belfast may have been -52degC during the last Ice Age but it is way out of the normal in 2017.
Making sure that all inputs are sane is a chore and can make up as much as 50% of the code, but everyone can make mistrakes and one must check of them.