0% encontró este documento útil (0 votos)
20 vistas21 páginas

Técnicas de Descomposición de Problemas

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)
20 vistas21 páginas

Técnicas de Descomposición de Problemas

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

Descomposición de Problemas

SESIÓN#2
Descomposición de Problemas

La descomposición de problemas es una técnica fundamental en la resolución de problemas y el


desarrollo de software. Consiste en dividir un problema complejo en subproblemas más pequeños
y manejables, lo que facilita su comprensión y resolución.
Introducción a Scratch
Historia: Scratch fue creado por el grupo Lifelong Kindergarten del MIT Media Lab, dirigido por
Mitchel Resnick, en 2002. Inicialmente apareció como un lenguaje de programación en desarrollo
hasta que en 2007 se lanzó la primera versión pública.
El objetivo principal de Scratch es hacer la programación accesible a cualquier persona,
especialmente a niños y jóvenes, permitiéndoles crear sus propias historias interactivas, juegos,
animaciones y proyectos. Fue desarrollado con fondos de la Fundación Nacional para la Ciencia
de Estados Unidos.
El nombre "Scratch" hace referencia a la técnica de "scratching" utilizada en el DJ-ing, donde se
mezclan y reutilizan sonidos. De manera similar, Scratch permite a los usuarios reutilizar,
combinar y adaptar fácilmente proyectos creados por otros.
Desde su lanzamiento, Scratch se ha convertido en una herramienta ampliamente utilizada en
entornos educativos como escuelas, museos y centros comunitarios. Cuenta con una gran
comunidad de usuarios que comparten y colaboran en proyectos. Cada año se celebra el "Día de
Scratch" en mayo para promover el uso de esta plataforma.
Concepto: El concepto de Scratch se refiere a un lenguaje de programación visual y modular que
permite a personas de todas las edades, especialmente a niños y principiantes, crear sus propias
historias interactivas, juegos y animaciones de manera sencilla y divertida. Scratch se basa en
bloques de construcción que realizan diversas funciones y se organiza en un entorno visual de
aprendizaje, lo que facilita la creación de proyectos sin necesidad de conocimientos técnicos
profundos en programación.
En Scratch, los proyectos se construyen con objetos llamados "Sprites", que pueden ser
modificados con disfraces para representar diferentes formas y figuras. Estos objetos pueden
animarse con movimiento, música y reacciones a otros objetos mediante la creación de programas
o scripts con bloques gráficos que se ejecutan secuencialmente. Scratch fomenta el pensamiento
lógico, la creatividad, la habilidad de comprensión y el pensamiento sistémico, convirtiéndose en
una herramienta educativa efectiva para el desarrollo de habilidades mentales y la expresión
creativa.
Características: Las características de Scratch incluyen su enfoque de programación visual
mediante bloques de construcción, la manipulación de sonido, video y gráficos, y la capacidad de
crear juegos, animaciones, música y arte de forma divertida y educativa. Scratch se destaca por su
facilidad de uso, permitiendo a los usuarios programar arrastrando y encajando bloques de código
en lugar de escribir líneas de código tradicionales. Esto simplifica los conceptos de programación
y lo hace accesible a principiantes de todas las edades.
Además, Scratch fomenta la creatividad, el pensamiento sistemático y la colaboración al permitir
a los usuarios convertirse en creadores de contenido digital, solucionadores de problemas y
participantes activos en el mundo digital. La comunidad en línea de Scratch promueve la
interacción social y la colaboración, permitiendo a los usuarios compartir proyectos, recibir
retroalimentación y colaborar en proyectos conjuntos, lo que inspira la creatividad y promueve el
aprendizaje entre iguales. Scratch es una herramienta versátil que no solo enseña conceptos de
programación, sino que también desarrolla habilidades matemáticas, informáticas y de
pensamiento creativo.
Las características de Scratch incluyen:
● Programación visual mediante bloques de construcción.
● Manipulación de sonido, video e imágenes.
● Facilidad de uso, ideal para niños, jóvenes y adultos.
● Permite la creación de animaciones, juegos e historias interactivas.
● Desarrolla habilidades de pensamiento computacional y creatividad.
● Comunidad colaborativa que fomenta la interacción social y la colaboración.
● Enfoque en la creatividad, la resolución de problemas y la participación activa en el mundo
digital.
● Elimina la necesidad de escribir líneas de código tradicionales.
● Accesibilidad en múltiples idiomas.
● Libre y disponible para sistemas operativos Windows, Mac y Linux.
Estas características hacen de Scratch una poderosa herramienta educativa y creativa que facilita
la introducción a la programación de una manera divertida y accesible para usuarios de todas las
edades y niveles de experiencia.
TÉCNICAS PARA DESCOMPONER PROBLEMAS DE MANERA EFECTIVA
La descomposición se define como el proceso de descomponer un problema en sus
subcomponentes. Y aunque la mayoría de las definiciones de pensamiento
computacional incluyen descomposición, pocas descomponen -valga la redundancia- el
proceso de descomposición más allá de la definición básica.

Los autores consideran que sería muy importante comprender mejor las diversas
maneras en que se produce la descomposición, qué métodos son más efectivos y bajo
qué condiciones, si queremos medir correctamente el pensamiento computacional.

-Descomposición de los problemas en parte más pequeñas y manejables, para luego


enfocarse en resolver cada uno de estos problemas más pequeños.

-Reconocimiento de patrones Mediante la identificación de objetos o comportamientos


que son recurrentes, y clasificándolos en función de su clase, categoría característica
principales o elementos constantes.

-Abstracción Mediante la planificación de un problema compilando sus partes,


reduciendo elementos o detalles innecesarios que dificulten su comprensión.
-Algoritmo Mediante la definición de los pasos(camino) para llegar a una solución
ACTIVIDADES DE RESOLUCIÓN DE PROBLEMAS UTILIZANDO LA
DESCOMPOSICIÓN
El Pensamiento Computacional (CT) es una herramienta que se puede aplicar con éxito
a la resolución de problemas de la vida cotidiana. Su aplicación resulta más fácil e
intuitiva en problemas aritméticos cuya resolución se basa en operaciones matemáticas.
Por ejemplo: calcular el área de una parcela cuadrada sabiendo la longitud de su lado o
bien presupuestar una obra de embaldosado conociendo el precio del metro cuadrado
de material. Sin embargo, también es posible afrontar problemas que impliquen toma de
decisiones sobre análisis cualitativos o lógicos.

La capacidad de resolución de problemas se ve potenciada gracias al CT ya que requiere


ir más allá y utilizar un nivel de abstracción superior. El proceso creativo no se detiene
en la mera resolución de un problema: datos, operaciones y solución. Se amplía a un
cuarto paso que consiste en el diseño de un artefacto tecnológico capaz de resolverlo.
Esto supone un nivel cognitivo de mayor complejidad y dominio del proceso de
resolución. Por ejemplo, se podría crear un programa en Scratch que lea el valor del
lado, calcule el área y lo muestre en pantalla. No es posible elaborar con éxito este
programa si no se comprende adecuadamente el sistema de resolución.

Este cuarto paso demanda de forma genuina las cinco técnicas clave del pensamiento
computacional:

1. Descomposición. Se divide el problema en partes más pequeñas y manejables.


2. Reconocimiento de patrones. Buscar similitudes dentro y entre los problemas.
3. Abstracción. Se localiza en los datos importantes ignorando el resto.
4. Algoritmo. Desarrollar la secuencia paso a paso que resuelve.
5. Codificación. Elaboración del programa.

Ejemplo: Un gato que caza… un ratón, claro


los siguientes movimientos:

● Gato: siempre apuntará en la dirección del puntero del ratón, y se moverá un determinado
número de pasos.
● Ratón: siempre apuntará en la dirección del puntero del ratón, e irá a donde esté ese
puntero. Esto podría hacerse simplemente con ir a puntero del ratón, pero si le añadimos
la otra pieza conseguiremos darle el efecto de que también gire.

Dándole movimiento

Lo primero que tenemos que hacer es, como (casi) siempre, asignar posiciones iniciales a los
objetos.

¿Y si el gato pilla al ratón?


Por ahora este código no está añadido, pero es pan comido incorporarlo. Lo que queremos es
comprobar que, si el gato 'toca' al ratón, entonces… sucederá lo que queramos. Por ejemplo:

El código resultante sería el siguiente:


Bloques de movimiento

Los bloques de movimiento constituyen una de las diez categorías principales de bloques en
Scratch. Su color es azul, y se utilizan para controlar el movimiento de los objetos. El escenario
no tiene bloques de movimiento, y no los puede usar. De todos modos, durante el desarrollo de
Scratch 2.0, el escenario tenía algunos bloques de movimiento.

Estos son los 14 bloques de movimiento apilables:

Los bloques de movimiento son una de las diez categorías de bloques de Scratch, pueden ser
reconocidos fácilmente por su color azul y se utilizan para controlar un sprite de movimiento.
Están disponibles solo para sprites (imágen de un objeto).

Actualmente hay 18 bloques de movimiento: 15 bloques son apilables y 3 bloques son de reporte
de valor.

Bloques de movimiento

Apilables

Mover () pasos
Este bloque mueve tu sprite hacia adelante la cantidad especificada de «pasos» en la dirección a
la que está orientado. Un paso equivale a una longitud de un píxel. El valor por defecto es 10 y
puede ser sustituido por cualquier número.
Girar a la derecha () grados
Este bloque gira la dirección de tu sprite la cantidad especificada de grados en el sentido de las
agujas del reloj admitiendo cualquier valor de entrada entre -179 y 180.

Girar a la izquierda () grados


Este bloque gira la dirección de tu sprite la cantidad especificada de grados en sentido contrario a
las agujas del reloj admitiendo cualquier valor de entrada entre -179 y 180.

Ir a x: () y: ()
Este bloque mueve tu sprite a la posición X e Y según los valores que hayas especificado. Este
bloque no tiene animación en su movimiento – es la forma más sencilla de mover un sprite por la
pantalla sin mostrar ninguna animación (es decir, deslizándose). Por lo tanto, este bloque se utiliza
siempre que un sprite necesita saltar a otro lugar.

Ir a …
Este bloque establece la posición X e Y de tu sprite a la posición especificada, que puede ser la de
otro sprite, como son el puntero del ratón o a coordenadas aleatorias.
Deslizar en () segs a …
Este bloque mueve tu sprite a un ritmo constante hasta el sprite especificado o el puntero del ratón
desde un desplegable. El primer espacio es una entrada numérica que determina el tiempo en
segundos que tarda en ir de un sitio a otro tu sprite, y el segundo espacio puede ajustarse a una
posición aleatoria o al puntero del ratón.

Deslizar en () segs a x:() y:()


Este bloque mueve tu sprite a las coordenadas x e y respectivas en los segundos elegidos. Una
desventaja del bloque de deslizamiento, sin embargo, es que pausa el script mientras el sprite se
está moviendo, impidiendo que el script haga otras cosas mientras el sprite se desliza.

Apuntar en dirección ()
Este bloque apunta tu sprite en la dirección especificada, rotando el sprite. Los bloques utilizan
los 360 grados de un círculo. El valor por defecto es 90 (derecha) y puede ser sustituido por
cualquier número (360+x se muestra igual que 0+x). Donde -90 es izquierda, 0 es arriba y 180 es
abajo.
A Veces hay cierta confusión con el sistema numérico debido a que el 0 es recto hacia arriba, en
lugar de hacia la derecha (la dirección por defecto) o hacia la izquierda (como en un transportador),
y que utiliza un círculo de -180 a 180 en lugar de un círculo normal de 360 grados.

Apuntar hacia …
Este bloque apunta tu sprite hacia el puntero del ratón.
Sumar a x ()
Este bloque cambia la posición X del sprite que lo utiliza por el número especificado. El eje X
oscila entre -240 y 240, pero los sprites pueden moverse más.

Sumar a y ()
Este bloque cambia la posición Y del sprite que lo utiliza por el número especificado. El eje Y
oscila entre -180 y 180, pero los sprites pueden moverse más.

Si toca un borde rebotar


Este bloque comprueba si tu sprite está tocando el borde de la pantalla y si lo está, el sprite apuntará
en una dirección que refleje la dirección de la que venía. Utiliza una línea perpendicular al borde
para determinar el ángulo de reflexión.

Dar a x el valor ()
Este bloque comprueba si tu sprite está tocando el borde de la pantalla y si lo está, el sprite apuntará
en una dirección que refleje la dirección de la que venía. Utiliza una línea perpendicular al borde
para determinar el ángulo de reflexión.

Dar a y el valor ()
Este bloque comprueba si tu sprite está tocando el borde de la pantalla y si lo está, el sprite apuntará
en una dirección que refleje la dirección de la que venía. Utiliza una línea perpendicular al borde
para determinar el ángulo de reflexión.

Fijar estilo de rotación a …


Este bloque cambia el estilo de rotación del sprite en el proyecto. Independientemente del estilo,
la dirección de la variable seguirá cambiando.
Hay tres opciones para este bloque: en todas direcciones, izquierda-derecha y no rotar. En todas
direcciones significa que el sprite puede orientarse hacia cualquiera de los 360 grados. Es la opción
por defecto. Izquierda-derecha significa que el sprite sólo puede mirar a la izquierda o a la derecha,
y cualquier otra dirección se redondea. El sprite también será volteado horizontalmente cuando
mire hacia la izquierda en el estilo izquierda-derecha. No rotar significa que el sprite siempre mira
como en 90°.

De reportes de valor

Posición en x

Este bloque informa el valor x de tu sprite, o sea la ubicación horizontal del sprite en el escenario.
Este bloque puede usarse como un monitor de escenario.
Posición en y
Este bloque contiene el valor y de tu sprite, o sea la ubicación vertical del sprite en el escenario.
El bloque puede usarse como un monitor de escenario.

Dirección
Este bloque almacena la dirección de tu sprite.

Bloques de apariencia en Scratch

Los bloques de apariencia son una de las diez categorías de bloques de Scratch, pueden ser
reconocidos fácilmente por su color morado y se utilizan para controlar la apariencia del sprite,
así como para diálogos, fondos, etc.

Actualmente hay 20 bloques de movimiento: 17 bloques son apilables y 3 bloques son de reporte
de valor.

Bloques de apariencia

Apilables

Decir () durante () segundos


Podemos utilizar este bloque para que el sprite diga algo en un globo de texto durante los segundos
que especifiquemos.
Como este bloque muestra un diálogo, se puede utilizar cuando tiene lugar una conversación. Otro
uso común es cuando se debe mostrar texto impredecible (como la puntuación de un jugador o
explicar algo).

Decir ()
Muy similar al bloque anterior sólo que en este caso la burbuja de diálogo estará visible hasta que
se active otro bloque.

Pensar () durante () segundos


Podemos utilizar este bloque para que el sprite piense algo en un globo de pensamiento durante
los segundos que especifiquemos.

Pensar ()

Muy similar al bloque anterior sólo que en este caso la burbuja de pensamiento estará visible hasta
que se active otro bloque.

Cambiar disfraz a …
Este bloque cambia el disfraz de tu sprite a otro específico. Se usa siempre que un objeto debe
cambiar a un disfraz específico (en lugar del siguiente bloque de disfraz, que solo cambia al
siguiente disfraz en la lista de disfraces). Se puede colocar una variable (o cualquier bloque de
reporte) que contenga un número o el nombre de un disfraz. Si se ingresa un número no entero en
el bloque, el número se redondea.

Siguiente disfraz

Este bloque cambia el disfraz de tu sprite al siguiente en el panel de disfraces , pero si el disfraz
actual es el último en la lista, el bloque pasará al primero. Se suele usar para dar animación a una
sprite ya que la sucesión de disfraces da la sensación de movimiento.
Cambiar fondo a …

Este bloque cambia el fondo del escenario al especificado. Este es un bloque de uso común; se
utiliza siempre que el escenario debe cambiar a un fondo específico

Siguiente fondo

Este bloque cambia el fondo al siguiente en la lista de fondos, pero si el fondo actual es el último
en la lista, el bloque se desplazará al primero.

Cambiar tamaño por ()

Este bloque cambia el tamaño de tus sprites por la cantidad especificada. El tamaño
predeterminado de un sprite es 100; los valores de tamaño por debajo de ese porcentaje son para
sprites reducidos, y los valores de tamaño por encima de este son para sprites agrandados.

Fijar tamaño al () %
Este bloque establece el tamaño de tu Sprite en la cantidad especificada en porcentaje. El tamaño
de sprite predeterminado es 100%; cualquier valor inferior a eso disminuirá el tamaño del sprite
en el escenario, y cualquier valor superior aumentará el tamaño del sprite en el escenario.

Sumar al efecto … ()

Este bloque especificado cambia el efecto gráfico en tus sprites en la cantidad especificada. Hay
siete efectos diferentes para elegir: color, ojo de pez, remolino, pixelado, mosaico, brillo y
desvanecer

Dar al efecto … el valor ()

Este bloque establece el efecto especificado en tu sprite o el escenario en el valor especificado.


Hay siete efectos diferentes para elegir: color, ojo de pez, remolino, pixelado, mosaico, brillo y
desvanecer.

Quitar efectos gráficos

Este bloque restablece los 7 efectos gráficos (color, ojo de pez, remolino, pixelado, mosaico, brillo
y desvanecer) en tu sprite.

Mostrar

Si el sprite del bloque está oculto, mostrará el sprite; si el sprite ya se muestra, nada cambiará.
Este bloque es uno de los bloques de apariencia más simples y más utilizados.

Esconder

Si se muestra el sprite del bloque, ocultará el sprite; si el sprite ya está oculto, no sucede nada.
Este bloque es uno de los bloques de apariencia más utilizados. Un objeto oculto no se puede tocar.
Ir a capa …

Este bloque hace que un sprite vaya a la capa trasera o a la delantera . Un sprite en la capa más
trasera estará cubierto por cualquier sprite enfrente de él; un sprite en la capa más frontal no
puede ser cubierto por otro sprite.

Ir () a capas hacia …

Este bloque mueve tu sprite hacia adelante o hacia atrás un número determinado de capas .
Mover un sprite hacia adelante hace que aparezca frente a otros sprites, y moverlo hacia atrás
hace que aparezca detrás de otros sprites.

De reportes de valor

… de disfraz

Este bloque devuelve el número de disfraz o el nombre del disfraz.


… de fondo
Este bloque devuelve el número de fondo o el nombre del fondo.

Tamaño
Este bloque devuelve el el tamaño de tu sprite.

BLOQUES DE MOVIMIENTO
BLOQUES DE SONIDO

BLOQUES DE CONTROL

BLOQUES DE FINALIZACIÓN
Bibliografía
Crackthecode. (15 de 9 de 2022). Obtenido de [Link]
sirve-scratch

Crackthecode. (1 de 8 de 2023). Obtenido de [Link]


computacional

Gobiernodecanarias. (s,f). Obtenido de


[Link]
computacional/

Iesandresbojollo. (s,f). Obtenido de [Link]


Conceptos_basicos.html

Smowl. (4 de 10 de 2023). Obtenido de [Link]


computacional/

unir. (27 de 1 de 2021). Obtenido de [Link]


computacional/#:~:text=El%20pensamiento%20computacional%20se%20entiende,no
ciones%20fundamentales%20de%20la%20inform%C3%A1tica.

También podría gustarte