Вы находитесь на странице: 1из 33

Introducción a la Programación

Actividades de Aprestamiento 2019

a la Programación Actividades de Aprestamiento 2019 Algoritmos y Estructuras de Datos I Licenciatura en Sistemas

Algoritmos y Estructuras de Datos I

Licenciatura en Sistemas de Información FaCENA-UNNE

I Licenciatura en Sistemas de Información – FaCENA-UNNE Material realizado en base al curso de capacitación
I Licenciatura en Sistemas de Información – FaCENA-UNNE Material realizado en base al curso de capacitación

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

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.

diseñadas para tal fin, como PilasBloques y Lightbot. PROPOSITOS DEL CURSO  Presentar la idea de
diseñadas para tal fin, como PilasBloques y Lightbot. PROPOSITOS DEL CURSO  Presentar la idea de

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)

HERRAMIENTAS SOFTWARE

El

software

necesario

para

la

práctica

se

puede

descargar

del

siguiente

link:

2

2

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 1: Autómatas, cómandós y prócedimientós

Las computadoras hacen todo al pie de la letra

Ejercicio 1: que el docente salga del aula
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.

debe realizar para lograr un objetivo predefinido. Ejercicio: El docente “robot” debe salir del aula

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

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
 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 Estrategia de solución Girar 90 grados a la derecha Girar 90 grados a la
Programa
Estrategia de solución
Girar 90 grados a la derecha
Girar 90 grados a la derecha
Avanzar 3 pasos
Girar 90 grados a la izquierda
Avanzar 7 pasos
Ubicarse frente a la puerta
Extender el brazo
Empujar la manija
Abrir la puerta
Avanzar 1 paso
Salir
4

4

INTRODUCCIÓN A LA PROGRAMACIÓN

Ejercicio 2: Seamos autómatas
Ejercicio 2: Seamos autómatas
A LA PROGRAMACIÓN Ejercicio 2: Seamos autómatas Formar grupos de estudiantes de hasta 4 personas. Cada
A LA PROGRAMACIÓN Ejercicio 2: Seamos autómatas Formar grupos de estudiantes de hasta 4 personas. Cada

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

5

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 2: Presentació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.

prenda la/s luces ubicadas en los cuadrados azules del piso. Para ello, el usuario cuenta con

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

descomponerlos.

problemas

de

manera

más

simple

a

partir

del

patrón

que

permite

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.

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?via-

search=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

6

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN Fig. 1. Interfaz de Lightbot  Oprimir Play y aparecerá la pantalla

Fig. 1. Interfaz de Lightbot

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

Play y aparecerá la pantalla que se muestra en la Fig. 2. Fig. 2. Lightbot Nivel

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)1  Los comandos o primitivas que presenta el juego son los siguientes: Girar a la

Girar a la derechaexcepto si está frente a una pared o un desnivel, en cuyo caso permanece en el

Girar a la izquierdaexcepto si está frente a una pared o un desnivel, en cuyo caso permanece en el

7

7

INTRODUCCIÓN A LA PROGRAMACIÓN

Saltar (permite al robot saltar por encima de un solo bloque, o bien saltar de uno)INTRODUCCIÓN A LA PROGRAMACIÓN Prender/Apagar luz  El botón GO ejecuta el programa y el botón

Prender/Apagar luzsaltar por encima de un solo bloque, o bien saltar de uno)  El botón GO

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

o

o

o

dientes a los procedimientos o funciones

o o o   dientes a los procedimientos o funciones , que permiten definir subtareas.

, que permiten definir subtareas.

Mediante los comandos

, que permiten definir subtareas. Mediante los comandos y se indica al robot que ejecute las

y

, que permiten definir subtareas. Mediante los comandos y se indica al robot que ejecute las

se indica al robot que ejecute las nuevas tareas definidas.

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.

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.

de los objetivos se lleva a cabo usando una estrategia .  Cuando aparecen “patrones” que

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

8

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.

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

Fig. 3. Final de Lightbot

9

9

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 3: PilasBlóques

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.

hace uso de la herramienta Pilas Engine de Hugo Ruscitti. Se proponen desafíos con diversos niveles

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

PilasBloques

de

la

asignatura

sección

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

Ejecutar el instalador

Material

de

Laboratorio,

enlace

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

También

se

puede

abrir

la

aplicación

en

línea

en:

10

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN Fig. 4. Interfaz principal PilasBloques  Hacer clic en la pestaña “Desafíos”.

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

y se encastran en el bloque principal (ver Fig. 2). Fig. 2 Bloque principal - Para

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

el botón se convierte a “Reiniciar” (ver Fig. 5). Fig. 3. Botón de ejecución/reinicio La Fig.
el botón se convierte a “Reiniciar” (ver Fig. 5). Fig. 3. Botón de ejecución/reinicio La Fig.

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

11

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN Fig.5. Desafío resuelto Importante : los bloques deben estar perfectamente

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.

sueltos que se encuentren en el panel no se ejecutarán. Es recomendable guardar nuestro programa con

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: AlienTocaBoton- Juanita 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:

los gráficos se puede configurar en Opciones , ubicado en el engranaje que se muestra en
los gráficos se puede configurar en Opciones , ubicado en el engranaje que se muestra en
12

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.

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

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 muestra la solución usando un procedimiento Dormir. Fig. 7. Uso de procedimientos Ejercicio 1:

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

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

14

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 4: Repetición simple I

Objetivos:

Aplicar herramientas de programación para la ejecución de tareas repetitivas.

Reconocer

necesario.

que

las

computadoras

pueden

repetir una

tarea

cuantas veces

sea

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

Solución:

contenidas en el bloque (Ver Fig. 8). Solución: Bloque Repetir Fig. 8. No me canso de
contenidas en el bloque (Ver Fig. 8). Solución: Bloque Repetir Fig. 8. No me canso de

Bloque Repetir

Fig. 8. No me canso de saltar

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

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:

debe repetirse (30 veces), como se muestra a continuación: Para finalizar:  En un programa se

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.

16

16

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 5: Repetición Simple II

Objetivos

Secuencia didactica 5: Repetición Simple II Objetivos  Ejercitar la resolución de problemas mediante

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:

condiciones. La solución que se propone es la siguiente: Se define un procedimiento para comer manzanas

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

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 partes (procedimientos) tienen un nombre adecuado (verbo en infinitivo indicado el propósito del procedimiento).

Ejercicio 6.2: Tito enciende las luces. Construya un programa que permita al robot

encender todas las luces. En esta solución, probablemente intenten repetir 4 veces la primitiva Prender Luz porque existen 4 focos, pero hay un problema, ¿cuál es?

Ejercicio 6.3: El Alíen y las Tuercas. Construya un programa que permita el Alíen junte todas las tuercas.

En este desafío puede haber un problema con la última tuerca.

Ejercicio 6.4: El recolector de estrellas. Construya un programa que permita al extraterrestre tomar todas las estrellas del tablero.

Ejercicio 6.5: María come sandías. Construya un programa que permita a María morder todas las sandías que se encuentran en el tablero.

Ejercicio 6.6: Alimentando a los Peces. Construya un programa que permita al buzo

buscar la comida y que alimente a los peces. Prestar atención, en cada solución, a tener en cuenta la “pista” que se menciona en el enunciado

del desafío.

Ejercicio 6.7: Instalando Juegos. Construya un programa que permita al extraterrestre instalar videojuegos en las tres computadoras de la biblioteca. Para ello debe encender cada computadora, ingresar la contraseña (que en este caso es ABC), cargar el juego y finalmente apagar la máquina.

Ejercicio 6.8: La gran Aventura del Mar Encantado. Construya un programa que permita al héroe (ubicado en el casillero del extremo inferior izquierdo) logre escapar en el unicornio con la princesa. Para ello debe superar una serie de pruebas en el siguiente orden.

Ejercicio 6.9: Reparando la nave. Construya un programa que permita al marciano aprovisionarse de carbón y hierro para reparar su nave y así poder ponerla en

funcionamiento.

18

18

INTRODUCCIÓN A LA PROGRAMACIÓN

Para resolver los desafíos, tener en cuenta:

Pensar una estrategia de solución,

Pensar un nombre adecuado para esa solución (como procedimiento principal),

Practicar el uso de procedimientos como medio de expresar ideas y aportar legibilidad al programa

Nombrar adecuadamente a los procedimientos.

El objetivo principal de esta secuencia didáctica es:

Utilizar la estructura de control para repetición en diversas combinaciones.

Insistir para que los alumnos definan una estrategia de solución en forma previa a la resolución.

Aportar a la Legibilidad mediante la división de la estrategia en tareas (procedimientos) y con nombres adecuados (verbo en infinitivo que indique la acción a realizar).

Consolidar la didáctica por indagación

19

19

INTRODUCCIÓN A LA PROGRAMACIÓN

Metódó de resólución de próblemas

Uno de los objetivos de esta etapa de aprestamiento es incorporar un método de resolución de problema que sirva para asimilar con mayor facilidad la tarea de programar. El método consiste en la aplicación rigurosa los pasos que se muestran a continuación, aplicados a dos actividades ejemplos:

Pasos

Ej. 1: Tito enciende las luces

Ej. 2: El recolector de estrellas

Analizar el problema (Ver el escenario)

   

Determinar el QUE (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 repiten)

Las dos diagonales son iguales

Las filas de estrellas son iguales

Ubicarse al inicio de cada fila

   

Recolectar estrellas de la fila

Pensar una estrategia

Ubicarse al inicio de la primera diagonal

Ubicarse en la siguiente fila

Recolectar estrellas de la fila

Dividir el problema en tareas

Encender la diagonal

Ubicarse en la siguiente fila

(procedimientos)

Ubicarse al inicio de la segunda diagonal

Recolectar estrellas de la fila

Encender la diagonal

Ubicarse en la siguiente fila

Recolectar estrellas de la fila

   

RecolectarFila

UbicarseSiguienteFila

UbicarseDiagonal_1

RecolectarFila

Pensar nombres representativos para las tareas

EncenderDiagonal

UbicarseSiguienteFila

UbicarseDiagonal_2

 

RecolectarFila

EncenderDiagonal

UbicarseSiguienteFila

RecolectarFila

Luego, se escribe la solución en la herramienta:

 
20

20

INTRODUCCIÓN A LA PROGRAMACIÓN

Escribir la solución global

Escribir la solución global
Escribir la solución global

Analizar las primitivas

 Analizar las primitivas
 Analizar las primitivas

Determinar el COMO

Armar la solución final con:

o

las primitivas

o

los procedimientos

o

las repeticiones

Programar

21

21

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 6: Alternativas condicionales

Secuencia didactica 6: Alternativas condicionales Escenarios cambiantes Esta secuencia didáctica propone

Escenarios cambiantes

Esta secuencia didáctica propone volver al robot humano (SD 1) pero ahora el escenario puede sufrir variaciones y por lo tanto hace falta una nueva herramienta del lenguaje, no considerada hasta el momento: la alternativa condicional.

El objetivo fundamental de esta secuencia es entender que un mismo programa tiene que funcionar en diversos escenarios, cada uno de los cuales puede presentar variaciones respecto de los otros.

Objetivos

Introducir la noción de alternativa condicional.

Reconocer escenarios fijos y escenarios cambiantes.

Identificar alternativas en un escenario.

Reforzar los conceptos de división de tareas en procedimientos.

Actividad: El ROBOT HUMANO SALE DEL SALÓN

En la clase, los alumnos deben construir un programa (en lenguaje natural) para que un robot humano (el docente) pueda salir del aula.

Escenario: el aula tiene 2 puertas, y cada día solo una de ellas estará abierta y la otra estará cerrada, sin posibilidades de abrirla.

Pista: Desde la posición del docente, es sencillo determinar cuál de las puertas está abierta.

Hacer que el docente, siguiendo las instrucciones dadas por los alumnos, salga del aula por una puerta o la otra.

Este es un caso de “escenario cambiante, es decir, el autómata tiene que evaluar la situación y realizar una u otra acción (SI… Entonces … SINO …).

22

22

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 7: Alternativas condicionales

Secuencia didactica 7: Alternativas condicionales ejecutar alternativas Objetivos  Identificar los cambios

ejecutar

alternativas

Objetivos

Identificar los cambios que se producen en un escenario dado.

Utilizar

correctamente

los

comandos

necesarios

para

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.

Actividades

Ejercicio 8.1.: El mono y las bananas. Hacer que el mono coma la banana (si hay banana),

bananas. Hacer que el mono coma la banana (si hay banana), Fig. 11. El mono y

Fig. 11. El mono y las bananas

Solución:

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.

23

23

INTRODUCCIÓN A LA PROGRAMACIÓN

Para manejar esto se utiliza el control Alternativa:

Para manejar esto se utiliza el control Alternativa : Este bloque ejecuta los comandos que contiene

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á?

indicada por el Sensor, en este caso: ¿Hay banana acá? Con esta explicación, continuar resolviendo las

Con esta explicación, continuar resolviendo las siguientes actividades:

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

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 8.3.: Laberinto corto. Construya un programa en el cual el robot avance un paso en la dirección correcta.

Ejercicio 8.4.: Tres naranjas. Construya un programa en el cual el marciano recorrer las casillas y comer las naranjas.

Ejercicio 8.5.: Tito recargado. Construya un programa en el cual Tito encienda las luces.

Ejercicio 8.6.: Laberinto largo. Construya un programa en el cual el robot avance hasta el final, en las direcciones correctas.

24

24

INTRODUCCIÓN A LA PROGRAMACIÓN

Secuencia didactica 8: Repetición condicional

Esta secuencia, al igual que en la secuencia didáctica anterior está enfocada 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

cada escenario podrá tener diferente cantidad. Objetivos  Distinguir entre escenarios con secuencias de tamaño

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.

Actividad: SUPER TITO 1

El autómata (Tito) tiene que encender las luces de cada casilla hasta llegar al final.

encender las luces de cada casilla hasta llegar al final. Solución: Para determinar cómo es el

Solución:

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.

25

25

INTRODUCCIÓN A LA PROGRAMACIÓN

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?

la condición expresada por el sensor ¿Llegué al final? Solución: Una repetición condicional consta:  Una

Solución:

expresada por el sensor ¿Llegué al final? Solución: Una repetición condicional consta:  Una condición

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

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.

26

26

INTRODUCCIÓN A LA PROGRAMACIÓN

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: definir la estrategia, dividir en subtareas, representar cada subtarea con un procedimiento y nombrarlos adecuadamente.

Super Tito 2: Variante del anterior, el escenario presenta ahora algunas celdas sin luz.

Laberinto con queso

Fútbol para robots

Prendiendo las compus

El superviaje

27

27

INTRODUCCIÓN A LA PROGRAMACIÓN

MARCO CONCEPTUAL

1. Herramientas conceptuales

Estrategia de solución y división en subtareas

Legibilidad y elección de nombres adecuados

Algorítmica básica: recorridos

2. Herramientas del lenguaje

2.1. Acciones (comandos - “verbos”)

Comandos primitivos; secuencia de comandos

Procedimientos y parámetros

Repetición simple y repetición condicional

Alternativa condicional

2.2. Datos (expresiones - “sustantivos”)

Valores (literales numéricos y otros)

Sensores y datos primitivos; sensores de interactividad

Operadores, parámetros y Variables

1. Herramientas conceptuales

a) La noción de estrategia de solución, y la de su explicitación para aplicar la metodología de división en subtareas,

b) La noción de que los programas son fundamentalmente un medio de comunicación entre personas, además de servir como vehículo para hacer funcionar máquinas, capturado en la importancia de que los programas sean legibles (o sea, claramente entendibles por otros programadores) y esto a su vez expresado mediante la metodología de elección de nombres adecuados para cada una de las partes de un programa que se escribe.

c) La noción de algorítmica básica, expresada en este curso en forma simplificada, por ejemplo, en la noción de recorrido.

a) Estrategia de solución y división en subtareas

Toda vez que se busca solucionar algún problema, es necesario contar primero con alguna idea de cómo encarar dicha solución, o sea, qué elementos disponer para la solución y de qué manera.

Esto en programación se conoce como estrategia de solución: ¿qué cosas considerar a la hora de realizar la solución? ¿Cuáles son los componentes que interactuarán en la solución para obtener la respuesta deseada, y de qué manera lo harán?

Una forma de expresar estrategias de solución es considerando pequeños problemas cuyas soluciones combinadas provean la solución al problema general.

Esta forma de descomponer un problema en sub-problemas (o una tarea a realizar en sub- tareas) es una de las bases conceptuales de la programación. La división en subtareas, representa a la forma de pensar composicionalmente y es una herramienta conceptual invalorable en el pensamiento de alto orden.

Vale la pena remarcar que mientras que la estrategia de solución es una idea particular de cómo resolver un problema, la división en subtareas es una forma específica de cómo expresar dicha estrategia a través de soluciones a problemas más pequeños.

28

28

INTRODUCCIÓN A LA PROGRAMACIÓN

Si bien, los primeros ejercicios son muy sencillos, es básico para el objetivo de este curso que en

cada uno de los ejercicios la estrategia de solución elegida sea explicitada y luego expresada a través de subtareas. Esto se logra combinando las herramientas del lenguaje con las demás herramientas conceptuales de manera adecuada; pero el concepto fundamental subyacente en todo momento explicitar la estrategia de solución a través de la adecuada división en subtareas (además de la habilidad de nombrar adecuadamente cada una y de utilizar las herramientas del lenguaje adecuadas para construir la solución).

La herramienta del lenguaje básica para expresar subtareas y estrategias es el procedimiento.

Resumiendo, los pasos recomendados para solucionar un problema mediante un programason:

1. Idear una estrategia de solución, y explicitarla.

2. Expresar la estrategia mediante alguna división en subtareas.

3. Declarar y nombrar adecuadamente un procedimiento principal que exprese la estrategia

ideada.

4. Declarar y nombrar adecuadamente procedimientos que expresen las subtareas.

5. Utilizar estos procedimientos para definir el procedimiento principal, y validar que la estrategia de solución resulte clara al leerlo. Seguir para esto el principio de utilizar como máximo una estructura de control por procedimiento (para fomentar aún más la subsiguiente división en subtareas).

6. Definir cada uno de los procedimientos que expresan subtareas, repitiendo para cada sub-

problema particular los pasos antedichos para definir la solución a un problema.

b) Legibilidad Para entender el concepto de legibilidad, primero tenemos que saber que “un programa es una descripción ejecutable de la solución a un problema computacional”.

Los programas son entidades “duales” dado que deben indicarle a una máquina cómo funcionar, pero, también deben comunicar la solución propuesta a las personas.

O sea, los programas son manipulados por dos entidades: máquinas, pero también personas.

Las definiciones y propuestas tradicionales ponen todo el énfasis en la máquina que ejecuta el programa y en su funcionamiento, y dejan en segundo plano el valor comunicacional del programa, invisibilizando de alguna manera a las personas que los programan.

En este curso se enfatiza el valor comunicacional de un programa y se valora la “legibildad” de las soluciones propuestas.

Se dice que un programa es legible cuando puede ser leído con sencillez por una persona, y entendido con poca o ninguna explicación adicional.

La legibilidad se ve expresada en la elección de nombres adecuados para las entidades que se escriban en el programa: procedimientos, parámetros, variables y otras entidades.

Si bien no existe una definición precisa de qué constituye un nombre adecuado, existen algunos

criterios generales: Por ejemplo, es universalmente aceptado que los nombres de una o dos letras son extremadamente inadecuados en la mayoría de los casos, y también que los nombres extremadamente largos (por ejemplo, que ocupan todo un renglón o más), también. Se suelen favorecer nombres cortos pero descriptivos. En el caso de los comandos, por ejemplo, estos nombres usualmente requieren verbos en infinitivos: Avanzar, tocar, …

29

29

INTRODUCCIÓN A LA PROGRAMACIÓN

Adicionalmente, se requiere que el nombre brinde una idea correcta respecto del propósito de

la entidad nombrada, pues si no usualmente conduce a confusiones que limitan o complican la

legibilidad (por ejemplo, es inadecuado nombrar con el identificador Rojo a un valor que luego se utiliza para dibujar figuras verdes, o nombrar como Avanzar un paso adelante a un procedimiento que permanece en el lugar; en cambio habrían sido nombres adecuados Verde y Permanecer en el lugar, respectivamente.

La correcta utilización de estas herramientas conceptuales tiene un impacto directo en la calidad de los programas que se escriben. Esto es fundamental cuando se forman programadores profesionales, pues código de calidad significa mayor productividad. Sin embargo, esta forma de pensar y organizarse tiene valor más allá de las aplicaciones profesionales de la programación,

y es por eso una de las razones por las que desde la iniciativa Program.AR, que provee el

contexto de este curso, se busca generalizar la enseñanza de las Ciencias de la Computación.

Las estrategias de solución, la correcta comunicación de soluciones a problemas, y mecanismos elementales de solución de problemas sencillos habilitan y fomentan la formación de capacidades de pensamiento de alto orden, que hoy día es aceptado como forma fundamental del pensamiento humano.

c) Algorítmica básica: recorridos

Básicamente, un recorrido es un esquema de repetición en el cuál se realiza una tarea para cada

uno de los elementos de una serie, pues recorre la secuencia de elementos de a uno, procesando de alguna forma cada uno de ellos.

La idea de un recorrido es organizar la división en subtareas a la hora de resolver una tarea que requiere trabajar con cada uno de los elementos de una secuencia, de manera tal de simplificar la confección de una solución y garantizar el correcto funcionamiento de la misma. De esta forma, habrá subtareas para iniciar el recorrido, determinar si se terminaron los elementos, procesar un elemento, pasar al siguiente elemento y para finalizar el recorrido.

La secuencia de elementos que un recorrido se encarga de procesar puede ser muy concreta (por ejemplo, una serie de elementos en fila, como ser frutas o señales) o ser más abstracta (por ejemplo, una serie de posiciones distantes a visitar en un mapa o incluso un recorrido sobre números para resolver un problema numérico tal como calcular una factorial). Sin embargo, cuanto más abstracta resulte la secuencia, más complejo será transmitir la idea adecuadamente.

Por eso, se recomienda que en un curso inicial los recorridos se mantengan lo más concretos que sea posible. Los ejemplos del cuaderno fueron elegidos para garantizar esta cuestión.

2. Herramientas del lenguaje

2.1. Acciones (comandos - “verbos”)

Comandos primitivos; secuencia de comandos

Procedimientos y parámetros

Repetición simple y repetición condicional

Alternativa condicional

2.2. Datos (expresiones - “sustantivos”)

Valores (literales numéricos y otros)

Sensores y datos primitivos; sensores de interactividad

Operadores, parámetros y Variables

30

30

INTRODUCCIÓN A LA PROGRAMACIÓN

En la programación, la forma de expresar las ideas y soluciones propuestas es, invariablemente,

a través de un lenguaje de programación.

Un lenguaje de programación determinado establece cómo escribir programas en dicho lenguaje, y provee diferentes herramientas, y diferentes formas de combinarlas, pero todas esas formas se pueden entender como casos particulares de una serie genérica de herramientas.

Las herramientas del lenguaje se pueden clasificar según el tipo de elementos que describen:

los comandos se utilizan para describir acciones y las expresiones se utilizan para describir datos.

En un lenguaje natural, las acciones se describen mediante verbos y los datos se describen mediante sustantivos. Por esa razón, se puede establecer la analogía y pensar a los comandos como verbosy a las expresiones como sustantivos.

El programa se arma combinando verbos y sustantivos para brindar a la máquina que lo

ejecutará la descripción adecuada para que pueda llevar a cabo la solución. Los comandos le indicarán acciones que debe realizar, y las expresiones le indicarán con qué datos deben llevarse

a cabo las acciones. Ejemplo: Avanzar (10 pasos), el comando Avanzar indica la acción y la expresión (10 pasos), indica cuánto avanzar.

2.1. Acciones (comandos-verbos)

Los comandos se pueden clasificar de diversas maneras.

Comandos primitivos:

Descripción de las acciones elementales que la máquina que ejecutará el programa puede realizar; cada máquina considerada tendrá diferentes capacidades, lo cual se verá reflejado en el conjunto de comandos primitivos que se manejen desde el lenguaje.

La primera forma de combinación de comandos primitivos (y luego, de comandos en general) es la secuenciación. En una secuencia de 2 comandos, por ejemplo, se realiza la acción indicada por el primer comando y habiendo terminado esa acción, se realiza la acción indicada por el segundo comando. Es la forma básica de combinación, que resulta imprescindible para construir acciones más complejas.

Procedimientos:

La siguiente forma de combinación de comandos primitivos que se propone trabajar es el procedimiento. Los procedimientos son la herramienta que plasma de manera más precisa la noción de abstracción que se busca transmitir, y por eso se consideran una herramienta fundamental.

Un procedimiento en su forma más simple no es más que una acción compleja (obtenida, por ejemplo, por secuenciación de acciones más elementales) a las que se les asigna un nombre que la identifica. Puede entenderse esta herramienta también como una forma de definición de nuevos comandos. Por ejemplo, si se cuenta con el comando primitivo AvanzarUnPaso(), se puede definir el procedimiento AvanzarTresPasos() como la secuencia AvanzarUnPaso(); AvanzarUnPaso(); AvanzarUnPaso(). Tal cual se describió anteriormente, la elección de un nombre adecuado que describa de manera precisa el propósito del procedimiento es básica para la correcta legibilidad del programa.

31

31

INTRODUCCIÓN A LA PROGRAMACIÓN

Los procedimientos constituyen uno de los pilares fundamentales de este enfoque de enseñanza de la programación. Son la forma de explicitar en el lenguaje la división en subtareas, y por ello comparten la importancia de dicha herramienta conceptual.

La división en subtareas y procedimientos pueden verse como dos instancias, una del lado conceptual y la otra del lado del lenguaje, del mismo concepto fundamental: la abstracción.

Es importante hacer una observación sobre la denominación de procedimiento, en algunas herramientas o enfoques lo que aquí se denomina procedimiento se puede encontrar nombrado como funciones, bloques, subrutinas, o alguna otra forma. Pero en cada caso, es claro que se trata de un mecanismo de abstracción sobre comandos, una forma de definir nuevos comandos.

En su forma más simple, los procedimientos solamente le dan nombre a alguna acción compleja devenida a partir de combinación de otros comandos. Sin embargo, el verdadero poder expresivo de los procedimientos se encuentra cuando se los combina con la noción de parámetro. Los parámetros son una herramienta que permite expresar muchos procedimientos diferentes mediante un único procedimiento parametrizado. Un parámetro es como un “agujero” que el procedimiento tiene, y que debe ser completado con un dato: el argumento. El argumento provisto para completar el parámetro determina cuál de las instancias específicas expresadas por el procedimiento parametrizado se busca utilizar.

Los parámetros son otra forma de conseguir abstracción: muchos casos particulares son expresados de una sola vez a través de un procedimiento parametrizado. Sin embargo, esta

forma de abstracción es mucho más difícil de transmitir que la de procedimiento, especialmente

a estudiantes que recién se inician en la programación. Por esa razón, en este curso los parámetros aparecen de manera tardía, y no se hace un fuerte hincapié en ellos.

La noción de parámetro y parametrización es crítica en la formación de un programador profesional.

Repetición simple y condicional

La clasificación de comandos continúa con diversas formas de combinación de comandos: dos formas de repetición (simple y condicional) y una forma de alternativa (condicional). Estas herramientas permiten aumentar el poder expresivo de la persona que programa al habilitar o facilitar comportamientos complejos, que son o bien difíciles o bien imposibles de expresar utilizando solamente las herramientas previas.

Nuevamente, la didáctica por indagación debe ser tenida en cuenta al presentar las herramientas, para que de esa forma la utilización de las mismas no sea el resultado de una receta, sino el fruto de la necesidad. Los ejercicios propuestos guían en este enfoque.

A la hora de presentar repeticiones es conceptualmente más simple comenzar con una forma

de repetición que repite un número fijo de veces.

La forma avanzada de repetición que se presenta en el curso es la que se denomina repetición condicional, pues la cantidad de repeticiones no se conoce a priori, y se utiliza una condición como mecanismo para determinar cuándo dejar de repetir. Esta forma de repetición es conocida por muchos con nombres menos descriptivos, como while” o “do while(mientras) o repeat

32

32

INTRODUCCIÓN A LA PROGRAMACIÓN

until(repetir hasta); sin embargo, es conveniente utilizar la denominación de repetición condicional, pues es más descriptiva y adecuada a la hora de ubicarla en el marco conceptual.

También importa la dificultad didáctica de cada una de las variaciones de la repetición condicional. En este curso se propone la utilización de la forma repetir hastapor ser más sencilla desde el punto de vista didáctico que su equivalente repetir mientras. Esto se refleja en los ejercicios propuestos, y no debe ser pasado por alto.

Alternativa condicional

La alternativa condicional es una forma de elegir entre dos posibles cursos de acción, basándose en una condición. Es comúnmente conocida como if-then-else” o simplemente “if” o a veces “condicional”. Pero estas formas familiares de denominarla ignoran el hecho fundamental de que lo que se está expresando es una alternativa entre dos posibles acciones.

2.2. Expresiones

La siguiente categoría de elementos de un lenguaje de programación que consideramos es la de expresiones, que son la manera de describir información, y por ello equiparables a los sustantivosde un lenguaje natural.

En su forma más básica, las expresiones aparecen en forma literal, por ejemplo, para representar números (2, 17, 42, etc.) o cadenas de caracteres ("hola", "Este es un string", etc.) o valores de verdad (verdadero y falso).

Las expresiones pueden ser:

nombres que representan información de manera indirecta, a saber, parámetros y variables, y

sensores y datos primitivos que representan la información que la máquina puede recolectar del medio ambiente en el que ejecuta.

No se continúa profundizando en las herramientas del lenguaje de la categoría expresiones porque no se presentan en los ejercicios previstos, dado que, se realizó una selección de los más básicos, enfocados principalmente en los comandos más usuales.

33

33