Agradecimientos - Instituto Politécnico Nacional

70
Agradecimientos Por su dedicación y enseñanza en lo que es la vida y con su ejemplo me dicto por donde ir y que hacer. AMI MAMA. Por sus enseñanzas, por su tesón y por el esmero con que realiza cada una de sus actividades diarias en lo familiar y en lo laboral y además por la ocupación que les otorga a nuestros hijos. AMI ESPOSA FLIPER. No tengo palabras como expresarte mi más profunda admiración y agradecimiento por lo mucho que me has dado y comprendido. Por sus mas altos niveles de comprensión, por el tiempo que no he estado con ustedes y por su esmera dedicación en cada una de sus actividades cotidianas, además de que me enseñan como ser mejor en la vida. A MIS HIJOS (Jocelyn y Ricardo) Por sus enseñanzas, por sus dedicaciones y por su esmero en su docencia y en el proyecto y además por que si él no se hubiera completado mi grado. A MI DIRECTOR DE TESIS (M. en C. Eduardo Rene Rodríguez Ávila). Por sus actitudes, por sus comportamientos, por sus ideas y por sus pensamientos hacen que me llene de energía todos y cada uno de los días en mi profesión de docente A MIS ALUMNOS. Lo más importante en la vida es hacer el intento. Ricardo Pérez Calderón

Transcript of Agradecimientos - Instituto Politécnico Nacional

Page 1: Agradecimientos - Instituto Politécnico Nacional

Agradecimientos

Por su dedicación y enseñanza en lo que es la vida y con su ejemplo me dicto por donde ir y que hacer. AMI MAMA.

Por sus enseñanzas, por su tesón y por el esmero con que realiza cada una de sus actividades diarias en lo familiar y en lo laboral y además por la ocupación que les otorga a nuestros hijos. AMI ESPOSA FLIPER. No tengo palabras como expresarte mi más profunda admiración y agradecimiento por lo mucho que me has dado y comprendido.

Por sus mas altos niveles de comprensión, por el tiempo que no he estado con ustedes y por su esmera dedicación en cada una de sus actividades cotidianas, además de que me enseñan como ser mejor en la vida. A MIS HIJOS (Jocelyn y Ricardo)

Por sus enseñanzas, por sus dedicaciones y por su esmero en su docencia y en el proyecto y además por que si él no se hubiera completado mi grado. A MI DIRECTOR DE TESIS (M. en C. Eduardo Rene Rodríguez Ávila).

Por sus actitudes, por sus comportamientos, por sus ideas y por sus pensamientos hacen que me llene de energía todos y cada uno de los días en mi profesión de docente A MIS ALUMNOS.

Lo más importante en la vida es hacer el intento. Ricardo Pérez Calderón

Page 2: Agradecimientos - Instituto Politécnico Nacional

Resumen El siguiente trabajo plantea la necesidad de reducir el tiempo en aprender a

programar por parte de los alumnos de una carera en informática o afín, con el

apoyo de una herramienta y técnica propuesta. La Técnica propuesta se basa en el

desarrollo de algoritmos bajo el enfoque de pseudocódigo y qué con ellos se pueda

generar las conversiones a los diferentes lenguajes de programación propuestos,

derivado de los 4 grandes paradigmas que existen en la programación.

Hoy en día existen una gran variedad de lenguajes de programación para una

infinidad de aplicaciones a nivel mundial, pero lo importante no es el lenguaje como

tal, para el planteamiento de este proyecto, si no, es la manera en como se

desarrollo un programa a partir de un algoritmo para la solución de un problema en

particular, por lo tanto, si al alumno se le enseñara una de forma de desarrollar

algoritmos para la solución de problemas, será más fácil llevar esa situación a algún

lenguaje de programación en particular y si esa forma de desarrollo de los algoritmos

se pudieran capturar, para almacenarse y después mejorarse, seria de gran impacto

y avance en su proceso de lógica de programación para el alumno, esa es la

herramienta propuesta.

Page 3: Agradecimientos - Instituto Politécnico Nacional

Abstract The following work exponed the need to reduce the time in learning to

programmming by part of the students of computing Engineer or affine, with the

support of a tool and technical proposal. The Technical proposal base in the

development of algorithms under the approach of pseudocódigo and what with them

can generate the conversions to the different lenguajes of programming proposed,

derived of the 4 big paradigms that exist in the programming.

In the actuality exist a big variety of lenguajes of programming for an infinity of

applications to world-wide level, but the important is not the lenguaje like such, for

the planteamiento of this project, if no, is the way in as I develop a program from an

algorithm for the solution of a problem in particular, Therefore, if to the student

taught him an of form to develop algorithms for the solution of problems, will be

easier to carry this situation to some lenguaje of programming in particular, and if this

form of development of the algorithms could capture, to store and afterwards

improve, serious of big impact and advance in his process of logic of programming

for the student, that is the tool proposed.

Page 4: Agradecimientos - Instituto Politécnico Nacional

Introducción La enseñanza es una actividad básica del ser humano. Es la forma como nuestra cultura ha perpetuado y transmitido su conocimiento, tan vasto que ningún ser humano sólo puede asimilarlo. El ser humano debe especializarse en un tema y sobre éste aprender para dedicarse posteriormente a una actividad profesional. Una de estas actividades es la programación de computadoras, cuya enseñanza o aprendizaje puede no resultar sencillo. A este respecto se presenta en este trabajo una propuesta sobre su enseñanza reforzada con el uso de una herramienta. La disciplina de la enseñanza tiene una infinidad de líneas de investigación y no se diga de las relacionadas al ámbito académico y técnico. En este trabajo se plantea cómo desarrollar algoritmos a través de una metodología para que pueda desembocarse en la creación de un programa en uno de cuatro posibles paradigmas de programación. Es importante mencionar que la programación, al ser una actividad netamente profesional y compleja, es necesario estrategias didácticas para facilitarla e implementarla. Justificación. Se ha detectado que los estudiantes de una carrera en informática o afines tienen problemas cuando empiezan a programar; dificultad que puede extenderse a lo largo de sus estudios. Muchas veces estos tropiezos son de mucha tensión para el alumno. Por lo tanto, la reducción del tiempo de aprendizaje es fundamental para ayudar al estudiante en el aprovechamiento de todas aquellas materias que requieren de una habilidad de programación o, en su defecto, que necesiten más tiempo para desarrollar otras actividades académicas. Objetivo La enseñanza de la programación es una actividad compleja y difícil con una infinita gama de tópicos para estudiarse y desarrollarse como líneas de investigación. Este trabajo plantea observar la problemática al momento de desarrollar algoritmos y proponer una solución estratégica didáctica. Por lo tanto, un objetivo es proporcionar una herramienta para apoyar la enseñanza de lenguajes de programación, el desarrollo de algoritmos y la elaboración de programas.

Hipótesis.

Se plantea la siguiente hipótesis:

“La reducción del tiempo de aprendizaje y desarrollo de habilidades en la programación de computadoras, está relacionada positivamente con el uso de una metodología de diseño de algoritmos y más si está soportada con una herramienta automatizada para tal efecto.”

Page 5: Agradecimientos - Instituto Politécnico Nacional

Organización de la tesis. La estructura de este trabajo consiste de 5 capítulos, un anexo de informacion, un anexo de graficas y la bibliografía respectiva. El capítulo I da un panorama de los lenguajes introductores a la actividad de la programación de computadoras, así como las herramientas que existen en el medio y la evolución de los lenguajes de programación. El capítulo II describe el problema planteado a través de los modelos de la enseñanza, los factores que intervienen en el aprendizaje, el rol del docente, y los principios pedagógicos de los profesores en las aulas. El capítulo III describe los lenguajes que fueron seleccionados para la construcción de la herramienta, esquematiza ejemplos de las gramáticas de algunos de ellos y da ejemplos de los códigos convertidos partiendo de un algoritmo. En el capítulo IV se describe cómo se llevó a cabo la solución para la investigación: a través de una metodología de diseño de algoritmos y ejemplos desde los más básicos hasta algunos complejos, además de cómo se formaron los grupos tanto el de control como el experimental. En el capítulo V se hace entrega de los resultados obtenidos de la investigación, a través de graficas y formas tabulares de los conceptos que se plantearon. Por último se dan las conclusiones y recomendaciones para la continuación de esta investigación o de futuros proyectos.

Page 6: Agradecimientos - Instituto Politécnico Nacional

INDICE Página Capitulo I. La programación de computadoras 1.1 Breve Historia 3 1.2 Paradigmas de los lenguajes de programación 3 1.3 La enseñanza de la programación 4 1.4 Herramientas de enseñanza 5 1.5 Experiencias de la enseñanza de la programación 6 Capitulo II. El aprendizaje y la enseñanza 2.1 Teorías sobre el aprendizaje y modelos de enseñanza 8 2.2 Factores que intervienen en el aprendizaje 11 2.3 Paradigma actual de la enseñanza y formación 12 2.4 La enseñanza más importante en el aprendizaje 13 Capitulo III. La herramienta propuesta 3.1 Construcción del sistema 16 3.2 Descripción del funcionamiento de la aplicación 23 3.2.1 Códigos convertidos 30 3.2.2 Pseudocódigo 33 3.2.3 Instalación de la Aplicación 37 Capitulo IV. Formulación de algoritmos 4.1 La necesidad de una Metodología para la formulación de algoritmos 41 4.2 Validación de campo de la herramienta presentada y técnica descrita 44

Capitulo V. Taller de lógica de programación 5.1 La importancia de un TLP 45 5.1.1 Grupo de control 46 5.1.2 Grupo Experimental 47 5.2 Graficas 49

Conclusiones y Recomendación 51

Bibliografía 52

Anexos de tablas 53 Enfoques del conocimiento 53 Comparativo Universidades Publicas y Universidades politécnicas 54 Comparativa estilos del aprendizaje 55 Calificaciones de los grupos 56 Resultados del Ceneval 60 Formación de Grupos 63

Cuestionario 65 Graficas 67

Page 7: Agradecimientos - Instituto Politécnico Nacional

- 2 -

Capítulo I La Programación de Computadoras

1.1 Breve historia de la programación. Los lenguajes de programación han sufrido una transformación sustancial desde sus inicios. Si bien en las primeras computadoras era necesario cablearlas para su programación, en nuestros días no hay más que sólo tener una PC para experimentar sobre su programación. Tras su evolución, hoy en día podemos identificar varias generaciones de lenguajes de programación. Lenguajes de 1ra. Generación.- Bajo esta clasificación se engloban todos aquéllos códigos de programación conocidos como lenguajes máquina ó códigos máquina. Lenguajes de 2da. Generación.- Esta generación fue impulsada por los estudios del matemático húngaro John Von Neumann sobre el concepto del programa almacenado en memoria, se desarrollaron los primeros lenguajes ensambladores simbólicos, junto con algunos otros que hoy se catalogan como de nivel medio. Lenguajes de 3ra. Generación.- Son todos aquellos lenguajes que parten de una gramática y poseen una sintaxis propia de un lenguaje libre de contexto. Aquí caen la mayoría de los lenguajes de programación que existen actualmente. Lenguajes de 4ta. Generación.- Lenguajes principalmente orientados al usuario final que parten de un modelo declarativo, en el que lo que importa es la expresión de problema y la solución esperada más no la forma en que ésta se obtenga. El diseño e implementación de los lenguajes de programación al igual que las computadoras también han ido evolucionando de una manera continua y metódica desde que aparecieron en la década de los cincuenta. 1.2 Paradigmas de los lenguajes de programación

Un paradigma es una forma de organización en donde los elementos se estructuran en sentido lógico, es decir, se trata de un modelo o patrón a seguir. Los lenguajes de programación pueden clasificarse por el paradigma con el que se implementó, cada uno completamente diferente en su concepción. A continuación se describen los cuatro más representativos.

Paradigma Imperativo.

En el modelo de programación imperativa se utilizan las diferentes estructuras de control y estructuras de datos predefinidas por el propio lenguaje o las definidas por el propio desarrollador; en este contexto el usuario define variables, constantes, funciones, procedimientos, entre otras. El programa se comporta como una máquina abstracta. En términos coloquiales se le indica al programa qué instrucción se debe ejecutar primero y hasta que termine esa instrucción no se inicia la siguiente y así sucesivamente hasta el final del programa. Un ejemplo muy claro de este tipo programación es el lenguaje Pascal.

Page 8: Agradecimientos - Instituto Politécnico Nacional

- 3 -

Paradigma Funcional.

En la programación funcional todo gira entorno a la definición de funciones y en la aplicación de esas funciones. En términos coloquiales se le indica al programa ejecutar una función predefinida, con o sin parámetros, y hasta que se tengan resueltos todos los parámetros, se ejecuta la función.

Paradigma Basado en reglas.

Los modelos basados en reglas, como la programación lógica, expresan un problema a través con un conjunto de relaciones, hechos, y aquello que rige en su establecimiento o funcionamiento. Muchos de los lenguajes de programación que recurren a este modelo deben implementar algunos mecanismos adicionales para que funcione adecuadamente, como la capacidad de recorrer varias posibilidades y regresar sobre los pasos tomados para explorar otros si los primeros resultan infructuosos, un concepto conocido como rollback o backtracking.

Paradigma Orientado a Objetos.

La programación Orientada a objetos (POO) parte de la concepción de conceptos más sofisticados en comparación a los paradigmas anteriores. Considera entidades participantes en un problema como objetos, las relaciones entre éstos (herencia, polimorfismo, encapsulamiento) y su comportamiento.

1.3 La enseñanza de la programación. La enseñanza de la programación presenta sus propias dificultades y complejidades. Sin embargo actualmente los tres lenguajes más representativos e importantes para la enseñanza de la programación son Pascal, Scheme y Basic.

Pascal.

Pascal fue desarrollado en 1968 por Niklaus Wirth en Zurich, como una evolución del lenguaje ALGOL 60. Su nombre es en honor del matemático francés Blaise Pascal. Este lenguaje fue el primero en incorporar los conceptos de la programación estructurada y es un referente contundente al aprender a programar. Este lenguaje es totalmente representativo del paradigma imperativo y de los lenguajes de nivel alto.

Scheme.

Scheme fue desarrollado por Guy Lewis Steele Jr. y Gerald Jay Sussman, siendo derivado del lenguaje LISP, que fue el primero en incorporar el cálculo lambda. Enfatiza la recursividad y el paso de argumentos a través del manejo de funciones.

Basic.

Page 9: Agradecimientos - Instituto Politécnico Nacional

- 4 -

El “Begginers All-Purpose Symbolic Instruction Code”, o BASIC, por sus siglas en inglés, es un lenguaje de programación desarrollado por los profesores Thomas Kurtz y John Kemeny, del Dartmouth Collage, en 1964. Tuvo mucho auge pero su popularidad fue disminuyendo a medida que las actividades de programación se volvían más complejas y sofisticadas. No por ello ha dejado de ser un lenguaje muy poderoso para iniciar a los alumnos en el área de la programación.

1.4 Herramientas de enseñanza. La educación exige la necesidad de crear diversos tipos de estrategias y recursos para que realmente ofrezca posibilidades de desarrollo a todos los alumnos y no sólo a unos cuantos. Una vez que los alumnos sean más competentes, su entorno (profesores incluidos) se volverán más exigentes de igual manera. El software educativo es una herramienta capaz de transformar positivamente los procesos de enseñanza-aprendizaje, aportando novedosos caminos en su desarrollo.

E-learning.

E-learning es un método didáctico para masificar la educación y romper las barreras geográficas. La Internet ha impulsado la educación enormemente a través de esta técnica, aunque es importante reconocer que diferentes medios tecnológicos a través del tiempo han impulsado este concepto. Existen varios organismos que usan este concepto, como el ADL (Advanced Distributed Learning) que ha impulsado el SCORM (Shareable Content Object Reference Model) como un estándar para la educación a distancia.

Desarrollar cursos para esta modalidad es caro por la infraestructura tecnológica que hay atrás de ellos pero una vez terminado y puesto en marcha su utilización tienen una recuperación de la inversión inicial acelerada. Existe también software libre con el que se puede elaborar y publicar cursos en línea y que son una alternativa considerable para disminuir costos.

CD y DVD Interactivos.

A través del uso de diversos medios (audio, video, animaciones, hipervínculos, textos, fotos, imágenes), adecuada y fácilmente presentados y distribuidos en discos compactos con formato CD o DVD puede auxiliarse al alumno con material de referencia o sobre el que totalmente puede apoyarse en el aprendizaje de algún tema. Su bajo costo los hace un medio muy atractivo.

Tutoriales.

Los tutoriales son aplicaciones que buscan aumentar el aprendizaje significativo de los alumnos a través de una presentación dirigida con teoría y práctica. Pueden ser presentados en formato CD/DVD, en forma de un curso a distancia o como material impreso.

Page 10: Agradecimientos - Instituto Politécnico Nacional

- 5 -

1.5 Experiencias de la enseñanza de la programación de computadoras.

Existen diversos mecanismos y metodologías para enseñar a programar y que van desde lo más simple y particular hasta lo más sofisticado. A continuación daremos algunos ejemplos de éstos.

La Universidad de Sevilla, a través de su departamento de Lenguajes y Sistemas Informáticos, cuenta con varias asignaturas que comprenden su metodología didáctica en la enseñanza de la programación. Este departamento considera que uno de los aspectos más importantes, además del cómo se le haga llegar todo tipo de información, es la forma en la que se motiva al alumno, para ayudarle y que se le facilite la programación (03).

Gerald Jay Sussman y Jack Wisdom, comentan que se reconoce que un estudiante puede saber la teoría y que también puede tener problemas para la aplicación de ésta. Cuando el estudiante no tiene un procedimiento formal para aprender la técnica de resolución de un problema le costará trabajo aplicar los conceptos que ya conoce. Los autores comentan que expresar una metodología de enseñanza como un lenguaje de programación obliga a que ésta no sea ambigua y sea altamente efectiva. La tarea de formular un método como un programa y depurar el programa es un ejercicio poderoso en el aprendizaje. (04)

En el trabajo de Mario Oviedo Galdeano se analizan los problemas más comunes en la enseñanza de la programación (desde la visión del autor) y que se consideran más importantes para el logro del objetivo de la asignatura (y que de alguna manera son los mismos que para este estudio se han detectado con el paso del tiempo). El autor comenta que la programación, al ser una actividad mental compleja y creativa, requiere de 4 características: inteligencia, conocimiento, habilidades y disciplina, las cuales se adquieren con el paso del tiempo. También el autor sugiere una estrategia para tal efecto y la divide en lenguajes de programación y herramientas de desarrollo que, con ayuda de conceptos de técnicas de programación, lo llevarían a la enseñanza de la programación en sí misma. Puede considerarse hacer un examen diagnóstico en el cual se observará el nivel de madurez del grupo y se podrá generar la estrategia didáctica más efectiva para el logro del objetivo. (05)

En el trabajo de Norma Moroni con el uso del método global, recalca que las letras sólo se pueden comprender en el contexto de sus palabras y las palabras solamente se pueden comprender en el contexto de sus frases. Para el aprendizaje de un lenguaje de programación, ahorra tiempo y esfuerzos por lo que se creó un ambiente de aprendizaje con un editor interactivo de algoritmos, un constructor automático de trazas y un traductor de algoritmos a programas en lenguaje Pascal, en este trabajo se presentan los resultados obtenidos en una experiencia de campo diseñada para comprobar la efectividad de la aplicación (1)

Existe un trabajo de simulación sobre pedagogía que sin duda es parecido al aquí presentado, de Arnoldo Oronico, que tiene como titulo “Una robótica pedagógica”. En el que se busca facilitar la manera en que se aborda el tema de la robótica a través de un software de simulación que genere el aprendizaje significativo y con ello lo lleve estrechamente a la realidad. (07)

Page 11: Agradecimientos - Instituto Politécnico Nacional

- 6 -

Mediante el aprendizaje en grupo lo que hace es que los alumnos al mismo tiempo diseñen un programa y compartan responsabilidades, fracasos, frustraciones, y éxitos. Esta técnica, derivada de la falta de computadoras en las escuelas, es popular en el ámbito empresarial, lo que llevó a mejoras significativas tanto en calidad como en cantidad en el aprendizaje de la programación. Con el desarrollo de este concepto y con el uso de la Internet se está depurando el concepto de tal manera que en forma remota no solo es posible la participación de dos alumnos sino los que fuesen necesarios para la colaboración de un proyecto. El método se llama DOMOSIN-TPC (06)

La complejidad de los programas que se desarrollan actualmente produce la necesidad de iniciar a los alumnos en un camino que los conduzca a utilizar efectivas técnicas de programación. Es importante para ello poner énfasis en el diseño previo. Como se ha comprobado, una estrategia trascendental es comenzar a enseñar programación utilizando los algoritmos como recursos esquemáticos para plasmar el modelo de la resolución de un problema. Esto genera una primera etapa de la programación que resulta un tanto tediosa para los alumnos que están necesitados de aplicar los conceptos en una computadora. Si bien no aparecen dificultades graves con el aprendizaje de esta técnica, se puede comprobar que no resulta una tarea trivial obtener un algoritmo semánticamente correcto. El hecho de reescribir los algoritmos hasta ponerlos a punto es operativamente complicado cuando se trabaja con lápiz y papel. Además, comprobar la corrección del algoritmo presenta inconvenientes importantes. Es difícil, mental o gráficamente, representar las acciones del algoritmo en ejecución de manera totalmente objetiva, sin dejarse llevar por la subjetividad (01).

Estos son los trabajos que se han realizado para el desarrollo y mejoramiento de la enseñanza de la programación. El presente trabajo reforzará y tomará experiencias de ellos para cumplir el objetivo de la investigación y ratificar o desechar la hipótesis de la investigación.

Page 12: Agradecimientos - Instituto Politécnico Nacional

- 7 -

Capítulo II El Aprendizaje y la Enseñanza

2.1 Teorías sobre el aprendizaje y modelos de enseñanza. A la forma en la que el ser humano transmite su cultura y conocimientos a las nuevas generaciones es lo que denominamos enseñanza. El grupo de técnicas y conocimiento (prácticos como teóricos) en torno a la forma en la que esto se hace y por parte de quien, y a quienes denominamos maestros o docentes, es lo que se identifica como un modelo de enseñanza. A lo largo del tiempo, diversos modelos de enseñanza han sido elaborados, donde la función docente brinda soporte a la ideología detrás del aprendizaje o donde una escuela de pensamiento es el soporte de la experiencia didáctica. Brevemente describiremos algunos de los modelo más relevantes.

El modelo constructivista.

El constructivismo supone la construcción que se realiza a través de un proceso mental y que finaliza con la adquisición de un conocimiento nuevo. En sus diferentes fases, sirve para ayudar al alumno a la asimilación del conocimiento. Podemos entender que los conocimientos previos que los alumnos posean serán claves para la construcción de este nuevo conocimiento. Básicamente, puede decirse que el constructivismo es el modelo que mantiene una persona, tanto en los aspectos cognitivos, sociales y afectivos del comportamiento, que se va produciendo día con día.

El modelo conductista.

También llamado mecanicista, el modelo conductista significa un aprendizaje que se da por repetición. Considera al ser humano como un ente que percibe información y luego la transforma para dar resultado o sentido a su vida y toma en cuenta las relaciones de causa-efecto. Bajo este paradigma el alumno aprende por ensayo y error. Uno de los mayores impulsores de este paradigma fue Skinner; él afirmaba que las repuestas estaban condicionadas a refuerzos y que estos podían ser negativos o positivos; de aquí se afirma que el conocimiento es conductista.

El modelo cognitivo.

El objetivo del modelo cognitivo es enseñar a pensar al alumno, a que valore el significado mismo del conocimiento y que valore el proceso del aprendizaje de tal forma que se le vaya formando un carácter firme e independiente. Se basa en promover el procesamiento mental. El aprendizaje se da cuando existe un estado de conocimiento ad hoc mas que a los cambios de los estímulos para la respuesta. En otras palabras, es la actividad mental que implica un análisis interno y su estructuración para la asimilación del conocimiento derivado del procesamiento de información recibida.

Page 13: Agradecimientos - Instituto Politécnico Nacional

- 8 -

Teoría Gestalt.

La Gestalt es una teoría sobre mente y cerebro que propone una visión holística en la que el resultado es mayor que la suma de las partes involucradas. Es una visión sobre un proceso en el que a través de la percepción, el pensamiento y la estructuración de la experiencia acumulada se pasa a un nivel mayor de conciencia. Es decir, en este paradigma se le da importancia a la forma en el que el sujeto estructura o ve la situación problemática y a la acción correcta que se ejecuta sobre esa estructura. (15).

Teoría de Tolman sobre el aprendizaje.

Edward C. Tolman, concebía al aprendizaje como el desarrollo de pedazos de conocimientos y percepciones del entorno en el que un organismo se desenvuelve y que eventualmente conduce a un aprendizaje latente ante la ausencia de recompensas. Aunque se considera que sus ideas marcaron e influenciaron la psicología de su tiempo ha habido otros trabajos e ideas que explican sus hallazgos bajo otros puntos de vista. Sin embargo la importancia de sus trabajos le valieron el reconocimiento bajo una teoría que lleva su nombre.

Modelo educativo basado en competencias (EBC).

La educación basada en competencias es un proceso complejo, que atiende a las necesidades del entorno social y laboral de la región en donde se practica. Parte de la preparación que un individuo requiere para estar en condiciones de aprovechar y utilizar las diversas oportunidades que se le presenten.

Nos encontramos en la Era de la Información y la educación es un pilar en el entorno de desarrollo de un país. El aprendizaje está determinado por una serie de características que deben estar inmersas en los alumnos, sus actitudes, aptitudes, valores, la forma en que reciben asesoria y tutoría, todo esto hace que se produzca un aprendizaje significativo y hacen ver al alumno como el agente propulsor de su conocimiento. No es suficiente adoptar una teoría de aprendizaje en particular. En la práctica resulta mucho más benéfico que, con base en la experiencia del profesor y habilidades de los alumnos, se extraigan las mejores prácticas y técnicas de las distintas escuelas y teorías para buscar la mejor experiencia en la transmisión del conocimiento.

2.2 Factores que Intervienen en el aprendizaje. Podría considerarse que todo profesor desea que sus clases sean dinámicas y no pasivas o aburridas. Muchas veces, por más que se esfuerce el docente esto parecerá imposible; es muy importante que el docente motive al alumno con ideas y argumentos para adoptar técnicas que le faciliten su aprendizaje. Debemos considerar que la estrategia del docente debe estar íntimamente ligada con las características de la personalidad del ser humano a través de la cual resaltan una serie de factores y elementos:

Page 14: Agradecimientos - Instituto Politécnico Nacional

- 9 -

Factores cognitivos. El aprendizaje se da de acuerdo con determinados procesos mentales y cerebrales, como son: la capacidad de concentración, la memoria, la actitud, la motivación, la voluntad, y las habilidades cognitivas propias de cada persona. Sin embargo, también hay elementos del entorno que tienen una enorme influencia en el proceso. Factores afectivo-sociales. Los factores afectivo-sociales (las relaciones interpersonales y la comunicación) son determinantes para el éxito en el rendimiento escolar universitario. Un desarrollo emocional le permite al alumno compartir con otras personas y autoridades conocimiento adicional y de sustento para su aprovechamiento. Factores ambientales y organización para el estudio. Los factores ambientales y de organización son aquellos elementos externos del medio ambiente que inciden favorablemente o no en la calidad del estudio en el alumno y como puede ser la organización para el estudio entre otros. La organización para el estudio es la disposición ordenada de los elementos que componen el acto de estudiar, de los cuales se desprenden tres lugar, mente y tiempo. El Cerebro. El cerebro humano es una maravilla del universo. Es a través del cual los individuos aprenden y se comunican entre si. En la mayoría de las personas el lado izquierdo se ocupa de la lógica, el lenguaje, el razonamiento, los números, el análisis; son las actividades que se denominan científicas. Mientras que el lado derecho se ocupa del ritmo, la música, las imágenes, la imaginación, los colores, el reconocimiento de los rostros, los modelos de Ingeniería o arquitectónicos, los mapas, que son las actividades artísticas. Estilo de aprendizaje. El estilo de aprendizaje del alumno se refiere al hecho de que cuando se necesita aprender algo cada uno utiliza su propio método o conjunto de estrategias para hacerlo. El estilo de aprendizaje está directamente relacionado con las estrategias que se utilizan para aprender algo. Estas estrategias se pueden agrupar en tres grandes sistemas para representar mentalmente la información, el sistema de representación visual, el auditivo y el kinestésico. Derivado de esto, nuestro proyecto se enfoca en estos sistemas de representación mental, aquí es donde el alumno con apoyo de la herramienta automatizada y de una captura se le da sentido a las palabras reservadas que se utilizan para la formulación de algoritmos a través de una estructura y una metodología determinadas.

2.3 Paradigma actual de la enseñanza y formación.

La docencia es un conjunto de prácticas que se hace a través de los años. Los tiempos actuales exigen estrategias nuevas de enseñanza y no de tiempo atrás. La mayoría de las universidades se basan en una enseñanza tradicional, en la que el que dictamina casi siempre las reglas del aula es el docente y alrededor de quien gira la educación. Cuando el docente tiene experiencia, vocación y personalidad puede hacer que sea él quien dictamine todas y cada una de las cuestiones de clase. Existe el riesgo de que a través de una figura docente dominante se llegue a provocar el conformismo y dependencia del profesor.

Page 15: Agradecimientos - Instituto Politécnico Nacional

- 10 -

A través del tiempo el docente ha tenido una multitud de roles (transmisor del conocimiento, facilitador, guía del aprendizaje, etcétera), muchas veces dependientes de un modelo educativo. Otras tantas la práctica del docente está envuelta por lo que gira alrededor de él, su experiencia profesional, su estabilidad emocional, su capacidad de interrelación con los otros docentes, sus metas logradas hasta ese momento, etcétera.

Es difícil precisar las características que un buen docente debe tener para lograr el objetivo de su asignatura. Es necesario que el profesor pueda tener el conocimiento mínimo necesario para que pueda identificar a todos y cada uno de sus alumnos para ayudarlos a tener un buen aprendizaje. Nuestra propuesta es facilitarle al alumno el aprendizaje de la difícil actividad de programar utilizando una herramienta automatizada para ayudarles a entender los principios de la programación de computadoras. 2.4 La enseñanza más importante en el aprendizaje. La tendencia de los modelos de la enseñanza es que los alumnos tengan un aprendizaje significativo, que modifique su conducta, comportamiento y desasiendo aquello que no les deje una huella. Es importante comentar que como consecuencia de estos factores y dependiendo del estilo de aprendizaje de los alumnos, la estrategia didáctica que se presenta en este trabajo busca presentar la enseñanza de la programación mediante el uso de una herramienta automatizada apoyándose de una técnica en el diseño de algoritmos.

Con el paso del tiempo se ha observado que los estudiantes tienen serios problemas al momento de elaborar programas, por diversas causas. El estilo de aprendizaje de cada alumno tiene que ver con aspectos internos de su personalidad, por un lado, y con la técnica que se aplica en el aula, por el otro.

La siguiente grafica esquematiza varias estrategias didácticas. En ella se observa la tasa de retención por la técnica seleccionada.

Grafica de NTL Institute for Applied behavioral sciences (14)

Page 16: Agradecimientos - Instituto Politécnico Nacional

- 11 -

La grafica anterior nos permitirá darnos cuenta que el generar una nueva estrategia educativa ayudará al alumno no solo en la área de programación sino en cualquier ámbito de la carrera. La línea de investigación propuesta la ubicamos en el nivel C, que está sustentada en prácticas, ejercicios y problemas que es precisamente el segundo nivel de aprendizaje significativo con un porcentaje elevado del 75%.

Aprender a pensar. Enseñar a pensar al estudiante no es precisamente el objetivo central de este estudio. Lo que se pretende es una búsqueda por el desarrollo de las habilidades para mejorar la capacidad de razonamiento en la resolución de problemas. A una mayor práctica un mayor aprendizaje, mas rápido se realizarán las actividades y mejor se desarrollarán las tareas en sus entornos tanto laborales, sociales y familiares. Por eso es importante darle un apartado a esta investigación, la cual se realiza a través de ensayo y practica bajo el concepto de los talleres de razonamiento lógica propuestos por Marcel Giry (17). De acuerdo con Piaget, los individuos pasan por dos fases en las cuales se tiene un periodo de asimilación y un periodo de adaptación que hace que el conocimiento se vaya dando en los educandos. Partiendo de esta idea, los talleres de razonamiento lógico (TRL) de Marcel Giry (17), apuntan a conducir al alumno hacia la utilización del proceso de asimilación y adaptación del conocimiento a través de varias fases: un examen inicial, desarrollo de ejercicios de inteligencia progresiva y el mismo examen del inicio pero ahora en la fase final. Para el presente proyecto se ha planteado lo mismo que para Marcel en sus 3 fases, sustentándolo en una serie de operaciones. Operaciones Intelectuales. Estas operaciones buscan que el alumno, pase de un estado de inteligencia progresiva a un estado interno de abstracción para un pensamiento hipotético y deductivo. Operación combinatoria. Consiste en enumerar sistemáticamente todas las combinaciones entre cierta cantidad de objetos sin olvidar y sin repetir ninguna. Por ejemplo la realización de un algoritmo que obtenga una tabla de multiplicar, usando las diferentes estructuras de control y los diferentes tipos de datos

- Usar While - Usar For - Usar Do While - Usar Si Entonces - Usar un dato entero - Usar un dato real - Usar un dato carácter

Operación de clasificación. Consiste en agrupar a partir de semejanzas. Ejemplo: elaborar un algoritmo que obtenga un promedio de 5 asignaturas para 10 alumnos.

Page 17: Agradecimientos - Instituto Politécnico Nacional

- 12 -

Operación de seriación. Acomodar elementos en función de su diferencia como por ejemplo en orden creciente por tamaño, color, altura, edad, entre otros. Operación transitividad generalizada. Proceso de generalizar la seriación. Se trata de ordenar una serie de elementos utilizando un método sistemático. Operación de árbol genealógico. Es un proceso igual que la operación de seriación o transitividad pero más compleja y que consiste en agrupar relaciones. Operación de inclusión. Consiste en situar cada elemento en un conjunto y en determinar si esos elementos están incluidos en un conjunto más amplio. Estos talleres refuerzan lo que se aprende en el aula, debido a que se práctica. Al pensar en los TRL, nos hemos dado a la tarea de que, en la búsqueda de la validación de la hipótesis, ambos grupos tanto el experimental como el de control, tendrán estas mismas fases además de la aplicación de las operaciones para el desarrollo de algoritmos que estos talleres comentan. La siguiente grafica esquematiza como fue planteado el proceso de la lógica de programación para nuestro proyecto y en que nivel entra nuestro medio propuesto marcado con negritas para apoyar la investigación, partiendo de ese punto los niveles de abajo son considerados en la herramienta.

Page 18: Agradecimientos - Instituto Politécnico Nacional

- 13 -

Capítulo III

La Herramienta Propuesta Existe un sin fin de maneras de escribir algoritmos. Se han implementado cientos de lenguajes de programación desde los años 50. Sin embargo, pocas son las personas que dominan más de 3 lenguajes. La mayoría de las empresas siempre usan por lo regular un par de ellos en sus desarrollos y terminan especializándose en uno. Entonces ¿por qué estudiar una diversidad de lenguajes que es poco probable usar en el ámbito profesional? La respuesta a esta pregunta se centra en los diversos paradigmas de programación que permiten tener una perspectiva diversificada de cada uno, además de que existen problemas que son más fácilmente expresados en un lenguaje que en otro de paradigma diferente. En otras palabras, así como no existe un algoritmo universal, tampoco hay un lenguaje de programación universal. Por otro lado, como comenta Terrance W. Pratt(08), existen una serie de razones para fundamentar esta pregunta, en la cual no sólo se distingue a un lenguaje por sus características sino que además deberíamos incluir el costo de:

1. Mejorar la habilidad para desarrollar procesos eficaces. 2. Mejorar el uso del lenguaje. 3. Acrecentar el propio vocabulario con instrucciones, sintaxis o estructuras de

control sobre programación. 4. Hacer posible una mejor elección del lenguaje de programación. 5. Facilitar el aprendizaje de un nuevo lenguaje. 6. El costo del propio lenguaje (capacitación, implementación, creación de

aplicaciones y mantenimiento)

Así entonces, el estudio y aprendizaje de varios lenguajes de programación no es sólo una herramienta enriquecedora y formativa sino también una habilidad profesional que debe cubrirse para competir en un mercado laboral. En este punto entonces la pregunta se transforma en ¿cómo proporcionar al estudiante la habilidad no sólo para aprender a programar sino además aprender a programar bajo varios paradigmas de programación de computadoras? Una respuesta a esta pregunta la ofrecemos en este trabajo de investigación. 3.1 Construcción de la aplicación. La respuesta a la pregunta que hemos venido planteando a lo largo de todo este el trabajo y que hemos condensado en el apartado previo se presenta en forma de una aplicación informática que permite a un docente exponer los principios fundamentales de la programación de computadoras y además auxiliarlo en su traslado a otros paradigmas. Curiosamente esta solución surge de una actividad de programación, una actividad que lleva a la construcción de una aplicación informática de ayuda al conocimiento de esta tarea. Como toda aplicación informática debidamente desarrollada, su construcción se ha llevado a cabo en forma metódica. El ciclo de vida de los sistemas de información

Page 19: Agradecimientos - Instituto Politécnico Nacional

- 14 -

dicta gran parte de este método además de proporcionar una visión mucho más completa de las expectativas de vigencia del desarrollo. Tal como está aceptado este ciclo de vida se compone de las siguientes etapas:

1. Análisis. 2. Diseño. 3. Desarrollo. 4. Pruebas. 5. Implementación. 6. Mantenimiento. 7. Fin de Vida

La aplicación fue desarrollada con una visión en este ciclo de vida. Aquí describiremos los pormenores de su construcción. Capítulos posteriores describirán su utilización. Análisis. La información sobre el problema fue recopilada de diversas fuentes:

1. La experiencia profesional de los docentes en el desarrollo de diversos proyectos, ya sea como consultores o como parte de un área de sistemas en una empresa.

2. La experiencia de los docentes en la enseñanza. 3. Retroalimentación de los alumnos en varias generaciones en la carrera de

Informática a través de la aplicación de un cuestionario (anexo). 4. Experiencias en el abandono de la carrera por parte de algunos

estudiantes 5. La complejidad de las materias de la academia de programación y su

respectiva seriación. 6. Las malas experiencias de los alumnos en el rubro de la programación

Muchas de estas características se subsanan con la herramienta propuesta. Con toda esta información se hace una propuesta en los diagramas de flujo siguientes, lo cual es una conversión de los algoritmos hacia los diversos lenguajes. El análisis de la aplicación incluyó la selección de los lenguajes de programación más representativos que se imparten en la universidad. En la actualidad estos lenguajes de programación se han orientado mucho a los ambientes gráficos gracias a los asistentes de aplicaciones y generadores de código. Estas herramientas ayudan a agilizar el proceso de creación de programas pero tratándose de una experiencia de aprendizaje son contraproducentes al ocultar la programación de las aplicaciones. Así entonces esta herramienta desechó el incluir facilidades de este tipo. La selección de lenguajes se orientó en el paradigma de programación que se desea presentar para su aprendizaje más que el lenguaje en sí, de tal suerte que los lenguajes seleccionados fueron: Paradigma Lenguajes 1. Imperativo � Pascal y C

Page 20: Agradecimientos - Instituto Politécnico Nacional

- 15 -

2. Funcional � Scheme 3. Basado en Reglas � Prolog 4. Orientado a Objetos � Delphi 5. Orientado a Eventos � Visual Basic

En el caso del paradigma imperativo se decidió considerar a dos de ellos por su importancia académica (Pascal) y comercial (C). La fuente de los lenguajes implementados ha sido:

• Versión libre del lenguaje Prolog: http://www.swi-prolog.org/home.html • Versión libre del lenguaje Visual Basic:

http://msdn.microsoft.com/downloads/ • Versión libre del lenguaje Pascal. Usando aplicaciones de consola. Principio del formulario: http://bdn2.borland.com/article/20803

• Versión libre del lenguaje Delphi: http://www.borland.com/downloads/download_delphi.html

• Versión libre del lenguaje C: http://community.borland.com/article/0,1410,20841,00.html

• Versión libre del lenguaje Scheme: http://www.drscheme.org/

Por supuesto, en el reconocimiento de estos lenguajes ha debido de hacer uso de la gramática correspondiente. El objetivo del presente trabajo es la utilización de esta herramienta y no tanto los pormenores de su construcción, es decir, es nuestro medio demostrativo mas no el fin que se persigue; por lo que, por brevedad, detalles sobre gramáticas de estos lenguajes y su implementación se omiten. Diseño. El diseño de la aplicación parte de un enfoque jerárquico que queda descrito por la siguiente figura:

Diseño Diseño Procedimental

Diseño de la interfaz

Diseño Arquitectónico

Diseño de datos

MODELO DE DISEÑO

Page 21: Agradecimientos - Instituto Politécnico Nacional

- 16 -

El diseño de datos de esta aplicación incluyó el diseño de la estructura que los almacenará. La Base de datos se normalizó hasta la 3a forma normal, en la que nuestro diccionario de datos quedó sustentado en lo siguiente:

1. Restricciones de cada atributo. 2. Integridad referencial de la base y las excepciones a cada uno de los

atributos. 3. Los programas que usan las tablas y los atributos de cada una de ellas. 4. Acceso al sistema a través de una tabla de usuarios. 5. Diversos parámetros para el buen funcionamiento de la herramienta

(Impresoras, drivers de conexión, entre otras).

Base de datos de nuestra aplicación.

La figura anterior nos muestra todas las relaciones con integridad referencial de la base de datos. Por otro lado, para hacer la conexión a esta base de datos a través de la herramienta, se usa un driver de conexión utilizando un origen de datos ODBC, que se muestra a continuación.

Page 22: Agradecimientos - Instituto Politécnico Nacional

- 17 -

El diseño arquitectónico correspondió a la definición de los módulos que componen a la aplicación:

Diseño Modular de la aplicación.

Nivel de Madurez

Catálogos de los

identificadores

Diagramas de flujo

Estructuras de Datos

Captura del Algoritmo

Conversión de los

algoritmos a los lenguajes

Copiar, pegar y compilar

en el ambiente real

Page 23: Agradecimientos - Instituto Politécnico Nacional

- 18 -

El concepto arquitectónico se esquematizó como un apilamiento de módulos, entre mayor sea el nivel, mejor será el nivel compresión de los elementos de la programación de los lenguajes y mejor el uso de la herramienta para el logro del objetivo. El diseño de interfaz se hizo a través de menues de donde el usuario selecciona los diferentes elementos de construcción que permiten seleccionar lo elementos de construcción o control necesarios en el uso del sistema. Los siguientes diagramas de flujo ilustran el proceso que surgió para la elaboración de la herramienta, que por cierto, está desarrollada en el lenguaje de programación de un ambiente visual. Se consideraron las gramáticas más representativas y las más estandarizadas para no tener problemas con los compiladores reales de los lenguajes. También hay que recalcar que el reconocimiento de las gramáticas está desarrollado internamente en cada programa, de tal forma que sí el proceso de conversión de un lenguaje sufre alguna modificación porque está mal elaborado será necesario actualizar el programa respectivo y volver a compilar el proyecto para generar un nuevo ejecutable.

Análisis del proceso para la conversión de algoritmos 1ra. Fase para el desarrollo del sistema

Page 24: Agradecimientos - Instituto Politécnico Nacional

- 19 -

Análisis del proceso para la conversión de algoritmos en su 2da. Fase para el desarrollo del sistema

Análisis del proceso para la captura de algoritmos en el ambiente de desarrollo de la herramienta

Page 25: Agradecimientos - Instituto Politécnico Nacional

- 20 -

La herramienta se desarrolló con base en módulos fuertemente acoplados. Primero por la base de datos que se diseñó ligada a la funcionalidad de cada módulo y, segundo, porque este esquema facilita la construcción, mantenimiento y ocultamiento de información. Los módulos que integran a la herramienta son:

1. Captura de los identificadores o símbolos de las gramáticas 2. El tutorial de los diagramas de flujo 3. El tutorial de las estructuras de datos (primitivas, lineales y no lineales) 4. El proceso de captura de los algoritmos en un ambiente a modo carácter 5. El proceso de conversión del algoritmo a cada uno de los lenguajes 6. El proceso de copiar y pegar en el ambiente real del lenguaje 7. El compilar, ejecutar y observar el programa en el ambiente real

Cada una de los nombres de las formas, reportes, variables, menúes e inclusive, la base de datos, se establecieron con base en estándares que ayudarán al desarrollo y mantenimiento de la herramienta. Las pruebas iniciales se hicieron con algoritmos que se dan en la asignatura Lógica de Programación y de la bibliografía básica (13), algoritmos destinados al cálculo de:

1. Un número par 2. Un número múltiplo de otro 3. La identificación de una persona 4. Una tabla de multiplicar 5. El número N de la serie de Fibonacci 6. El factorial de un número 7. Separar un número de 3 dígitos 8. Un número primo 9. Un número perfecto 10. Ordenar un arreglo

La aplicación fue probada en equipos de arquitectura tradicional, como la que se esperaría encontrar en las computadoras de la mayoría de los estudiantes. Se utilizó el tipo de conexión MDAC de Microsoft y la seguridad se desarrolló a través de un acceso (usuario y password). 3.2 Descripción del funcionamiento de la aplicación Para iniciar una pantalla para ingresar un usuario y contraseña, es presentada:

Page 26: Agradecimientos - Instituto Politécnico Nacional

- 21 -

Después de haber hecho un login en el sistema, se desplegará un menú principal y, dentro de él, un submenú con cada opción.

Al dar un click en la opción de Catálogos, aparecerá un menú colgante desde donde podrá accederse a todos los catálogos. Es importante mencionar que la información que está almacenada en los catálogos fue la que los alumnos del grupo experimental capturaron y que tenía sentido para ellos. Los elementos más representativos de los lenguajes de programación y que se usan durante la fase de conversión a los diferentes lenguajes se habilita con un click derecho del Mouse

Page 27: Agradecimientos - Instituto Politécnico Nacional

- 22 -

En el menú de catálogos existen varias opciones, una de ellas es la pantalla de los operadores, en ella aparece un DBGRID (un visor de registros), un componente que al momento de crearse la forma se cargan automáticamente en ella las tuplas que están en la tabla; todo a través de instrucciones de código SQL.

También tenemos un DBNAVIGATOR que sirve para irse desplazando por los registros y complementa al visor de registros. Existe Seis botones en la forma que sirven para:

1. Alta de nuevos registros 2. Editar la informacion 3. Borrar la información 4. Imprimir un reporte de la información de la forma 5. Salir para terminar la forma 6. Consultas de informacion

Page 28: Agradecimientos - Instituto Politécnico Nacional

- 23 -

La siguiente forma aparece cuando se desea modificar una tupla de la tabla, dando doble click sobre el registro que deseamos editar, o también mediante un click al registro y un click en el botón de editar. La forma se mostrará con los datos del registro que se escogió.

En el menú principal de la aplicación, encontraremos la opción Proceso, que nos permite ver todo, agregar elementos faltantes y obtener reportes.

Un ejemplo del reporte es como se muestra a continuación:

Page 29: Agradecimientos - Instituto Politécnico Nacional

- 24 -

La opción de Diagramas de flujo nos presentará un submenú con los símbolos usados más usados en los procesos.

En esta parte del menú observamos que existen diversas estructuras de control en los diversos lenguajes de programación.

Page 30: Agradecimientos - Instituto Politécnico Nacional

- 25 -

La opción de Archivos del menú principal nos presenta una pantalla para capturar los algoritmos como si fuera un ambiente de desarrollo (IDE).

La imagen anterior muestra la pantalla de captura de un programa. Todos los algoritmos capturados y grabados están con la extensión *.NLP (que significa nuevo lenguaje de programación), para distinguir nuestros algoritmos de la mayoría de las extensiones que una computadora tiene para todos sus archivos. La siguiente imagen ilustra un ejemplo de captura de un programa.

Page 31: Agradecimientos - Instituto Politécnico Nacional

- 26 -

De la opción Traduce sale un menú colgante con el proceso de conversión a los diferentes lenguajes de programación en los diferentes paradigmas.

En las siguientes imágenes se muestra la conversión a varios lenguajes de programación. En estas imágenes se muestran tres botones: el primero sirve para buscar y cargar el algoritmo respectivo que se esta trabajando contenido en la parte de arriba de la forma; el segundo botón sirve para hacer la respectiva traducción del algoritmo al lenguaje seleccionado, mostrado en la parte inferior de la forma, y el tercer botón sirve para copiar el código convertido y poder llevarlo mediante el clipboard al ambiente real de compilación.

Page 32: Agradecimientos - Instituto Politécnico Nacional

- 27 -

Conversión del programa en Pascal al lenguaje Prolog

Conversión del programa en Pascal al lenguaje Scheme

Page 33: Agradecimientos - Instituto Politécnico Nacional

- 28 -

Conversión del programa en Pascal al lenguaje C

Page 34: Agradecimientos - Instituto Politécnico Nacional

- 29 -

El siguiente diagrama resume el funcionamiento de la aplicación

El diseño de esta herramienta y su elaboración no ha sido el producto de una petición o trabajo por encargo. Su elaboración llevó 8 meses y es el producto de experiencias de campo e ideas entorno a la docencia sobre el tema. Una herramienta con capacidad para cualquier lenguaje hubiera sido un proyecto mucho más ambicioso ya que las gramáticas de conversión de cada uno de los lenguajes de programación implementados debían estar programadas dentro de ella.

3.2.1 Códigos Convertidos A continuación se presentan algunos ejemplos de los resultados de la conversión de código del algoritmo presentado inicialmente a los lenguajes soportados por la herramienta. En sí, el algoritmo planteado tiene poca importancia; en este ejemplo se presenta uno que sirve para encontrar la sumatoria de las divisiones enteras de los números mayores a uno para poder decir si es un número perfecto o no. Lo importante es la apreciación de como un algoritmo es representado en diversas implementaciones. Pseudocódigo del algoritmo inicial. Programa NúmeroPerfecto define Valor TipoDeDato Entero Contador TipoDeDato Entero Índice TipoDeDato Entero Resultado TipoDeDato Entero Operación TipoDeDato Entero I TipoDeDato Entero j TipoDedato Entero suma TipoDeDato Entero Valida TipodeDato Entero inicioprograma lee (Valor) I = 1

Page 35: Agradecimientos - Instituto Politécnico Nacional

- 30 -

mientras I menoroiguala Valor haz inicioproceso suma = 0 j = 1 operación = i div 2 mientras j menoroiguala operación haz inicioproceso resultado = i residuo j si resultado iguala 0 entonces suma = suma mas j j = j mas 1 finproceso si suma iguala I entonces imprime ('El Número Perfecto Es ==> :' I); si suma diferentea i entonces imprime ('El Número No Perfecto Es ==> :' I); i = i mas 1 finproceso lee (valor) finprograma Lenguaje Pascal // Programa para enseñar el lenguaje Pascal // Paradigma Imperativo, es un paradigma interesante // Para los alumnos de universidad PROGRAM NÚMEROPERFECTO VAR VALOR : INTEGER; CONTADOR : INTEGER; INDICE : INTEGER; RESULTADO : INTEGER; OPERACION : INTEGER; I : INTEGER; J : INTEGER; SUMA : INTEGER; VALIDA : INTEGER; BEGIN READLN (VALOR); I := 1; WHILE I <= VALOR DO BEGIN SUMA := 0; J := 1; OPERACION := I DIV 2; WHILE J <= OPERACION DO BEGIN RESULTADO := I MOD J; IF RESULTADO = 0 THEN SUMA := SUMA + J;

Page 36: Agradecimientos - Instituto Politécnico Nacional

- 31 -

J := J + 1; END; IF SUMA = I THEN WRITELN (EL NÚMERO PERFECTO ES ==>: I); IF SUMA <> I THEN WRITELN (EL NÚMERO NOT PERFECTO ES ==>: I); I := I + 1; END; READLN (VALOR); END.

Lenguaje C // Programa para enseñar el lenguaje C // Paradigma Imperativo, es un paradigma interesante // para los alumnos de universidad #include <stdio.h> #include <conio.h> char palabra; int main() { int VALOR; int CONTADOR; I int RESULTADO; int OPERACION; int I; int J; int SUMA; int VALIDA; { printf ("\nDigita el valor : "); scanf ("%i", &VALOR); I = 1; while ( I <= VALOR ) { SUMA = 0; J = 1; OPERACION = I DIV 2; while ( J <= OPERACION ) { RESULTADO = I MOD J; CHAR uno I ; SUMA = SUMA + J; J = J + 1; } CHAR uno I ; printf ("\nLos valores son %i ",'EL NÚMERO PERFECTO ES ==> :' ,I);

Page 37: Agradecimientos - Instituto Politécnico Nacional

- 32 -

CHAR uno I ; printf ("\nLos valores son %i ",'EL NÚMERO NOT PERFECTO ES ==> :,i); I = I + 1; } printf ("\nDigita el valor : "); scanf ("%i", &VALOR); palabra = getch(); }

Lenguaje Prolog % Programa para enseñar el lenguaje Prolog % Tiene Reglas y Opción para no salirse % Tiene Desición del valor leído opción(X):- X=0, write('Elegiste Salir'),nl. opción(X):- write('Elegiste Regresar'),nl. regla(VALOR,OPERACION,Otravariable) :- J <= OPERACION , RESULTADO IS I MOD J, I = 0 THE, SUMA1 IS SUMA + J, J1 IS J + 1, INDICE = SUMA THEN, write ('El valor es PERFECTO ==> :' , I),nl, INDICE <> I THEN, write ('El valor es NO ES PERFECTO ==> :’ ,I), I1 IS I + 1, VALOR1 IS VALOR + 0, OtraVariable1 IS Otravariable + 0, regla(VALOR1,OPERACION1,Otravariable1). menu :- repeat, I IS 1, write ('Digita el valor'), read(VALOR),nl, regla(VALOR,OPERACION,Otravariable), write ('Elige el número 0 para salir'),nl, write ('u otro número para seguir'),nl, read(X), opcion(X), X=0.

Page 38: Agradecimientos - Instituto Politécnico Nacional

- 33 -

Lenguaje Scheme ; Programa para enseñar el lenguaje Scheme ; Paradigma Funcional, es un paradigma interesante ; los alumnos de universidad (Define (NÚMEROPERFECTO) (let* ( (VALOR 0) (CONTADOR 0) (INDICE 0) (RESULTADO 0) (OPERACION 0) (I 0) (J 0) (SUMA 0) (VALIDA 0) ( Begin (set! VALOR (read)) (set! I + ( 1 0 ) ) ( DO > ( I VALOR ) ( ) ( ( Begin (set! SUMA + ( 0 0 ) ) (set! J + ( 1 0 ) ) (set! OPERACION + ( I DIV 2 0 ) ) ( DO > ( J OPERACION ) ( ) ( ( Begin (set! RESULTADO + ( I MOD J 0 ) ) (I 0) (set! SUMA + ( SUMA J 0 ) ) (set! J + ( J 1 0 ) ) ) ) (I = SUMA) (display (list "valores" 'EL NÚMERO PERFECTO ES ==> :' I) ) (I <> SUMA ) (display (list "valores" 'EL NÚMERO NOT PERFECTO ES ==> :) ) (set! I + ( I 1 0 ) ) ) ) (set! VALOR (read)) ) ) )

Lenguaje Delphi (Pascal OO) // PROGRAMA PARA ENSEÑAR EL LENGUAJE DELPHI // PARADIGMA ORIENTADO A OBJETOS, ES UN // PARADIGMA INTERESANTE PARA LOS ALUMNOS // DE UNIVERSIDAD

Page 39: Agradecimientos - Instituto Politécnico Nacional

- 34 -

UNIT UDELPHI; INTERFACE USES WINDOWS, MESSAGES, SYSUTILS, CLASSES, GRAPHICS, CONTROLS, FORMS, DIALOGS,DB, DBTABLES, STDCTRLS, EXTCTRLS; TYPE TDELPHI = CLASS(TFORM) PANEL1: TPANEL; PANEL2: TPANEL; BUTTON1: TBUTTON; BUTTON2: TBUTTON; LABEL1: TLABEL; LABEL2: TLABEL; LABEL3: TLABEL; LABEL4: TLABEL; LABEL5: TLABEL; LISTA: TLISTBOX; NUEVO: TLISTBOX; QUERY1: TQUERY; QUERY1IDSIMBOLO: TSTRINGFIELD; QUERY1TOKEN: TINTEGERFIELD; QUERY1LEXEMA: TSTRINGFIELD; QUERY1DIRECCION: TSTRINGFIELD; QUERY1TIPODEDATO: TSTRINGFIELD; DATASOURCE1: TDATASOURCE; PROCEDURE BUTTON1CLICK(SENDER: TOBJECT); PROCEDURE BUTTON2CLICK(SENDER: TOBJECT); PRIVATE { PRIVATE DECLARATIONS } PUBLIC { PUBLIC DECLARATIONS } END; VAR DELPHI: TDELPHI; VALOR :STRING; IMPLEMENTATION {$R *.DFM} PROCEDURE TDELPHI.BUTTON1CLICK(SENDER: TOBJECT); VAR VALOR : INTEGER; CONTADOR : INTEGER; INDICE : INTEGER; RESULTADO : INTEGER;

Page 40: Agradecimientos - Instituto Politécnico Nacional

- 35 -

OPERACION : INTEGER; I : INTEGER; J : INTEGER; SUMA : INTEGER; VALIDA : INTEGER; BEGIN VALOR := INPUTBOX('VALOR','NÚMERO ', 'ESCOGE VALOR'); VALOR:= STRTOINT(VALOR); I := 1; WHILE I <= VALOR DO BEGIN SUMA := 0; J := 1; OPERACION := I DIV 2; WHILE J <= OPERACION DO BEGIN RESULTADO := I MOD J; IF RESULTADO = 0 THEN SUMA := SUMA + J; J := J + 1; END; IF SUMA = I THEN SHOWMESSAGE ('EL VALOR ES ' + INTTOSTR('EL NÚMERO PERFECTO ES ==> :' I)); IF SUMA <> I THEN SHOWMESSAGE ('EL VALOR ES ' + INTTOSTR('EL NÚMERO NOT PERFECTO ES ==> :'); I := I + 1; END; END; PROCEDURE TDELPHI.BUTTON2CLICK(SENDER: TOBJECT); BEGIN IF MESSAGEDLG('REALMENTE DESEAS SALIR ?' ,MTINFORMATION,[MBYES, MBNO],0) = MRYES THEN CLOSE; END; END.

Lenguaje Visual Basic 'Programa para enseñar el lenguaje Visual Basic 'Paradigma Orientado a Eventos, es un paradigma interesante 'para los alumnos de universidad Option Explicit Dim Valor As String Dim Valor1 As Integer

Page 41: Agradecimientos - Instituto Politécnico Nacional

- 36 -

Private Sub Btn_Calcula() Dim VALOR As integer Dim CONTADOR As integer DIM INDICE AS integer Dim RESULTADO As integer Dim OPERACION As integer Dim I As integer Dim J As integer Dim SUMA As integer Dim VALIDA As integer Valor = Inputbox ("Digita el valor ") VALOR= Val(Valor) I= 1 do While ( I <= VALOR ) SUMA= 0 J= 1 OPERACION= I DIV 2 do While ( J <= OPERACION ) RESULTADO= I MOD J IF RESULTADO = 0 THEN _ SUMA= SUMA + J J= J + 1 Loop IF SUMA = I THEN _ msgbox ("Los valores son " & 'EL NÚMERO PERFECTO ES ==> :' & I) IF SUMA <> I THEN _ msgbox ("Los valores son " & 'EL NÚMERO NOT PERFECTO ES ==> :’ & I ) I= I + 1 Loop Valor = Inputbox ("Digita el valor ") VALOR= Val(Valor) END SUB Private Sub btn_salir_Click() Dim res As Integer resp = MsgBox("Estas seguro de salir", vbYesNo + vbQuestion) If resp = vbNo Then Exit Sub If resp = vbYes Then End End Sub

3.3 Instalación de la aplicación. Al igual que toda aplicación de los modernos ambientes gráficos, se necesita un proceso de instalación de la aplicación para que pueda ser utilizada sin problemas. Para esta fase del proyecto se utilizó un software, que genera un archivo ejecutable de instalación cuyo funcionamiento deberá ya ser familiar para todo aquél que haya instalado software en el entorno de Windows. Sin embrago la aplicación lleva paso a paso al usuario si éste no está familiarizado con el proceso de adición de software a la computadora.

Page 42: Agradecimientos - Instituto Politécnico Nacional

- 37 -

Pantalla de instalación de la aplicación.

Page 43: Agradecimientos - Instituto Politécnico Nacional

- 38 -

Capítulo IV La Formulación de Algoritmos

4.1 La necesidad de una metodología para la creación de algoritmos. Conforme a lo que se ha declarado a lo largo de este trabajo, lo que se pretende es ayudar a reducir el tiempo en que los alumnos aprenden a crear programas independientemente del lenguaje de programación utilizado. Para esta labor resulta imprescindible el uso de un método en la formulación del algoritmo inicial. En la medida en que un proceso metódico sea usado en la formulación del procedimiento de solución, la herramienta aquí presentada disminuirá el tiempo en el que los estudiantes se tarden en aprender a programar, tal es la hipótesis de este trabajo. Un algoritmo es un procedimiento formado por un grupo de pasos, ordenados que proveen la solución a un problema. El razonamiento y expresión detrás de cada uno de ellos puede ser diverso. Revisaremos algunas sugerencias entorno al tema. La técnica del pseudocódigo recurre a tratar a los identificadores de un algoritmo como si fuera un idioma en particular sin llegar a serlo. Por lo regular siempre se ha usado el idioma inglés pero puede ser cualquier otro. En nuestro caso favoreceremos al español. Las palabras que se utilizan tienen que ver con aspectos de la programación como Leer, Imprimir, Si Entonces, Realiza Mientras Condición, Inicio, Fin, entre otros. Para cualquier algoritmo es necesario hacer una prueba de escritorio, que es seguir en una hoja en papel el comportamiento del algoritmo y las variables que intervienen en él para su mejor entendimiento. La prueba de escritorio siempre permitirá ver si un algoritmo funciona correctamente o identificar las correcciones necesarias. A continuación se muestra el desarrollo de algunos algoritmos en pseudocódigo. Ejercicio 1. Realizar un algoritmo que obtenga el factorial de un número entero positivo. 1 Inicio 2 Leer Valor 3 Factorial = 1 4 Factorial = Factorial * Valor 5 Valor = Valor – 1 6 Si Valor > 1 Entonces Ve a 4 7 Imprime Factorial 8 Fin En este algoritmo se observa lo siguiente:

a) Se utilizó una variable Factorial con un valor inicial de 1 b) Se reemplaza el valor de una misma variable (Factorial) con una operación

aritmética utilizando el valor que tiene en ese momento la variable c) Se hacen Multiplicaciones regresivas de los valores d) Se resta 1 al valor Inicial Digitado

Page 44: Agradecimientos - Instituto Politécnico Nacional

- 39 -

e) Se Condiciona la variable para que se repita el calculo de la multiplicación (Se regresa a una instrucción especifica)

Ejercicio 2. Realizar un algoritmo que obtenga el 5 número de la serie de Fibonacci 1 Inicio 2 Contador = 1 3 Leer Primer valor 4 Leer Segundo valor 5 Tercer valor = Primer valor + Segundo valor 6 Imprimir Tercer valor 7 Primer valor = Segundo valor 8 Segundo valor = Tercer valor 9 Contador = Contador + 1 10 Si Contador < 6 Entonces Ve a 5 11 Fin

Números Números Números Números Números Números Primer 1 2 3 5 8 13 Valor Segundo 2 3 5 8 13 21 Valor Número N De La serie 3 5 8 13 21 34 En este algoritmo se observa lo siguiente:

a) Se Leen dos datos en 2 variables b) Se suman los datos en una tercera variable c) Se imprime la tercera variable d) Se sustituye el valor primero por el valor de la segunda variable e) Se sustituye el segundo valor por el valor de la tercera variable f) Se obtiene el tercer valor con la suma de los nuevos valores de la variables g) Se condiciona a que la variable contador sea menor a 6, para obtener 5

valores. Ejercicio 3. Realizar un algoritmo que obtenga la suma de los dígitos de un número mayor a 99 y menor a 1000. Es un número de 3 dígitos (100 – 999).

1 Inicio 2 Leer Número 3 Si Número < 99 o Número > 999 Entonces Ve a 2 4 Primer digito = Número Residuo 100

Page 45: Agradecimientos - Instituto Politécnico Nacional

- 40 -

5 Primer digito_1 = Número – Primer digito 6 Primer digito_2 = Primer digito_1 / 100 7 Número = Primer digito 8 Segundo digito = Número Residuo 10 9 Segundo digito_1 = Número – Segundo digito 10 Segundo digito_2 = Segundo digito_1 / 10 11 Tercer digito = Segundo digito 12 Suma = Primer digito_2 + Segundodigito2 + Tercer digito 13 Imprimir Suma 14 Fin

En este algoritmo se observa lo siguiente:

a) Se condiciona a que solamente se digite un número de 3 dígitos b) Se utiliza la división en donde lo importante es el residuo c) Se hacen operaciones aritméticas con los dígitos y se obtiene la suma

Ejercicio 4. Realizar un algoritmo que obtenga si un número capturado es primo o no. 1 Inicio 2 Leer Valor 3 Contador = 1 4 Indice = Valor 5 Operación = Valor División entera Contador 6 Si Operación = Valor o Operación = 1 Entonces Ve a 13 7 Valida = Operación * Contador 8 Si Valida = Valor Entonces 9 Inicio Si 10 Imprime “Valor no es número Primo “ 11 Ve Fin 12 Fin Si 13 Contador = Contador + 1 14 Si Contador < Indice Entonces Ve a 5 15 Si (Contador - 1 ) = Indice Entonces Imprimir “Valor Si es Número Primo” 16 Fin En este algoritmo se observa lo siguiente:

a) Se Lee un Valor b) Se Inicializa dos Variables una con un valor 1 y otra con el Valor Leído c) Se hace una División Entera solo nos importa la parte entera no el decimal (5

Div 2) = 2.5, solo nos interesa el 2, (5 Div 3) = 1.666, solo nos interesa el 1. d) Se valida la operación entera con la unidad y con el mismo Valor capturado e) Se aumenta 1 a la variable contador f) Se valida si la variable contador es menor al valor capturado

Page 46: Agradecimientos - Instituto Politécnico Nacional

- 41 -

g) Se hace otra vez la división Entera pero ahora con el nuevo valor aumentado de la variable contador

h) Se Valida y se observa que para el nuevo valor como es mayor a 1, la condición ya no es cierta y se continua con la siguiente instrucción

i) Se realiza una multiplicación del valor entero de la división con el contador. j) Se realiza una validación si la multiplicación llegará a ser igual que el valor

capturado , en ese momento se indica que el valor no es primo y se detiene el proceso

k) Si no se aumenta 1 a la variable contador l) Se valida si el nuevo valor es menor al valor capturado y se repite el proceso m) Si el valor aumentado de contador llegara hasta el valor capturado entonces

se dice que el valor si es un número primo.

Al margen de estos ejercicios, considérese la posibilidad de contar con un ambiente de desarrollo para capturarlos y guardarse para futuras modificaciones o una posterior implementación en algún lenguaje. Tal capacidad sin duda será bien recibida por estudiantes y profesores, una capacidad que consideramos es un valor agregado y aportación de la herramienta al proceso de enseñanza. Así entonces la aportación de este trabajo en términos de una técnica y herramienta podrá ser valorada desde la captura de algoritmos hasta poder llevarlos a 6 lenguajes de programación. 4.2. Validación de campo de la herramienta presentada y técnica descrita. La herramienta aquí descrita ha sido aplicada con éxito a los grupos de Lógica de Programación que se imparte como parte del programa Ingeniería en Informática en la Universidad Politécnica del Valle de México durante los cuatrimestres 2007-2 y 2007-3. Inicialmente, su utilización fue con los alumnos de un grupo experimental, con la esperanza de poder ser usada por todos los alumnos de la carrera en un futuro próximo. Se mantuvo también un grupo de control. Para tener una mezcla homogénea de los dos grupos, se recopilaron los antecedentes académicos de los estudiantes. Se puso particular interés en el aprovechamiento sobre materias como física y matemáticas , así como a la escuela de procedencia. Finalmente, a través de un breve cuestionario se les interrogó sobre su interés para asistir a un curso de programación. El curso de programación se impartió tres días a la semana bajo un programa de cuatro fases: 1. Lógica de programación. 2. Desarrollo de algoritmos. 3. Desarrollo de algoritmos empleando la herramienta de enseñanza. 4. Conversión de los algoritmos capturados. Este último paso sólo se dió al grupo experimental, en el cual se veía el efecto de la traducción instantánea del código, para ser copiado al clipboard de Windows. El grupo de control únicamente tradujo los algoritmos vistos en la segunda fase del programa a algún lenguaje de programación.

Page 47: Agradecimientos - Instituto Politécnico Nacional

- 42 -

Capítulo V Fases de la investigación.

Para el desarrollo de estas fases, se elaboró una planeacion que nos apoyaría para cubrir los objetivos planteados, dentro de estas actividades se suscitaron algunas que no se pudieron controlar como: la deserción y el desinterés; algunos alumnos que ya formaban parte de los grupos desertaron porque era mucha la lejanía de la escuela a su casa o que era muy noche dando un porcentaje del 18%, cabe mencionar que el horario del taller era de las 20:00 a las 21:00 todos los días de lunes a viernes y el desinterés que no era lo que esperaban, querían empezar desde un inicio a programar. 5.1 La importancia de un taller de lógica de programación (TLP) Primera La fase 1 de la investigación se termino de acuerdo a la planeacion, en ella se inicio a los alumnos en conceptos totalmente teóricos; desde la definición de un algoritmo, los tipos de algoritmos, las diversas estructuras de datos y las estructuras control, así como ejemplos de las habilidades mentales relacionadas con la lógica de programación (abstracción, análisis, síntesis, inferencia, entre otras), ejemplos de procesos internos del individuo (atención, adquisición, personalización, recuperación, transferencia, entre otros) muy complejos que desde luego pertenecen a otro ámbito de estudio y por ultimo para esta fase se tomo como referencia el articulo de Eduardo Rene Rodríguez Ávila (09), en donde el autor hace una excelente descripcion del correcto y completo desarrollo de un algoritmo. Esta fase se llevo a cabo en 21 días, notándose un avance considerable en los alumnos y un gran interés por la programación; con el transcurso de esta fase, que es de pura teoría se les pidió a los alumnos que resolvieran ejemplos de ejercicios en cuanto a la definición de formulas matemáticas y éstas como se traducirían en términos de operadores relacionales, lógicos y numéricos, la sorpresa fue muy grande porque no tienen depurado aspectos básicos como el algebra, se resolvieron simples operaciones básicas de ellas se obtuvieron como 10 resultados por cada una. Esto nos lleva a concluir que muchas veces la problemática no se encuentra en el presente si no en el pasado, pero de mucho tiempo atrás (3 años mínimo), las siguientes son las operaciones aritméticas que se les indico que realizaran, obteniendo resultados muy variados: a) 3 * 4 - (46 mod 5) + 69 / 4 - 35 * 3 b) (81 + 3 * 5) mod 7 - 5 * 8 / 2 - 16 * 3 c) 6 div 12 + 23 + (31 - 12 * 24 / 4). Por todo esto se determina que sí es necesario generar una nueva estrategia didáctica para la enseñanza de la programación, que ayude a disminuir el tiempo en aprender a programar y que nos lleva a corroborar que el proyecto y la aplicación están totalmente sustentadas. Segunda

Page 48: Agradecimientos - Instituto Politécnico Nacional

- 43 -

La fase 2 del proceso, se desarrollo con conceptos de técnicas de diseño de algoritmos (Pseudocódigo, Diagramas de Flujo y Nassi-Sneiderman), el mismo problema se realizaba en las tres técnicas para un mejor entendimiento por parte de los alumnos y a solo una de ellas se realizaba la prueba de escritorio ya que con está se va depurando el algoritmo para su mejora, se escogió la técnica de pseudocódigo. También en esta fase, se debía de tener la mayoría o la totalidad de los conceptos de lógica de programación, que se dio en la fase 1. Cabe mencionar que esta fase se llevo también como 21 días, en la cual se observó un interés real para el diseño y creación de algoritmos de problemas triviales y complejos, la mayoría de los alumnos tenían la intención de hacerlos y algunos lo consiguieron, pero otros no, se considera que en esta fase hay que dedicarle más tiempo, mucho tiempo. Con estas dos fases, los alumnos desarrollan los conceptos de diseño y creación de algoritmos de una manera metódica y ordenada, sin entrar en algún proceso de los ambientes de desarrollo reales de los lenguajes de programación, con esto se hace que los alumnos se preocupen solo por el diseño de algoritmos eficaces, en un tiempo corto considerable. Hay alumnos que tienen mucha iniciativa y ello ayuda a la resolución de los algoritmos, otros alumnos tienen iniciativa pero les falta un proceso de entendimiento y asimilación; cuando consideran que no pueden, se llegan a aislar y por el contrario cuando saben les genera mucha confianza y pueden comunicarse fácilmente, debatir, preguntar o llevar su conocimiento a un nivel mayor. Tercera En esta siguiente fase los programas que se debían de desarrollar son los algoritmos que se elaboraron en la fase anterior y que para nuestra investigación son los de la técnica de pseudocódigo, los cuales ya les eran muy familiares. Cabe mencionar, qué hasta esta parte se dio la misma información tanto teórica como técnica a los dos grupos: el experimental y el de control. Al grupo experimental se le invito a que capturaran los algoritmos diseñados en la herramienta propuesta, este proceso fue de mucha exigencia para ellos, es como cualquier ambiente de desarrollo (IDE) se crea un proyecto: guardar, modificar, imprimir, compilar, detener, abortar, salir, entre otros. Cuarta En la fase de desarrollo de programas que por cierto era la última se exhorto a los grupos a que generaran programas reales, al grupo de control en un lenguaje visual y al experimental a través de una conversión con la herramienta propuesta, con los algoritmos capturados en la fase anterior. En el grupo de control se elaboraron 11 programas los tiempos de desarrollo fueron los siguientes para un sólo lenguaje de programación.

5.1.1 Grupo de Control

No

Descripción del programa

Tiempo en Minutos

1 Suma de los primeros 10 números enteros positivos 30 2 Desarrollar una tabla de multiplicar 20

Page 49: Agradecimientos - Instituto Politécnico Nacional

- 44 -

3 Determinar si una persona es joven o adulta 10 4 Obtener el Factorial de un número positivo 15 5 Convertir un número decimal a binario 20 6 Obtener el quinto número de la serie de fibonaci de la suma 20 7 Separar un número de 3 dígitos 20 8 Determinar si un número es Par o Non 20 9 Determinar si un número es múltiplo de otro 20 9 Determinar cual es la mayor temperatura de 10 valores posibles 30 10 Determinar si un número es primo 30 11 Ordenar 10 números capturados 60

En este grupo también se observo qué a medida que se iba avanzando en el diseño de programas, realmente se iba teniendo un avance considerable; pero, la debilidad es que sólo se hacia en un lenguaje de programación como podría ser Visual Basic y el tiempo en poder llevarlos a otros lenguajes de programación es casi similar, y si contamos que son 6 lenguajes, entonces el tiempo en llevarlos a los ambientes de desarrollo reales en verdad se multiplicaría por 6, y en algunos casos en más. La siguiente tabla muestra los tiempos estimados para el desarrollo de los algoritmos en los diferentes lenguajes de programación, por parte del grupo de control, estos lenguajes son los que se encuentran implementados en la herramienta propuesta.

Programa No.

Visual Basic

Pascal C Scheme Prolog Delphi

1 30 30 30 40 40 30 2 20 20 20 30 30 20 3 10 10 10 20 20 10 4 15 15 15 25 25 15 5 20 20 20 30 30 20 6 20 20 20 30 30 20 7 20 20 20 30 30 20 8 20 20 20 30 30 20 9 20 20 20 30 30 20 9 30 30 30 40 40 30 10 30 30 30 40 40 30 11 60 60 60 80 80 60

5.1.2 Grupo experimental La herramienta que se propuso se instaló en un laboratorio que se conoce como tecnología Informática, de tal forma que los alumnos tenían una maquina para cada uno de ellos y no había posibilidad de que compartieran equipo, se les dio un acceso con usuario y password, para que pudieran y quisieran hacer uso de la aplicación, cuando desearan. Tenían un acceso para que otros alumnos no pudieran entrar y pudieran modificar sus archivos y los resultados, cabe mencionar que entre mayor sea el número de alumnos que utilicen la herramienta será mejor, pero en términos del proceso de búsqueda de informacion, todavía está limitado, cuando se termine el proceso de esta investigación se dejara libre a todo alumno inclusive de cualquier carrera.

Page 50: Agradecimientos - Instituto Politécnico Nacional

- 45 -

A este grupo primero se tomó tiempo necesario para enseñar la herramienta y que ellos pudieran asimilar el funcionamiento y uso de ella; aunado a ello se sumo un tiempo de prueba y ensayo, que desde luego este tiempo comparado con el del grupo de control era mucho mayor; pero una vez que ya se conocía la herramienta, fue como algo natural para ellos ya la podían manejar muy eficientemente. En este grupo los tiempos se elevan considerablemente en los primeros programas, pero luego empiezan a tomar un mismo nivel comparado con el otro grupo, al final de cada programa no hay parámetro de comparación porque en pocos minutos se hace la conversión para todos los lenguajes. La siguiente tabla muestra los tiempos promedio de los alumnos en el desarrollado de programas. No Programa Tiempo en

minutos 1 Suma de los primeros 10 dígitos positivos 50 2 Desarrollar una tabla de multiplicar 50 3 Determinar si una persona es joven o adulta 30 4 Obtener el Factorial de un número positivo 35 5 Convertir un número decimal a binario 40 6 Obtener el quinto número de la serie de fibonaci de la suma 40 7 Separar un número de 3 dígitos 40 8 Determinar si un número es Par o Non 30 9 Determinar si un número es múltiplo de otro 35 9 Determinar cual es la mayor temperatura de 10 valores posibles 40 10 Determinar si un número es primo 40 11 Ordenar 10 números capturados 60

También en esta fase, para probar que el código convertido funcionara, se corre el ejecutable de la aplicación por ejemplo, como Visual Basic, se genera un nuevo proyecto dentro del IDE, se crea una nueva forma en el proyecto, se baja un botón a la forma y en el evento click asociado al componente botón de la forma, se copia el código que fue generado con la herramienta y qué, en ese momento se encuentra en el portapapeles de Windows, porque así se le indico con la herramienta (copiar al Clipboard de Windows), se procede a la compilación de este proyecto, y por ultimo una vez que se encuentre ejecutando la forma al momento de hacer click en dicho componente el programa empieza a funcionar. También pasa lo mismo para otro lenguaje como Pascal, la única diferencia es que el código aquí corre a modo carácter tal cómo es copiado del portapapeles. Pasando a otro lenguaje como C, pues simplemente se genera un nuevo proyecto en el ambiente real, se pega y se compila para que corra. Claramente aquí los tiempos en ver el mismo código en estos tres lenguajes de programación, se ve reducido drásticamente, a pesar de que en un inicio se hayan tardado más tiempo que el otro grupo en capturarlo y entenderlo. Existe un concepto muy importante en el desarrollo de algoritmos que es la prueba de escritorio, cuando los alumnos lo copiaban al ambiente de desarrollo real del lenguaje, en cada una de sus pruebas se daban cuenta de que no era lo que querían

Page 51: Agradecimientos - Instituto Politécnico Nacional

- 46 -

y ahí les ayudaba rápidamente para entender cual era la problemática del diseño del algoritmo, entonces se regresaban a modificarlo y lo volvían a convertir y repetían este proceso hasta que saliera según ellos lo habían pensado. También se daban cuenta al momento de hacer la conversión de que habian escrito cosas mal, lo corregían y lo volvían a convertir, eso ayudaba a entender la sintaxis o alguna idea que ellos tenían o cosas que no estaba en el proceso y las podían incluir. Cabe mencionar que desde un inicio de la captura del algoritmo en las conversiones primero debe pasarse al lenguaje Pascal y luego de ahí pasarse a las otras 5 conversiones. Por último, existe un apartado en la herramienta que les da a conocer a los alumnos las diferentes estructuras de control y estructuras de datos que existen, tanto primitivas, lineales y no lineales esto les genera una idea más formal y sólida de cómo se pueden usar al momento de desarrollar aplicaciones. 5.2Graficas Las siguientes graficas muestran el comportamiento de los alumnos antes de haber empezado el curso y después de haber terminado el curso, hay que recalcar que los alumnos del grupo de control no tuvieron el apoyo de la herramienta y los alumnos del grupo experimental sí, eso influyo, se vuelve a reafirmar y demostrar las variables expuestas en nuestra hipótesis.

Antes del Curso

0

2

4

6

8

10

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Preguntas

Excelente

Muy Bien

Bien

Regular

Nada

Despues del Curso

012345678

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Preguntas

Excelente

Muy Bien

Bien

Regular

Nada

Page 52: Agradecimientos - Instituto Politécnico Nacional

- 47 -

En las graficas anteriores se observa una tendencia de que la herramienta del proyecto ayudó a la generación de algoritmos, para su respectiva programación en los diversos lenguajes. No se pretende generar una idea falsa, de que no será necesario capturar el programa en los ambientes reales o que para programar se use esta herramienta propuesta, lo que se hace es enseñarles ágilmente y más rápido de como se podría programar de una manera mejor. Pero siempre será necesario capturar el programa, en lenguaje real. No hay que olvidar cual es el objetivo de la investigación reducir el tiempo en aprender a programar derivado de una metodología de diseño de algoritmos en pseudocódigo en lenguaje español, con la ayuda de una herramienta. Entonces derivado de esto, la aplicación que se diseño se inicia a los alumnos en el ámbito de la programación. Entre más se desarrollen algoritmos en la herramienta mejor será la comprensión del lenguaje de programación real, así como la habilidad para el desarrollo de programas o aplicaciones.

Page 53: Agradecimientos - Instituto Politécnico Nacional

- 48 -

Conclusiones y recomendaciones Esta tesis representa una contribución a la docencia en la parte académica, plantea una didáctica de cómo enseñar programación, a través de la teoría correspondiente al desarrollo de algoritmos con el uso de una técnica y herramienta para la enseñanza de la programación, a través del diseño propiamente de algoritmos en la técnica de pseudocódigo y como llevarlos a 6 lenguajes de programación propuestos, todo esto nos llevo a las siguientes conclusiones:

1. Existe un avance considerable en ambos grupos, tomando como antecedente que hay mejores resultados en el grupo experimental

2. El tiempo en desarrollar los algoritmos se reduce sustancialmente, en ambos grupos, conforme se va avanzando

3. Se empieza a reconocer la sintaxis de los 6 lenguajes de programación, por parte del grupo experimental

4. A pesar de que no se tienen conceptos teóricos previos en cuanto a la programación o alguna experiencia previa, sí se aprende a programar en los lenguajes presentados

5. Se desarrollan conceptos de suma importancia como es la recursividad 6. La herramienta puede ser usada por alumnos diferentes a una formación

Informática Para continuar con este estudio se recomienda lo siguiente:

1. Desarrollar los dos grupos desde el inicio; uno con la herramienta y el otro en el lenguaje de programación, sin teoría ambos.

2. Involucrar a otros alumnos de otras carreras, para el uso de la herramienta, para así ver su efecto y poder determinar el nivel de impacto sobre este tipo de alumnos

3. Involucrar a profesionistas egresados que necesiten programar, indiscutiblemente de otras carreras.

4. Involucrar a profesores informáticos con especialidades diferentes como Redes, Matemáticas, Ofimáticas, soporte técnico, entre otras.

En cuanto a las aportaciones de este proyecto, se presenta una herramienta visual para el desarrollo y que las ideas en el diseño de algoritmos salgan con propias palabras del usuario que está interactuando con la aplicación y no de la forma clásica que son los catálogos que los sistemas de información traen desde su inicio. Al relación a este proyecto de investigación, ha sido puesto para su evaluación en diferentes congresos internacionales y nacionales, a través de varios artículos, siendo aceptado en tres congresos: CICOS/08 de la UAEM de Morelos, ANIEI/08 en la sede del Tecnológico de Monterrey en Nuevo León y en CIDETEC/08 del Instituto Politécnico Nacional. Además es posible obtener una segunda versión de la herramienta se contempla que las gramáticas de los lenguajes sean de alguna forma capturadas por el usuario y en conjunto con el pseudocódigo pueda generar un programa de ese lenguaje en particular.

Page 54: Agradecimientos - Instituto Politécnico Nacional

- 49 -

REFERENCIAS BIBLIOGRAFICAS

Bower Gordón H., Hilgard Ernest R. Teorías del aprendizaje, Segunda edición 2006, Editorial Trillas, Pág. 373 (15) Bower Gordón H., Hilgard Ernest R. Teorías del aprendizaje, Segunda edición 2006, Editorial Trillas, Pág. 407 (16) Bravo Crescencio, Redondo Miguel A. Ortega Manuel Aprendizaje en grupo de la programación mediante técnicas de colaboración distribuida en tiempo real, Universidad Castilla-La Mancha, España. (06) Cairó Osvaldo, Metodología de la programación, tercera edición, Editorial Alfaomega. (13) Gramática obtenida de pascal, a través de Borland en Delphi Gramática obtenida de Prolog, a través de SWI-Prolog, versión 3.0,http://www.swi-prolog.org/download.html. (10) Gramática obtenida de Scheme, a través de Dr. Scheme, versión 301,http://www.plt-scheme.org. (12) Jay Sussman Gerald, Wisdom Jack, Structure and interpretation of classical mechanics, (11) Giry Marcel, Talleres de razonamiento lógico (TRL), editorial SM (17) Moroni Norma, Señas Perla, JEITICS 2005 Primeras Jornadas de Educación en Informática y TICS en Argentina. (01) http://www.lsi.us.es/docencia/pagina_asignatura.php?id=28&cur=2004#pro (03) http://www.ldc.usb.ve/~abianc/Postgrado/Tabla2.html. (02) M. en C. Rodríguez Ávila Eduardo René. “El Correcto y Completo Desarrollo de un Algoritmo”, Sección de Estudios de Posgrado e Investigación del IPN en la UPIICSA. (09) Institute for Applied Behavioral Sciences, NTL, http://www.ntl.org/about.html, 2004. (14) Oronico Arnoldo, Una robótica pedagógica, [email protected], Marco Teórico sobre Robótica. (07) Oviedo Galdeano Mario, academias de computación de la UPIICSA. La enseñanza de la programación. (05) Terrance W. Pratt, Marvin V. Zelkowitz, Lenguajes de Programación, Tercera edición, Pearson Educación. (08)

Page 55: Agradecimientos - Instituto Politécnico Nacional

- 50 -

ANEXO DE TABLAS

Tabla Comparativa de enfoques del conocimiento (02)

Modelo Conductista Modelo Cognitivo Modelo Constructivista

Controla el proceso

Sigue un estricto proceso

de diseño Docente

En completo control del

proceso En términos generales,

actúa como un entrenador

para el estudiante

Es un facilitador. Diseña contextos

auténticos

Controla el proceso de aprendizaje

es parte de un contexto social, un

equipo. Estudiante

Aprendizaje individual

como una producto del

las actividades de

instrucción

El proceso de aprendizaje

individual es de

importancia central Toma responsabilidades del

proceso de aprendizaje

Las experiencias propias, la

interpretación y los problemas son

punto de partida para el

aprendizaje. Características del

estudiante

No se toman en especial

consideración

El proceso de instrucción

se construye sobre

conocimiento anterior Juega un papel fundamental, los

antecedentes individuales

culturales.

Características del

docente

Profesional de la

educación

Profesional de la

educación

Puede ser un profesional, un

experto en un campo y no ser un

docente

Actividades de

aprendizaje

El aprendizaje es siempre

consecuencia de una

actividad de instrucción

El aprendizaje implica un

procesamiento activo de

información (presentado

por docentes) por el

individuo.

El conocimiento es un proceso que

es adquirido de una forma

personal por cada individuo y

dependiendo del contexto social.

El docente define los

objetivos instruccionales.

Los objetivos son

explícitos (dados por el

docente)

Los objetivos de alto nivel son

tratados de alcanzar. Resolución

de problemas.

Mayor atención a las

estructuras de los

materiales de aprendizaje.

Análisis de tareas de

procesos complejos.

Se construye en base a las

experiencias del estudiante.

La estructura y la

secuencia de las

actividades, basadas en

análisis e tareas.

Se respeta el estilo de aprendizaje.

Actividades

instruccionales

Se adoptan varias

estrategias instruccionales

para promover la

construcción de esquemas.

Se diseña el ambiente de

aprendizaje. Es esencial.

Page 56: Agradecimientos - Instituto Politécnico Nacional

- 51 -

Se busca la utilización de

medios variados.

Uso de materiales de aprendizaje

basado en la vida real, para

reflejar múltiples perspectivas y

complejidades.

Seguimiento continúo para

guiar el proceso de

aprendizaje individual.

Actividades de discusión,

colaboración, construcción y

cambio de roles.

No hay una atención

explícita para el mundo

real como un contexto de

aprendizaje.

El contexto educativo es el mundo

real con todas sus complejidades.

El docente pre-estructura esos

contextos como un "ambiente de

aprendizaje".

Contexto

No se toma en cuenta el

contexto, fuera de la

situación de aprendizaje. Todo está pre-estructurado

y pre-organizado para

facilitar la adquisición

sistemática del

conocimiento.

Tabla del PEA de las universidades Tradicionales y universidades Politécnicas

Sistema Tradicional Sistema Educación Basada en Competencias (EBC)

Centrado en el maestro Centrado en el alumno

Inglés no es obligatorio Inglés obligatorio

Prácticas y servicio profesional hasta el final de la carrera

Estancias profesionales desde el segundo año

Los medios son el fin El fin define los medios

Oferta educativa centrada en la demanda estudiantil

Oferta educativa centrada en la demanda empresarial

Se evalúa primordialmente el conocimiento

Se exigen Evidencias de: Conocimiento, Actitud, Desempeño y de producto

Page 57: Agradecimientos - Instituto Politécnico Nacional

- 52 -

Tabla comparativa de los 3 estilos de aprendizaje

Estilos

Visual Auditivo Kinestesico

Concepto Conducta Organizado, ordenado,

observador y tranquilo, Preocupado por su aspecto

Habla solo, se distrae fácilmente, facilidad de palabra, No le preocupa su aspecto físico

Responde a las muestras físicas de cariño, le gusta tocar todo, remueve y gesticula mucho.

Aprendizaje Aprende lo que ve. Necesita una visión detallada y saber a donde se va.

A prende de lo que oye, a base de repetir el proceso

Aprende con lo que toca y lo que hace

Lectura Le gustan las descripciones e imagina escenas en ese instante

Le gustan las polémicas, evita las descripciones largas y no se percata de los gráficos

Le gustan las acciones de cuestiones dinámicas y por lo regular no es un gran lector.

Ortografía No tiene faltas Comete faltas muchas, en base al sonido

Comete faltas muchas, en base al si le suenan

Memoria Recuerda lo que ve Recuerda lo que oye

Recuerda lo que hizo

Imaginación Piensa en imágenes Piensa en sonidos Piensa en todos los movimientos

Almacena información

Rápidamente De manera secuencial y por bloques

Memoria muscular

Comunicación Es impaciente cuando le platican

Le gusta escuchar No escucha bien

Distracción Cuando hay movimiento

Cuando hay Ruido Cuando las explicaciones son auditivas o visuales no son de destreza

Page 58: Agradecimientos - Instituto Politécnico Nacional

- 53 -

Calificaciones del Grupo 1

# Nombre

Algebra Lineal

Calculo Dife

rencial

Desarro

llo Humano

Herra

mientas

Ofim

átic

as

Intro

ducción a la

Ingeniería

en

Inform

átic

a

Lógica M

atemátic

a

Lógica de

programación.

Materia

s

Aprobadas

Promedio

1 Alumno 1 8.0 6.0 8.0 9.0 9.0 8.0 6.0 5.0 7.7

2 Alumno 2 7.0 8.0 9.0 10.0 10.0 9.0 9.0 6.0 8.9

3 Alumno 3 7.0 8.0 8.0 9.0 8.0 9.0 8.0 6.0 8.1

4 Alumno 4 10.0 9.0 9.0 10.0 9.0 9.0 9.0 7.0 9.3

5 Alumno 5 7.0 8.0 8.0 9.0 9.0 9.0 8.0 6.0 8.3

6 Alumno 6 4.0 6.0 9.0 7.0 8.0 8.0 5.0 3.0 6.7

7 Alumno 7 7.0 8.0 9.0 9.0 8.0 8.0 9.0 6.0 8.3

8 Alumno 8 8.0 9.0 9.0 9.0 9.0 9.0 8.0 7.0 8.7

9 Alumno 9 3.0 8.0 9.0 8.0 9.0 10.0 8.0 6.0 7.9

10 Alumno 10 9.0 9.0 10.0 9.0 9.0 9.0 8.0 7.0 9.0

11 Alumno 11 8.0 8.0 9.0 10.0 9.0 10.0 8.0 7.0 8.9

12 Alumno 12 8.0 8.0 8.0 9.0 8.0 8.0 8.0 7.0 8.1

13 Alumno 13 8.0 9.0 9.0 8.0 9.0 8.0 8.0 7.0 8.4

14 Alumno 14 9.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.9

15 Alumno 15 9.0 9.0 9.0 9.0 9.0 9.0 8.0 7.0 8.9

16 Alumno 16 7.0 9.0 9.0 9.0 10.0 10.0 9.0 6.0 9.0

17 Alumno 17 9.0 9.0 8.0 9.0 9.0 9.0 8.0 7.0 8.7

18 Alumno 18 8.0 9.0 9.0 10.0 10.0 10.0 10.0 7.0 9.4

19 Alumno 19 4.0 9.0 9.0 8.0 10.0 8.0 7.0 5.0 7.9

20 Alumno 20 8.0 7.0 9.0 9.0 9.0 8.0 8.0 6.0 8.3

21 Alumno 21 7.0 8.0 9.0 9.0 9.0 8.0 8.0 6.0 8.3

22 Alumno 22 8.0 8.0 9.0 9.0 9.0 10.0 9.0 7.0 8.9

23 Alumno 23 10.0 9.0 9.0 10.0 10.0 9.0 9.0 7.0 9.4

24 Alumno 24 7.0 8.0 9.0 9.0 9.0 8.0 8.0 6.0 8.3

25 Alumno 25 9.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.9

26 Alumno 26 10.0 9.0 10.0 9.0 10.0 10.0 10.0 7.0 9.7

27 Alumno 27 6.0 8.0 9.0 9.0 8.0 9.0 8.0 6.0 8.1

28 Alumno 28 6.0 8.0 9.0 9.0 8.0 8.0 8.0 6.0 8.0

29 Alumno 29 5.0 8.0 9.0 8.0 9.0 9.0 8.0 6.0 8.0

30 Alumno 30 10.0 10.0 9.0 9.0 9.0 9.0 10.0 7.0 9.4

31 Alumno 31 8.0 10.0 10.0 9.0 10.0 10.0 8.0 7.0 9.3

32 Alumno 32 8.0 9.0 9.0 9.0 9.0 9.0 8.0 7.0 8.7

33 Alumno 33 9.0 8.0 10.0 9.0 9.0 9.0 9.0 7.0 9.0

34 Alumno 34 10.0 8.0 9.0 10.0 10.0 10.0 8.0 7.0 9.3

35 Alumno 35 9.0 8.0 8.0 9.0 9.0 10.0 8.0 7.0 8.7

36 Alumno 36 7.0 7.0 8.0 9.0 9.0 8.0 8.0 5.0 8.0

37 Alumno 37 10.0 9.0 9.0 10.0 10.0 10.0 8.0 7.0 9.4

38 Alumno 38 8.0 8.0 9.0 10.0 10.0 9.0 8.0 7.0 8.9

39 Alumno 39 9.0 8.0 10.0 9.0 9.0 10.0 8.0 7.0 9.0

Page 59: Agradecimientos - Instituto Politécnico Nacional

- 54 -

40 Alumno 40 8.0 9.0 10.0 9.0 9.0 10.0 9.0 7.0 9.1

41 Alumno 41 9.0 8.0 9.0 9.0 8.0 8.0 8.0 7.0 8.4

Total Aprobados 27.0 37.0 41.0 40.0 41.0 41.0 38.0 25 8.6

Total No Aprobados 14.0 4.0 0.0 1.0 0.0 0.0 3.0 16 0.0

% de Aprobados 65.9 90.2 100.0 97.6 100.0 100.0 92.7 61 0.0

% de No aprobados 34.1 9.8 0.0 2.4 0.0 0.0 7.3 39 0.0

Calificaciones del Grupo 2

# Nombre

Algebra Lineal

Calculo Dife

rencial

Desarro

llo Humano

Herra

mientas

Ofim

átic

as

Intro

ducción a la

Ingeniería

en

Inform

átic

a

Lógica M

atemátic

a

Lógica de

programación.

Materia

s Aprobadas

Promedio

1 Alumno 1 9.0 8.0 9.0 9.0 8.0 9.0 9.0 7.0 8.7

2 Alumno 2 6.0 8.0 9.0 9.0 8.0 9.0 9.0 6.0 8.3

3 Alumno 3 10.0 8.0 9.0 10.0 10.0 9.0 8.0 7.0 9.1

4 Alumno 4 7.0 8.0 9.0 9.0 8.0 9.0 8.0 6.0 8.3

5 Alumno 5 8.0 9.0 9.0 9.0 8.0 10.0 9.0 7.0 8.9

6 Alumno 6 7.0 7.0 9.0 9.0 9.0 9.0 8.0 5.0 8.3

7 Alumno 7 8.0 9.0 9.0 9.0 9.0 9.0 8.0 7.0 8.7

8 Alumno 8 7.0 9.0 9.0 8.0 9.0 9.0 9.0 6.0 8.6

9 Alumno 9 7.0 7.0 9.0 7.0 8.0 10.0 6.0 3.0 7.7

10 Alumno 10 9.0 9.0 10.0 10.0 10.0 9.0 9.0 7.0 9.4

11 Alumno 11 8.0 7.0 9.0 9.0 8.0 9.0 8.0 6.0 8.3

12 Alumno 12 9.0 8.0 9.0 10.0 9.0 9.0 9.0 7.0 9.0

13 Alumno 13 8.0 8.0 9.0 9.0 8.0 9.0 9.0 7.0 8.6

14 Alumno 14 7.0 8.0 9.0 10.0 9.0 9.0 8.0 6.0 8.6

15 Alumno 15 8.0 7.0 8.0 9.0 8.0 9.0 8.0 6.0 8.1

16 Alumno 16 8.0 7.0 9.0 9.0 8.0 9.0 9.0 6.0 8.4

17 Alumno 17 7.0 8.0 9.0 9.0 9.0 9.0 9.0 6.0 8.6

18 Alumno 18 8.0 7.0 5.0 7.0 8.0 9.0 8.0 4.0 7.4

19 Alumno 19 9.0 8.0 9.0 9.0 10.0 9.0 9.0 7.0 9.0

20 Alumno 20 8.0 8.0 9.0 9.0 9.0 10.0 9.0 7.0 8.9

21 Alumno 21 8.0 8.0 9.0 10.0 9.0 10.0 8.0 7.0 8.9

22 Alumno 22 8.0 8.0 9.0 9.0 9.0 9.0 8.0 7.0 8.6

23 Alumno 23 8.0 8.0 9.0 10.0 10.0 10.0 9.0 7.0 9.1

24 Alumno 24 8.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.7

25 Alumno 25 8.0 7.0 9.0 9.0 9.0 10.0 8.0 6.0 8.6

26 Alumno 26 2.0 8.0 9.0 9.0 9.0 9.0 9.0 6.0 7.9

27 Alumno 27 8.0 8.0 9.0 10.0 8.0 10.0 9.0 7.0 8.9

28 Alumno 28 8.0 8.0 9.0 10.0 9.0 9.0 9.0 7.0 8.9

Page 60: Agradecimientos - Instituto Politécnico Nacional

- 55 -

29 Alumno 29 8.0 9.0 9.0 9.0 8.0 10.0 8.0 7.0 8.7

30 Alumno 30 9.0 8.0 9.0 10.0 9.0 10.0 8.0 7.0 9.0

31 Alumno 31 5.0 6.0 9.0 9.0 8.0 10.0 8.0 5.0 7.9

32 Alumno 32 3.0 5.0 5.0 5.0 5.0 5.0 4.0 0.0 4.6

33 Alumno 33 2.0 7.0 5.0 5.0 5.0 5.0 5.0 0.0 4.9

34 Alumno 34 9.0 8.0 9.0 9.0 9.0 10.0 9.0 7.0 9.0

35 Alumno 35 9.0 9.0 9.0 10.0 9.0 10.0 9.0 7.0 9.3

36 Alumno 36 9.0 9.0 7.0 9.0 9.0 9.0 9.0 6.0 8.7

37 Alumno 37 8.0 9.0 9.0 9.0 9.0 9.0 9.0 7.0 8.9

38 Alumno 38 8.0 9.0 9.0 10.0 9.0 10.0 9.0 7.0 9.1

39 Alumno 39 9.0 8.0 9.0 9.0 9.0 9.0 8.0 7.0 8.7

40 Alumno 40 5.0 8.0 9.0 9.0 9.0 9.0 8.0 6.0 8.1

41 Alumno 41 10.0 9.0 9.0 9.0 9.0 10.0 9.0 7.0 9.3

Total Aprobados 29.00 31.00 37.00 37.00 39.00 39.00 38.00 23 8.45

Total No Aprobados 12.00 10.00 4.00 4.00 2.00 2.00 3.00 18 0.00

% de Aprobados 70.73 75.61 90.24 90.24 95.12 95.12 92.68 56 21.6

% de No aprobados 29.27 24.39 9.76 9.76 4.88 4.88 7.32 43 0.00

Calificaciones del Grupo 3

# Nombre

Algebra Lineal

Calculo Dife

rencial

Desarro

llo Humano

Herra

mientas

Ofim

átic

as

Intro

ducción a la

Ingeniería

en

Inform

átic

a

Lógica M

atemátic

a

Lógica de

programación.

Materia

s Aprobadas

Promedio

1 Alumno 1 10.0 10.0 10.0 10.0 10.0 10.0 10.0 7.0 10.0 2 Alumno 2 9.0 7.0 10.0 9.0 9.0 8.0 9.0 6.0 8.7 3 Alumno 3 9.0 8.0 10.0 9.0 9.0 9.0 8.0 7.0 8.9 4 Alumno 4 10.0 6.0 9.0 9.0 9.0 9.0 5.0 5.0 8.1 5 Alumno 5 8.0 8.0 8.0 10.0 8.0 9.0 8.0 7.0 8.4 6 Alumno 6 8.0 8.0 10.0 10.0 9.0 9.0 8.0 7.0 8.9 7 Alumno 7 7.0 8.0 8.0 10.0 10.0 9.0 9.0 6.0 8.7 8 Alumno 8 8.0 7.0 8.0 10.0 10.0 10.0 9.0 6.0 8.9 9 Alumno 9 8.0 7.0 9.0 9.0 9.0 10.0 5.0 5.0 8.1 10 Alumno 10 7.0 9.0 7.0 9.0 8.0 10.0 8.0 5.0 8.3 11 Alumno 11 8.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.7 12 Alumno 12 5.0 5.0 5.0 6.0 8.0 9.0 5.0 2.0 6.1 13 Alumno 13 8.0 8.0 8.0 10.0 9.0 9.0 8.0 7.0 8.6 14 Alumno 14 4.0 8.0 10.0 9.0 9.0 8.0 8.0 6.0 8.0 15 Alumno 15 7.0 7.0 9.0 9.0 9.0 9.0 5.0 4.0 7.9 16 Alumno 16 8.0 8.0 9.0 9.0 9.0 9.0 8.0 7.0 8.6

Page 61: Agradecimientos - Instituto Politécnico Nacional

- 56 -

17 Alumno 17 8.0 9.0 8.0 9.0 9.0 9.0 8.0 7.0 8.6 18 Alumno 18 8.0 8.0 8.0 9.0 10.0 10.0 8.0 7.0 8.7 19 Alumno 19 7.0 4.0 9.0 9.0 9.0 9.0 5.0 4.0 7.4 20 Alumno 20 8.0 9.0 8.0 9.0 9.0 9.0 8.0 7.0 8.6 21 Alumno 21 10.0 8.0 9.0 10.0 9.0 10.0 8.0 7.0 9.1 22 Alumno 22 9.0 8.0 10.0 9.0 9.0 9.0 8.0 7.0 8.9 23 Alumno 23 8.0 8.0 10.0 9.0 10.0 9.0 5.0 6.0 8.4 24 Alumno 24 10.0 9.0 10.0 10.0 10.0 10.0 9.0 7.0 9.7 25 Alumno 25 9.0 8.0 8.0 9.0 10.0 9.0 9.0 7.0 8.9 26 Alumno 26 10.0 9.0 9.0 10.0 10.0 10.0 8.0 7.0 9.4 27 Alumno 27 8.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.7 28 Alumno 28 6.0 7.0 10.0 10.0 9.0 9.0 8.0 5.0 8.4 29 Alumno 29 5.0 5.0 5.0 5.0 5.0 5.0 5.0 0.0 5.0 30 Alumno 30 7.0 7.0 10.0 9.0 9.0 10.0 8.0 5.0 8.6 31 Alumno 31 5.0 5.0 9.0 8.0 8.0 9.0 5.0 4.0 7.0 32 Alumno 32 8.0 8.0 7.0 9.0 9.0 9.0 5.0 5.0 7.9 33 Alumno 33 8.0 6.0 7.0 8.0 9.0 10.0 5.0 4.0 7.6 34 Alumno 34 10.0 10.0 10.0 10.0 9.0 10.0 10.0 7.0 9.9 35 Alumno 35 5.0 5.0 5.0 5.0 8.0 5.0 5.0 1.0 5.4 36 Alumno 36 8.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.7 37 Alumno 37 9.0 7.0 10.0 10.0 8.0 9.0 8.0 6.0 8.7 38 Alumno 38 7.0 7.0 6.0 9.0 9.0 9.0 5.0 3.0 7.4 39 Alumno 39 9.0 8.0 9.0 10.0 9.0 9.0 8.0 7.0 8.9 40 Alumno 40 4.0 5.0 5.0 6.0 8.0 9.0 5.0 2.0 6.0 41 Alumno 41 6.0 7.0 8.0 9.0 10.0 9.0 5.0 4.0 7.7

Total Aprobados 27.00 24.00 33.00 37.00 40.00 39.00 27.00 19 8.25

Total No Aprobados 14.00 17.00 8.00 4.00 1.00 2.00 14.00 22

% de Aprobados 65.85 58.54 80.49 90.24 97.56 95.12 65.85 46 0.0

% de No aprobados 34.15 41.46 19.51 9.76 2.44 4.88 34.15 53 0.0

Page 62: Agradecimientos - Instituto Politécnico Nacional

- 57 -

Aspirantes para ingreso y valores obtenidos en el examen de Ceneval

RV RM MC CN CS MAT ESP M1 Esp M2 Mat M3 Fis

Nombre del aspirante

Aspirante 1 1088 1180 1100 1086 1000 1200 977 1030 1000 1090 Aspirante 2 982 970 980 871 950 1100 977 760 970 820 Aspirante 3 1033 1133 914 850 1060 1075 925 850 1060 1000 Aspirante 4 1067 1100 1000 1112 900 1037 1075 880 1030 970 Aspirante 5 900 833 871 1000 780 1037 1000 850 910 820 Aspirante 6 1018 1030 1020 957 950 1000 1115 880 970 940 Aspirante 7 967 1000 1043 963 900 1000 925 940 820 1030 Aspirante 8 1033 900 1000 1000 900 1000 925 940 940 790 Aspirante 9 947 880 900 871 950 1000 1023 910 820 820 Aspirante 10 900 800 957 813 780 1000 775 910 820 910 Aspirante 11 1133 1033 1000 1000 860 963 1150 970 910 910 Aspirante 12 1100 967 1000 888 700 963 1000 940 910 910 Aspirante 13 967 967 1000 888 820 963 888 1000 820 820 Aspirante 14 1067 933 957 1037 940 963 963 880 820 970 Aspirante 15 1067 933 1000 850 860 963 963 880 790 730 Aspirante 16 1067 867 914 850 900 963 1000 1000 820 1000 Aspirante 17 967 867 914 813 820 963 813 880 970 820 Aspirante 18 1133 867 1000 888 780 963 888 1030 850 790 Aspirante 19 947 1120 1020 1086 950 950 1023 880 850 970 Aspirante 20 1053 1060 820 871 850 950 1069 850 850 790 Aspirante 21 876 1030 940 1043 850 950 746 880 940 880 Aspirante 22 1088 970 980 1043 950 950 1023 1060 970 850 Aspirante 23 982 940 980 914 850 950 885 1030 940 910 Aspirante 24 806 940 900 829 950 950 838 1000 790 730 Aspirante 25 982 940 900 1000 800 950 792 940 910 1000 Aspirante 26 947 910 940 1000 850 950 885 1030 940 910 Aspirante 27 912 850 900 829 800 950 977 850 850 790 Aspirante 28 806 790 1020 829 950 950 931 880 790 790 Aspirante 29 900 967 1000 888 820 925 888 910 850 910 Aspirante 30 1033 933 957 775 780 925 925 880 880 790 Aspirante 31 900 900 957 850 820 925 813 940 880 850 Aspirante 32 967 800 1043 888 980 925 850 790 940 820 Aspirante 33 806 1150 740 829 1000 900 838 880 880 760 Aspirante 34 982 1090 980 829 800 900 977 1030 880 940 Aspirante 35 912 1060 900 957 1000 900 885 1060 820 910 Aspirante 36 1088 1030 940 871 1000 900 885 1120 940 820 Aspirante 37 876 1030 780 871 900 900 885 910 850 790 Aspirante 38 947 1030 940 829 750 900 1023 940 940 820 Aspirante 39 947 1000 1060 871 950 900 931 790 820 760 Aspirante 40 982 1000 860 1043 850 900 1023 910 910 820 Aspirante 41 1053 1000 1140 914 900 900 885 1000 850 910 Aspirante 42 1018 940 980 957 1000 900 838 880 850 940

Page 63: Agradecimientos - Instituto Politécnico Nacional

- 58 -

Aspirante 43 876 910 900 1000 850 900 838 1000 790 880 Aspirante 44 876 910 1060 829 800 900 931 850 850 880 Aspirante 45 912 880 1100 871 900 900 1023 910 940 970 Aspirante 46 947 880 980 871 900 900 977 940 760 820 Aspirante 47 841 880 980 871 950 900 700 820 820 760 Aspirante 48 876 850 820 957 950 900 792 940 700 910 Aspirante 49 900 1033 914 775 780 888 850 910 790 820 Aspirante 50 1000 1000 914 925 860 888 888 850 970 940 Aspirante 51 1033 933 1171 1000 940 888 1037 970 940 910 Aspirante 52 967 933 957 925 860 888 888 940 790 910 Aspirante 53 1100 900 1086 1000 900 888 925 850 820 850 Aspirante 54 833 867 914 888 740 888 813 850 790 880 Aspirante 55 867 833 1043 775 940 888 813 820 820 790 Aspirante 56 933 767 914 813 780 888 925 850 880 910 Aspirante 57 900 1100 1043 813 820 850 925 880 850 880 Aspirante 58 933 1033 957 775 780 850 963 1000 820 850 Aspirante 59 982 1030 1020 1043 900 850 885 1000 940 1000 Aspirante 60 1018 1030 1140 871 850 850 977 880 790 820 Aspirante 61 1018 1030 1020 957 950 850 931 910 850 1000 Aspirante 62 876 1000 860 829 900 850 977 850 850 790 Aspirante 63 876 1000 860 914 950 850 885 1000 850 910 Aspirante 64 876 970 900 957 900 850 977 1030 940 910 Aspirante 65 912 970 940 914 800 850 746 850 790 820 Aspirante 66 967 967 1128 888 820 850 925 880 820 880 Aspirante 67 841 940 900 829 1000 850 838 820 730 850 Aspirante 68 912 940 900 871 900 850 931 910 730 850 Aspirante 69 1200 933 1043 888 900 850 850 940 850 880 Aspirante 70 867 933 957 888 820 850 813 970 850 790 Aspirante 71 967 933 1000 850 900 850 850 880 850 880 Aspirante 72 806 910 940 829 850 850 792 910 760 850 Aspirante 73 876 910 940 1086 800 850 792 910 880 790 Aspirante 74 767 900 871 813 820 850 1000 820 790 910 Aspirante 75 867 900 957 850 740 850 888 850 820 820 Aspirante 76 1000 867 871 775 860 850 925 820 880 880 Aspirante 77 933 867 1086 888 860 850 888 880 880 910 Aspirante 78 1018 850 940 1043 900 850 885 1030 760 820 Aspirante 79 771 850 980 871 750 850 700 910 790 820 Aspirante 80 1000 833 871 813 900 850 1000 1030 850 790 Aspirante 81 947 820 1020 914 850 850 838 940 850 880 Aspirante 82 876 820 980 914 850 850 931 850 790 790 Aspirante 83 947 820 820 957 900 850 1023 910 820 880 Aspirante 84 900 800 743 850 860 850 775 940 880 880 Aspirante 85 900 800 829 850 820 850 850 910 850 880 Aspirante 86 933 800 1043 925 980 850 888 940 880 850 Aspirante 87 1000 800 871 813 780 850 775 880 790 910 Aspirante 88 1000 933 957 738 900 813 888 880 880 880 Aspirante 89 967 933 1043 813 860 813 850 970 910 820 Aspirante 90 967 933 957 888 860 813 963 940 850 880 Aspirante 91 700 900 829 813 700 813 813 910 760 1030

Page 64: Agradecimientos - Instituto Politécnico Nacional

- 59 -

Aspirante 92 967 867 1000 850 700 813 850 880 940 910 Aspirante 93 900 833 871 888 820 813 775 880 760 790 Aspirante 94 1033 833 1000 888 900 813 1037 850 880 790 Aspirante 95 833 767 1043 963 860 813 925 1000 940 1000 Aspirante 96 876 1150 940 1000 850 800 977 970 790 850 Aspirante 97 1018 1090 900 1000 950 800 838 850 850 820 Aspirante 98 947 1060 900 957 1050 800 931 970 850 820 Aspirante 99 806 1060 940 914 1000 800 885 880 850 880 Aspirante 100 876 1000 900 957 850 800 977 910 880 910 Aspirante 101 912 1000 1100 914 1000 800 885 910 850 1030 Aspirante 102 876 970 1060 829 800 800 931 1000 910 850 Aspirante 103 982 970 980 871 950 800 838 940 940 850 Aspirante 104 912 970 980 914 800 800 885 970 790 850 Aspirante 105 947 940 860 957 800 800 838 970 820 910 Aspirante 106 912 940 940 829 800 800 792 760 730 910 Aspirante 107 1088 940 860 829 750 800 977 850 880 910 Aspirante 108 806 940 940 914 750 800 885 820 790 940 Aspirante 109 912 910 900 829 900 800 885 970 910 820 Aspirante 110 982 910 860 914 950 800 792 880 820 850 Aspirante 111 912 910 900 743 750 800 838 820 970 700 Aspirante 112 912 910 860 786 800 800 792 940 850 1000 Aspirante 113 947 880 900 1086 800 800 931 850 820 790 Aspirante 114 912 880 860 786 900 800 931 790 910 790 Aspirante 115 947 880 940 829 850 800 838 940 820 790 Aspirante 116 1018 850 900 871 850 800 1023 910 820 850 Aspirante 117 912 850 820 871 850 800 792 880 790 820 Aspirante 118 876 820 860 957 900 800 838 910 880 850 Aspirante 119 806 790 900 786 900 800 931 1030 850 820 Aspirante 120 947 760 900 871 750 800 931 850 760 790 Aspirante 121 933 967 871 925 780 775 888 940 880 850 Aspirante 122 1000 800 914 888 820 775 925 1000 820 790 Aspirante 123 1000 767 1000 888 780 775 813 850 850 820 Aspirante 124 1088 1000 980 957 800 750 1069 1000 850 790 Aspirante 125 876 970 1020 1000 950 750 931 910 880 940 Aspirante 126 876 910 860 914 900 750 885 910 730 820 Aspirante 127 841 910 900 1043 900 750 885 940 880 880 Aspirante 128 876 910 940 871 1000 750 931 1030 760 820 Aspirante 129 876 910 940 1043 1100 750 977 760 730 910 Aspirante 130 876 850 980 871 900 750 977 970 820 850 Aspirante 131 947 850 940 871 850 750 838 850 880 910 Aspirante 132 876 820 900 914 750 750 838 940 850 880 Aspirante 133 771 790 1020 914 800 750 838 880 850 850 Aspirante 134 1067 900 1043 925 860 738 925 970 760 1000 Aspirante 135 1000 867 957 850 780 738 925 970 790 760 Aspirante 136 1000 800 957 813 940 738 925 940 730 910 Aspirante 137 867 767 1000 1075 900 738 850 850 760 850 Aspirante 138 982 1060 900 829 850 700 885 1000 820 760 Aspirante 139 876 970 900 829 750 700 931 790 790 820

Page 65: Agradecimientos - Instituto Politécnico Nacional

- 60 -

Tabla para la formación de grupos

Iniciales Escuela Especialidad Física Matemáticas Desea >8 >8 Suma Grupo BCP Prepa 68 Sin 8 8 Si 1 1 2 Control MCC Prepa 110 Sin 9 8 Si 1 1 2 Control MDY Prefeco Químico-Biólogo 9 10 si 1 1 2 Control PCJ Conalep Informática 10 8 Si 1 1 2 Control AVLA Conalep física-matemáticas 8 8 Si 1 1 2 Control SVR Cetis 95 Computación 10 8 si 1 1 2 Control JLMR Cetis 95 Computación 9 8 si 1 1 2 Control CIR Cecytem Informática Administrativa 10 8 Si 1 1 2 Control BCL Cecytem Informática 9 8 si 1 1 2 Control HPS Cecytem Informática Administrativa 9 8 Si 1 1 2 Control ASG Cecytem Informática Administrativa 9 8 si 1 1 2 Control CPM Cecytem Informática Administrativa 9 8 Si 1 1 2 Control DMC Cecytem Informática Administrativa 9 9 Si 1 1 2 Control LCSF CBT Vidal Administración 9 8 Si 1 1 2 Control VHPC CBT Coacalco Informática 9 9 si 1 1 2 Control MTA Prepa 114 sin 8 8 No 1 1 2 Control MJJI Cecytem Informática Administrativa 10 8 no 1 1 2 Control MLEV CBT Vidal Informática Administrativa 8 8 No 1 1 2 Control FEOA CBT Coacalco Informática 9 8 No 1 1 2 Control JLJ Bachilleres Contabilidad 10 8 No 1 1 2 Control SGV Conalep Informática 8 7 si 1 0 1 Sin grupo AV Cetis 95 Informática Administrativa 8 7 Si 1 0 1 Sin grupo JLRP Cetis 95 Informática 7 8 si 0 1 1 Sin grupo GA Cedva sin 8 8 Si 0 1 1 Sin grupo JCT Cecytem Informática Administrativa 9 7 Si 1 0 1 Sin grupo AMK Cecytem Computación 8 7 Si 1 0 1 Sin grupo CPEI Cecytem Computación 8 7 Si 1 0 1 Sin grupo MLV Cecytem Informática Administrativa 8 7 Si 1 0 1 Sin grupo CVR CBTis 133 Construcción 8 7 Si 1 0 1 Sin grupo ACSD CBT Isac New Manto de Equipo 9 7 si 1 0 1 Sin grupo FVM Preparatoria sin 10 7 No 1 0 1 Sin grupo FJA Cobaep Informática 7 7 Si 0 0 0 Sin grupo MAR Cecytem Informática 7 7 Si 0 0 0 Sin grupo RSJ Cbt Informática 7 7 Si 0 0 0 Sin grupo IMA Prepa Ateneo sin 7 7 No 0 0 0 Sin grupo

Escuela Especialidad Física Matemáticas Desea >8 >8 Suma Grupo VMV CBT Informática Administrativa 8 8 Si 1 1 2 Sin grupo HSR CBTIS 133 Computación 8 8 Si 1 1 2 Sin grupo JYRT Cecytem Informática Administrativa 7 10 Si 0 1 1 Sin grupo AKBC Prepa 105 Sin 7 9 Si 0 1 1 Sin grupo LRM Cecytem Informática Administrativa 7 9 Si 0 1 1 Sin grupo MSA CBT Vidal Informática 7 9 Si 0 1 1 Sin grupo IGL Prepa 52 Sin 7 9 Si 0 1 1 Sin grupo AJMR Prepa 105 Sin 5 9 Si 0 1 1 Sin grupo JNOC Cecytem Informática Administrativa 7 5 Si 0 0 0 Sin grupo

Page 66: Agradecimientos - Instituto Politécnico Nacional

- 61 -

RCL CETIS 95 Físico-Matemáticas 5 5 Si 0 0 0 Sin grupo

Escuela Especialidad Física Matemáticas Desea >8 >8 Suma Grupo KGPS Cecytem Informática Administrativa 10 8 Si 1 1 2 Experimental CAVJ Cecytem Informática Administrativa 10 8 Si 1 1 2 Experimental AV Cecytem Informática Administrativa 8 8 Si 1 1 2 Experimental DISR Cecytem Informática Administrativa 8 8 Si 1 1 2 Experimental OBV Cecytem Informática 8 8 Si 1 1 2 Experimental SCH Cbt Ma. Luisa Informática 9 5 Si 1 0 1 Sin grupo JYMO CBTIS 160 Administración 7 8 Si 0 1 1 Sin grupo IRH CBT Vidal Informática 7 8 Si 0 1 1 Sin grupo YOAB Prepa 34 Sin 7 8 Si 0 1 1 Sin grupo MNB Cecytem Informática 7 8 Si 0 1 1 Sin grupo LARC CBT IN Informática 7 7 Si 0 0 0 Sin grupo MGLA CETIS 133 computación 7 7 Si 0 0 0 Sin grupo CECC CETIS 33 Administración 7 7 Si 0 0 0 Sin grupo JIMF Conalep Automotriz 7 7 Si 0 0 0 Sin grupo LEH prepa 97 Sin 7 7 Si 0 0 0 Sin grupo VVF CBTIS computación 7 7 Si 0 0 0 Sin grupo LMG Prepa 33 Sin 7 7 Si 0 0 0 Sin grupo EFM Cecytem computación 7 7 Si 0 0 0 Sin grupo LGM Cecytem computación 7 7 Si 0 0 0 Sin grupo ASP Prepa Sin 7 7 Si 0 0 0 Sin grupo JZL Cecytem Informática Administrativa 7 7 Si 0 0 0 Sin grupo MAEC CETACYS computación 7 7 Si 0 0 0 Sin grupo M Cecytem Informática Administrativa 7 7 Si 0 0 0 Sin grupo MAAM Conalep Informática 7 7 Si 0 0 0 Sin grupo AGR CBTIS 160 Administración 7 7 Si 0 0 0 Sin grupo

Page 67: Agradecimientos - Instituto Politécnico Nacional

- 62 -

ANEXO DE CUESTIONARIO

Buenos días (Tardes): Estamos trabajando en un estudio que servirá para elaborar una tesis acerca de las habilidades para programar. Quisiera pedir tu colaboración para responder algunas preguntas de este cuestionario, a lo máximo serán 10 minutos, todas las opiniones serán contabilizadas y no hay posibilidad de saber quienes las contestaron, además será de forma confidencial, solo te pido que contestes con la mayor sinceridad posible. Marca con una X la columna que mejor domines, tomando en cuenta del nivel de conocimiento que tengas sobre la pregunta seleccionada. Al final de esta tabla existen 15 tópicos, revísalos y ponle un porcentaje para que tu pienses cual (es) podría (n) ser tus área (s) de oportunidad al momento de programar. Muchas gracias por tu colaboración Pregunta Excelente Muy

Bien Bien Regular Nada

1. Conoces que es una estructura de datos

2. Conoces que es una estructura de control

3. Conoces que es una condición 4. Conoces que es un ciclo y cuantos tipos existen

5. Concones que es un tipo de datos 6. Conoces que es una variable 7. Conoces que es una constante 8. Conoces que es un algoritmo 9. Conoces que es un comentario en un programa

10. Conoces que es una función 11. Conoces que es un procedimiento 12. Conoces que es un archivo 13. Conoces que es un apuntador 14. Conoces que es un arreglo 15. Conoces que es un registro 16. Conoces que es un conjunto de datos 17. Conoces en que te servirían las preguntas de la 1 a la 16 en tu profesión

18. Conoces como aplicarías estas en la lógica de un programa

19. Conoces que es un pseudocódigo 20. Conoces que es un diagrama de flujo 21. Conoces que es diagrama Nassi –

Page 68: Agradecimientos - Instituto Politécnico Nacional

- 63 -

Schneiderman 22. Conoces otra metodología para la creación de algoritmos a parte de las 3 anteriores

23. Conoces que es un lenguaje de programación

24. Conoces que es ambiente IDE 25. Conoces que es compilador 26. Conoces que es el lenguaje VB 27. Conoces que es el lenguaje Delphi 28. Conoces que es el lenguaje C 29. Conoces que son los lenguajes Scheme y Prolog

30. Sabes Programar

A. Habilidad para desarrollar (______) % B. Tenacidad (______) % C. Poco Interés (______) % D. Lenguaje (______) % E. Tiempo (______) % F. Profesor (______) % G. Análisis (______) % H. Síntesis (______) % I. Inferencia (______) % J. Diseño (______) % K. Creatividad (______) % L. Abstracción (______) % M. Confusión (______) % N. Entender la Programación (______) % O. Organizarse (______) %

Page 69: Agradecimientos - Instituto Politécnico Nacional

- 64 -

ANEXO DE GRAFICAS

Graficas de Aprovechamiento Escolar

Page 70: Agradecimientos - Instituto Politécnico Nacional

- 65 -