Computer programming the art of actually instructing a computer to do what one wants is fundamentally a practical skill. How does one teach this practical skill in a university setting to students who may not be initially motivated to acquire it and who may have a variety of past experience or none at all? Furthermore how does one do it in a resource-efficient way to large classes? Students are largely motivated by assessment: what is the best way to assess this skill? How does this skill relate to more abstract concepts like “computational thinking”? In this piece NTFs from very different universities explain their solutions.