Hamlet was never one of my set texts at school but after watching Prince of Denmark, I wish it had been. Michael Lesslie's superb prequel to Shakespeare's tragedy is the latest offering from the National Theatre's Discover Programme, running at the Cottesloe alongside the Lyttelton's much-feted Hamlet starring Rory Kinnear.

An educational show then, cast from the National Youth Theatre and crewed by students from Lewisham College, but far from a text-book production. The play may be aimed at, and about, teenagers, but Lesslie is wise enough not to patronise his actors or audience. No need to relocate to a gritty urban housing estate. The affections and/or disaffection of Elsinore's adolescents are recognisable enough.

Director Anthony Banks said he wanted an 80% 16th-century, 20% contemporary feel, a ratio reflected in everything from costumes and choreography to script. The faux-Elizabethan language can be breaktakingly eloquent, other times starkly direct. And perhaps the biggest success for the assured young cast is that they act their age. Calum Finlay's Hamlet is philosophical and petulant by turn, while Eve Ponsonby's proto-feminist Ophelia is still learning how to manage her own sexuality. Best of all is Chris Levens' Laertes, misguided, manipulative but also shockingly funny.

In true Shakespearean tradition, Lesslie's play delights in the meta-theatrical. When Ophelia observes that her reflection under the willow tree appears to be drowning, Hamlet answers: "In another story, maybe she does." Too bad that other story is now sold-out at the National. But teenager or not, £5 of your pocket money is well spent on its punchy younger sibling.