Está en la página 1de 69

Gobstones

Nuevos caminos en la ensenanza de


programacion
Pablo E. Fidel Martnez L
opez

Universidad Nacional de Quilmes


octubre 2013

Fidel (UNQ)

Gobstones

octubre 2013

1 / 41

Podemos ver a un programa como lo que convierte una


computadora de propositos generales en un manipulador de
smbolos de propositos especficos, y lo hace sin necesidad de
cambiar ni un solo cable. (. . . ) Prefiero describirla justo de la
manera opuesta: un programa es un manipulador
abstracto de smbolos, que puede transformarse en uno
concreto suministr
andole una computadora. Despues de
todo, no es mas el prop
osito de los programas dar
instrucciones a nuestras maquinas; en estos das, es el
prop
osito de las m
aquinas ejecutar nuestros programas.
Edsger W. Dijkstra
Sobre la crueldad de ense
nar realmente ciencias
computacionales, 1988

Fidel (UNQ)

Gobstones

octubre 2013

2 / 41

. . . nunca se refieran a partes de programas o piezas de


equipo con terminologa antropom
orfica, ni permitan que sus
estudiantes lo hagan. Esta mejora ling
ustica es mucho mas
difcil de implementar de lo que podran pensar. . .
Edsger W. Dijkstra
Sobre la crueldad de ense
nar realmente ciencias
computacionales, 1988

Fidel (UNQ)

Gobstones

octubre 2013

3 / 41

Overview

Estado de situacion al ense


nar un primer curso de programacion

Nuestra solucion
Nuestra concepcion de la programaci
on
Secuencia didactica innovadora
Seleccion de herramientas

Gobstones

Aplicaci
on del enfoque

Conclusiones

Fidel (UNQ)

Gobstones

octubre 2013

4 / 41

Estado de situacion al ensenar un


primer curso de programacion

Fidel (UNQ)

Gobstones

octubre 2013

5 / 41

Estado de situaci
on al ense
nar un primer curso de programaci
on

Estudiante ideal vs. estudiante real

Estudiante ideal
Buena base matematica
Entiende consignas y metaforas
Distingue lo fundamental de lo accesorio
Aut
onomo y proactivo
Capacidad de autoevaluaci
on

Estudiante real
Base matematica pobre
Poca capacidad de abstracci
on
Poca autonoma
Se pierde en las cuestiones accesorias

Fidel (UNQ)

Gobstones

octubre 2013

6 / 41

Estado de situaci
on al ense
nar un primer curso de programaci
on

Como lo enfrentamos los docentes?

El docente tradicional
Culpa al estudiante por sus faltas
(de interes, de capacidad, etc.)
Insiste con metodos que funcionan a medias
Se refugia en frases exculpatorias
(algunos aprenden, no puedo hacer otra cosa,
yo aprend as, etc.)

Nosotros
Buscamos entender que esta mal
Conversamos con los estudiantes
Intentamos ponernos en su lugar

Fidel (UNQ)

Gobstones

octubre 2013

7 / 41

Estado de situaci
on al ense
nar un primer curso de programaci
on

Que encontramos en relacion con la programacion?

Los enfoques tradicionales de ense


nar un primer curso de
programacion
Demasiada informaci
on junta
Requerimientos altos en nivel de abstracci
on
Dependencia de conocimientos ausentes
Poca explicitaci
on de conceptos fundamentales
Muchos elementos accesorios irrelevantes o complejos

Se impona para nosotros redise


nar la secuencia de
aprendizaje de programaci
on!

Fidel (UNQ)

Gobstones

octubre 2013

8 / 41

Nuestra solucion

Fidel (UNQ)

Gobstones

octubre 2013

9 / 41

Nuestra soluci
on

Que ensenar en un primer curso y por que?

Preguntas que nos hicimos


Que transmitir?
Que enfoque utilizar?
Que elementos incluir?
C
omo fundamentar estas decisiones?

Todo esto teniendo en cuenta a los estudiantes reales

Fidel (UNQ)

Gobstones

octubre 2013

10 / 41

Nuestra soluci
on

Que ensenar en un primer curso y por que?

Que transmitir?
Formaci
on de pensamiento abstracto
Ideas conceptuales fundamentales
Manejo de abstracciones basicas en materias posteriores

Que enfoque utilizar?


Minimalista (solo ideas fundamentales)
De lo concreto a lo abstracto
Mas detalles en un ratito. . .

Fidel (UNQ)

Gobstones

octubre 2013

11 / 41

Nuestra soluci
on

Que ensenar en un primer curso y por que?

Que elementos incluir?


Seleccionamos cuidadosamente los conceptos
Dise
namos un lenguaje conciso (Gobstones) basado en esa seleccion
Pero no olvidamos que el lenguaje es el medio y NO el objetivo

Como fundamentar estas decisiones?


Este es el punto mas controversial
Tratamos de ofrecer ideas que trasciendan paradigmas y lenguajes
particulares (conceptos transversales, generalizables)
Buscamos simplicidad sin sobresimplificaci
on

Fidel (UNQ)

Gobstones

octubre 2013

12 / 41

Nuestra soluci
on

Nuestra concepci
on de la programaci
on

Concepcion deseada de la programacion

Paradojas de la programaci
on
La importancia del lenguaje
La naturaleza de los programas

Conceptos fundamentales de programaci


on
Elementos del lenguaje
Manejo del lenguaje
Herramientas abstractas

Fidel (UNQ)

Gobstones

octubre 2013

13 / 41

Nuestra soluci
on

Nuestra concepci
on de la programaci
on

Concepcion deseada de la programacion

La paradoja del lenguaje


El lenguaje de programaci
on que utilizamos
no es importante,
pero es extremadamente importante.
Justificacion
Es prioritario manejar y transmitir ideas
el lenguaje es una herramienta!
Manipular las ideas es imprescindible

el lenguaje es LA UNICA
herramienta!

Fidel (UNQ)

Gobstones

octubre 2013

14 / 41

Nuestra soluci
on

Nuestra concepci
on de la programaci
on

Concepcion deseada de la programacion

Es necesario que, en esta etapa del aprendizaje,


el lenguaje no se convierta en el verdadero objeto de estudio
(minimizar elementos especficos del lenguaje)
las ideas sean comunes a todos los paradigmas y todos los lenguajes
nos concentremos en la esencia de las ideas
valoremos el pensamiento abstracto por sobre el pensamiento concreto

Fidel (UNQ)

Gobstones

octubre 2013

15 / 41

Nuestra soluci
on

Nuestra concepci
on de la programaci
on

Concepcion deseada de la programacion

La paradoja de la naturaleza de los programas


Debemos entender a los programas
olvidando que son entidades operacionales,
pero sin olvidar que son entidades operacionales.
Justificacion
El modelo de ejecuci
on siempre es operacional
aspecto operacional, de bajo nivel, concreto
Los programas describen transformaciones de informacion,
interacci
on con otros componentes y elementos abstractos
aspecto denotacional, de alto nivel, abstracto
Debemos tener en cuenta ambos, concentrandonos en el
abstracto!

Fidel (UNQ)

Gobstones

octubre 2013

16 / 41

Nuestra soluci
on

Nuestra concepci
on de la programaci
on

Concepcion deseada de la programacion


Es necesario contar con una definici
on de programa que
abarque estos dos aspectos de manera equitativa
trascienda los paradigmas y lenguajes particulares
permita a un programador elegir en cada momento cual de
estos aspectos privilegiar

Definicion propuesta
Los programas son descripciones ejecutables de soluciones a problemas computacionales.
As podemos
ignorar a conveniencia el aspecto operacional,
sin dejarlo nunca de lado!
revalorizar el aspecto de descripci
on de nuestros programas
(en cuanto a texto, y en cuanto a que se describe)
Fidel (UNQ)

Gobstones

octubre 2013

17 / 41

Nuestra soluci
on

Secuencia did
actica innovadora

Seleccion de contenidos

La eleccion de que contenidos incluir en un primer curso


es de capital importancia
debe atender a la resoluci
on de las paradojas enunciadas
debe acotarse al mnimo imprescindible

Fidel (UNQ)

Gobstones

octubre 2013

18 / 41

Nuestra soluci
on

Secuencia did
actica innovadora

Seleccion de contenidos
Identificamos 3 categoras de contenidos
(A) Elementos del lenguaje
1
2
3

expandir

Categoras de elementos
Formas de combinaci
on de elementos
Herramientas para expresar abstracci
on

(B) Manejo del lenguaje


1
2

expandir

Manejo de sintaxis dura


Buenas pr
acticas

(C) Herramientas abstractas


1
2
3
4

expandir

Divisi
on en subproblemas
Parametrizaci
on
Parcialidad y precondiciones
Esquemas de programas sencillos

Fidel (UNQ)

Gobstones

octubre 2013

19 / 41

Nuestra soluci
on

Secuencia did
actica innovadora

Seleccion de contenidos

Contenidos adicionales

expandir

Modelado de informaci
on?
Entrada/Salida?
Programaci
on funcional?
Programaci
on orientada a objetos?
Formalizaci
on de las ideas?
Estructuras de control mas complejas/otras
herramientas?
Arreglos?
Otras estructuras de datos?

Fidel (UNQ)

Gobstones

octubre 2013

20 / 41

Nuestra soluci
on

Secuencia did
actica innovadora

Problematicas posibles

Errores posibles en la presentaci


on

expandir

Exigir abstracci
on demasiado pronto
Dilatar el uso de elementos concretos
Abusar de metaforas y analogas
Abusar de recursos graficos
Concentrarse demasiado en aspectos operacionales
Incluir cuestiones de dise
no
Presentar ejemplos que requieran soluciones ad-hoc

Fidel (UNQ)

Gobstones

octubre 2013

21 / 41

Nuestra soluci
on

Selecci
on de herramientas

Seleccion del lenguaje de programacion

El lenguaje de programaci
on es menos importante que las ideas
Cualquier lenguaje podra servir. . .
Sin embargo, no debera contener caractersticas o detalles irrelevantes
Por eso dise
namos nuestro propio lenguaje: Gobstones

Fidel (UNQ)

Gobstones

octubre 2013

22 / 41

Fidel (UNQ)

Gobstones

octubre 2013

23 / 41

Gobstones

El lenguaje Gobstones
No posee elementos indeseados
(entrada/salida, estructuras de datos, etc.)
Posee clara separacion entre elementos con efectos y elementos puros
Utiliza elementos concretos (tablero, bolitas) como universo de
discurso
No descansa sobre sus aspectos imperativos
No tiene las limitaciones de otros lenguajes especficos (e.g. Logo)
No esta ligado a su universo de discurso
No orienta el pensamiento operacional
La transici
on a otros lenguajes mainstream es poco costosa
(i.e. C, Java)

Es libre

Fidel (UNQ)

Gobstones

octubre 2013

24 / 41

Gobstones

Conociendo Gobstones
Universo de discurso: Tablero y bolitas
elementos concretos
reemplazan a la memoria
permiten representaciones inicialmente visibles
no restringen las posibilidades computacionales

Fidel (UNQ)

Gobstones

octubre 2013

25 / 41

Gobstones

Conociendo Gobstones
Universo de discurso: Tablero y bolitas

Fidel (UNQ)

Gobstones

octubre 2013

26 / 41

Gobstones

Conociendo Gobstones
Universo de discurso: Cabezal
provee un abanico de acciones
es comandado por los programas

Fidel (UNQ)

Gobstones

octubre 2013

27 / 41

Gobstones

Conociendo Gobstones
Universo de discurso: Cabezal

Fidel (UNQ)

Gobstones

octubre 2013

28 / 41

Gobstones

Conociendo Gobstones

Elementos de programas Gobstones: mundo de las acciones


Programas (program)
Comandos
Comandos primitivos (Poner, Mover, etc.)
Estructuras de control b
asicas
(secuencia, repeat, if-then-else, while, etc.)
Comandos definidos por el usuario

Procedimientos
Abstracci
on de combinaciones de comandos!

Fidel (UNQ)

Gobstones

octubre 2013

29 / 41

Gobstones

Conociendo Gobstones

Elementos de programas Gobstones: mundo de los valores


Expresiones
Expresiones literales (n
umeros, colores, direcciones, etc.)
Operaciones sobre expresiones (suma, comparaciones, etc.)
Funciones primitivas (hayBolitas, puedeMover, etc.)
Fuciones definidas por el usuario
Uso de nombres (par
ametros, ndices y variables)

Funciones
Abstracci
on de combinaciones de expresiones!

Fidel (UNQ)

Gobstones

octubre 2013

30 / 41

Gobstones

Conociendo Gobstones

Caractersticas importantes
Pureza
Los comandos solamente producen efectos
Las expresiones solamente describen valores
(las funciones NO PUEDEN alterar el tablero real)

Localidad en la comunicaci
on
Solamente par
ametros por valor y con alcance local a los
procedimientos
Los par
ametros no son variables!
Las variables tambien son locales a los procedimientos
(y su uso desalentado cuando no es imprescindible)

Fidel (UNQ)

Gobstones

octubre 2013

31 / 41

Gobstones

Herramientas
Existen varias herramientas que implementan Gobstones
los prototipos originales en Haskell
interfaz mnima (en ASCII)
ninguna capacidad de editar tableros
baja performance

el PyGobstones versi
on 0
interfaz de usuario b
asica
edici
on de tableros
mejoras notables de performance

el PyGobstones versi
on 1 (HOY hace su DEBUT)
interfaz de usuario mejorada
edici
on de tableros mejorada
incorporaci
on de caractersticas adicionales
(interactividad, vestimentas, etc.)

TODAS licenciadas bajo GPL


Fidel (UNQ)

Gobstones

octubre 2013

32 / 41

Gobstones

Herramientas

Conozcamos PyGobstones v1.0


Herramienta desarrollada en Python
Permite editar y ejecutar programas Gobstones
Maneja cuestiones de interfaz de usuario respecto a la ejecucion
Veremos la herramienta en acci
on. . .

Fidel (UNQ)

Gobstones

octubre 2013

33 / 41

Aplicacion del enfoque

Fidel (UNQ)

Gobstones

octubre 2013

34 / 41

Aplicaci
on del enfoque

Experiencias ya realizadas

Se realizaron diversas experiencias con este enfoque


La materia Introducci
on a la Programaci
on de la
Tecnicatura en Programaci
on Informatica de la UNQ
ingresantes al sistema universitario (desde 2008)

Curso virtual de la carrera de Artes y Tecnologa de la UNQ


universitarios formados en arte (en 2013)

Curso en la escuela Florentino Ameghino de Berazategui


4to a
no de secundaria (desde 2012)

n con la DGE de la provincia de Bs.As.


Proyecto Plato
4to a
no de 16 escuelas secundarias tecnicas (en 2013)

En todos los casos los resultados han sido excelentes

Fidel (UNQ)

Gobstones

octubre 2013

35 / 41

Aplicaci
on del enfoque

Material bibliografico sobre Gobstones

Escribimos un artculo sobre las ideas tras esta secuencia didactica


El nombre verdadero de la programaci
on
Se public
o en el SSI de las 41 JAIIO

Ver cita

Estamos terminando de escribir un libro


Las bases conceptuales de la Programaci
on.
Una nueva forma de aprender a programar
Licenciado con Creative Commons
Veamos un adelanto del libro. . .

Fidel (UNQ)

Gobstones

Ver cita

octubre 2013

36 / 41

Conclusiones

Fidel (UNQ)

Gobstones

octubre 2013

37 / 41

Conclusiones

Conclusiones

Aprender a programar es importante en la sociedad moderna


Los metodos tradicionales fallan en hacerlo en escala
Este trabajo es parte de una b
usqueda para mejorar el estado de la
ense
nanza de la programaci
on
La libertad provista por la cultura libre (software libre, copyleft, etc.)
es imprescindible
Esperamos que Gobstones se difunda y tengamos feedback

Fidel (UNQ)

Gobstones

octubre 2013

38 / 41

Conclusiones

Bibliografa

Pablo E. Martnez L
opez, Eduardo A. Bonelli, and Federico A. Sawady OConnor.
El nombre verdadero de la programaci
on. Una concepci
on de la ense
nanza de la
programaci
on para la sociedad de la informaci
on.
In Gabriel Baum and Nora Sabelli, editors, 10mo Simposio sobre la Sociedad de la
Informaci
on (SSI), dentro de las 41 Jornadas Argentinas de Inform
atica (JAIIO), Facultad
de Inform
atica, UNLP, setiembre 2012.
Pablo E. Martnez L
opez.
Las bases conceptuales de la Programaci
on. Una nueva forma de aprender a programar.
Publicaci
on libre CC, octubre 2013.
URL: http://www.gobstones.org/bibliografia/BasesConceptualesProg.pdf.

Fidel (UNQ)

Gobstones

octubre 2013

39 / 41

Conclusiones

Bibliografa

Edsger W. Dijkstra.
On the cruelty of really teaching computing science (EWD-1036).
E.W. Dijkstra Archive. Center for American History, 1989.
URL: http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF.

Fidel (UNQ)

Gobstones

octubre 2013

40 / 41

Conclusiones

Ahora la demo. . .
Y luego FIN

Fidel (UNQ)

Gobstones

octubre 2013

41 / 41

Expansiones de ideas

Expansion de elementos del


lenguaje

Fidel (UNQ)

Gobstones

octubre 2013

42 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Seleccion de contenidos

(A) Elementos del lenguaje


1

Categoras de elementos
Acciones, comandos, procedimientos
Valores, expresiones, funciones

Formas combinaci
on de elementos
secuencia (agregaci
on)
alternativa
repetici
on

Herramientas para expresar abstracci


on parametrizacion

VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

43 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Seleccion de contenidos

(A) Elementos del lenguaje 1 Categoras de elementos


Por su naturaleza
Acciones entidades que representan efectos
Valores entidades que representan datos
Por su forma de descripci
on
Comandos descripciones de acciones
Expresiones descripciones de valores
Por su forma abstracta
Procedimientos abstracciones de comandos
Funciones abstracciones de expresiones
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

44 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Seleccion de contenidos

(A) Elementos del lenguaje 2 Formas de combinaci


on de elementos
En comandos
Secuencia
(agregaci
on)
Alternativa

Repetici
on

Fidel (UNQ)

secuenciaci
on
condicional (if-then-else)
indexada (switch)
{polimorfismo ad-hoc}
condicional (while)
indexada (repeat, foreach)
{recursi
on}

Gobstones

En valores
registros
{tuplas}
enumerativos
{variantes}
listas
{tipos recursivos}

octubre 2013

45 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Seleccion de contenidos

Para destacar. . .
Ambas categoras describen elementos
Las acciones aparecen como m
as concretas, por lo que empezamos por
ellas
Sin embargo, es importante remarcar su aspecto denotacional!
La falla en esto produce dificultades en la comprensi
on de los valores

Existe una dualidad entre valores y acciones, y sus formas


Las expresiones NO describen efectos
Los comandos NO describen valores
Por tanto, estas dos categoras DEBEN presentarse claramente
separadas
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

46 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Seleccion de contenidos

(A) Elementos del lenguaje 3 Herramientas para expresar abstraccion


Parametrizaci
on
mecanismo para capturar similitudes en el c
odigo, abstrayendo
diferencias
herramienta abstracta por excelencia
consecuentemente, es difcil de transmitir en este nivel
s
olo en su forma m
as b
asica: pasaje de par
ametros por valor
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

47 / 41

Expansiones de ideas

Expansi
on de elementos del lenguaje

Expansion de manejo del lenguaje

Fidel (UNQ)

Gobstones

octubre 2013

48 / 41

Expansiones de ideas

Expansi
on de manejo del lenguaje

Seleccion de contenidos

(B) Manejo del lenguaje


1

Manejo de sintaxis dura


debemos inculcar la noci
on de las reglas estrictas de sintaxis
notoriamente dificultoso en alumnos con poca formaci
on matem
atica
la sintaxis debe ser simple, con pocos elementos

Buenas practicas (cuestiones de estilo)


buen uso de nombres de identificadores
comentarios
indentaci
on

VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

49 / 41

Expansiones de ideas

Expansi
on de manejo del lenguaje

Seleccion de contenidos

(B) Manejo del lenguaje 1 Buenas practicas


Buen uso de nombres de identificadores
El nombre de un elemento (par
ametro, variable, procedimiento) no es
un detalle escencial en la ejecuci
on
Sin embargo, un nombre bien elegido contribuye a inducir una visi
on
denotacional adecuada
Desarrollar la capacidad de reconocer buenos nombres es fundamental
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

50 / 41

Expansiones de ideas

Expansi
on de manejo del lenguaje

Seleccion de contenidos

(B) Manejo del lenguaje 2 Buenas practicas


Comentarios
Los comentarios no son tenidos en cuenta en la ejecuci
on
Sin embargo, un comentario bien elegido facilita el reconocimiento de
ideas abstractas, y evidencia su manejo
Desarrollar la capacidad de realizar comentarios adecuados es
fundamental
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

51 / 41

Expansiones de ideas

Expansi
on de manejo del lenguaje

Seleccion de contenidos

(B) Manejo del lenguaje 3 Buenas practicas


Indentaci
on
La indentaci
on no es tenida en cuenta en la ejecuci
on
Sin embargo, una indentaci
on adecuada destaca la estructura del
c
odigo, y evidencia su comprensi
on
Desarrollar la capacidad de indentar adecuadamente es fundamental
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

52 / 41

Expansiones de ideas

Expansi
on de manejo del lenguaje

Expansion de herramientas
abstractas

Fidel (UNQ)

Gobstones

octubre 2013

53 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas


1
2
3
4

Divisi
on en subproblemas
Parametrizaci
on
Parcialidad y precondiciones
Esquemas de programas sencillos

VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

54 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 1 - Divisi


on en subproblemas
Descomposici
on de un problema en partes mas sencillas
Composici
on de las soluciones obtenidas
Idea de delegaci
on (sin explicitarla)
No interesa la eficiencia, sino la visi
on abstracta de composicionalidad
Es complicado detectarla al principio, porque los ejemplos son muy
simples
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

55 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 2 - Parametrizaci


on
Uso de parametros para lograr generalidad y disminuir la complejidad
del c
odigo
Es notorio el manejo de abstracci
on requerido para hacerlo bien
Se relaciona ntimamente con la divisi
on en subtareas, ya que disminuye
la cantidad de subtareas necesarias
Si bien no trabajamos explcitamente en este aspecto, esta presente
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

56 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 3 - Parcialidad y precondiciones


Parcialidad: Fallos en ejecuci
on
Precondiciones: Requisitos para evitar dichos fallos
Ideas
Lenguaje de prop
ositos generales situaciones an
omalas
Se necesita una adecuada conceptualizaci
on
Se necesitan herramientas para manejar estas situaciones
Precondiciones vs. debugging

Fidel (UNQ)

Gobstones

octubre 2013

57 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 3 - Parcialidad y precondiciones (cont.)


Precondiciones vs. debugging
Debugging
Herramienta b
asicamente operacional
Induce al ensayo por prueba y error

Precondiciones
Herramienta b
asicamente abstracta
Permite el razonamiento del programa en alto nivel

El debugging es una mala elecci


on pedag
ogica
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

58 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 4 - Esquemas de programas sencillos


Noci
on fundamental en programaci
on
Un esquema abstrae la estructura de muchos programas
Esquema de recorrido
Esquema de procesamiento de secuencias de elementos
Basada en las ideas de invariantes de ciclo, folds (catamorfismos) y las
m
aquinas de Scholl&Peyrin
Permite identificar los elementos necesarios para el correcto tratamiento
de la secuencia

Fidel (UNQ)

Gobstones

octubre 2013

59 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos

(C) Herramientas abstractas 4 - Esquemas de programas sencillos (cont.)


Un recorrido consta de
inicializaci
on
condici
on de corte
procesamiento del elemento actual
paso al siguiente elemento
finalizaci
on

Fidel (UNQ)

Gobstones

octubre 2013

60 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Seleccion de contenidos
(C) Herramientas abstractas 4 - Esquemas de programas sencillos (cont.)
procedure PintarTablero()
{
// OBJETIVO: "Pinta" el tablero de rojo
//
(colocando una bolita roja en cada celda)
// PRECONDICION: ninguna, dado que es una operacion total
// OBSERVACIONES: se estructura como recorrido sobre columnas
IrALaPrimeraColumna()
// inicializaci
on
while(hayOtraColumna())
// condici
on de corte
{
ProcesarColumnaActual()
// procesamiento de un elemento
PasarASiguienteColumna()
// paso al siguiente
}
ProcesarColumnaActual()
// finalizaci
on
}
VOLVER
Fidel (UNQ)

Gobstones

octubre 2013

61 / 41

Expansiones de ideas

Expansi
on de herramientas abstractas

Expansion de contenidos
adicionales

Fidel (UNQ)

Gobstones

octubre 2013

62 / 41

Expansiones de ideas

Expansi
on de contenidos adicionales

Seleccion de contenidos

Contenidos adicionales
Modelado de informaci
on?
Lo mnimo imprescindible
De hecho, se usa desde el principio
Pero se explicita solo al final y no se pone enfasis en ella
Los estudiantes pr
acticamente no modelan por s mismos

Entrada/Salida?
No, puesto que la entrada/salida
es eminentemente operacional
desva el foco de atenci
on de los aspectos denotacionales
requiere herramientas de abstracci
on complejas
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

63 / 41

Expansiones de ideas

Expansi
on de contenidos adicionales

Seleccion de contenidos

Contenidos adicionales (cont.)


Programaci
on funcional?
No, puesto que la programaci
on funcional
es de ndole fundamentalmente abstracta
requiere herramientas muy complejas para reemplazar los efectos
precisa como base los elementos impartidos

Programaci
on orientada a objetos?
No, puesto que la programaci
on orientada a objetos
tiene muchos m
as conceptos que transmitir
varios de esos conceptos no son transversales
precisa como base los elementos impartidos
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

64 / 41

Expansiones de ideas

Expansi
on de contenidos adicionales

Seleccion de contenidos

Contenidos adicionales (cont.)


Formalizaci
on de las ideas?
No, puesto que la formalizaci
on de las ideas
requiere niveles de madurez matem
atica y de abstracci
on superiores
no es imprescindible en un primer curso
solo es necesaria en una formaci
on de ndole especfica

Estructuras de control mas complejas/otras herramientas?


(excepciones, unit testing, etc.)
No, puesto que estos conceptos
no aportan a la comprensi
on de la programaci
on b
asica
resuelven problemas avanzados que no son para un primer curso
requieren como base muchos de los conceptos impartidos
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

65 / 41

Expansiones de ideas

Expansi
on de contenidos adicionales

Seleccion de contenidos

Contenidos adicionales (cont.)


Arreglos?
No, puesto que los arreglos
inducen programas menos estructurales
son m
as concretos, m
as dependientes de un modelo de memoria
precisan la idea adicional de ndice y su manejo
poseen tama
no fijo
orientan a la modificaci
on in place, destructiva

Otras estructuras de datos?


No, puesto que las estructuras de datos
requieren mayor nivel de abstracci
on
requieren como base los elementos impartidos
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

66 / 41

Expansiones de ideas

Expansi
on de contenidos adicionales

Expansion de problematicas
asociadas

Fidel (UNQ)

Gobstones

octubre 2013

67 / 41

Expansiones de ideas

Expansi
on de problem
aticas asociadas

Problematicas asociadas

Errores posibles Abuso de metaforas y analogas


Deben usarse de manera pertinente y crtica
No deben generalizarse ni extenderse mas alla de su contexto
No deben reemplazar a la idea a ilustrar

Errores posibles Abuso de recursos graficos


Limitan a futuro la manipulaci
on de elementos abstractos
Desfavorecen la manipulaci
on simb
olica
Muchos elementos son difciles de representar de manera grafica
Resultan en una reducci
on del objeto de estudio

Fidel (UNQ)

Gobstones

octubre 2013

68 / 41

Expansiones de ideas

Expansi
on de problem
aticas asociadas

Problematicas asociadas

Errores posibles Demasiados aspectos operacionales


Limitan el pensamiento denotacional, abstracto
Inducen al uso de mecanismos de prueba y error
La sencillez inicial que permiten es una trampa

Los atendemos de varias maneras


No ofrecemos mecanismos de debugging
S
olo se presenta el tablero final (nunca los intermedios)
Inducimos a pensar en subtareas desde el comienzo
VOLVER

Fidel (UNQ)

Gobstones

octubre 2013

69 / 41

También podría gustarte