¿Un profesor debería de calificar (en un examen escrito) código de cierto lenguaje?
Me acabo de acordar de un caso que me sucedió, cuando llevaba un curso de técnicas de programación hace algunos años.
El profesor pidió que resolviéramos ciertos problemas implementándolos en lenguaje C. Eso quiere decir que el profesor quería que apuntáramos código en C, en el examen.
Como sabemos, el compilador es muy estricto a la hora de los errores en programación. Si falta un punto y coma, el programa no corre y está mal puesto. El problema es ¿hasta qué punto tendríamos tolerancia con dicho profesor? ¿me bajará puntos por cada punto y coma que me olvide, ya que podría argumentar que mi programa tenía errores? (definitivamente, si lo hubiera programado faltando un punto y coma, el programa no hubiera corrido) ¿o me anulará toda la pregunta, ya que el programa de estar mal hecho y no correr, pues no corre? ¿qué tan justo es pedir eso en un examen escrito? y la pregunta es ¿es correcto pedir implementar en un lenguaje determinado un problema? (no en algoritmo).
El riesgo que se corre --según lo veo yo-- es que en lugar de evaluar la capacidad de resolver el problema y abstraerse pensando en una solución que sea computacionalmente programable, es que al pedir código estamos al mismo tiempo midiendo la habilidad del alumno en un determinado lenguaje (que puede que conozca o no, porque qué tal si ya no es C, sino ahora es pascal o visual basic?) ¿qué pasa si no me acuerdo exactemente cómo era el comando para introducir datos en ése lenguaje? ¿otro error de compilación y consiguientemente menos nota?. Sé de universidades en españa que los profesores evaluaban código, y por cada error de programación que encontraban, les restaban puntos. ¿les parece justo eso?
Ahora está el otro criterio, pensando desde el punto de vista del profesor. Tal vez ellos pidan código para evitar la ambigüedad y subjetivismo del seudocódigo. Ya que como ustedes saben el seudocódigo es tan preciso como lo quiera uno, un alumno al cual se le pide un programa para analizar un numero si es primo o no, podria colocar por ejemplo 1) recibe datos a y b 2) revisa si a es divisor de b, si lo es decir que es primo, si no lo es decir que no s primo. ¿qué les parece esto? acaso pedir pseudocódigo no sería algo también muy subjetivo al criterio del alumno? (el cual evidentemente intentará hacerlo por la via mas fácil) lo que podría evitarle hacer justamente la tarea que se le pide o comiéndose gran cantidad de código.
¿Qué harían ustedes de ser profesores en estos cursos de programación? ¿Pedirían implementación en código o pseudocódigo?.
Me parece que el profesor al preguntar por una codificación en algun LP en específico, debe primero precisar cual es el objetivo. Si su meta es lograr que los alumnos aprendan el código de dicho LP, su sintaxis y que programen de la manera más rapida posible, preguntar por el código no está mal. Lo que si estaría, mal a mi parecer, es que se pretenda evaluar en un examen de Algoritmos, los puntos y comas y los detalles más pequeños de una cierta codificación. En este último caso lo mejor sería evaluar a través de diagramas o pseudocódigo.
Pero lamentablemente con los diagramas y pseudocódigo viene otro dilema, porque la arbitrariedad de estos métodos puede una respuesta sea mas general que otra. No es lo mismo poner, esPrimo(a), que describir todos los pasos de cómo se determina la primacidad. Para ello el profesor es quién debe delimitar y colocar parámetros para la evaluación, si dentro de un algoritmo algo grande necesitas un algoritmo de ordenación, no creo que sea necesario especificar este último. Pero finalmente, como lo dije al principio es cuestión del enfoque de la evaluación.
Si estamos en un curso de 1er ciclo (progr 1), creo que estaria bien bajar puntaje por un punto y coma (-0.1 pts), despues de todo, en progra1 lo que se quiere enseñar es la sintaxis correcta de un LP, Ahora si estas en un curso como estructura de datos y algoritmos, bajar por un punto y coma esta de más, quizas por un puntero que se pierde, si sea una buena razon para bajar puntaje (-0.5)
La razon existencial de un examen es ver si un alumno aprendio lo que se enseño en el curso, y creo yo que la nota debe ser exclusiva de los asuntos que corresponden a cada curso.
salu2
OP3NGL
Estudiante de Ingenieria de Software
Universidad Peruana de Ciencias Aplicadas - UPC
Interesado en: Gráficas por Computadora con OpenGL
No estoy muy de acuerdo con esto último. No creo que en un curso como progra1 lo que se quiera enseñar es la sintaxis correcta de un LP. No lo creo. Lo que se quiere enseñar en un primer curso de programación es que el alumno piense algorítimicamente. El pensamiento algoritmico es algo ordenado, claro e independiente del lenguaje. Lo importantísimo de esta habilidad es que permitirá darse cuenta de cómo una solucion general que aplica el hombre en su vida diaria se le puede explicar a la computadora para que haga lo mismo, pero de una forma mas eficiente y de esa manera liberar al humano de tareas penosas (me viene a la mente las habitaciones de cálculo que habian en el departamento de defensa EEUU en los años 50. En cada cuarto habian 100 calculistas con su escritorio, lapiz y papel y reglas de calculo y tablitas de raices cuadradas, logaritmos, etc. En él llegaban pedidos de cálculo de cientificos que diseñaban armas o analizaban datos y alli se tenian que poner a calcular). Ese es un ejemplo de una tarea penosa que la computadora nos libera.
Por eso, te equivocas si crees que se enseña LA SINTAXIS de cierto lenguaje, no es asi. Ya que la sintaxis es variable (yo ahora mismo, que llevo programando desde que tenia 13 años con el basic en ROM en mi atari 800, ya me he olvidado mucho de la sintaxis de ese lenguaje) pero sé que en el momento que lo necesite, simplemente ojeo un libro y listo (se les identifica pq se llaman "manuales de referencia" de X lenguaje). Pero a ver si ojeas un libro que te enseñe el pensamiento algoritmico. Eso no es tan trivial, ya que requiere mucho entrenamiento.
Espero que haya servido. Y ojo que cuando digo pensamiento algorítimico, nunca he dicho programación estructurada (aunque viene a la mente, es cierto), pero facil q seudocodigo tambien para la procedimental, declarativa o cualquier otra forma de programación, que al final es lo que cuenta.
Ese tipo de preguntas en un examen de un Curso de Programacion , sigue aun siendo un problema, ya que como todo el mundo sabe un punto y coma y, o alguna palabra mal escrita, o un comando mal utilizado inutiliza el programa, puedes hacer un Codigo de un programa largo en tu examen y sin embargo si te falta un punto y coma tu puntaje por esa pregunta vale CERO. Y no solo sucede cuando te piden que diseñes el codigo, les comento algo que paso hace 2 meses nada mas en un EXAMEN DE ALGORITMOS Y PROGRAMACION , la profesora , puso una funcion EN CODIGO en el examen y pedia que coloquesemos los resultados que pudiera dar el codigo en nuestra pantalla al correr el programa, sin embargo como puede realizarse una funcion, SIN UN PROGRAMA PRINCIPAL ?, o como puede correr una funcion sin ser llamada? SE SUPONE Q ES CODIGO , el codigo es estricto O ES o SIMPLEMENTE NO ES, la profesora no entro en razones...BIEN EN MI OPINION pienso que el profesor deberia calificar en SEUDOCODIGO , pero guiandose al metodo o a los ejemplos que dio en clases, es decir un seudocodigo algo completo , nada de generalizaciones, DEBE SER UN SEUDOCODIGO PRECISO, y asi se podria tener una buena manera de calificar sin problemas.
JorGe Mendieta
Estudiante de Informatica
2do Ciclo
Qué cosa tan terrible. Si te das cuenta para "correr" una función requiere ser llamada adecuadamente. Incluso dependerá de cómo se comporte de la forma en que es llamada.
Comparto tu opinión sobre que debió evaluar en pseudocódigo. Además que la profesora debe de entender que se estan iniciando recién en la programación y no puede preguntar cosas así. Suponte que te olvidabas alguna línea (ya, exageremos, te olvidas cuál es el comando que muestra información), entonces, ¿qué haces? destrozas tu programa y evitas que compile colocando alguna función con objetivo obvio (imprimir) pero q no existe (entonces no compila) o modificas todo tu algoritmo de otra forma tratando de usar una función que sí recuerdas pero que hará q tu algoritmo funcione de otra manera (algo absurdo).
En españa, en la univ. de salamanca (donde enseña el Doctor Joyanes) han inventando un pseudocódigo propio, en el cual ya no es tan arbitrario (sus especificaciones están en la web). Acá no es necesario llegar a tanto. Simplemente indicarles que deben de explicitar tales y tales funciones (por ejemplo, no es necesario explicitar la función de imprimir pantalla --asumen q ya esta hecha, aunque como verán es una función y no es tan trivial como parece--) y se centran en el problema en sí. Si hay alguna duda uno va y pregunta, que para algo esta en profesor, no? :)
Si bien tal vez en un examen escrito es algo engorroso estar verificando si es que te olvidaste una coma o no tambien te ayuda a desarrollar un poco mas tu acertibidad ademas los buenos programadores si bien no se graban todo el codigo poco se equivocan en sus sintaxis
http://es.geocities.com/ivannapan Pagina Oficial de Ivan Napan
Se equivocan, y mucho. Ya que los verdaderos buenos programadores no son los que dominan un solo lenguaje sino dominan varios, ya que saben que el lenguaje es como una herramienta precisa para un determinado problema también preciso. Quien solo conoce como usar el martillo, todo le parecen cabezas de clavo.
Los buenos programadores usan IDEs (Integraded Development Editor) que les ayude con la sintaxis (acaso crees que VB o el Turbo C colorean el código para que se vea mas infantil y amistoso, a que no verdad?) Lo hacen justamente para que identifiques si no cerraste un paréntesis, o si te falta un punto y coma.
El verdadero programador no es quien se equivoca en la sintaxis. El verdadero programador es quien puede sentarse y escribir (equivocandose en sintaxis, tal vez) pero nunca se equviocará escribiendo código de mas, poco óptimo o enreverado/oscuro, y eso no tiene nada que ver con sintaxis de un determinado LP.
lo que deberia calificar el profesor es al programa ya listo y corriedo, funcionando.
el resto es pura tonteria.
yo estudie fortran en la san marcos, hace muchos años, y mi profe Zanotto, lo que nos calificaba era
el listado, con los resultados del programa.
no las tarjetas perforadas, ni el punto y coma.
ahora que una maquina cuesta un sencillo, porque no van a tener cualquier universidad su 486, que corra visual basic.
todo en la maquina, el examen escrito para pedro picapiedra.
Un profesor es profesor porque conoce ciertos temas, y si en un examen evalúa código entonces debe conocer el lenguaje, la idea es que un buen programador no es aquel que conoce muchos lenguajes por ejemplo tu puedes ser un buen programador tirando tu java o tu c++ pero lo eres y si eres bueno en c++ eres un buen programador si también respetas las leyes de la programación. Por lo tanto es bueno en cierta manera y si en todo caso es un profesor que en verdad no conoce el lenguaje mejor que no se meta porque puede que el alumno use realmente bien el lenguaje y el profesor no y el profesor por desconocimiento califique mal.
Esperar que nos califiquen totalmente con código escrito en el papel es tan absurdo y estúpido como un juguete de 'DITOY'...
La pregunta debe ser... Debemos permitir que nos califiquen usando esta metodología?.
Dado el caso puede ser...
Si, si solamente es una corto ejemplo en el que el objetivo es verificar el dominio del lenguaje.
No, otros casos, como la de dificultar la vida al alumno o hacer q pierda tiempo (cosa que me ha pasado y se q a uds también, en el algún momento)
Si el docente desea un gran ejemplo, entonces que entregue la herramienta correcta, un lenguaje no es tan solo dominio de sus sintaxis, comandos, palabras reservadas, etc. si no que se refleja tambien en poder ejecutar correctamente el 'programa' y obtener el resultado deseado.











Comentarios recientes
hace 1 día 1 hora
hace 6 días 23 horas
hace 1 semana 1 día
hace 1 semana 4 días
hace 1 semana 6 días
hace 4 semanas 12 horas
hace 4 semanas 1 día
hace 4 semanas 3 días
hace 5 semanas 2 días
hace 6 semanas 2 días