On the Development of a Programming Teaching Tool: The Effect of Teaching by Templates on the Learning Process