8
Página 1 de 8 Proyecto con puntaje Enseñar programación desde un enfoque conceptual Contenido Síntesis del proyecto ........................................................................................................................................................ 1 Destinatarios..................................................................................................................................................................... 1 Fundamentación ............................................................................................................................................................... 2 Objetivos .......................................................................................................................................................................... 2 Contenidos ....................................................................................................................................................................... 2 Duración y carga horaria .................................................................................................................................................. 3 Propuesta didáctica........................................................................................................................................................... 3 Semana 1 ....................................................................................................................................... 3 Semana 2 ...................................................................................................................................... 4 Semana 3 ....................................................................................................................................... 4 Semana 4 ....................................................................................................................................... 4 Semana 5 ....................................................................................................................................... 4 Semana 6 ....................................................................................................................................... 5 Semana 7 ....................................................................................................................................... 5 Semana 8 ........................................................................................................................................ 5 Presentación de materiales de acuerdo con la modalidad del curso ................................................................................. 5 Bibliografía ...................................................................................................................................................................... 6 Evaluación........................................................................................................................................................................ 6 Síntesis del proyecto Esta capacitación busca presentar un enfoque nuevo a la enseñanza de la primera materia de programación, basado en nociones conceptuales fundamentales. El enfoque permite ir incorporando los conceptos de manera gradual, pero de forma tal que se construye en el estudiante una sólida base sobre la que materias posteriores pueden abundar en detalles. Se trabajará en 2 ejes: el de contenidos, donde se presentan los temas que conforman la enseñanza de la materia, y el de fundamentos, donde se presentan las razones de la selección y ordenamiento de los temas. La secuencia de temas comienza con la presentación de comandos y expresiones; continúa con la noción de procedimientos y luego incorpora la idea de parametrización, trabajando con abundantes ejemplos; sigue con estructuras de control (secuencia, repetición y alternativa), al tiempo que introduce la idea de funciones; finalmente se presentan recorridos de secuencias como esquema de programas, integrando todos los temas.

Sadosky Curso de Programacion Para DOCENTES

Embed Size (px)

Citation preview

  • Pgina 1 de 8

    Proyecto con puntaje

    Ensear programacin desde un enfoque conceptual

    Contenido

    Sntesis del proyecto ........................................................................................................................................................ 1

    Destinatarios..................................................................................................................................................................... 1

    Fundamentacin ............................................................................................................................................................... 2

    Objetivos .......................................................................................................................................................................... 2

    Contenidos ....................................................................................................................................................................... 2

    Duracin y carga horaria .................................................................................................................................................. 3

    Propuesta didctica........................................................................................................................................................... 3

    Semana 1 ....................................................................................................................................... 3

    Semana 2 ...................................................................................................................................... 4

    Semana 3 ....................................................................................................................................... 4

    Semana 4 ....................................................................................................................................... 4

    Semana 5 ....................................................................................................................................... 4

    Semana 6 ....................................................................................................................................... 5

    Semana 7 ....................................................................................................................................... 5

    Semana 8 ........................................................................................................................................ 5

    Presentacin de materiales de acuerdo con la modalidad del curso ................................................................................. 5

    Bibliografa ...................................................................................................................................................................... 6

    Evaluacin ........................................................................................................................................................................ 6

    Sntesis del proyecto

    Esta capacitacin busca presentar un enfoque nuevo a la enseanza de la primera

    materia de programacin, basado en nociones conceptuales fundamentales. El enfoque

    permite ir incorporando los conceptos de manera gradual, pero de forma tal que se

    construye en el estudiante una slida base sobre la que materias posteriores pueden

    abundar en detalles. Se trabajar en 2 ejes: el de contenidos, donde se presentan los

    temas que conforman la enseanza de la materia, y el de fundamentos, donde se

    presentan las razones de la seleccin y ordenamiento de los temas.

    La secuencia de temas comienza con la presentacin de comandos y expresiones;

    contina con la nocin de procedimientos y luego incorpora la idea de parametrizacin,

    trabajando con abundantes ejemplos; sigue con estructuras de control (secuencia,

    repeticin y alternativa), al tiempo que introduce la idea de funciones; finalmente se

    presentan recorridos de secuencias como esquema de programas, integrando todos los

    temas.

  • Pgina 2 de 8

    Destinatarios

    Docentes de la materia "Laboratorio de Programacin I" de las Escuelas Secundarias Tcnicas

    con orientacin Programacin o Informtica Personal y Profesional que deseen incorporar un

    enfoque conceptual en el dictado de su materia.

    Fundamentacin

    La enseanza de la programacin ha tenido multiples enfoques, pero en general se basa en la

    eleccin de un lenguaje especfico de moda (por ejemplo, Logo, Pascal, Java) y la enseanza de

    los conceptos asociados a ese lenguaje particular; o bien la eleccin de alguna herramienta

    informtica especfica (en la forma de algn programa con capacidades grficas, por ejemplo,

    EToys\ o Alice), y ensear a partir de las capacidades de dichas herramientas. Esta propuesta es

    de carcter radical con respecto a las anteriores, en cuanto a que se basa fuertemente en

    conceptos fundamentales (que fueron cuidadosamente seleccionados y testeados) y minimiza el

    impacto de las herramientas, presentando un lenguaje de programacin diseado sobre estos

    conceptos con el propsito especfico de concentrar la enseanza en los mismos,

    mantenindose as simple en su concepcin y transmisin.

    Esto permite formar tcnicos con habilidades suficientes para adaptarse a los tiempos modernos,

    tan cambiantes en cuanto a herramientas especficas, tecnologas y desarrollos. La contribucin

    ms importante de este enfoque es que no depende de herramientas ad-hoc, que pueden ir

    mutando con el tiempo, sino en ideas sencillas, poderosas y perdurables.

    El enfoque de este curso se viene probando con xito en el nivel inicial de la carrera de

    Tecnicatura en Programacin de la Universidad Nacional de Quilmes.

    Objetivos

    Los objetivos principales son que los capacitandos puedan:

    incorporar los conceptos fundamentales de la programacin

    comprender porqu los conceptos aprendidos son fundamentales

    comprender que la enseanza de los conceptos es independiente de los lenguajes y las

    herramientas

    proponer ejercitacin para la enseanza de los conceptos en el aula.

    Si bien los conceptos fundamentales de la programacin son independientes de los lenguajes y

    herramientas utilizadas, es conveniente explicar los mismos en algn lenguaje especfico. La

  • Pgina 3 de 8

    propuesta de este proyecto es utilizar Gobstones como lenguaje de enseanza. Por este motivo,

    son objetivos secundarios que el capacitando:

    domine el lenguaje Gobstones con fluidez.

    entienda cmo se implementan los conceptos fundamentales de programacin en

    Gobstones y sus por qu.

    Contenidos

    1. Elementos de Gobstones (tablero, cabezal, bolitas, colores). Comandos (Poner, Mover,

    Sacar). Operaciones (puedeMover, hayBolitas, etc.). Estado inicial de un tablero.

    2. Procedimientos y funciones. Punto de entrada de un programa. Invocacin, parmetros y

    argumentos.

    3. Parcialidad y precondiciones. Errores: operaciones invlidas, errores lgicos, no

    terminacin.

    4. Valores, expresiones y tipos. Evolucin del valor denotado por una expresin (estado del

    programa).

    5. Estructuras de control: alternativa condicional (if-then-else), repeticin indexada

    (repeatWith), repeticin condicional (while).

    6. Variables e ndices. Operacin de asignacin. Alcance de los identificadores (parmetros,

    variables, ndices).

    7. Esquemas de recorridos lineales de estructuras. Clases de recorridos: completo, parcial,

    con acumuladores, etc.

    8. Justificacin de las caractersticas de Gobstones en funcin de la enseanza de los

    conceptos fundamentales.

    Duracin y carga horaria

    El curso de capacitacin durar 8 semanas. En cada semana se dictar una clase terica y

    habr dos talleres prcticos, siendo cada encuentro de 4 horas reloj cada uno (6 horas ctedra).

    Propuesta didctica

    En las clases tericas se introducen los conceptos fundamentales de programacin que los

    capacitandos deben adquirir, a la vez que se discuten la implementacin de estos conceptos en

    el lenguaje Gobstones, y las motivaciones pedaggicas que sustentan dicha implementacin.

  • Pgina 4 de 8

    Los talleres prcticos sirven como refuerzo de las clases tericas y tienen dos objetivos

    principales. El primero es que los capacitandos ejerciten los conceptos de programacin en el

    lenguaje Gobstones, de forma tal que puedan programar con fluidez. El segundo es discutir la

    forma de transmitir estos conceptos fundamentales a los alumnos en el aula, haciendo hincapi

    en el concepto a transmitir y no en la herramienta utilizada (que en nuestro caso es Gobstones).

    A continuacin se exponen los temas a tratar en cada semana:

    Semana 1

    1. Presentacin del curso. Instalacin de PyGobstones (el sistema que implementa el

    lenguaje Gobstones). Objetivos del curso. Conceptos que el alumno de la escuela

    secundaria debera aprender.

    2. Elementos de Gobstones: tablero, cabezal, bolitas, colores, etc. Comandos Poner, Mover,

    Sacar. Procedimiento Main. Documentacin y uso de comentarios.

    3. Discusin de conceptos. Programacin imperativa. Comandos Gobstones vs

    instrucciones imperativas. Memoria Fsica vs. Tablero. Ventajas de la documentacin.

    4. Debate. Por qu usar programacin imperativa?, Por qu utilizar un tablero?

    Semana 2

    1. Contenidos: Parcialidad y precondiciones. BOOM y errores lgicos. Procedimientos.

    Parmetros y argumentos. Alcance de los parmetros. Divisin en subtareas: reutilizacin

    de cdigo, abstraccin. Estrategias de programacin top-down vs. bottom-up.

    2. Discusin de conceptos. Precondiciones vs manejo de errores (cundo, dnde y porqu

    utilizar uno o el otro). Estado inicial de un programa.

    3. Debate. Por qu los tableros iniciales son aleatorios? Cmo fomentar la abstraccin en

    los alumnos? Cmo lograr que un alumno divida su problema en subproblemas?.

    Semana 3

    1. Contenidos: Alternativa condicional (if-then-else). Valores de verdad (bool) y numricos.

    Operaciones de consulta del tablero (puedeMover, hayBolitas, nroBolitas). Valores de

    colores y direcciones. Operaciones provistas por el lenguaje. Introduccin a expresiones.

    Repeticion indexada. Indices y Rangos.

    2. Discusin de conceptos. Precondiciones y alternativa condicional (cundo, dnde y

    porqu usar uno o el otro). Comandos vs. operaciones (i.e., ejecucin vs. evaluacin de

    estado). Repeticin finita pero no acotada. Robustez de un programa ante cambios (uso

    de repeat vs. copiar/pegar).

  • Pgina 5 de 8

    3. Debate. Por qu separar los conceptos de comando y operacin? Por qu es

    necesaria la repeticin finita? Cmo se puede fomentar la calidad expresiva de un

    programa?

    Semana 4

    1. Contenidos: Valores, expresiones y tipos. Formalizacin rigurosa de la alternativa

    condicional y la repeticin indexada utilizando expresiones y tipos. Funciones.

    2. Discusin de conceptos. Computo de valores. Comandos y operaciones como

    procedimientos y funciones provistos por el lenguaje. Uso de funciones para brindar

    expresividad y abstraccin. Simulacin de constantes. Diferencias entre estado vs

    denotacin.

    3. Debate. Por qu las funciones son "puras" (i.e. no modifican el estado del tablero)?.

    Por qu es importante dividir los cmputos denotacionales de los operacionales? Por

    qu es necesario formalizar las expresiones y qu utilidad tienen los tipos?

    Semana 5

    1. Contenidos: Repeticin condicional (while). Propsito de ciclo (i.e., invariante de un ciclo).

    Recorridos bsicos del tablero. Esquema general de recorrido. Recorridos parciales del

    tablero.

    2. Discusin de conceptos. Terminacin y guarda. Parcialidad por no terminacin.

    Recorridos de estructuras. Casos de borde. Uso de marcas para guardar estados. Pureza

    de las funciones para ocultar las marcas.

    3. Debate. Por qu es necesaria la repeticin condicional y no alcanza con la indexada?

    Cules son las ventajas de las precondiciones en los recorridos? Por qu no anidar

    repeticiones? Cul es el objetivo del propsito de ciclo?

    Semana 6

    1. Contenidos. Variables. Alcance de los distintos identificadores (parmetros, ndices y

    variables). Inicializacin. Propsito de una variable. Recorridos con variables:

    acumuladores, contadores, etc.

    2. Discusin de conceptos. Parmetros vs. variables vs. ndices, diferencias semnticas.

    Prohibicin de variables globales. Inicializacin autmatica. Tablero como nico espacio

    de memoria fsica.

    3. Debate. Por qu las variables se consideran como expresiones denotacionales y no

    cmo espacios de memoria? Por qu las variables se inicializan en BOOM y no en

    basura o en un valor conocido? Por qu las variables globales estn prohibidas?

  • Pgina 6 de 8

    Semana 7

    1. Contenidos. Repaso de conceptos fundamentales y cmo se relacionan: divisin en

    subtareas, propsitos, precondiciones, documentacin, robustez. Expresiones booleanas

    vs alternativas condicionales.

    2. Ejercicios tipo de recorridos. Funciones vs. variables.

    3. Discusin de todos los conceptos aprendidos

    Semana 8

    Clase de integracin resolviendo un ejercicio completo en el que se programa una mini-

    aplicacin. Diseo de trabajos prcticos en Gobstones.

    Presentacin de materiales de acuerdo con la modalidad del curso

    El esquema de clase prctica estar centrado en los contenidos dados en la clase terica

    anterior. Se da un breve repaso de los conceptos, enumerando algunos ejemplos y aumentando

    gradualmente su grado de abstraccin. Dependiendo de la evolucin de los capacitandos en el

    tema especfico (por ser la primera o segunda clase prctica luego de la teora) se proceder a

    realizar diferentes actividades durante la clase:

    1. Ejercicios sobre la computadora. Para ayudarlos a entender la herramienta, los conceptos

    asociados.

    2. Resolucin participativa de ejercicios, en pizarrn.

    3. Discusin de errores comunes en los que los capacitandos deberan poner atencin.

    4. Experiencia de los capacitandos con los mismos conceptos en sus aulas.

    5. Solicitar que los capacitandos piensen ejercicios similares a los de la gua actual que ellos

    consideren que aplican. Discutir su utilidad y/o dificultades que pudieran surgir, con

    objetivos de ejercitacin y evaluacin.

    6. Entregas escritas, individuales y/o grupales, de ejercicios cortos similares a los vistos en

    clase. Con objetivos de ejercitacin, evaluacin y autoevaluacin.

    7. Presentacin de solucin al curso. Que los capacitandos (por turnos) presenten a toda la

    clase, su solucin propuesta para un ejercicio.

    8. Resolucin de ejercicios terico-prcticos con PyGobstones, con objetivos de ejercitacin

    y autoevaluacin.

    9. Mostrar en pantalla con uso de caon, la resolucin de un ejercicio con mayor grado de

    abstraccin. Con objetivos de mostrar el uso de los conceptos aprendidos y como se

  • Pgina 7 de 8

    utilizan en la herramienta propuesta. Que los capacitandos perciban el estmulo de

    motivacin que genera ver resultados de la resolucin de ejercicios ms complejos.

    Bibliografa

    "El nombre verdadero de la programacin. Una concepcin de la enseanza de la

    programacin para la Sociedad de la Informacin", Martnez Lpez, Pablo E., Bonelli,

    Eduardo A., Sawady O'Connor, Federico A. 10mo Simposio sobre la Sociedad de la

    Informacin, dentro de las 41ras Jornadas Argentinas de Informtica (JAIIO). Gabriel

    Baum y Nora Sabelli, editores; Facultad de Informtica, UNLP. Setiembre 2012.

    "Introduccin a la programacin en Gobstones", Martnez Lpez, Pablo E.; Bonelli,

    Eduardo A. Apuntes de clase de la materia "Introduccin a la Programacin", Tecnicatura

    en Informtica, UNQ. Mayo 2010.

    "Introduccin a la programacin, para la carrera de Licenciatura en Artes y Tecnologas",

    Martnez Lpez, Pablo E., Sawady O'Connor, Federico A. Universidad Virtual de Quilmes,

    2012. ISBN en trmite.

    Evaluacin

    En cada encuentro prctico, los docentes evaluarn el desarrollo de cada capacitando, tanto en

    los contenidos como en las habilidades desarrolladas en la programacin con Gobstones. Estas

    evaluaciones servirn tanto para establecer una calificacin de concepto de los capacitandos

    como de retroalimentacin para que los docentes realicen modificaciones y ajustes en la

    planificacin de las tareas. Para obtener la aprobacin del curso, los capacitandos debern

    obtener una calificacin de aprobado que asegure el setenta por ciento de los contenidos

    mnimos en todas las instancias de evaluacin:

    1. Calificacin de concepto.

    2. Elaboracin individual de una gua de ejercicios de Gobstones (y resolucin de la misma)

    para utilizarse con estudiantes de nivel secundario.

    3. Elaboracin individual del enunciado de un examen que podra ser utilizado en el curso

    de Laboratorio de programacin 1. Resolucin de este examen.

    4. Una evaluacin prctica de aptitud sobre instalacin y uso de PyGobstones, realizada en

    una computadora por capacitando.

    5. Una evaluacin personal integradora de los contenidos tericos y prcticos.

  • Pgina 8 de 8

    Si el capacitando no obtuviese la aprobacin en alguna de las mencionadas instancias, tendr

    posibilidad de recuperacin donde aplique la devolucin de los docentes.