Este documento discute el uso de ambientes virtuales y lenguajes de programación específicos de dominio para la enseñanza de la programación. Propone comenzar con Scratch para enseñar conceptos básicos de una manera interactiva y visual antes de pasar a un lenguaje de programación de propósito general. También recomienda utilizar objetos para explicar conceptos clave de programación orientada a objetos como mensajes y métodos.
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la programación
1. Ambiente virtual y LenguajeAmbiente virtual y Lenguaje
de Domino Específico parade Domino Específico para
la enseñanza de lala enseñanza de la
programaciónprogramación
Autor: Lic. JosAutor: Lic. José Albert Cruzé Albert Cruz
AlmaguerAlmaguerGrupo de Investigación de Programación Avanzada (GIPA)Grupo de Investigación de Programación Avanzada (GIPA)
Universidad de las Ciencias InformáticasUniversidad de las Ciencias Informáticas, Cuba, Cuba
Noviembre de 2009Noviembre de 2009
2. GIPA, Universidad de las Ciencias Informáticas
ContenidosContenidos
Implementación
Entornos virtuales
Los LPs en la enseñanza de la programación
Conclusiones
3. GIPA, Universidad de las Ciencias Informáticas
Los LPs en la enseñanza deLos LPs en la enseñanza de
la programaciónla programación
• Instruir a la computadora: el LP es unInstruir a la computadora: el LP es un
lenguaje de máquina de muy alto nivellenguaje de máquina de muy alto nivel
(se analizan cuestiones como la gestión(se analizan cuestiones como la gestión
de la memoria, el flujo de la ejecución, lasde la memoria, el flujo de la ejecución, las
características imperativas)características imperativas)
4. GIPA, Universidad de las Ciencias Informáticas
Los LPs en la enseñanza deLos LPs en la enseñanza de
la programaciónla programación
• Manejar la descripción de los programas:Manejar la descripción de los programas:
usado para entender el programa y sususado para entender el programa y sus
partes (visibilidad, encapsulación,partes (visibilidad, encapsulación,
modularidad)modularidad)
5. GIPA, Universidad de las Ciencias Informáticas
Los LPs en la enseñanza deLos LPs en la enseñanza de
la programaciónla programación
• Modelado conceptual: usado paraModelado conceptual: usado para
entender el conocimiento asociado y laentender el conocimiento asociado y la
estructura.estructura.
6. GIPA, Universidad de las Ciencias Informáticas
Instruir a la computadoraInstruir a la computadora
Necesario para entender de qué trata laNecesario para entender de qué trata la
programaciónprogramación
Útil para estudiantes con pobre formaciónÚtil para estudiantes con pobre formación
matemática (habilidades de abstracción)matemática (habilidades de abstracción)
7. GIPA, Universidad de las Ciencias Informáticas
Particularidades de la programaciónParticularidades de la programación
• Previsión: anticiparPrevisión: anticipar
permanentemente laspermanentemente las
consecuencias de las instruccionesconsecuencias de las instrucciones
dadasdadas
• Poner en concordancia conceptos,Poner en concordancia conceptos,
requisitos, consideracionesrequisitos, consideraciones
inicialesiniciales
8. GIPA, Universidad de las Ciencias Informáticas
Mundos virtualesMundos virtuales
• MultimediosMultimedios
• Permiten actuar como objetosPermiten actuar como objetos
animados o no dentro de laanimados o no dentro de la
virtualidadvirtualidad
• Ejemplos:Ejemplos:
• TrafficTraffic
• ScratchScratch
9. GIPA, Universidad de las Ciencias Informáticas
ScratchScratch
• Acercamiento a laAcercamiento a la
programación para personasprogramación para personas
que nunca pensaron serque nunca pensaron ser
programadoresprogramadores
• Objetivo: desarrollar una nuevaObjetivo: desarrollar una nueva
generación de pensadoresgeneración de pensadores
creativos y sistemáticos, que secreativos y sistemáticos, que se
sientan cómodos expresandosientan cómodos expresando
sus ideas mediante lasus ideas mediante la
programaciónprogramación
11. GIPA, Universidad de las Ciencias Informáticas
ScratchScratch
• Desarrollado en SqueakDesarrollado en Squeak
• Digital fluency: chatear,Digital fluency: chatear,
interactuar…interactuar…
diseñar, crear e inventar nuevosdiseñar, crear e inventar nuevos
medios.medios.
12. GIPA, Universidad de las Ciencias Informáticas
ScratchScratch
• Cursos propedéuticos: Harvard,Cursos propedéuticos: Harvard,
UCIUCI
• Necesidad de utilizar otroNecesidad de utilizar otro
lenguaje: no está diseñado paralenguaje: no está diseñado para
especialistas en informáticaespecialistas en informática
• Lenguaje de Dominio EspecíficoLenguaje de Dominio Específico
• Etiquetas técnicamenteEtiquetas técnicamente
imprecisasimprecisas
• Redefinición: el Source Code esRedefinición: el Source Code es
13. GIPA, Universidad de las Ciencias Informáticas
ScratchScratch
Bloque en Scratch Significado
Para representar la
asignación ( En Pascal:
numero := 4; )
Para representar una
variación del valor actual
( En Pascal: numero :=
numero + 2; )
15. GIPA, Universidad de las Ciencias Informáticas
POO: El lenguajePOO: El lenguaje
• Éxito/Fracaso: DidácticaÉxito/Fracaso: Didáctica
• Uso de medios: Traffic, AliceUso de medios: Traffic, Alice
• Conceptos asociados a GUIsConceptos asociados a GUIs
19. GIPA, Universidad de las Ciencias Informáticas
ImplementaciónImplementación
• ScratchScratch
• ScalaScala
• ErlangErlang
20. GIPA, Universidad de las Ciencias Informáticas
Diseño de un curso deDiseño de un curso de
programaciónprogramación
Marco de trabajo:Marco de trabajo:
Enseñar conceptos iniciales enEnseñar conceptos iniciales en
ScratchScratch
Luego pasar al LDELuego pasar al LDE
21. GIPA, Universidad de las Ciencias Informáticas
ConclusionesConclusiones
• Utilice siempre interfaz deUtilice siempre interfaz de
ventanas y objetos interactivosventanas y objetos interactivos
• Inicie a los estudiantes en laInicie a los estudiantes en la
codificación de instruccionescodificación de instrucciones
mediante el ensamblado demediante el ensamblado de
bloques con mensajes clarosbloques con mensajes claros
asociadosasociados
22. GIPA, Universidad de las Ciencias Informáticas
ConclusionesConclusiones
• Codifique en modo texto utilizandoCodifique en modo texto utilizando
un lenguaje cuyas palabrasun lenguaje cuyas palabras
pertenezcan al Españolpertenezcan al Español
• Utilice objetos como medio deUtilice objetos como medio de
asimilación de algunos de losasimilación de algunos de los
principales conceptos de OO:principales conceptos de OO:
mensajes/métodos y objetosmensajes/métodos y objetos
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.
Esta presentación constituye el material teórico, y está acompañada de una aplicación de ejemplo descargable por separado y que ilustra de manera práctica los conceptos más relevantes. Es altamente recomendable que descargue, instale, revise y ejecute la aplicación de ejemplo para poder obtener un conocimiento más completo de los temas que se explicarán a lo largo de este curso.