Edwards. Rethinking Computer Science Education from a Test-first Perspective. ACM Press, 2003, doi:10.1145/949344.949390.