Bad officiating lead to 10 points for ND, but it looks as though it wouldn't have mattered anyway (unless it changed momentum).
Purdue defense played well. Except they gave up 2 critical 4th down conversions and another one on 3rd. Those were the game changers.
Purdue offense needs some work against better defenses, the OL in particular. Surprisingly the run game was good. The pass blocking was bad. The play calls on 3rd down were bad. Brohm tried to get too fancy. The Boilers established a decent run game, but did not get their normal pass game going and instead elected to get tricky. Should have stuck with the the normal pass plan.
Credit to the ND defense, they played an excellent game.