It doesn't give me any pleasure to say it. I detest the SNP and what they stand for - separation, nationalism, political opportunism - but Angus Robertson is quickly turning into the unofficial leader of the opposition in Westminster. He simply stands head and shoulders above Jeremy Corbyn - or indeed any of the other party leaders - when he asks David Cameron questions at PMQs.

It had been a drab and unimpressive session. The jokes were terrible, the powers of scrutiny from the Labour leader predictably ineffective. The period in which he was actually quite good at this event is now firmly in the past. He's not quick enough to think on his feet and his entire approach is fraught with error.

He used all his questions on forced academisation, presumably on the assumption that it'll look like Labour pushed the prime minister into a U-turn when, down the line, they think again. Which they probably will, but that'll have more to do with internal Conservative discomfort than Labour pressure. And that goes doubly now that we've seen how ineffective Corbyn is at applying it.

Cameron's arguments were disingenuous to the point of idiocy. He spent the session citing lukewarm comments on academies by the OECD and the chief inspector of schools, as if that somehow answered questions on whether the academy model should be forced on schools. It's an obvious distinction. You might like ham sandwiches, but you'd not be keen on being forced to eat them against your will. But Corbyn just didn’t seem to spot it, so the session droned on and on, pointlessly.

Cameron was enjoying himself a bit too much. "Rocket science isn't really my subject, and apparently it's not his," he said, after he Labour leader mixed his metaphors on rocket boosters and wheels. "Little tip for you," he told Labour MP Chris Bryant. "If you want to be Speaker you’ve got to stop interrupting everybody. Little tip for you there."

Dreadful jokes, lovingly embraced by the Tory benches. It was a long and boring session. And then Angus Robertson stood up and asked about the thing Corbyn should have been asking about: the Tory blockage of an amendment to save 3,000 child refugees from Europe.

His tone was perfect: grave but angry.

"There are many members of that House [the Lords], as there are many members of this House [the Commons] in all parties... who would wish us to do much, much more... Will the prime minister please reconsider his opposition and stop walking on by on the other side?"

Cameron delivered his usual response, stressing that it’s better to help in the region rather than in Europe, so as to discourage the refugee boats. He also suggested there was something “deeply wrong” about comparing the child refugees from Nazi Germany with those who have now made it to Europe. Later he would stress that a child refugee with a relative in the UK could come under the Dublin rules.

His comments were a moral chasm. Ten thousand children have gone missing from camps in Europe. NGOs suspect that least some of them are being trafficked, or sold into sexual slavery. Many of the children in the Calais Jungle say they have relatives in the UK, but there are no efforts to process them. We leave them there, without any attempt to help whatsoever.

"Just as in the 1930s," Robertson said. He was drowned out by shouting from the Tory benches, who were acting out a pretend sense of outrage at the comparison with Nazi Germany. You could see him visible take in the moment. This was precisely the opposite of Corbyn, who was unable to think on his feet. Robertson instead channelled his sense of moral outrage.

"There’s no comparison, apparently. Apparently there's no comparison between thousands of people in the 1930s needing refuge..."

Speaker John Bercow had to intervene at that point, to quieten down the Tory benches and remind them the Chamber is the "home of free speech". Then Robertson continued.

"This is an existential question about the safety of vulnerable children. The prime minister thinks it is not the responsibility of the United Kingdom... So I ask him: who has the moral responsibility to feed them, to clothe them, and to give them refuge, if not us?"

It was a towering moment of statesmanship, of a leader of a political party making the right points in the right way and demonstrating genuine moral outrage over something which warranted it.

Then Yvette Cooper stood up. I’ve never been impressed by her either. She was boring and sloppily authoritarian as shadow home secretary and deeply uninspiring in the Labour leadership contest. But we'd never seen her like this before. She was full of rage, visibly emotional, but not chaotic. She directed her anger like a battering ram towards the prime minister.

Yvette Cooper's storming mini-speech at #PMQs calling on Cameron to accept child refugees pic.twitter.com/mlE2EAj3hC — Sunny Hundal (@sunny_hundal) April 27, 2016

She reminded him that ten thousand children had disappeared. "How are they safe?" she demanded. She reminded him of the reports of the children having "survival sex" with predatory adults so they'd look after them. "They are being abused."

She finished: “Will he reconsider his position on Alf Dubbs' amendment and stop with his attitude to child refugees which is putting this House and this country to shame?”

And then something happened which almost never happens at PMQs: There was applause.

She shows what an effective Labour leader at this moment could achieve. And Roberston - nationalist warts and all - showed how a leader of the opposition should behave.