SESIÓN 1

TEMAS

//////////////////////////////////////////////////////////////////////////////////////

  • Algoritmos

  • Estructuras de control

  • Introducción a la programación en Scratch

Pensamiento computacional: Algoritmos

¿Alguna vez le diste instrucciones a una persona para llegar de un lugar a otro? o ¿le ayudaste a alguna persona mayor a crear un correo electrónico o una cuenta en Facebook? o ¿seguiste una receta de cocina para preparar un platillo?

 

Si tú respuesta a alguna de estas preguntas es sí, entonces ya conoces algo de Pensamiento Computacional.

Supongamos que queremos enseñarle a una persona a preparar un sencillo sándwich de jamón. Los pasos los podemos describir como lo siguiente:

- Tomar dos rebanadas de pan

- Colocar una rebanada de jamón sobre una de ellas

- Colocar una rebanada de queso sobre el jamón

- Colocar la segunda rebanada de pan sobre el queso

Y listo, ya tenemos un sencillo sándwich de jamón.

Observa que el proceso anterior lo describimos como una secuencia de pasos que se siguen en orden, esto es, uno detrás de otro.

 

Veamos otro ejemplo: queremos detallar el proceso de cambiar un foco de una lámpara. El proceso podría ser algo como lo siguiente:

- Sí me falta repuesto de foco

      comprar el repuesto

- Apagar el interruptor de la lámpara

- Repetir

      Girar el foco quemado en sentido a las manecillas del reloj

- Hasta sacarlo del portalámparas

- Tirar a la basura el foco quemado

- Colocar el repuesto del foco en el portalámparas

- Repetir

      Girar el foco en sentido contrario a las manecillas del reloj

- Hasta que quede apretada

Observa que de la misma forma, tenemos una secuencia de pasos en orden y también estamos utilizando una decisión:

- Sí me falta repuesto de foco

      comprar el repuesto

Y también repeticiones e iteraciones.

 

La secuencia, la decisión y la iteración son lo que llamamos ESTRUCTURAS DE CONTROL y con ellas podemos construir programas.

 

 

 

Describimos el proceso de preparar un sándwich o de cambiar el foco de una lámpara como un proceso paso a paso esta secuencia ordenada de pasos se llama ALGORITMO.

 

Los algoritmos describen el proceso para llevar a cabo una tarea o resolver un problema en una forma paso a paso. Pueden incluir secuencias, decisiones e iteraciones cómo se ilustró en los ejemplos anteriores.

 

Un aspecto muy importante en los algoritmos es la claridad que se debe tener al dar las instrucciones. Es decir, el algoritmo siempre debe ser CLARO.

Veamos cómo funciona esto con el siguiente ejemplo. Sigue en una hoja de papel las siguientes instrucciones para dibujar una figura:

- Dibuja un segmento de recta horizontal

- Dibuja un segmento de recta vertical que cruce al

  otro segmento.

- Une los extremos de los segmentos con líneas rectas

- En una de los extremos dibuja una línea curva

¿Qué fue lo que resultó?  Se supone que lo que yo deseaba que dibujaras era lo siguiente.

El algoritmo que te mostré es demasiado ambiguo porque hay muchas maneras de interpretarlo. Seguramente tu dibujo es una figura totalmente distinta que no se parece a lo que trataba yo de describir.

¿Puedes escribir un algoritmo más claro para dibujar la figura mostrada? Inténtalo y pruébalo con tus amigos.

VIDEO DE APOYO

Como lo demuestra el ejemplo anterior es muy importante ser muy claro para dar instrucciones a un ser humano y mucho más cuando estamos hablando de sistemas de cómputo. Estos solo siguen instrucciones y si no son claras para ellos, no funcionarán como deseamos.

Para implementar prácticamente lo referido a ALGORITMOS y SECUENCIAS DE CONTROL te recomiendo revises la página https://blockly.games/ y realices los ejercicios ahí mostrados.

Siguiendo con el tema de los algoritmos, una forma muy eficaz de representar un algoritmo es a través de los llamados diagramas de flujo.

 

Los diagramas de flujo se utilizan en diferentes disciplinas e industrias, entre ellas ingeniería, ciencias físicas y programación de computadoras, en los cuales se requiere una comprensión completa de los procesos o flujos de trabajo. Estos son diagramas que se utilizan para representar procesos o flujos de trabajo, es decir, simplemente ilustran cómo debe funcionar un proceso.

Es importante mencionar que, los diagramas de flujo no requieren terminología ni símbolos complejos y específicos de la industria o la disciplina.

Además, un diagrama de flujo debe ser fácil de entender sin tener que ser un experto en el campo elegido.

Como es la representación gráfica de un algoritmo, un diagrama de flujo debe mostrar los estados de entrada, las decisiones tomadas y los resultados de dichas decisiones.

Los principales símbolos utilizados en los diagramas de flujo son:

VARIABLES DE PROGRAMACIÓN

En la programación se utilizan lo que podría llamarse depósitos dinámicos con el fin de alojar frases, números u otra información importante que pueda utilizarse en el desarrollo del programa. Estos espacios reservados en la memoria, que pueden cambiar su contenido a lo largo de un programa, son llamados variables.

 

Y son muy útiles porque en lugar de repetir valores específicos en varios lugares en todo el código, solo declaramos la variable al inicio del programa y se puede utilizar a lo largo del mismo.

Las variables pueden contener un dato leído desde el teclado, el resultado de un cálculo o algún otro valor.

Por ejemplo a + b = c es un ejemplo de una expresión de programación. En esta expresión, a, b y c son las variables que pueden representar caracteres, cadenas de caracteres o valores numéricos.

Una variable puede referirse a un valor. Por ejemplo, la expresión x = 10 asocia el valor de 10 con la variable a.

 

Las variables se pueden clasificar en dos categorías:

• Variables locales: estas son variables que se encuentran dentro del alcance de un programa/función/procedimiento.

• Variables globales: estas son variables que se encuentran dentro del alcance en el tiempo de ejecución del programa. Cualquier parte del programa puede recuperarlas.

 

Las variables permiten que los programadores creen rápidamente una amplia variedad de programas simples o complejos que le indiquen a la computadora que se comporte de manera predefinida.

ESTRUCTURA DE CONTROL SECUENCIAL

Esta es la estructura de control más sencilla ya que tal como su nombre lo indica simplemente son los procesos que se suceden uno a continuación de otro:

Un ejemplo sencillo de algoritmo secuencial es la suma de dos números. El siguiente sería el diagrama de flujo de este algoritmo:

El proceso claramente se desarrolla en una consecución (una detrás de otra) de instrucciones.  

Observa también que para determinar el ingreso de los números a sumar, definimos las variables N1 y N2. Y, para mostrar la suma resultante, definimos la variable SUMA.

 

Aprovecharemos este ejemplo para introducir otro término importante en la programación: pseudocódigo, y te preguntarás ¿qué es un pseudocódigo?

 

Veamos lo que dice wikipedia[1]: En ciencias de la computación, y análisis numérico, el pseudocódigo (o lenguaje de descripción algorítmico) es una descripción de alto nivel compacta e informal del principio operativo de un programa informático u otro algoritmo.

 

De esta forma, del pseudocódigo de un proceso, a la elaboración del programa (en cualquier lenguaje de programación) hay solo un paso.

 

Pseudocódigo del ejemplo anterior:

 Comienza

      Lee(N1)

      Lee(N2)

      Suma = N1 + N2

      Escribe (Suma)

 Termina

Estructura selectiva.

En estas estructuras se evalúan decisiones lógicas, así pues, también es llamada estructura de decisión o alternativa y, puede ser de dos tipos:

1. Selectiva simple.

 

Sí al evaluar la condición, esta es verdadera, entonces se lleva a cabo una acción o acciones consecutivas. En caso de ser falsa, no se lleva a cabo ninguna acción o acciones.

 

En el diagrama de flujo, esto se representa de la siguiente forma:

Un ejemplo es el siguiente. La condicionante para poder votar en el día de las elecciones:

El pseudocódigo será el siguiente:

      Comienza

          Día de elecciones

          Lee (Edad)

          Si Edad > 17 entonces

              Escribe: “Puede votar”

      Termina

Observa que el proceso lleva una lógica que, aunque por el momento es simple, nos da la base para resolver problemas aún más complejos. Este principio lógico nos entrena en el “pensamiento computacional” del que ya hablamos anteriormente.

2. Selectiva doble.

En esta estructura podemos seleccionar una de dos alternativas posibles, de tal forma que sí el resultado de la condición es verdadero seguimos ejecutando la(s) acción(es) correspondiente(s) por un camino; pero sí el resultado es falso entonces seguimos otro camino con su(s) acción(es) consecuente(s).

En el diagrama de flujo, esto se representa de la siguiente forma:

Ejemplo: Hacer un algoritmo que calcule el pago total que hacen un grupo de jóvenes que entran a un museo teniendo en cuenta que sí el grupo es menor a 5 personas, el pago será de $15 por persona y, para grupos de 5 personas o más, el pago será de $10 por persona.

El pseudocódigo será el siguiente:

Comienza

   Leer num
   Si num>=5 entonces
       Pago=10*num
   sino
       Pago=15*num
   Imprimir pago
Termina

Estructuras de control iterativas

Siguiendo con la revisión de las estructuras de control, diremos que en este tipo de estructuras es posible repetir un proceso o una secuencia de procesos, determinadas veces; según la naturaleza de la estructura. Se dividen en dos tipos:

  • Estructura iterativa por decisión.

Con la estructura iterativa por decisión, si la condición evaluada es verdadera, se ejecutará el ciclo de proceso(s) hasta que la misma condición resulte falsa.

 

El diagrama de flujo correspondiente se presenta a continuación:

Observa que, si desde el principio la condición es falsa, el ciclo de procesos no se ejecutará ni una sola vez.

Un ejemplo concreto es el siguiente. Obtener la suma de los 100 primeros números enteros y escribirla como salida:

Para el algoritmo anterior el pseudocódigo será el siguiente:

Comienza

     Suma=0

     Num=1

     Mientras Num <= 100 haz

          Suma = Suma + Num

          Num = Num + 1

     Fin_mientras

     Escribe (Suma)

Termina

Lo que hacen los dos primeros procesos Suma=0 y Num=1, es inicializar las variables utilizadas, garantizando:

1. Que el espacio de memoria (variable) de la suma inicie en cero y la suma final sea exacta. 

2. Que la cuenta que se realiza del 1 al 100, inicie correctamente.

  • Estructura iterativa por cantidad

Observa que en la estructura iterativa por decisión, no queda determinado el número de veces que el proceso ha de repetirse, es decir, el número de veces que debe iterarse, de modo que incluso, el mismo, podría realizarse infinitamente.

 

En la estructura iterativa por cantidad, es indispensable conocer el número de veces que se deberá repetir el ciclo. En el siguiente diagrama de flujo nota como el dato de entrada define el número en el que debe empezar el ciclo (contador inicial, Ci) como el número en el que debe detenerse (contador final, Cf). El contador inicial debe incrementarse en cada ciclo hasta llegar al contador final.

Ejemplo: imagina un tablero de damas inglesas. Nos encontramos en la primera casilla de la esquina superior izquierda. Se pide avanzar la ficha hacia delante un determinado número de veces. 

Para el algoritmo anterior el pseudocódigo será el siguiente:

Comienza

     Lee NCasillas

     Para Ci desde 0 hasta NCasillas haz

          Avanza una casilla

          Incrementa Ci en 1

     Fin Para 

Termina

Lo anterior podrás revisarlo con los siguientes videos:

SELECTIVA

ITERATIVA

Introducción a la programación en Scratch

La forma más efectiva de poner en práctica las estructuras de control es a través de un programa. Para este fin utilizaremos el programa Scratch. Sigue las siguientes notas de repaso con el fin de obtener el producto solicitado.

Producto de la sesión. PROGRAMAS EN SCRATCH.

Ingresa al sitio Scratch en línea y crea tu usuario dentro de la plataforma y realiza los 4 programas que se detallan a continuación.

Recuerda que después de realizar cada programa, hay que asignarle un nombre.

Los productos que enviarás al correo indicado son:

TIC3_PAI_PRODUCTO1.sb3   (Programa con estructura secuencial)

TIC3_PAI_PRODUCTO2.sb3   (Programa con estructura condicional)

TIC3_PAI_PRODUCTO3.sb3   (Programa con estructura iterativo por cantidad)

TIC3_PAI_PRODUCTO4.sb3   (Programa con estructura iterativo por decisión)

Para descargarlo a tu equipo de cómputo para su posterior envío al correo del jefe de materia de tu plantel, sigue la secuencia ARCHIVO → GUARDAR EN TU COMPUTADOR.

Al hacer esto el programa inmediatamente se descargará en la carpeta DESCARGAS (o Download) de tu computadora.

La extensión de los programas es .sb3 por lo que no podrás abrirlo con ningún otro programa, a menos que tengas instalado el Scratch 3.0 en tu computadora. Quizás al quererlo ejecutar tu equipo lo reconozca como un PDF u otro archivo.

Reitero, no se puede abrir con ningún otro programa. Si quieres corroborar que funciona bien, puedes volver a cargarlo en el sitio de Scratch.

[1] http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo. Consultada el 1 de junio de 2020.

Departamento de Desarrollo
de Instrumentos de Evaluación
Colegio de Bachilleres

contáctame: 

  • w-facebook
  • Twitter Clean