AED1-Aprestamiento 2017-Alumnos PDF

Title AED1-Aprestamiento 2017-Alumnos
Course Algoritmos Y Estructuras De Datos I
Institution Universidad Nacional del Nordeste
Pages 31
File Size 1.7 MB
File Type PDF
Total Downloads 92
Total Views 152

Summary

Ejercicios practico - aprestamiento...


Description

Introducción a la Programación Actividades de Aprestamiento 2017

Algoritmos y Estructuras de Datos I Licenciatura en Sistemas de Información – FaCENA-UNNE

Material realizado en base al curso de capacitación de la iniciativa Program.Ar de la Fundación Sadosky: http://www.fundacionsadosky.org.ar/category/programar/. Febrero 2017.

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN OBJETIVOS Este curso tiene como objetivo 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. Se utilizarán herramientas especialmente diseñadas para tal fin, como PilasBloques y Lightbot.

PROPOSITOS DEL CURSO     

Presentar la idea de programa y demostrar que con estos se puede representar ideas y resolver problemas. Entender que las computadoras sirven para ejecutar programas y realizan lo que el programa indique. Incentivar a los alumnos a que se animen a ser creadores de programas y no sólo usuarios de aplicaciones hechas por terceros. Ejecutar programas diseñados por los propios alumnos. Detectar y corregir errores de los programas propios.

 Simplificar problemas de programación utilizando diversas técnicas. Las actividades están basadas en el curso de Introducción a la Programación, elaborado por la Fundación Sadosky. (www.fundaciónsadosky.com)

2

INTRODUCCIÓN A LA PROGRAMACIÓN

S ecuenc ia did a ctica 1: Autó matas , cóma nd ós y prócedimientós Las computadoras hacen todo al pie de la letra

Ejercicio 1: que el docente salga del aula Actividad: El ROBOT HUMANO Objetivo: Introducir el concepto de orden o instrucción que un autómata (la computadora) debe realizar para lograr un objetivo predefinido.

Ejercicio: El docente “robot” debe salir del aula siguiendo instrucciones de los alumnos. Desarrollo:

-

Un docente se ubica en una posición fija. Los alumnos deben dar instrucciones para salir del aula. Otro docente hace de “escriba” y escribe las instrucciones dadas por los alumnos. El docente “escriba” tacha las instrucciones incorrectas cuando se trata de acciones que el robot no puede ejecutar (detecta “error” de ejecución).

Hacer hincapié en que el autómata ejecuta órdenes precisas y sólo hace lo que se le indica, ni más ni menos. Ejemplo de órdenes precisas:

   

avanzar cantidad pasos girar a derecha (90 grados) girar a izquierda (90 grados) abrir puerta

Estas instrucciones constituyen las “primitivas”, o “comandos”, es decir, las instrucciones predefinidas que el robot puede ejecutar. Para cualquier otra orden el autómata va a responder “no entiendo” Si se les da instrucciones que no contribuyen a lograr el objetivo el autómata las realiza de todas formas; por ejemplo, si las instrucciones hacen que el autómata se choque contra la pared el autómata debe chocarse. 3

INTRODUCCIÓN A LA PROGRAMACIÓN

Primitivas - Comandos

 Instrucciones básicas: órdenes o acciones sencillas  Ejemplos: “dar un paso hacia delante”, “girar hacia la derecha”, “girar hacia la izquierda”, “abrir puerta”, “levantar el brazo derecho”, etc… Secuencia lógica

 Orden en el que se indican las primitivas Para reflexionar: 

 

¿Qué pasaría con el autómata si las acciones hubieran sido muy generales o muy complejas (por ejemplo, “caminar” o “dibujar una casa”), ¿las podría haber ejecutado? ¿Por qué? ¿Se modificaría el resultado final de la secuencia al cambiar el orden de las acciones? ¿Qué ocurriría en los siguientes casos? o Se le ordena al autómata que se siente en una silla, pero no hay ninguna silla. o Se le dice al autómata que levante el brazo derecho y ya lo tiene levantado. o Se le pide al autómata que levante el brazo derecho mientras tiene levantado el brazo izquierdo, y no se especifica si antes debe bajar este brazo o no.

Metodología para resolución de ejercicios:  Identificar la estrategia de resolución del problema planteado  Identificar las partes que componen la estrategia, reconociendo aquellas que se repiten  Implementar la estrategia general y las partes que lo componen A modo de ejemplo, la estrategia de solución podría resumirse en:

-

Ubicarse frente a la puerta Abrir la puerta Salir Programa Girar 90 grados a la derecha Girar 90 grados a la derecha Avanzar 3 pasos Girar 90 grados a la izquierda Avanzar 7 pasos

Estrategia de solución

Ubicarse frente a la puerta

Extender el brazo Empujar la manija

Abrir la puerta

Avanzar 1 paso

Salir

4

INTRODUCCIÓN A LA PROGRAMACIÓN

Ejercicio 2: Seamos autómatas

Formar grupos de estudiantes de hasta 4 personas. Cada grupo debe:

-

Definir un conjunto de comandos simples Una tarea que pueda realizarse con los comandos simples Establecer un contexto inicial para realizar la tarea

Ejemplo: Baile cosaco



Conjunto de comandos: - Cruzar los brazos - Estirar los brazos - Decir ¡HEY! - Levantar rodilla izq/der - Estirar pierna izq/der - Bajar pierna izq/der



tarea: - escribir un programa que indique cómo bailar cosaco. contexto inicial: - parado con los brazos al lado del cuerpo.



Tiempo estimado para el trabajo del grupo 15 min 2 o 3 grupos pasan al frente a escribir el programa y ejecutarlo.

5

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuenc ia did a ctica 2: Pre sentació n de Lightbót Lightbot es un juego de ingenio en el que se le indican instrucciones a un robot que tiene por objetivo llegar a un destino determinado. El objetivo del juego es lograr en cada nivel que el robot prenda la/s luces ubicadas en los cuadrados azules del piso. Para ello, el usuario cuenta con una serie de acciones en forma de íconos y una grilla en la que ubicarlas. Objetivos:



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.

Comenzando…

 Descargar

el instalador del aula virtual de la asignatura: moodle.unne.edu.ar/login/index.php, sección Material de Laboratorio.

http://virtual-

 Ejecutar el instalador  Abrir la aplicación Lightbot, que presentará la interfaz que se muestra en la Fig.1.  También se puede: 

Jugar on line en su página oficial: http://armorgames.com/play/2205/light-bot?viasearch=1



Descargar el juego en su celular (disponible en Play Store de Android y en Apple Store de IOS). La versión gratuita es Lightbot Hour (de la Hora del Código).

6

INTRODUCCIÓN A LA PROGRAMACIÓN

Fig. 1. Interfaz de Lightbot

 Oprimir Play y aparecerá la pantalla que se muestra en la Fig. 2.

Fig. 2. Lightbot Nivel 1



Los comandos o primitivas que presenta el juego son los siguientes: Avanzar (hace que el robot avance un casillero, excepto si está frente a una pared o un desnivel, en cuyo caso permanece en el mismo lugar) Girar a la derecha Girar a la izquierda

7

INTRODUCCIÓN A LA PROGRAMACIÓN

Saltar (permite al robot saltar por encima de un solo bloque, o bien saltar de uno) Prender/Apagar luz

 El botón GO ejecuta el programa y el botón RESET borra las instrucciones y reinicia.  En todos los niveles hay un objetivo concreto que consiste en prender las luces.  Hay secuencias que sirven para alcanzar el objetivo y otras que no.  También pueden definirse procedimientos usando F1 y F2.

 Avanzar hasta el nivel 6 del juego utilizando solo la grilla correspondiente al Procedimiento principal (Main Method). Utilizar procedimientos Se puede avanzar hasta el nivel 5 sin dificultades. En el nivel 6 veremos que no alcanzan los espacios del MAIN METHOD para resolverlo. Entonces, es necesario utilizar las grillas correspondientes a los procedimientos o funciones y

, que permiten definir subtareas.

o

Mediante los comandos

se indica al robot que ejecute las nuevas tareas definidas.

o

Cada grupo admite hasta ocho acciones por tarea ya que es parte del juego que el jugador piense la forma de utilizar las casillas eficazmente.

o

Así, por ejemplo, si el procedimiento o función 1 se define como avanzar tres veces, al colocar el comando en la primera grilla, se está indicando al robot que se mueva tres pasos hacia adelante.



Los procedimientos sirven para AGRUPAR SECUENCIAS DE ACCIONES QUE SE REPITEN (IDENTIFICACIÓN DE PATRONES).



Avanzar hasta el nivel 9 (del 10 en adelante son optativos).

Para finalizar:

 En cada nivel había un objetivo a cumplir 

El cumplimiento de los objetivos se lleva a cabo usando una estrategia.



Cuando aparecen “patrones” que se repiten es conveniente usar procedimientos (F1, F2) 8

INTRODUCCIÓN A LA PROGRAMACIÓN

 En cada uno de los niveles hay una noción de estado: 

A partir de una secuencia, ¿dónde queda el robot?



¿Qué luces quedan prendidas?

Al finalizar los niveles de Lightbot, aparecerá la pantalla que se muestra en la Fig. 3.

Fig. 3. Final de Lightbot

9

INTRODUCCIÓN A LA PROGRAMACIÓN

S ecuenc ia did a ctica 3: Pila sB lóq ues Presentación de PILASBLOQUES PilasBloques es una aplicación para aprender a programar. Fue desarrollada por Program.AR - Fundación Sadosky con la colaboración de Huayra. Esta aplicación hace uso de la herramienta Pilas Engine de Hugo Ruscitti. Se proponen desafíos con diversos niveles de dificultad para acercar a los alumnos al mundo de la programación por medio de bloques. Pilas Bloques está pensado para trabajar con estudiantes que no tienen conocimientos previos en materia de programación. 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.  Identificar tareas nuevas y crear los procedimientos adecuados Introducción al entorno PILASBLOQUES

 Descargar el instalador 

Del aula virtual de la asignatura sección Material de Laboratorio, enlace PilasBloques



Del sitio Program.ar: http://bit.ly/2lTPtd9

 Ejecutar el instalador  Abrir la aplicación PilasBloques, que presentará la interfaz que se muestra en la Fig.4.  También

se puede abrir la http://pilasbloques.program.ar/online/#/desafios

aplicación

en

línea

en:

10

INTRODUCCIÓN A LA PROGRAMACIÓN

Fig. 4. Interfaz principal PilasBloques

 Hacer clic en la pestaña “Desafíos”. Se muestran las distintas actividades. -

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. 2).

Fig. 2 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. 3. Botón de ejecución/reinicio La Fig. 4 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.

11

INTRODUCCIÓN A LA PROGRAMACIÓN

Fig.5. Desafío 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. Es recomendable guardar nuestro programa con el botón , dándole un nombre representativo. Si estás en el aula de laboratorio, añadir al nombre del archivo tu nombre y apellido para identificar la solución de las de tus compañeros. Por ejemplo: AlienTocaBotonJuanita Romero. Respetando las consignas dadas por el profesor respecto del almacenamiento (en qué carpetas guardar los archivos). Comentario: Si hay problemas con el tamaño de los objetos en la pantalla, el porcentaje de visualización de los gráficos se puede configurar en Opciones, ubicado en el engranaje que se muestra en el extremo superior derecho:

12

INTRODUCCIÓN A LA PROGRAMACIÓN Actividad: El gato en la calle

 Abrir la actividad El gato en la calle. Aparecerá la interfaz que se muestra en la Fig. 6.

Fig. 6. El gato en la calle 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. Solución: La Fig. 7 muestra la solución usando un procedimiento Dormir.

Fig. 7. Uso de procedimientos Ejercicio 1: Variante del ejemplo anterior: Resolver el desafío El gato en la calle, creando y utilizando un procedimiento Dormir y un procedimiento Despertar. 13

INTRODUCCIÓN A LA PROGRAMACIÓN 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: o

Un comando o “primitiva” es una acción que genera un efecto.

o

Un programa es una secuencia de comandos.

o

Correr o ejecutar un programa es hacer que un autómata realice los comandos de un programa.

o

Se pueden definir nuevos bloques (procedimientos) para realizar secuencias específicas.

o

La denominación adecuada de los procedimientos contribuye a la legibilidad.

o La definición de la estrategia y la división en tareas facilita la comprensión de la solución global.

14

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuenc ia did a ctica 4: 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.

Actividad: NO ME CANSO DE SALTAR -

Abrir la aplicación PilasBloques, en la pestaña “Desafíos”, abrir 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. 8).

Bloque Repetir

Fig. 8. No me canso de saltar Solución: 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.

15

INTRODUCCIÓN A LA PROGRAMACIÓN 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 a continuación:

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 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.

En general, cuando un comando (o una secuencia de comandos) se repite se debe usar el bloque Repetir.

16

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuenc ia did a ctica 5: 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. Actividades

 Ejercicio 6.1.: El marciano en el desierto. Construya un programa en el cual el marciano coma todas las manzanas del tablero. Al presentar este desafío a los alumnos, hay que detenerse un momento para que analicen el “escenario”: ¿Cómo están distribuidas las manzanas? ¿Dónde se ubica el autómata? ¿Cuántos casilleros aparecen? Pedirles que ejecuten varias veces (siempre con el bloque Al empezar ejecutar vacío) para que se den cuenta que el escenario es FIJO y que el autómata siempre está en la misma posición inicial. Es decir, la solución que hagamos resuelve el problema siempre que se mantengan esas condiciones. La solución que se propone es la siguiente:

Se define un procedimiento para comer manzanas en cada ubicación de las mismas, y otro procedimiento para ubicar al autómata. El bloque Repetir se usa para repetir el conjunto de acciones o primitivas que se realiza más de una vez (por ejemplo, Mover a la derecha, Comer manzana). En este punto conviene introducir el concepto de “patrón”, como secuencia de primitivas que se realizan más de una vez. Los alumnos deben identificar estos patrones al analizar la estrategia que implementarán. 17

INTRODUCCIÓN A LA PROGRAMACIÓN Continuar resolviendo los demás ejercicios Los ejercicios a continuación deben ser resueltos utilizando los conceptos dados. Teniendo en cuenta que la dinámica de la clase es: se plantea el desafío, se dedica un tiempo para la resolución, se comparte la solución con los compañeros. Se espera que todos aporten opiniones que contribuyan a mejorar la estrategia de resolución. Evaluar: - Si definieron una estrategia previa, - Si identificaron patrones (secuencias que se repiten), - Si subdividieron la estrategia de solución en partes, - Si esas parte...


Similar Free PDFs