Innovación, pensamiento crítico y tecnologías emergentes en la enseñanza de programación universitaria con enfoque pedagógico activo