0% encontró este documento útil (0 votos)
18 vistas9 páginas

Programaciion

El módulo de programación por bloques busca introducir a los alumnos en conceptos de programación a través de herramientas visuales y metodologías accesibles, fomentando el pensamiento computacional. Se destaca la importancia de la legibilidad y la estrategia de solución en la programación, así como la utilización de bloques y procedimientos para facilitar la enseñanza. Además, se presentan herramientas conceptuales y del lenguaje que son fundamentales para la resolución de problemas y la creación de programas comprensibles.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas9 páginas

Programaciion

El módulo de programación por bloques busca introducir a los alumnos en conceptos de programación a través de herramientas visuales y metodologías accesibles, fomentando el pensamiento computacional. Se destaca la importancia de la legibilidad y la estrategia de solución en la programación, así como la utilización de bloques y procedimientos para facilitar la enseñanza. Además, se presentan herramientas conceptuales y del lenguaje que son fundamentales para la resolución de problemas y la creación de programas comprensibles.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 1.

Introducción a la programación mediante programación por


bloques

Este módulo de programación por bloques 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.
¿Qué es la programación por bloques?
La programación por bloques es un enfoque visual para la programación en el que los
usuarios ensamblan bloques gráficos en lugar de escribir código textual. Cada bloque
representa una instrucción o una estructura lógica (como bucles o condiciones), y estos
se encajan entre sí de manera similar a piezas de un rompecabezas.
Características principales:
- Visual e intuitiva: No se necesita escribir código, lo que la hace ideal para
principiantes.
- Uso de bloques: Cada bloque representa una acción específica, como mover un
personaje, repetir una acción o tomar decisiones.
- Evita errores de sintaxis: Al no escribir código directamente, se reducen errores
comunes como olvidarse de cerrar paréntesis o escribir mal una palabra clave.
- Facilita la enseñanza: Se usa en educación para introducir conceptos de
programación sin requerir conocimientos previos.
La programación por bloques es una excelente forma de iniciar en la programación y
entender su lógica sin necesidad de memorizar comandos o estructuras complejas.
Existen diversas herramientas de programación por bloques, Scratch, Blockly,
AppInventor, entre otras.
En esta asignatura se utilizará la herramienta de programación PilasBloques Las
actividades están basadas en el curso de Introducción a la Programación, elaborado por
la Fundación Sadosky. ([Link]ó[Link]).

Marco conceptual para la enseñanza de la programación


Martínez López (2013) presenta un enfoque novedoso para la enseñanza de la
programación guiado por la necesidad de focalizar el aprendizaje en el proceso de
abstracción, y en los conceptos fundamentales, transversales a todos los paradigmas y
lenguajes, y describe un marco conceptual que incluye dos grupos de conceptos técnicos:
las herramientas conceptuales y las herramientas del lenguaje, que se describen en la
Tabla 1.
Tema 1: Introducción a la programación mediante programación por bloques

Tabla 1: Marco conceptual para la enseñanza de la programación


Herramientas Estrategia de solución y división en subtareas o módulos
conceptuales
Legibilidad: elección de nombres adecuados

Algorítmica básica: recorridos


Herramientas del Acciones (comandos - “verbos”)
lenguaje - Comandos primitivos; secuencia de comandos
- Procedimientos y parámetros
- Repetición simple y condicional
- Alternativa condicional
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 o módulos,
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.
1.1. Estrategia de solución y división en subtareas o módulos

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 expresar/proponer la solución? ¿Cuáles son los componentes que interactuarán
en la solución para obtener la respuesta deseada (lograr el objetivo)
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 o
módulos representa a la forma de pensar composicionalmente y es una herramienta
conceptual invalorable en el pensamiento de alto orden.

Algoritmos y Estructuras de Datos I –2025 2


Tema 1: Introducción a la programación mediante programación por bloques
Vale la pena remarcar que mientras que la estrategia de solución es una idea particular de
QUE hacer para 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.
Los ejercicios que se realizarán en la práctica, si bien son muy sencillos, son básicos para
el objetivo de este tema: explicitar la estrategia de solución elegida expresada a través de
subtareas, y luego expresar cómo se lleva a cabo cada subtarea. 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 es 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. Un procedimiento es un conjunto de primitivas expresadas en el orden
adecuado para crear una nueva tarea. Es útil para “enseñar” una nueva tarea al autómata.
En un procedimiento, además de primitivas, pueden utilizarse también otros
procedimientos ya definidos.
Conviene definir un procedimiento cuando identificamos un “patrón”.
Un patrón es algo que ocurre con regularidad.
Una Regularidad es todo aquello que se presenta en un orden periódico, es decir, tiene
una sucesión regular. Se trata de una característica que se puede apreciar en los
acontecimientos, en una sucesión numérica o en cualquier sucesión temporal en la que
sea apreciable una cierta ordenación de las cosas.
Una regularidad puede darse tanto en un conjunto de datos como en acciones que se deben
llevar a cabo. Las regularidades están en todas partes y ser capaz de encontrarlas es una
habilidad esencial.
La ventaja de detectar un patrón de acciones que el autómata debe realizar es que se puede
“enseñar” una sola vez al autómata a realizar esta nueva tarea, mediante un procedimiento
(secuencia ordenada de acciones), y luego se puede volver a utilizar esta tarea las veces
que sean necesarias, sin necesidad de volver a escribir toda la secuencia de acciones.
Resumiendo, los pasos recomendados para solucionar un problema son:
1. Idear una estrategia de solución, y explicitarla;
2. Expresar la estrategia mediante una división en bloques o módulos;
3. Declarar y nombrar adecuadamente cada bloque de modo que exprese la tarea que
realiza;
4. Definir cada uno de los bloques que expresan tareas, mediante instrucciones
primitivas
1.2. 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.

Algoritmos y Estructuras de Datos I –2025 3


Tema 1: Introducción a la programación mediante programación por bloques
En esta asignatura se enfatiza el valor comunicacional de un programa y se valora la
“legibilidad” 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…
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.
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 porque un 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 [Link], que provee el contexto de estas actividades, 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.
1.3. Algorítmica básica: recorridos
Básicamente, un recorrido es un esquema de repetición en el cual 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.

Algoritmos y Estructuras de Datos I –2025 4


Tema 1: Introducción a la programación mediante programación por bloques
2. Herramientas del lenguaje
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. También proporciona diversas herramientas y maneras de combinarlas para
resolver problemas.
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 “verbos” y a las expresiones como “sustantivos”.
El programa se arma combinando verbos y sustantivos para brindarle 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.
a) Comandos primitivos
Descripción de las acciones elementales que la máquina que ejecutará el programa puede
realizar. Cada máquina 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.
b) Procedimientos y parámetros
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().

Algoritmos y Estructuras de Datos I –2025 5


Tema 1: Introducción a la programación mediante programación por bloques
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.
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 del mismo
concepto fundamental: la abstracción
• una del lado conceptual
• la otra del lado del lenguaje
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, módulos, subrutinas, o alguna otra forma.
Pero en cada caso, 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 a partir de la 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.
La noción de parámetro y parametrización es crítica en la formación de un
programador profesional.
c) Repetición simple y 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.
La repetición simple es una forma de repetición que repite un número fijo de veces.
La repetición condicional se refiere a la repetición que se realiza cuando no se conoce a
priori la cantidad de repeticiones a realizar, y se utiliza una condición como mecanismo
para determinar cuándo dejar de repetir.
Esta forma de repetición es conocida como “while” o “do while” (mientras) o “repeat
until” (repetir hasta); sin embargo, es conveniente utilizar la denominación de repetición
condicional, pues es más descriptiva.
d) 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”.
Esta herramienta permite expresar en un programa una alternativa entre dos posibles
acciones.

Algoritmos y Estructuras de Datos I –2025 6


Tema 1: Introducción a la programación mediante programación por bloques
[Link]
Las expresiones son la manera de describir información, y por ello equiparables a los
“sustantivos” de 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: 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.
Se retomará el tratamiento de expresiones en temas posteriores.
Método de resolución de problemas
El principal objetivo de esta introducción a la programación con actividades lúdicas es
incorporar los conceptos básicos de la programación (herramientas del lenguaje) y
consolidar el pensamiento computacional que se requiere para la programación
(herramientas conceptuales).
En base a estos conceptos, se propone un método de resolución de problemas para
asimilar con mayor facilidad la tarea de programar y facilitar la transición hacia la
programación “convencional”, mediante la aplicación (transversal) de este método, cuyos
pasos se detallan en la Tabla 2.
Tabla 2. Método de resolución de problemas con un ejemplo
Pasos
Desafío PilasBloques: Yvoty y las luciérnagas
− Analizar el problema (Ver el
escenario)
Despertar a todas las luciérnagas
− Determinar el QUÉ (objetivo)
− Pensar una solución global
Pensar un nombre para la
DespertarTodasLuciérnagas
solución
− Detectar “patrones” (Situaciones
que se repiten y se pueden
Las dos diagonales son iguales
reutilizar. No siempre se
presentan patrones)

− Pensar una estrategia − Ubicarse en la primera diagonal


− Dividir el problema en tareas − Despertar luciérnagas de la diagonal
− Ubicarse en la segunda diagonal
(procedimientos) − Despertar luciérnagas de la diagonal

− UbicarseDiagonal_1
− Pensar nombres representativos − DespertarDiagonal
para las tareas − UbicarseDiagonal_2
− DespertarDiagonal

Algoritmos y Estructuras de Datos I –2025 7


Tema 1: Introducción a la programación mediante programación por bloques
Pasos
Desafío PilasBloques: Yvoty y las luciérnagas

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

Se encienden todas las luciérnagas

Verificar:
Ejecutar y comprobar que se
haya logrado el objetivo
establecido en el primer paso (es
necesario conocer de antemano
el resultado esperado)

Algoritmos y Estructuras de Datos I –2025 8


Tema 1: Introducción a la programación mediante programación por bloques

Etapas de actividades formales del curso


1. Introducción a la programación por bloques (actividades lúdicas)
2. Incorporación de un método de resolución de problemas para el desarrollo de las
actividades.
3. Programación imperativa con el lenguaje de programación C.
4. Asociación de las actividades lúdicas con los conceptos propios de un curso de
programación (modularización, estructuras de control (alternativas, repetición
simple y condicional), uso de parámetros).
5. Aplicación transversal del método de resolución de problemas en la asignatura.
Con esta introducción a la programación mediante el desarrollo de actividades en
PilasBloques, se espera que los estudiantes:
• Incorporen los conceptos básicos de programación (herramientas del lenguaje)
y que aprendan a pensar las soluciones (herramientas conceptuales).
• Facilitar la transición hacia la programación textual mediante la aplicación
(transversal) de un método de resolución de problemas.

Algoritmos y Estructuras de Datos I –2025 9

También podría gustarte