¿Qué está fallando?
Lo siguiente es la fotografía de un fragmento de código de un estudiante:
La asignatura que imparto es “Programación Hipermedia I”, asignatura obligatoria en el tercer curso del grado de ingeniería multimedia. Se supone que los estudiantes ya han tenido varias asignaturas sobre programación en primer y segundo curso. Se supone que cuando llegan a tercero ya saben programar. Sin embargo, en el código anterior podemos ver:
- Tienen tres sentencias if($_COOKIE && $_COOKIE) que claramente se podrían haber puesto como if-else-if.
- Emplean la función strtolower() para pasar a minúsculas algo que claramente ya está en minúsculas.
- En vez de almacenar los datos de los usuarios en un array y emplear un bucle para comprobar si los datos son correctos, los datos están mezclados con el código y se escribe una sentencia if de comprobación por cada usuario. ¿Qué pasaría si hubiese mil usuarios?
Y en realidad, este código, programado por dos estudiantes (cuatro ojos ven más que dos), pertenece a una práctica que me sorprendió porque estos estudiantes habían sido los únicos que habían comprobado que los datos recuperados de la cookie eran válidos a la hora de restituir la sesión de un usuario (la típica opción “recordar en este equipo”).
¿Cómo puede explicar conceptos avanzados de programación web si la mayoría de mis estudiantes no son capaces de escribir correctamente unas sentencias básicas?
Uuuuf y eso no es nada habemos muchos Ingenieros titulados que aun no sabemos programar, por eso es la necesidad de la practica constante. 🙁
Grado de Ingeniería Multimedia, ojo! no es Informática, sino una titulación mixta de estas nuevas que mezclan dos o más areas de conocimiento en un único plan de estudios. Hay que tener cuidado con estas titulaciones, porque quieren abarcar mucho y apretar poco.
Dependiendo de la persona, se puede acabar uno de estos grados sabiendo muy poco de muchas cosas o bien, si el estudiante se centra, puede especializarse en algo y ser un buen profesional de ‘lo suyo’ que además sabe algo de otras cosas. No se si me explico…
Jaume, sí, eso que cuentas describe la realidad, pero no debería ser así. No tengo a mano la descripción del grado, pero seguro que en las competencias pone cosas como encontrar la mejor solución a un problema, plantear algoritmos eficientes o implementar/programar software basado en tecnologías y estándares actuales. Todo eso creo que no se logra en la mayoría de los casos. Como parte del sistema, me preocupa mucho.
Por cierto, el código de ejemplo tiene más problemas, no tenía más tiempo para enumerarlos todos. Pero como dicen los alumnos, “funciona, está bien”.