Evaluación de estrategias y entornos para la enseñanza de programación en la universidad y en los niveles educativos preuniversitarios