SMS: Fundamentos de programación: aprendizaje activo basado en casos. Un enfoque moderno usando Java, UML, Objeto y Eclipse