How to Teach Computer Science Parable, practice and pedagogy