SlideShare una empresa de Scribd logo
Introducción a la Lógica y los Problemas Computacionales
Alan Rodas Bonjour
Procedimientos
Teoría 1.B.
Introducción a la Lógica y los Problemas Computacionales
¿Hicieron la tarea?
Introducción a la Lógica y los Problemas Computacionales
Primitivas
● Los comandos están agrupados en categorías.
● En particular “Mover a la derecha” y “Subir a Guyrá” están dentro de la categoría
“Primitivas”.
● “Primitivas” refiere a que son comandos propios del ejercicio, vienen incorporados con
este.
● Las primitivas son las que me da el ejercicio, y no puedo inventar otras nuevas. Podemos
pensarlas como “las cosas que el autómata sabe hacer”.
● En las computadoras modernas, las primitivas están relacionadas al hardware.
Introducción a la Lógica y los Problemas Computacionales
A trabajar
Realizamos del “Nivel intermedio”, el ejercicio “El gato en la calle”, de la sección
“Autómatas, Comandos, Procedimientos y Repetición”.
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Primera aproximación
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Volvamos a leer el enunciado:
Hacé que el gato avance un paso, se duerma, se despierte, salude y vuelva a su lugar.
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Volvamos a leer el enunciado:
Hacé que el gato avance un paso, se duerma, se despierte, salude y vuelva a su lugar.
Claramente hay 5 elementos en el problema, 5 cosas que el gato debe realizar.
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Pero sí el problema implica hacer 5 cosas, ¿Por qué nuestra solución tiene 8 elementos?
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Podemos pensar que hay grupos de comandos que corresponden a una misma cosa a nivel conceptual:
}
}
Dormir
Despertar
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Lo que queremos...
Introducción a la Lógica y los Problemas Computacionales
El gato en la calle: ¿Qué aprendimos?
Podemos lograr esto gracias a los procedimientos
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
● Los procedimientos son una herramienta del lenguaje que permite al programador
definir nuevos comandos.
● Un procedimiento tiene un nombre y un cuerpo.
● El procedimiento se define, por un lado, y luego se invoca (se usa como un comando
más)
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Nombre
Notar que se puede escribir en ese espacio para
elegir un nombre apropiado.
Cuerpo
Recordemos que un cuerpo
se completa con comandos.
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Ignorar
No vamos a usar este botón por ahora.
Manito
Permite obtener el comando asociado a
esta definición.
También se puede encontrar en la
sección “Mis procedimientos” en la barra
de herramientas.
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Definición de
procedimientos
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Invocación o llamada: Uso
de comandos que fueron
creados con un
procedimiento
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
● Brindan claridad en nuestra solución, permitiendo comunicar claramente las ideas que el
programador tenía en la cabeza al momento de realizar el código.
● Aportan legibilidad, haciendo que la solución se lea como una historia.
● Proveen mayor modificabilidad, ya que con procedimientos es más fácil modificar una solución
existente para que se adapte a nuevas necesidades.
● Van a permitir realizar soluciones más simples (cada procedimiento puede ser pensado como un
programa independiente del resto, pero que resuelve solo una partecita del problema total). Es
decir, sirven para aportar estructura al código, y pensar en términos de subtareas.
● La definición puede ser única, pero puede invocarse muchas veces, en lugares distintos,
permitiendo reutilizar código.
● Reducen la cantidad de errores, ya que el código no se duplica y es más fácil identificar puntos
de fallo en caso de que los hubiera.
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
¡SON “EL TEMA” DE LA MATERIA!
Introducción a la Lógica y los Problemas Computacionales
Programar es comunicar
Programar implica comunicar. Comunicamos la solución a la máquina (motivo por el cual
tenemos que escribirla en un lenguaje de programación), quien la ejecutará para solucionar
finalmente el problema.
Pero los programadores no trabajan solos en la mayoría de los casos. También tenemos que
comunicar a las personas, para que otros entiendan nuestras soluciones, y que las ideas y cosas
que pensamos al solucionar un problema sean claras. Si comunicamos solo en español, las
personas entienden, pero la máquina no.
Es importante entender esta dualidad y tenerla siempre presente.
Así, hay soluciones que son correctas, pero no adecuadas porque no comunican correctamente
a las personas.
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Solución adecuada, las ideas se comunican
claramente.
Solución inadecuada, funciona, pero
no se entiende.
Introducción a la Lógica y los Problemas Computacionales
Procedimientos
Notar que la solución inadecuada es más corta, pero esto no la hace correcta. No buscamos la
solución con menos bloques, sino la que es más clara en expresar las ideas.
Introducción a la Lógica y los Problemas Computacionales
Vamos a hablar entonces de “buenas prácticas” en la programación cada vez que hagamos
referencia a aquellas pequeñas cosas que podemos hacer de manera más adecuada para
aportar claridad a nuestro programa y facilitar así la comunicación de cómo éste resuelve el
problema.
Dicho de otro modo, no solo debemos preocuparnos porque el programa funcione, sino que
también deberemos estar atentos y hacer buen uso de ciertas prácticas como por ejemplo la
que hoy aprendimos: hacer una buena subdivisión de tareas utilizando procedimientos que
resuelvan partes concretas de nuestro problema.
Procedimientos
Introducción a la Lógica y los Problemas Computacionales
Alan Rodas Bonjour
Momento de dudas o
consultas
Introducción a la Lógica y los Problemas Computacionales
Repaso
● Un programa es una descripción de la solución a
un problema computacional.
● Un problema computacional es aquel que puede
expresarse como una transformación de estado.
● En PilasBloques lo expresamos mediante bloques
que se encastran entre sí, para expresar un cambio
de estado en el escenario.
● Todo programa tiene un punto de entrada.
● Los elementos fundamentales del programa son
los comandos (descripciones de acciones).
● Los comandos se organizan en secuencia, y la
solución se ejecuta según esa secuencia.
● Hay infinitos programas que solucionan un
problema. Decimos que dos programas que
solucionan el mismo problema son equivalentes.
Introducción a la Lógica y los Problemas Computacionales
Repaso
● Los procedimientos son una herramienta del
lenguaje que permite definir nuevos comandos.
● Tienen un cuerpo y un nombre.
● La definición va por un lado, y el uso (invocación o
llamada) va en el cuerpo de algún otro bloque.
● Aportan claridad, legibilidad y modificabilidad al
código.
● Pueden ser reutilizados muchas veces.
● Permiten transmitir claramente las ideas pensadas
en nuestra estrategia.
● Permiten separar el problema (tarea) en partes más
pequeñas para su más fácil resolución (subtareas).
Introducción a la Lógica y los Problemas Computacionales
¿Ya no hay más ejercicios?
Introducción a la Lógica y los Problemas Computacionales
Límites de la herramienta actual
● PilasBloques es una excelente herramienta para el aprendizaje de la programación inicial. Pero, la
cantidad de ejercicios que hay es limitada. A veces queremos más ejercicios.
● Existen otras herramientas para aprendizaje, pero cambiar de entorno y acostumbrarse al mismo
lleva un tiempo y esfuerzo que no es deseable invertir.
● La computadora está buena, pero su dependencia extrema es peligrosa. ¿Estás pensando los
ejercicios o simplemente encajando bloques hasta que funciona?
Introducción a la Lógica y los Problemas Computacionales
Las ventajas de programar en papel
● No dependemos de ninguna herramienta, y podemos tener tantos ejercicios como nuestra
imaginación (y la propuesta didáctica) lo permita.
● Nos permite trabajar comprensión de enunciados más complejos, a veces sin el componente
gráfico que brinda la computadora, lo cual es muy importante que desarrollen como estudiantes
universitarios.
● Elimina la dependencia de la computadora, y nos obliga a pensar sí o sí sobre lo que estamos
haciendo, ya que no podemos sacar las cosas por “prueba y error”.
Introducción a la Lógica y los Problemas Computacionales
La dualidad de la programación
Cuando programamos, existe siempre una especie de paradoja que nos debe dominar.
El programa debe poder ser ejecutado por una computadora, por lo que la computadora subyacente es
muy importante. A su vez, la computadora subyacente no es relevante (caja negra) y queremos
programas que puedan funcionar en cualquier computadora, por lo que lo más importante es que el
programa cumpla otras características (plantee adecuadamente la estrategia de solución, sea claro y
legible, utilice las herramientas del lenguaje y las primitivas de forma apropiada, etc.).
Cuando trabajamos en máquina corremos el riesgo de enfocarnos mucho en que las cosas “funcionen”
sin prestar atención a la parte verdaderamente importante, la de usar bien los conceptos que venimos
trabajando.
Al trabajar en papel, se elimina el factor de pensar en que funcione, y nos fuerza a pensar en usar bien
los conceptos.
Introducción a la Lógica y los Problemas Computacionales
Pero debería funcionar...
● El hecho de que no vaya a ser ejecutado no significa que podamos hacer cualquier cosa.
● La idea es escribir programas de forma tal que, si estuviéramos ejecutando en una computadora,
ese programa debería funcionar.
● Es decir, la idea de ejecución mediante secuencia y repetición, cuándo un programa va a fallar,
etc. se debe tener en cuenta, a pesar de que no haya una computadora que vaya a ejecutar las
cosas.
Introducción a la Lógica y los Problemas Computacionales
Una sintaxis para el papel
Introducción a la Lógica y los Problemas Computacionales
¿Cómo escribimos un programa en papel?
● Dibujar bloques no es práctico, por lo que necesitamos una forma de escribir las cosas de forma
sencilla, marcando claramente la jerarquía de los elementos.
● Por jerarquía nos referimos a “qué bloques están dentro de qué otros bloques”, es decir, como
están anidados.
● Además, debemos dejar en claro los bloques que son parte del lenguaje, como la repetición
simple, el punto de entrada, o las definiciones de procedimientos.
● Vamos a usar la idea de “palabras clave”, cosas que queremos escribir todos de la misma forma,
porque tienen una semántica puntual bien clara, ej. “al empezar a ejecutar”
Introducción a la Lógica y los Problemas Computacionales
Palabras claves
Al empezar a ejecutar
<cuerpo>
Introducción a la Lógica y los Problemas Computacionales
Palabras claves
Definir <nombre del procedimiento>
<cuerpo>
Introducción a la Lógica y los Problemas Computacionales
Comandos y primitivas
Mover a la derecha
Es decir, escribimos el nombre, tal cual fue dado en las
primitivas o pusimos en la definición de un procedimiento
que realizamos.
Introducción a la Lógica y los Problemas Computacionales
Ejemplo completo
Al empezar a ejecutar
Avanzar
Dormir
Despertar
Saludar
Volver
Definir Dormir
Acostarse
Cerrar ojos
Soñar
Definir Despertar
Abrir ojos
Pararse
Introducción a la Lógica y los Problemas Computacionales
Ejemplo completo
Al empezar a ejecutar
Avanzar
Dormirse
Despertarse
Saludar
Volver
Definir Dormirse
Acostarse
Cerrar ojos
Soñar
Definir Despertarse
Abrir ojos
Pararse
¡Usar las palabras clave!
Sino es muy difícil entender qué se está queriendo
escribir
Introducción a la Lógica y los Problemas Computacionales
Ejemplo completo
Al empezar a ejecutar
Avanzar
Dormir
Despertar
Saludar
Volver
Definir Dormir
Acostarse
Cerrar ojos
Soñar
Definir Despertar
Abrir ojos
Pararse
¡Respetar los nombres de las primitivas!
Sí dijimos que se llama “Cerrar ojos” debe figurar tal
cual, y no como “Cierro los ojos” u otra cosa.
No respetar el nombre de las primitivas o de los procedimientos
cuando estamos escribiendo en la computadora se conoce como
“error de sintaxis”
Introducción a la Lógica y los Problemas Computacionales
Ejemplo completo
Al empezar a ejecutar
Avanzar
Dormir
Despertar
Saludar
Volver
Definir Dormir
Acostarse
Cerrar ojos
Soñar
Definir Despertar
Abrir ojos
Pararse
¡No te amarretees con el espacio!
La idea es que quede claro cuáles son los
comandos “dentro” del cuerpo. Deja un espacio de
3 o 4 cuadraditos (de hoja cuadriculada) con
respecto al nombre del bloque que lo contiene.
Introducción a la Lógica y los Problemas Computacionales
Ejemplo en hoja cuadriculada
Podes usar imprenta, cursiva o lo que quieras, pero
pensá que la idea más adelante es poder mostrarle a
los profes el código, por lo que, escribas como
escribas, tratá de que sea claro y prolijo.
Introducción a la Lógica y los Problemas Computacionales
Ejemplo en hoja cuadriculada
Acá dejamos 3 cuadraditos entre donde empieza el
“Al empezar a ejecutar” y los comandos que están
dentro de este.
{
La línea está 1 cuadradito más adentro, para dejar
en claro que pertenece al “Al empezar a ejecutar”, y
dejamos un pequeño lugar entre la línea y los
comandos de adentro, para que se lea bien.
Además, la línea termina un cuadradito después del
último comando, para dejar bien en claro que está
adentro y qué no.
Introducción a la Lógica y los Problemas Computacionales
Ejemplo en hoja cuadriculada
¡¡Es importante respetar la sintaxis
propuesta para que todos
entendamos lo mismo!!
Desde las palabras claves, el nombre
de las primitivas hasta las líneas y el
espaciado.
Introducción a la Lógica y los Problemas Computacionales
Tarea
Realizamos la guía de ejercicios en papel “P1.A. Programas y primeros
procedimientos”.
Debe estar terminada para la próxima clase.
Introducción a la Lógica y los Problemas Computacionales
Alan Rodas Bonjour
Procedimientos
Nos vemos la próxima

Más contenido relacionado

PDF
T1.A. Programación 101 para primer año de cualquier carrera de programacion.pdf
PDF
Logicacomputacionalyprogramacion 121119003511-phpapp01
PPTX
LOGICA DE PROGRAMACION
PDF
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
PDF
Autómatas
PPT
PPT
DOCX
Logica de progrmacionn
T1.A. Programación 101 para primer año de cualquier carrera de programacion.pdf
Logicacomputacionalyprogramacion 121119003511-phpapp01
LOGICA DE PROGRAMACION
ALP Unidad 1: Introducción a los fundamentos de la programación estructurada
Autómatas
Logica de progrmacionn

Similar a T1.B. nuevos Procedimientos programacion.pdf (20)

PDF
PDF
Presentacion elemento 4
PDF
Presentacion elemento 4
PDF
Presentacion elemento 4
PDF
Presentacion elemento 4
PDF
Unidad I. Algoritmo y Programas. Parte 1
PDF
Logica computacional y programacion
PDF
Unidad Iii Generalidades Sobre Algoritmos
PDF
Libro logica
PPTX
GENERALIDADES SOBRE LOS ALGORITMOS
DOC
Mtra. Paty R
PDF
pensamiento computacional seudocodigos y sentencias
PDF
P r-o-l-o-g-practica01-1204602281352947-2
PPT
Programacion y algoritmos
PPT
Programacion de algoritmos
PPT
Programacion i algoritmos
DOCX
9º Algoritmos
DOCX
Algoritmos
DOCX
Algoritmos
DOCX
Algoritmos
Presentacion elemento 4
Presentacion elemento 4
Presentacion elemento 4
Presentacion elemento 4
Unidad I. Algoritmo y Programas. Parte 1
Logica computacional y programacion
Unidad Iii Generalidades Sobre Algoritmos
Libro logica
GENERALIDADES SOBRE LOS ALGORITMOS
Mtra. Paty R
pensamiento computacional seudocodigos y sentencias
P r-o-l-o-g-practica01-1204602281352947-2
Programacion y algoritmos
Programacion de algoritmos
Programacion i algoritmos
9º Algoritmos
Algoritmos
Algoritmos
Algoritmos
Publicidad

Último (20)

PPTX
7ma sesion de clase de produccion de cuyes y conejos.....pptx
PDF
un power point de minecraft, no está terminado.
PPTX
Presentación de resumen del producto.pptx
PPTX
Folleto_Ecosistemas_Juveniles y ambiente .pptx
PDF
6o. del 23al 27 de junio 2025_120359.pdf
PPTX
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
PPTX
mapa mental sobre la elaboracion del plan analitico sobre la nueva escuela me...
DOCX
EL SENSOR PARA CUIDAR EL MEDIO AMBIENTE.docx
PDF
Higiene Industrial para la seguridad laboral
PPTX
11avo sesion de clase de produccion de cuyes y conejos.....pptx
PDF
Presentación Diapositivas Propuesta de Proyecto Orgánico Aesthetic Beige y Ma...
PDF
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
PPTX
2 rev industrial y dit.pptx mamkaakkakakaaka
PPTX
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
PDF
ORIENTACIÓN - SEM1.pdf ORIENTACIÓN ESTRUCTURAL
PDF
Ideacion y conceptualización-Act2-EmelyBermeo-Parte 1.pdf
DOCX
FCE POLITICA tercer grado secundaria adolescentes
PDF
diapositvas de trauma de torax.descripcion
PDF
Cuidado para el Desarrollo Infantil _Certificado de participación (1).pdf
PDF
AMTD-609_FORMATOALUMNOTRABAJOFINAL602.pdf
7ma sesion de clase de produccion de cuyes y conejos.....pptx
un power point de minecraft, no está terminado.
Presentación de resumen del producto.pptx
Folleto_Ecosistemas_Juveniles y ambiente .pptx
6o. del 23al 27 de junio 2025_120359.pdf
ELEMENTOS DEL DIBUJO TECNICO Y GRAFICOOOO
mapa mental sobre la elaboracion del plan analitico sobre la nueva escuela me...
EL SENSOR PARA CUIDAR EL MEDIO AMBIENTE.docx
Higiene Industrial para la seguridad laboral
11avo sesion de clase de produccion de cuyes y conejos.....pptx
Presentación Diapositivas Propuesta de Proyecto Orgánico Aesthetic Beige y Ma...
Tema 5.pdfdjdjsjsjshdbsjsjsjsjsjsjsjsjsjsjsj
2 rev industrial y dit.pptx mamkaakkakakaaka
13 y 14.pptxmjgyggguuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
ORIENTACIÓN - SEM1.pdf ORIENTACIÓN ESTRUCTURAL
Ideacion y conceptualización-Act2-EmelyBermeo-Parte 1.pdf
FCE POLITICA tercer grado secundaria adolescentes
diapositvas de trauma de torax.descripcion
Cuidado para el Desarrollo Infantil _Certificado de participación (1).pdf
AMTD-609_FORMATOALUMNOTRABAJOFINAL602.pdf
Publicidad

T1.B. nuevos Procedimientos programacion.pdf

  • 1. Introducción a la Lógica y los Problemas Computacionales Alan Rodas Bonjour Procedimientos Teoría 1.B.
  • 2. Introducción a la Lógica y los Problemas Computacionales ¿Hicieron la tarea?
  • 3. Introducción a la Lógica y los Problemas Computacionales Primitivas ● Los comandos están agrupados en categorías. ● En particular “Mover a la derecha” y “Subir a Guyrá” están dentro de la categoría “Primitivas”. ● “Primitivas” refiere a que son comandos propios del ejercicio, vienen incorporados con este. ● Las primitivas son las que me da el ejercicio, y no puedo inventar otras nuevas. Podemos pensarlas como “las cosas que el autómata sabe hacer”. ● En las computadoras modernas, las primitivas están relacionadas al hardware.
  • 4. Introducción a la Lógica y los Problemas Computacionales A trabajar Realizamos del “Nivel intermedio”, el ejercicio “El gato en la calle”, de la sección “Autómatas, Comandos, Procedimientos y Repetición”.
  • 5. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Primera aproximación
  • 6. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Volvamos a leer el enunciado: Hacé que el gato avance un paso, se duerma, se despierte, salude y vuelva a su lugar.
  • 7. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Volvamos a leer el enunciado: Hacé que el gato avance un paso, se duerma, se despierte, salude y vuelva a su lugar. Claramente hay 5 elementos en el problema, 5 cosas que el gato debe realizar.
  • 8. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Pero sí el problema implica hacer 5 cosas, ¿Por qué nuestra solución tiene 8 elementos?
  • 9. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Podemos pensar que hay grupos de comandos que corresponden a una misma cosa a nivel conceptual: } } Dormir Despertar
  • 10. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Lo que queremos...
  • 11. Introducción a la Lógica y los Problemas Computacionales El gato en la calle: ¿Qué aprendimos? Podemos lograr esto gracias a los procedimientos
  • 12. Introducción a la Lógica y los Problemas Computacionales Procedimientos ● Los procedimientos son una herramienta del lenguaje que permite al programador definir nuevos comandos. ● Un procedimiento tiene un nombre y un cuerpo. ● El procedimiento se define, por un lado, y luego se invoca (se usa como un comando más)
  • 13. Introducción a la Lógica y los Problemas Computacionales Procedimientos Nombre Notar que se puede escribir en ese espacio para elegir un nombre apropiado. Cuerpo Recordemos que un cuerpo se completa con comandos.
  • 14. Introducción a la Lógica y los Problemas Computacionales Procedimientos Ignorar No vamos a usar este botón por ahora. Manito Permite obtener el comando asociado a esta definición. También se puede encontrar en la sección “Mis procedimientos” en la barra de herramientas.
  • 15. Introducción a la Lógica y los Problemas Computacionales Procedimientos Definición de procedimientos
  • 16. Introducción a la Lógica y los Problemas Computacionales Procedimientos Invocación o llamada: Uso de comandos que fueron creados con un procedimiento
  • 17. Introducción a la Lógica y los Problemas Computacionales Procedimientos ● Brindan claridad en nuestra solución, permitiendo comunicar claramente las ideas que el programador tenía en la cabeza al momento de realizar el código. ● Aportan legibilidad, haciendo que la solución se lea como una historia. ● Proveen mayor modificabilidad, ya que con procedimientos es más fácil modificar una solución existente para que se adapte a nuevas necesidades. ● Van a permitir realizar soluciones más simples (cada procedimiento puede ser pensado como un programa independiente del resto, pero que resuelve solo una partecita del problema total). Es decir, sirven para aportar estructura al código, y pensar en términos de subtareas. ● La definición puede ser única, pero puede invocarse muchas veces, en lugares distintos, permitiendo reutilizar código. ● Reducen la cantidad de errores, ya que el código no se duplica y es más fácil identificar puntos de fallo en caso de que los hubiera.
  • 18. Introducción a la Lógica y los Problemas Computacionales Procedimientos ¡SON “EL TEMA” DE LA MATERIA!
  • 19. Introducción a la Lógica y los Problemas Computacionales Programar es comunicar Programar implica comunicar. Comunicamos la solución a la máquina (motivo por el cual tenemos que escribirla en un lenguaje de programación), quien la ejecutará para solucionar finalmente el problema. Pero los programadores no trabajan solos en la mayoría de los casos. También tenemos que comunicar a las personas, para que otros entiendan nuestras soluciones, y que las ideas y cosas que pensamos al solucionar un problema sean claras. Si comunicamos solo en español, las personas entienden, pero la máquina no. Es importante entender esta dualidad y tenerla siempre presente. Así, hay soluciones que son correctas, pero no adecuadas porque no comunican correctamente a las personas.
  • 20. Introducción a la Lógica y los Problemas Computacionales Procedimientos Solución adecuada, las ideas se comunican claramente. Solución inadecuada, funciona, pero no se entiende.
  • 21. Introducción a la Lógica y los Problemas Computacionales Procedimientos Notar que la solución inadecuada es más corta, pero esto no la hace correcta. No buscamos la solución con menos bloques, sino la que es más clara en expresar las ideas.
  • 22. Introducción a la Lógica y los Problemas Computacionales Vamos a hablar entonces de “buenas prácticas” en la programación cada vez que hagamos referencia a aquellas pequeñas cosas que podemos hacer de manera más adecuada para aportar claridad a nuestro programa y facilitar así la comunicación de cómo éste resuelve el problema. Dicho de otro modo, no solo debemos preocuparnos porque el programa funcione, sino que también deberemos estar atentos y hacer buen uso de ciertas prácticas como por ejemplo la que hoy aprendimos: hacer una buena subdivisión de tareas utilizando procedimientos que resuelvan partes concretas de nuestro problema. Procedimientos
  • 23. Introducción a la Lógica y los Problemas Computacionales Alan Rodas Bonjour Momento de dudas o consultas
  • 24. Introducción a la Lógica y los Problemas Computacionales Repaso ● Un programa es una descripción de la solución a un problema computacional. ● Un problema computacional es aquel que puede expresarse como una transformación de estado. ● En PilasBloques lo expresamos mediante bloques que se encastran entre sí, para expresar un cambio de estado en el escenario. ● Todo programa tiene un punto de entrada. ● Los elementos fundamentales del programa son los comandos (descripciones de acciones). ● Los comandos se organizan en secuencia, y la solución se ejecuta según esa secuencia. ● Hay infinitos programas que solucionan un problema. Decimos que dos programas que solucionan el mismo problema son equivalentes.
  • 25. Introducción a la Lógica y los Problemas Computacionales Repaso ● Los procedimientos son una herramienta del lenguaje que permite definir nuevos comandos. ● Tienen un cuerpo y un nombre. ● La definición va por un lado, y el uso (invocación o llamada) va en el cuerpo de algún otro bloque. ● Aportan claridad, legibilidad y modificabilidad al código. ● Pueden ser reutilizados muchas veces. ● Permiten transmitir claramente las ideas pensadas en nuestra estrategia. ● Permiten separar el problema (tarea) en partes más pequeñas para su más fácil resolución (subtareas).
  • 26. Introducción a la Lógica y los Problemas Computacionales ¿Ya no hay más ejercicios?
  • 27. Introducción a la Lógica y los Problemas Computacionales Límites de la herramienta actual ● PilasBloques es una excelente herramienta para el aprendizaje de la programación inicial. Pero, la cantidad de ejercicios que hay es limitada. A veces queremos más ejercicios. ● Existen otras herramientas para aprendizaje, pero cambiar de entorno y acostumbrarse al mismo lleva un tiempo y esfuerzo que no es deseable invertir. ● La computadora está buena, pero su dependencia extrema es peligrosa. ¿Estás pensando los ejercicios o simplemente encajando bloques hasta que funciona?
  • 28. Introducción a la Lógica y los Problemas Computacionales Las ventajas de programar en papel ● No dependemos de ninguna herramienta, y podemos tener tantos ejercicios como nuestra imaginación (y la propuesta didáctica) lo permita. ● Nos permite trabajar comprensión de enunciados más complejos, a veces sin el componente gráfico que brinda la computadora, lo cual es muy importante que desarrollen como estudiantes universitarios. ● Elimina la dependencia de la computadora, y nos obliga a pensar sí o sí sobre lo que estamos haciendo, ya que no podemos sacar las cosas por “prueba y error”.
  • 29. Introducción a la Lógica y los Problemas Computacionales La dualidad de la programación Cuando programamos, existe siempre una especie de paradoja que nos debe dominar. El programa debe poder ser ejecutado por una computadora, por lo que la computadora subyacente es muy importante. A su vez, la computadora subyacente no es relevante (caja negra) y queremos programas que puedan funcionar en cualquier computadora, por lo que lo más importante es que el programa cumpla otras características (plantee adecuadamente la estrategia de solución, sea claro y legible, utilice las herramientas del lenguaje y las primitivas de forma apropiada, etc.). Cuando trabajamos en máquina corremos el riesgo de enfocarnos mucho en que las cosas “funcionen” sin prestar atención a la parte verdaderamente importante, la de usar bien los conceptos que venimos trabajando. Al trabajar en papel, se elimina el factor de pensar en que funcione, y nos fuerza a pensar en usar bien los conceptos.
  • 30. Introducción a la Lógica y los Problemas Computacionales Pero debería funcionar... ● El hecho de que no vaya a ser ejecutado no significa que podamos hacer cualquier cosa. ● La idea es escribir programas de forma tal que, si estuviéramos ejecutando en una computadora, ese programa debería funcionar. ● Es decir, la idea de ejecución mediante secuencia y repetición, cuándo un programa va a fallar, etc. se debe tener en cuenta, a pesar de que no haya una computadora que vaya a ejecutar las cosas.
  • 31. Introducción a la Lógica y los Problemas Computacionales Una sintaxis para el papel
  • 32. Introducción a la Lógica y los Problemas Computacionales ¿Cómo escribimos un programa en papel? ● Dibujar bloques no es práctico, por lo que necesitamos una forma de escribir las cosas de forma sencilla, marcando claramente la jerarquía de los elementos. ● Por jerarquía nos referimos a “qué bloques están dentro de qué otros bloques”, es decir, como están anidados. ● Además, debemos dejar en claro los bloques que son parte del lenguaje, como la repetición simple, el punto de entrada, o las definiciones de procedimientos. ● Vamos a usar la idea de “palabras clave”, cosas que queremos escribir todos de la misma forma, porque tienen una semántica puntual bien clara, ej. “al empezar a ejecutar”
  • 33. Introducción a la Lógica y los Problemas Computacionales Palabras claves Al empezar a ejecutar <cuerpo>
  • 34. Introducción a la Lógica y los Problemas Computacionales Palabras claves Definir <nombre del procedimiento> <cuerpo>
  • 35. Introducción a la Lógica y los Problemas Computacionales Comandos y primitivas Mover a la derecha Es decir, escribimos el nombre, tal cual fue dado en las primitivas o pusimos en la definición de un procedimiento que realizamos.
  • 36. Introducción a la Lógica y los Problemas Computacionales Ejemplo completo Al empezar a ejecutar Avanzar Dormir Despertar Saludar Volver Definir Dormir Acostarse Cerrar ojos Soñar Definir Despertar Abrir ojos Pararse
  • 37. Introducción a la Lógica y los Problemas Computacionales Ejemplo completo Al empezar a ejecutar Avanzar Dormirse Despertarse Saludar Volver Definir Dormirse Acostarse Cerrar ojos Soñar Definir Despertarse Abrir ojos Pararse ¡Usar las palabras clave! Sino es muy difícil entender qué se está queriendo escribir
  • 38. Introducción a la Lógica y los Problemas Computacionales Ejemplo completo Al empezar a ejecutar Avanzar Dormir Despertar Saludar Volver Definir Dormir Acostarse Cerrar ojos Soñar Definir Despertar Abrir ojos Pararse ¡Respetar los nombres de las primitivas! Sí dijimos que se llama “Cerrar ojos” debe figurar tal cual, y no como “Cierro los ojos” u otra cosa. No respetar el nombre de las primitivas o de los procedimientos cuando estamos escribiendo en la computadora se conoce como “error de sintaxis”
  • 39. Introducción a la Lógica y los Problemas Computacionales Ejemplo completo Al empezar a ejecutar Avanzar Dormir Despertar Saludar Volver Definir Dormir Acostarse Cerrar ojos Soñar Definir Despertar Abrir ojos Pararse ¡No te amarretees con el espacio! La idea es que quede claro cuáles son los comandos “dentro” del cuerpo. Deja un espacio de 3 o 4 cuadraditos (de hoja cuadriculada) con respecto al nombre del bloque que lo contiene.
  • 40. Introducción a la Lógica y los Problemas Computacionales Ejemplo en hoja cuadriculada Podes usar imprenta, cursiva o lo que quieras, pero pensá que la idea más adelante es poder mostrarle a los profes el código, por lo que, escribas como escribas, tratá de que sea claro y prolijo.
  • 41. Introducción a la Lógica y los Problemas Computacionales Ejemplo en hoja cuadriculada Acá dejamos 3 cuadraditos entre donde empieza el “Al empezar a ejecutar” y los comandos que están dentro de este. { La línea está 1 cuadradito más adentro, para dejar en claro que pertenece al “Al empezar a ejecutar”, y dejamos un pequeño lugar entre la línea y los comandos de adentro, para que se lea bien. Además, la línea termina un cuadradito después del último comando, para dejar bien en claro que está adentro y qué no.
  • 42. Introducción a la Lógica y los Problemas Computacionales Ejemplo en hoja cuadriculada ¡¡Es importante respetar la sintaxis propuesta para que todos entendamos lo mismo!! Desde las palabras claves, el nombre de las primitivas hasta las líneas y el espaciado.
  • 43. Introducción a la Lógica y los Problemas Computacionales Tarea Realizamos la guía de ejercicios en papel “P1.A. Programas y primeros procedimientos”. Debe estar terminada para la próxima clase.
  • 44. Introducción a la Lógica y los Problemas Computacionales Alan Rodas Bonjour Procedimientos Nos vemos la próxima