Computing">
Nothing Special   »   [go: up one dir, main page]

AED1-TP1-Introducción A La Programación Mediante Programación Por Bloques

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

“Entiendo bien como puedo, mi comprensión solo puede ser una fracción

infinitesimal de todo lo que quiero entender.”


Ada Lovelace.

TP Nº 1: Introducción a la programación mediante programación por bloques

Objetivos:
1. Introducir a los alumnos en la utilización de metodologías y herramientas accesibles para aprender
conceptos de programación mediante actividades entretenidas y amenas, buscando fortalecer el
pensamiento computacional vinculado a la resolución de problemas.
2. Incorporar un marco conceptual que incluye dos grupos de conceptos técnicos: las herramientas
conceptuales y las del lenguaje, fundamentales y transversales a todos los paradigmas y lenguajes.
3. Consolidar un método de resolución de problemas para abordar la abstracción, descomposición en partes
y legibilidad en las soluciones que se proponen.
En esta actividad práctica se consolidarán las diferentes Los distintos desafíos (problemas) se resolverán
herramientas del lenguaje: utilizando un método de resolución de problemas que
- Primitivas (Instrucciones que el autómata sabe incorpora las herramientas conceptuales:
hacer) - Estrategia de solución y división en subtareas
- Procedimientos - Legibilidad (elección de nombres adecuados) y
- Repetición simple - Recorridos de algorítmica básica
- Alternativa condicional y
- Repetición condicional

Atención: Para reforzar los


conceptos, se recomienda leer el material teórico correspondiente al tema 1.

1. PRIMITIVAS - PROCEDIMIENTOS
Objetivo: Introducir el concepto de orden o instrucción que un autómata (la computadora) debe realizar para
lograr un objetivo predefinido.

1.1. Introducción al entorno PILASBLOQUES


PilasBloques es una aplicación para aprender a programar. Fue desarrollada por
Program.AR - Fundación Sadosky con la colaboración de Huayra.
Se proponen desafíos con diversos niveles de dificultad para acercar a los
alumnos al mundo de la programación por medio de bloques

Objetivos:
- Comprender que un comando o primitiva es una acción que genera un efecto (reproducir un sonido, pintar
a una imagen, mover un objeto, etcétera) y que las secuencias de comandos permiten encadenar (o
componer) comandos de forma ordenada.
- Comprender que un programa es una secuencia de comandos y que ejecutar o correr un programa
consiste en hacer que el autómata produzca un efecto al interpretarlo.
- Organizar secuencias de comandos ajustadas a un fin específico.
- Distinguir entre instrucciones primitivas y procedimientos.

a) Descargar e instalar
La versión que se usará durante este curso es la 1.13.2a
Descargar el instalador de: https://tinyurl.com/PilasBloquesInstalador
Guía de Trabajos Prácticos 1

Fig. 1. Descarga instalador de PilasBloques


- Ejecutar el instalador

- Abrir la aplicación PilasBloques, que presentará la interfaz que se muestra en la Fig.2.

Fig. 2. Interfaz principal PilasBloques

- Hacer clic en el ícono “Segundo Ciclo”, aparecerá la interfaz con los desafíos, que se muestra en la Fig. 3:

Fig. 3. Desafíos PilasBloques

Algoritmos y Estructuras de Datos I - 2024 Página 2 de 11


Guía de Trabajos Prácticos 1

Para cada desafío:


 Identificar/establecer el objetivo
 Analizar el escenario
 Observar el “estado” del autómata (dónde se ubica, etc)
 Observar las primitivas (lo que el autómata sabe hacer de antemano)
 Pensar una estrategia para cumplir el objetivo (solución general al problema: QUÉ hacer)
 Definir el conjunto de órdenes precisas (secuencia de comandos) que el autómata debe realizar
para cumplir el objetivo (CÓMO hacer)

1.2. Conociendo el entorno de PilasBloques


Abrir la actividad “El Alien toca el botón”. Todas las actividades tienen un objetivo, en este caso, el Alien debe
tocar el botón. Para cumplir el objetivo cada actividad dispone de un conjunto de acciones, denominadas
“Primitivas” (lo que el autómata es capaz de hacer).

El desafío consiste en indicar la secuencia de acciones (programa) que logrará cumplir el objetivo. Para ello,
las primitivas se arrastran y se encastran en el bloque principal (ver Fig. 4).

Fig. 4. Bloque principal

Para comprobar el programa, se oprime el botón “Ejecutar”. Una vez realizada las acciones el botón se
convierte a “Reiniciar” (ver Fig. 5).

Fig. 5. Botón de ejecución/reinicio


La Fig. 6 muestra el desafío resuelto. En el bloque principal se muestra la secuencia de primitivas que hacen
que el Alien, desde su posición inicial, avance 3 pasos y apriete el botón.

Fig.6. Desafío “El Alien toca el botón” resuelto


Importante: los bloques deben estar perfectamente “encastrados” para que se ejecuten. Los bloques sueltos
que se encuentren en el panel no se ejecutarán.

Algoritmos y Estructuras de Datos I - 2024 Página 3 de 11


Guía de Trabajos Prácticos 1

1.3. Procedimientos
Recordamos: Procedimiento: es un conjunto de primitivas expresadas en el orden adecuado para crear
una nueva tarea.

El autómata “aprende” a realizar esa nueva tarea.


Una buena práctica de programación es nombrar a los procedimientos con nombres que indiquen el propósito de ese
conjunto de comandos, usando un verbo en infinitivo (Dormir, Despertar, Saltar, etc ).
Objetivos:

- Identificar tareas nuevas y crear los procedimientos adecuados.


- Inferir que los programas pueden resolver problemas específicos.
- Identificar problemas y proponer soluciones a través de la programación.
- Reconocer el patrón que permite descomponer un problema en acciones más acotadas.
- Resolver problemas de manera más simple a partir del patrón que permite descomponerlos.
- Proponer diversas soluciones para un mismo problema.

Ejercicio 1: Abrir la actividad El gato en la calle. Aparecerá la interfaz que se muestra en la Fig. 7.
La consigna es lograr que el gato avance, se acueste a dormir, se levante, salude y vuelva al inicio.
En este desafío, aparece otro componente de programación “Mis procedimientos”.
Un procedimiento permite crear bloques agrupando primitivas. Por ejemplo, podemos crear un procedimiento
Dormir, que agrupa acciones primitivas: Acostarse, Cerrar los Ojos, Soñar.

Fig. 7. El gato en la calle

Solución propuesta:
La siguiente solución contempla la creación y utilización de los procedimientos Dormir y Despertar, como se
muestra en la Fig. 8

Fig. 8. El gato en la calle

Algoritmos y Estructuras de Datos I - 2024 Página 4 de 11


Guía de Trabajos Prácticos 1

Ejercicio 2: Explorar otras actividades que el gato pueda realizar. Por ejemplo: saludar, avanzar, volver, saludar,
avanzar o avanzar, saludar, avanzar, saludar, volver. De este modo, observarán que distintas secuencias
producen resultados diferentes.
Como el ejercicio está pensado para ejercitar estas variantes, no tiene la leyenda de que se cumplió el objetivo.

Repasando:
 Un comando o “primitiva” es una acción que genera un efecto.
 Un programa es una secuencia de comandos.
 Correr o ejecutar un programa es hacer que un autómata realice los comandos de un programa.
 Se pueden definir nuevos bloques (procedimientos) para realizar secuencias específicas.
 La denominación adecuada de los procedimientos contribuye a la legibilidad.
 La definición de la estrategia y la división en tareas facilita la comprensión de la solución global.

2. REPETICIÓN SIMPLE

2.1. Repetición simple I


Objetivos:
- Aplicar herramientas de programación para la ejecución de tareas repetitivas.
- Reconocer que las computadoras pueden repetir una tarea cuantas veces sea necesario.
Ejercicio 1: Abrir la aplicación PilasBloques, en la pestaña “Desafíos”, seleccionar la actividad “No me canso
de saltar”.
- Escribir las instrucciones necesarias para que el gato salte 30 veces (sin utilizar 30 bloques).
En esta actividad, aparece como nuevo elemento el bloque Repetir que utiliza como parámetro la cantidad de
veces que se repiten las instrucciones contenidas en el bloque (Ver Fig. 9).

Fig. 9. No me canso de saltar


Solución propuesta:
Una buena práctica para mejorar la legibilidad de una solución es crear un procedimiento principal que
contenga la solución al desafío. En este caso, crear un bloque Saltar 30 veces. Recordemos que conviene
nombrar a los procedimientos con nombres que indiquen el propósito de ese conjunto de comandos,
preferentemente usando un verbo en infinitivo (Saltar), en este caso, Saltar 30 veces que es el objetivo que
pide el desafío.
Dentro del procedimiento principal, utilizar el bloque Repetir que requiere seleccionar la/las primitivas que
se repetirán (Saltar) e indicar cuántas veces debe repetirse (30 veces), como se muestra en la Fig. 10:

Algoritmos y Estructuras de Datos I - 2024 Página 5 de 11


Guía de Trabajos Prácticos 1

Fig. 10. Solución al desafío No me canso de saltar

Para finalizar:
 En un programa se pueden repetir secuencias de comandos tantas veces como sea necesario
 Usar el bloque Repetir ayuda a generar programas más compactos y legibles.
 En general, cuando un comando (o una secuencia de comandos) se repite se debe usar el bloque
Repetir.
 En el casillero en blanco del bloque se indicará el número de veces que se deben repetir los
comandos.
 La invocación a un procedimiento principal (bloque “Saltar 30 veces”) hace más legible la solución
que se busca.

2.2. Repetición Simple II

Objetivos
- Ejercitar la resolución de problemas mediante programas.
- Establecer comparaciones entre las diversas maneras posibles de resolver un problema.
- Reforzar los conceptos de repetición y separación en procedimientos.

Para resolver los problemas planteados, es conveniente aplicar un método, que podrá ser aplicado
sistemáticamente. En primer lugar, es necesario determinar claramente el objetivo (qué se desea obtener
como resultado), y luego establecer una estrategia para lograrlo, expresándola en términos de subtareas o
módulos. Con esto se establece QUÉ hacer. Luego se procederá a indicar CÓMO se hace cada subtarea.
Ejercicio 2: Tito enciende las luces. Construya un programa en el cual Tito encienda todas las luces del
escenario (Fig. 11).
Solución propuesta:
Objetivo: Encender todas las luces
Estrategia:
• Ubicarse al inicio de la primera diagonal
• Encender luces de la diagonal
• Ubicarse al inicio de la segunda diagonal
• Encender luces de la diagonal
Se define un solo procedimiento un solo procedimiento para “encender la diagonal”, y dos
procedimientos diferentes para ubicar al autómata al inicio de cada diagonal.

El bloque Repetir se usa para repetir el conjunto de acciones o primitivas que se realiza más de una
vez (por ejemplo, para llegar a cada foco de la diagonal es necesario: Prender la luz, Mover a la
derecha, Mover arriba).
En este punto aparece el concepto de “patrón”, como secuencia de primitivas que se realizan más de
una vez. Es importante identificar estos patrones al analizar la estrategia que implementarán.

Algoritmos y Estructuras de Datos I - 2024 Página 6 de 11


Guía de Trabajos Prácticos 1

Fig. 11. Desafío “Tito enciende las luces”

Método de resolución de problemas

El principal objetivo de estas actividades lúdicas es incorporar un método de resolución de problemas que
sirva para asimilar con mayor facilidad la tarea de programar. El método consiste en la aplicación rigurosa de
los pasos que se muestran en la Tabla 1, aplicados a dos actividades ejemplos:

Tabla 1. Método de resolución de problema


Pasos Ej. 1: Tito enciende las luces Ej. 2: El recolector de estrellas
− Analizar el problema (Ver el escenario)
− Determinar el QUÉ (objetivo) Encender todas las luces Recolectar todas las estrellas
− Pensar una solución global
Pensar un nombre para la solución EncenderLuces RecolectarEstrellas
− Detectar “patrones” (Situaciones que se
− Las filas de estrellas son iguales
repiten y se pueden reutilizar. No siempre Las dos diagonales son iguales − Ubicarse al inicio de cada fila
se presentan patrones)
− Ubicarse al inicio de la primera − Recolectar estrellas de la fila
diagonal − Ubicarse en la siguiente fila
− Pensar una estrategia
− Recolectar estrellas de la fila
− Encender la diagonal
− Dividir el problema en tareas − Ubicarse en la siguiente fila
− Ubicarse al inicio de la segunda − Recolectar estrellas de la fila
(procedimientos)
diagonal − Ubicarse en la siguiente fila
− Recolectar estrellas de la fila
− Encender la diagonal
− RecolectarFila
− UbicarseDiagonal_1 − UbicarseSiguienteFila
− RecolectarFila
− Pensar nombres representativos para las − EncenderDiagonal
− UbicarseSiguienteFila
tareas − UbicarseDiagonal_2 − RecolectarFila
− UbicarseSiguienteFila
− EncenderDiagonal
− RecolectarFila
Luego, se escribe la solución en la herramienta:

Algoritmos y Estructuras de Datos I - 2024 Página 7 de 11


Guía de Trabajos Prácticos 1

Pasos Ej. 1: Tito enciende las luces Ej. 2: El recolector de estrellas

Escribir la solución global

− Analizar las primitivas

− Determinar el CÓMO

− Armar la solución final con:

o las primitivas

o los procedimientos

o las repeticiones

➔ Codificar

Verificar: ejecutar y comprobar que se


haya logrado el objetivo establecido en el
Se encienden todas las luces Se recolectaron todas las estrellas
primer paso (es necesario conocer de
antemano el resultado esperado)

2.3. Continuar resolviendo los demás ejercicios

Los ejercicios deben ser resueltos utilizando los conceptos dados, y aplicando el método de resolución de
problemas.
En la evaluación de las actividades realizadas por los alumnos, el docente tendrá en cuenta:
- Si definieron una estrategia previa,
- Si identificaron patrones (secuencias que se repiten),
- Si subdividieron la estrategia de solución en partes,
- Si esas partes (procedimientos) tienen un nombre adecuado (verbo en infinitivo indicado el propósito
del procedimiento),
- Si realizaron la verificación correspondiente.

Algoritmos y Estructuras de Datos I - 2024 Página 8 de 11


Guía de Trabajos Prácticos 1

Resolver las siguientes actividades correspondientes a desafíos de PilasBloques:


Ejercicio 3: El recolector de estrellas Ejercicio 5: Instalando juegos.
Ejercicio 4: María y las sandías. Ejercicio 6: Reparando la nave.

3. ALTERNATIVA CONDICIONAL

3.1. Alternativa condicional


Los escenarios pueden sufrir variaciones y por lo tanto hace falta una nueva herramienta del lenguaje, no
considerada hasta el momento: la alternativa condicional.
Es fundamental entender que un mismo programa tiene que funcionar en diversos escenarios, cada uno de
los cuales puede presentar variaciones respecto de los otros.

3.1.1.ESCENARIOS CAMBIANTES
Objetivos
- Identificar los cambios que se producen en un escenario dado.
- Utilizar correctamente los comandos necesarios para ejecutar alternativas condicionales.
- Definir los programas adecuados a escenarios cambiantes.
- Establecer comparaciones entre las diversas maneras de resolver un problema.
- Reforzar los conceptos de separación en procedimientos.
- Definir los programas adecuados a escenarios cambiantes.
Resolver las siguientes actividades correspondientes a desafíos de PilasBloques:
Ejercicio 1: El mono y las bananas. Hacer que el mono coma la banana (si hay banana),
Ejecutar varias veces la actividad. Podemos ver que el escenario, en algunos casos muestra la banana y en
otros no. Decimos que tenemos un “escenario cambiante”.
Por tanto, la solución debe incluir la evaluación de la situación para hacer una cosa u otra de acuerdo a la
posición de los elementos del escenario.
Para manejar esto se utiliza el control Alternativa:

Este bloque ejecuta los comandos que contiene siempre y cuando se cumpla
la condición indicada por el Sensor, en este caso: ¿Hay banana acá?

Solución
propuesta:

Fig. 12. El mono y las bananas

Con esta explicación, continuar resolviendo las siguientes actividades correspondientes a desafíos de
PilasBloques:
Ejercicio 2: La elección del mono. Construya un programa en el cual el mono coma una manzana cuando hay
una manzana y que coma una banana cuando hay una banana.

Algoritmos y Estructuras de Datos I - 2024 Página 9 de 11


Guía de Trabajos Prácticos 1

Para resolver este ejercicio, no alcanza con el bloque SI, dado que son 2 frutas: banana o manzana, por tanto,
deben usar el control Si-sino
Gracias a la Alternativa condicional, la cual consta de dos partes: una condición y una acción. (Si se cumple la
condición, entonces será realizada la acción), podemos hacer que nuestro programa sea válido para escenarios
cambiantes.
Ejercicio 3: Tres naranjas Ejercicio 4: Tito recargado Ejercicio 5: El desierto multifrutal

4. REPETICIÓN CONDICIONAL
Este ítem, al igual que el anterior está enfocado en escenarios cambiantes. En este caso, la variación que debe
considerarse tiene que ver con secuencias cuya cantidad de elementos no es conocida de antemano: cada
escenario podrá tener diferente cantidad.
Objetivos
- Distinguir entre escenarios con secuencias de tamaño fijo y escenarios con secuencias de tamaño
variable.
- Comprender la noción de repetición condicional y reconocer las dos partes de las que consta toda
repetición condicional.
- Identificar la estructura de un problema y utilizar esa información para resolverlo.
Ejercicio 1: Súper Tito 1. El autómata (Tito) tiene que encender las luces de cada casilla hasta llegar al final.
Para determinar cómo es el escenario, primero hay que ejecutar varias veces la actividad.
Podemos observar que varía el número de celdas hasta llegar al final.
Para afrontar esta situación aparece un nuevo control, Repetir hasta que, que requiere no una cantidad fija
para repetir como antes sino un SENSOR que le indique la ocurrencia de un suceso, en este caso, si llegó al
final.
Se utiliza el control Repetir hasta que, que ejecutará las primitivas que se incluyen en el bloque (Prender Luz
y Mover abajo), hasta que, se cumpla la condición expresada por el sensor ¿Llegué al final?

Una repetición condicional consta:


 Una condición ante la cual el autómata deja de repetir algo.
 La tarea que el autómata/programa debe repetir hasta que la condición se cumpla.

Solución propuesta:

Fig. 13. Desafío “Super Tito 1” resuelto

Algoritmos y Estructuras de Datos I - 2024 Página 10 de 11


Guía de Trabajos Prácticos 1

4.1. Recorridos y repetición condicional

Un recorrido es una forma de procesar una secuencia de elementos de manera estructurada. Es un


esquema de cómo dividir en subtareas una tarea que implica procesar una secuencia. Un recorrido tiene
las siguientes partes:

 Iniciar recorrido: usualmente, posicionarse en el primer elemento, y realizar las inicializaciones que
correspondan.
 Condición de fin de recorrido: condición que indique cuándo se acabaron los elementos a procesar.
 Procesar elemento actual: el procesamiento propiamente dicho de un elemento por vez.
 Pasar al siguiente elemento: la forma de pasar al siguiente elemento de la secuencia, si existe.
 Finalizar recorrido: en los casos en que fuera necesario, retornar la información pedida, volver a
una posición dada, etc.

Actividades: Resolver estas actividades, recordando que deben aplicar el método de resolución de
problemas.
Ejercicio 2: Super Tito 2: Variante del anterior, el escenario presenta ahora algunas celdas sin luz.

Ejercicio 3: Fútbol para robots

Ejercicio 4: El mono que sabe contar

Algoritmos y Estructuras de Datos I - 2024 Página 11 de 11

También podría gustarte