PENSAMIENTO COMPUTACIONAL Y ALGORITMOS
Los elementos clave del pensamiento computacional involucran el desarrollo de un razonamiento
lógico. El razonamiento lógico es la aplicación del pensamiento computacional para resolver
problemas. Por ejemplo, en actividades relacionadas con el diseño y la tecnología se aplica el
razonamiento lógico —en particular, en el diseño de un objeto, la determinación de su forma y
funcionalidad, la elección de los materiales a utilizar y los pasos de fabricación—. La
descomposición se aplica al dividir un proyecto o proceso en diferentes partes según un criterio en
particular. La generalización sucede cuando, dada una situación particular, el estudiante es capaz
de establecer nuevas conexiones y pensar sobre otras aplicaciones o usos en otros contextos. Al
diseñar, se están realizando tareas de predicción dado que se suponen comportamientos. El poder
simular comportamientos implica evaluar situaciones futuras y así mejorar el diseño asegurando
predicciones correctas. Cuando se escribe una solución a un problema, para que pueda ser
implementada por una persona o una computadora, hay tareas relacionadas con la búsqueda y
corrección de errores: en esa instancia, también existe un proceso de razonamiento. El
razonamiento lógico ayuda a explicar por qué sucede algo. Esto es muy importante en ciencias de
la computación debido a que las computadoras son predecibles en sus resultados, solo realizan
Página 1 de 14
aquello para lo cual están programadas. En virtud de esta cualidad, se utiliza el razonamiento
lógico para programarlas y así describir con exactitud las tareas a realizar. Entendido de esta
manera, el razonamiento lógico equivale a explicar por qué algo es así.
CAPACIDAD DE PENSAR DE FORMA ALGORÍTMICA
Un algoritmo, en principio, es un objeto de comunicación compuesto por un conjunto finito de
instrucciones que especifican una secuencia de operaciones concretas por realizar en un orden
determinado para resolver un problema.
El pensamiento algorítmico es una actividad cognitiva asociada a la resolución de problemas, a su
especificación y a la comunicación de su solución. Los siguientes son ejemplos de algoritmos que
expresan soluciones a distintos problemas. Nótese que el algoritmo puede expresarse de distintas
formas, en estos casos como un gráfico y como un texto con órdenes.
En general, el pensamiento algorítmico se aplica cuando existen problemas semejantes que tienen
que ser resueltos con periodicidad, entonces se analizan en conjunto y se desarrolla una solución
general que se aplica cada vez que ocurre el problema. En nuestra vida cotidiana, recurrimos de
manera constante a algoritmos para solucionar problemas y así realizar cosas.
Por ejemplo: para resolver una cuenta y obtener un valor, para cocinar una comida o para realizar
una extracción de dinero en un cajero automático.
En todos los casos mencionados, seguimos una y otra vez un conjunto ordenado de pasos que
están almacenados en nuestro cerebro o en algún soporte externo (como en el caso de la receta de
cocina que puede ser tomada de un libro o visualizada en YouTube). Ejemplos de situaciones donde
están presentes algoritmos:
• Cuando un cocinero escribe una receta para realizar un plato, está creando un algoritmo
dado que otros pueden seguir los pasos y así reproducirla.
• Cuando un amigo anota las instrucciones para llegar a su casa, está especificando una
secuencia de pasos (un algoritmo) para que otra persona lo pueda ubicar.
• Cuando un profesor proporciona un conjunto de instrucciones para llevar a cabo un
experimento, está especificando un algoritmo, que es seguido por los estudiantes y así obtienen
datos para su análisis y aprendizaje. Podemos definir el pensamiento algorítmico como la
capacidad de pensar en términos de secuencias y reglas que sirven para resolver problemas. Es
Página 2 de 14
un conocimiento básico que las personas desarrollan cuando aprenden a escribir sus propios
programas de computadora, que no son otra cosa que algoritmos traducidos a instrucciones
expresadas en un lenguaje que una computadora pueda comprender y ejecutar (por ejemplo,
lenguajes informáticos como Scratch, Python, JavaScript, etc.). Cuando se habla de software, se
hace referencia directa a los datos digitales y a los programas de computadora.
En las ciencias de la computación, el trabajo de los científicos se concentra en encontrar los
algoritmos más eficientes. Es decir, aquellos que resuelven un problema involucrando los menores
recursos posibles (memoria, comunicaciones, tiempo de procesamiento, etc.) de la manera más
efectiva al dar la respuesta correcta o la más cercana a ella.
PENSAMIENTO COMPUTACIONAL Y ALGORITMOS
Un algoritmo se convierte en programa cuando un programador lo traduce a instrucciones que una
computadora puede interpretar y ejecutar (en este caso, la del automóvil autónomo). Las
computadoras siempre ejecutan las instrucciones de un programa al pie de la letra desconociendo
las intenciones del programador y el problema por resolver. En la tarea anterior, si el programa es
correcto (no contiene errores), el automóvil hará lo que se le ha indicado y así resolverá el
problema (en este caso, conducir a Heriberto a su hogar). Ahora bien, si el programa guía el
automóvil a otro lugar, aunque sigue siendo un programa válido, no resuelve el problema.
Finalmente, si el programa tiene instrucciones no reconocibles (recordar que solo acepta I, D y A),
la computadora no sabrá que hacer y entonces dará un mensaje de error. Las computadoras,
independientemente de su forma y propósito (de escritorio, teléfonos inteligentes, robots de
entretenimiento o industriales, etc.), siguen las instrucciones que les indican los programas que se
les cargan. Los programas de computadora son deterministas, es decir, si siempre se ingresan los
mismos datos, el programa realizará los mismos cálculos y entregará los mismos resultados. Uno
de los trabajos de los científicos de las ciencias de la computación es encontrar los algoritmos más
eficientes. Es decir, aquellos que resuelven un problema en el menor tiempo, usando la menor
cantidad de recursos (por ejemplo: memoria, acceso a disco rígido, uso de red, etc.). Cuando
hacemos búsquedas en internet, los buscadores utilizan algoritmos para recuperar la información
solicitada y seleccionar y visualizar los resultados en el menor tiempo posible, entendiendo que la
eficiencia en estos casos está lograda al recuperar y analizar un gran volumen de datos en pocos
segundos.
1. ACTIVIDAD PENSAMIENTO COMPUTACIONAL:
A partir de la lectura del Apunte teórico sobre pensamiento computacional teoría introductoria
responda las siguientes preguntas
1.-Enumere los elementos claves del pensamiento computacional.
1_
• Descomponer.
• Evaluar.
Página 3 de 14
• Abstraer.
• Generalizar.
• Pensar de forma algorítmica.
2.- Explique con sus palabras cada elemento del pensamiento computacional.
Descomponer: Se utiliza al dividir un proyecto o proceso en distintas partes según una pauta en
específico, logrando fraccionar un problema en partes pequeñas.
Evaluar: En ésta lo que se busca es evaluar y encontrar todos los problemas o fallas que se puedan
hallar.
Abstraer: Se arma un concepto para después simplificarlo y entenderlo de una forma mejor.
Generalizar: Los patrones son analizados para lograr establecer nuevas conexiones y reconocer
otras maneras de pensar o nuevos contextos.
Pensar de forma algorítmica: Se sigue una secuencia de pasos específicos para poder resolver un
problema o llevar a cabo una tarea.
3.- ¿Cómo se aplica en el ámbito del diseño y la tecnología? (Contestar con tus palabras de acuerdo
a lo que comprendes del texto leído)
3_ Esto se aplica en el diseño del objeto, la determinación de su forma y funcionalidad, la elección
de los materiales a utilizar y los pasos para llevar a cabo su fabricación.
4.- Luego de haber leído el texto explique con sus palabras que entiende por Razonamiento Lógico.
4_ Básicamente el razonamiento lógico es igual a explicar por qué algo es así, es de mucha
importancia en ciencias de la computación ya que las computadoras son predecibles en sus
resultados, porque solo realizan eso para lo cual fueron programadas. En base a esto, se utiliza el
razonamiento lógico para programarlas y así describir con exactitud las tareas a realizar.
5.- ¿En qué consiste el pensamiento algorítmico? (Contestar con tus palabras de acuerdo a lo que
comprendes del texto leído)
5_ Consiste en ser una actividad cognitiva asociada a la resolución de distintos problemas, a su
especificación y a la comunicación de su solución. En general, el pensamiento algorítmico se utiliza
cuando existen problemas similares que tienen que ser resueltos con frecuencia, es entonces que
se analizan en conjunto y se desarrolla una solución general que se aplica cada vez que ocurra un
problema.
6.- ¿Cómo se relaciona el software y con los algoritmos? (Contestar con tus palabras de acuerdo a
lo que comprendes del texto leído)
6_ La relación entre uno y el otro es que el algoritmo se transforma en programa cuando el
programador pasa sus pasos a instrucciones que el computador pueda interpretar y llevar a cabo.
7.- ¿Qué es un algoritmo?
Página 4 de 14
7_ Son instrucciones para describir la ejecución de una tarea, estos tienen un inicio y un fin. Debe
resolver el problema para el que fue creado e indicado de manera precisa. También entendemos
que los algoritmos son independientes del dispositivo a usar.
8.- ¿Para qué sirve un Lenguaje Computacional?
8_ Se utiliza para la comunicación y desarrollo de programas, permite ordenar de manera precisa
qué datos debe operar el programa en específico, cómo se almacena, transmite y qué acciones
debe tomar.
9.- ¿Qué relación existe entre algoritmo y programa?
9_ La relación que observamos entre algoritmo y programa es que ambos son instrucciones para la
ejecución de una tarea en común.
VARIABLES Y CONSTANTES
VARIABLE
Una variable en programación es un valor que puede cambiar durante el periodo de ejecución del
código. Así, por ejemplo, en un programa que saludara al usuario, puedo utilizar una variable
llamada "usuario". En un momento dado, el usuario puede ser "Juan". En otro momento, esta
variable puede cambiar a "Mario".
CONSTANTE
Una constante es un valor que se mantiene constante (de ahí su nombre) durante todo el proceso
de ejecución del código.
Un ejemplo puede ser el número PI, que tiene valores inamovibles.
ALGORITMOS
Video sugerido: ¿Qué es un algoritmo?
Portal Educar [Link]
CARACTERÍSTICAS GENERALES DE LOS ALGORITMOS
Las características que deben de cumplir los algoritmos obligatoriamente
• Un algoritmo debe resolver el problema para el que fue formulado. Lógicamente no sirve
un algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean
algoritmos que resuelven problemas diferentes al planteado.
• Los algoritmos son independientes del dispositivo a usar. Los algoritmos se escriben para
poder ser utilizados en cualquier máquina.
• Los algoritmos deben de ser precisos. Los resultados de los cálculos deben de ser exactos,
de manera rigurosa. No es válido un algoritmo que sólo aproxime la solución.
Página 5 de 14
• Los algoritmos deben de ser finitos. Deben de finalizar en algún momento. No es un
algoritmo válido aquel que produce situaciones en las que el algoritmo no termina.
CARACTERÍSTICAS ACONSEJABLES PARA LOS ALGORITMOS
• Validez. Un algoritmo es válido si carece de errores. Un algoritmo puede resolver el
problema para el que se planteó y sin embargo no ser válido debido a que posee errores
• Eficiencia. Un algoritmo es eficiente si obtiene la solución al problema en poco tiempo. No
lo es si es lento en obtener el resultado.
• Óptimo. Un algoritmo es óptimo si es el más eficiente posible y no contiene errores. La
búsqueda de este algoritmo es el objetivo prioritario del programador. No siempre podemos
garantizar que el algoritmo hallado es el óptimo.
ELEMENTOS QUE CONFORMAN UN ALGORITMO
• Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse.
• Proceso. Acciones que lleva a cabo el algoritmo.
• Salida. Datos que obtiene finalmente el algoritmo.
¿TIPOS DE ALGORITMOS…? Existen dos tipos y son llamados así por su naturaleza:
• Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
• Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del
proceso.
LENGUAJES ALGORÍTMICOS
Un Lenguaje algorítmico es una serie de símbolos y reglas que se utilizan para describir de manera
explícita un proceso.
TIPOS DE LENGUAJES ALGORÍTMICOS
CREACIÓN DE UN ALGORITMO
La computadora es una máquina que por sí sola no puede hacer nada, necesita ser programada, es
decir, introducirle instrucciones u órdenes que le digan lo que tiene que hacer. Un programa es la
solución a un problema inicial, así que todo comienza en el Problema. El proceso de programación
Página 6 de 14
es el siguiente: Dado un determinado problema el programador debe idear una solución y
expresarla usando un algoritmo; luego de esto, debe codificarlo en un determinado lenguaje de
programación y por último ejecutar el programa en el computador el cual refleja una solución al
problema inicial.
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE COMPUTADORA
• DEFINICIÓN DEL PROBLEMA: Esta fase está dada por el enunciado del problema, el cual
requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la
computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la
siguiente etapa.
• ANÁLISIS DEL PROBLEMA: Una vez que se ha comprendido lo que se desea de la
computadora, es necesario definir:
- Los datos de entrada.
- Cual es la información que se desea producir (salida)
- Los métodos y fórmulas que se necesitan para procesar los datos. Una recomendación muy
práctica es el de colocarse en el lugar de la computadora y analizar qué es lo que se necesita que
se ordene y en qué secuencia para producir los resultados esperados.
DISEÑO DEL ALGORITMO: Las características de un buen algoritmo son:
- Debe tener un punto particular de inicio. - Debe ser definido, no debe permitir dobles
interpretaciones.
- Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la
definición del problema.
- Debe ser finito en tamaño y tiempo de ejecución.
- Diseño del Algoritmo
- Prueba de escritorio o Depuración: Se denomina prueba de escritorio a la comprobación que se
hace de un algoritmo para saber si está bien hecho. Esta prueba consiste en tomar datos
específicos como entrada y seguir la secuencia indicada en el algoritmo hasta obtener un
resultado, el análisis de estos resultados indicará si el algoritmo está correcto o si por el contrario
hay necesidad de corregirlo o hacerle ajustes.
TÉCNICAS DE DISEÑO DE ALGORITMOS DE PROGRAMACIÓN
TOP DOWN
También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a
menor complejidad (arriba abajo) que den solución al problema. Consiste en efectuar una relación
entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se
relacionen mediante entradas y salidas de información. Este diseño consiste en una serie de
Página 7 de 14
descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del
repertorio de instrucciones que van a formar parte del programa. La utilización de la técnica de
diseño Top-Down tiene los siguientes objetivos básicos:
- Simplificación del problema y de los subprogramas de cada descomposición.
- Las diferentes partes del problema pueden ser programadas de modo independiente e incluso
por diferentes personas.
- El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su
lectura y mantenimiento.
BOTTOM UP
El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan
computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la
adquisición de paquetes de software para satisfacer el problema inmediato. Cuando la
programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a
integrar los subsistemas al grado tal de que el desempeño global, sea fluido. Los problemas de
integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan
hasta que la programación alcanza la fecha límite para la integración total del sistema. En esta
fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para
corregir aquellas delicadas interfaces, que, en un principio, se ignoran. Aunque cada subsistema
parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global,
adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la
duplicación de esfuerzos para acceder el software y más aún al introducir los datos. Otro es, que se
introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el más serio
inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron
considerados y en consecuencia no se satisfacen.
Entonces… La diferencia entre estas dos técnicas de programación se fundamenta en el resultado
que presentan frente a un problema dado. Imagine una empresa, la cual se compone de varios
departamentos (contabilidad, mercadeo,…), en cada uno de ellos se fueron presentando
problemas a los cuales se le dieron una solución basados en un enfoque ascendente (Bottom Up):
creando programas que satisfacían sólo el problema que se presentaba. Cuando la empresa
decidió integrar un sistema global para suplir todas las necesidades de todos los departamentos se
dio cuenta que cada una de las soluciones presentadas no era compatible la una con la otra, no
representaba una globalidad, característica principal de los sistemas. Como no hubo un previo
análisis, diseño de una solución a nivel global en todos sus departamentos, centralización de
información, que son características propias de un diseño Descendente (Top Down) y
características fundamentales de los sistemas; la empresa no pudo satisfacer su necesidad a nivel
global. La creación de algoritmos es basado sobre la técnica descendente, la cual brinda el diseño
ideal para la solución de un problema. DIAGRAMA DE FLUJO
Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es
la representación detallada en forma gráfica de cómo deben realizarse los pasos en la
Página 8 de 14
computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos
(que indican diferentes procesos en la computadora), se relacionan entre sí mediante líneas que
indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido
normalizados por el instituto norteamericano de normalización (ANSI):
Recomendaciones para el diseño de Diagramas de Flujo
• Se deben usar solamente líneas de flujo horizontales y/o verticales. de líneas utilizando los
conectores.
• Se deben usar conectores sólo cuando sea necesario.
• No deben quedar líneas de flujo sin conectar.
• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de
muchas palabras.
2. ACTIVIDAD ALGORITMOS
1) A partir de la lectura del apunte y/o de recabar información del video sugerido, responder las
siguientes preguntas:
a) ¿Por qué un algoritmo debe ser válido, eficaz y óptimo?
Página 9 de 14
a_ Un algoritmo es válido si carece de errores. Éste debe serlo para resolver el problema por el
cual se creó. En cuanto a su eficiencia, éste lo es si obtiene la solución al problema en poco
tiempo, si es lento no sirve. Y finalmente debe ser óptimo para ser el más eficiente y carente
de errores, de lo contrario, no sería óptimo.
b) ¿Cuáles son las diferencias de entre las distintas técnicas de diseño de algoritmos de
programación?
b_ La diferencia entre estas dos técnicas de programación la encontramos en el resultado que
presentan ambas en cuanto al problema dado.
c) ¿Qué son los Lenguajes Algorítmicos?
c_ Los algoritmos pueden describirse utilizando distintos lenguajes. Estos permiten describir
los pasos con mayor o menor detalles.
d) ¿Para qué sirve un Diagrama de Flujos de Datos? ¿Y un pseudocódigo?
d_ Un pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el de programación.
Para poder representar los algoritmos de manera clásica se usan los diagramas de flujo,
gráficos que se utilizan en programación, pero también en economía y en la industria, son
símbolos conectados con flechas para indicar la secuencia de las instrucciones.
e) Investigar qué algoritmos se utilizan en las redes sociales (Facebook, Youtube, Instagram,
etc.) y para qué sirven.
e_ El algoritmo de Instagram evalúa las acciones de cada usuario, localización, hashtags que
utilice, interacciones y contenido que el perfil consuma, lo que nos ofrecen entonces son
experiencias personalizadas. Por otra parte, Facebook analiza tu círculo de amigos, contenido y
tiempo que pases en la app, asimismo Twitter se centra en los estilos de tweets que
frecuentas, perfiles con los que interactúas y analiza para mostrarte en una sección noticias
que podrías haberte perdido según las cosas que te interesan. Y finalmente YouTube
dependiendo de los videos que mires te sugiere listas de reproducción que quizás te gusten.
2) Dado el siguiente ejemplo:
Un alumno se postula en la carrera de ingeniería informática. La oficina de admisión de la
universidad verifica el puntaje obtenido en el examen de ingreso, si el alumno alcanzó el
puntaje indicado en el proceso de admisión, entonces será aceptado en la carrera. En caso
contrario debe volver a postularse.
El algoritmo sería:
1. Inicio
2. Leer puntaje obtenido por el alumno
3. Verificar el puntaje obtenido
4. Si el puntaje es el propuesto en el proceso de admisión, aceptar al
alumno. Caso contrario el alumno se tiene que volver a postular.
5. Fin
a) Generar los algoritmos correspondientes para las siguientes situaciones:
-Algoritmo para buscar información en GOOGLE
1. Inicio
Página 10 de 14
2. encender la computadora
3. ingresar a google
4. dirigirnos a la barra de búsqueda
5. ingresar lo que queramos buscar
6. darle a buscar
7. entre tantos resultados entrar a la página que desees.
8. fin
-Algoritmo para llamar a un contacto personal por mi celular
1. inicio
2. desbloquear el dispositivo
3. dirigirnos a la aplicación “teléfono”
4. presionar “contactos”
5. elegir el contacto
6. elegir la opción de llamar
7. fin
-Algoritmo para preparar mate.
1) inicio
2) buscar una pava
3) llenarla con agua
4) encender la hornalla
5) poner la pava a calentar
6) buscar un mate
7) buscar una bombilla
8) colocar la bombilla en el mate
9) buscar la yerba
10) colocar yerba en el mate
11) cuando el agua esté caliente retirar del fuego
12) llenar el mate con el agua caliente
13) tomar un sorbo
14) escupir el liquido
15) volver a servir
16) fin
3) Dado el siguiente ejemplo:
En el cual se calcula la suma de dos números ingresados por el usuario.
Como aclaración, en este ejemplo, a, b y c son variables. (léase definición en el apunte).
Página 11 de 14
Y a partir de la lectura del apunte desarrollar el Análisis, Pseducódigo y Diagrama de Flujo de las
siguientes situaciones problemáticas:
a) Calcular y Mostrar la multiplicación de dos números
Análisis:
Datos de entrada:
Los números a multiplicar: “a” y “b”
Datos de salida:
Resultado de la multiplicación: “c”
Formula: c = a x b
Pseudocódigo:
1_ pedir valor a
2_ pedir valor b
3_ c = a x b
4_ imprimir c
Diagrama de flujo:
Página 12 de 14
b) Calcular y Mostrar el 30% de un número ingresado
Análisis:
Datos de entrada:
Numero entero con su 100% = a
Procedimiento:
30 x a / 100
Datos de salida:
30% de a
Formula:
B = 30% de a
Pseudocódigo:
1_ pedir valor a
2_ realizar la regla de los tres simples
3_ b = 30% de a
4_ Imprimir b
Diagrama de flujo:
Página 13 de 14
c) Pedir el nombre del usuario y la edad. Mostrar los resultados
Análisis:
Datos de entrada:
Nombre y edad del usuario “k”
Datos de salida:
Kurt
27
Formula:
Ingresar variable nombre y edad
Pseudocódigo:
1_ Pedir nombre a k
2_ Pedir edad a k
3_ k se llama “kurt”
4_ la edad de k es 27
5_ imprimir resultado
Diagrama de flujo:
Página 14 de 14