Pensamiento algorítmico - LF1.pdf

Full Transcript

Unidad 1 / Escenario 1 Lectura Fundamental Introducción al pensamiento algorítmico Contenido 1 Problema 2 Algoritmo Palabras clave: Problema, algoritmo, procesador, finito. Introducción Aprender a identificar y resolver distintos tipos de problemas q...

Unidad 1 / Escenario 1 Lectura Fundamental Introducción al pensamiento algorítmico Contenido 1 Problema 2 Algoritmo Palabras clave: Problema, algoritmo, procesador, finito. Introducción Aprender a identificar y resolver distintos tipos de problemas que involucran un componente algorítmico, es muy importante, pues es la base conceptual sólida y un conjunto apropiado de habilidades en el momento de cursar el módulo de Programación de Computadores. El primer paso para enfrentarse a los distintos tipos de problemas, que se contemplarán a lo largo del Módulo, es ponerse de acuerdo acerca de qué es un problema, qué es un algoritmo y cómo están relacionados. Primero, se conceptualizará qué es un problema, cuáles son sus componentes y se propondrá una clasificación básica de los problemas. Luego, se revisará el concepto de algoritmo como herramienta y sus principales características. Todos los días, y casi que en cada momento, estamos tomando decisiones: tenemos un conocimiento parcial de la información y a partir de allí queremos ejecutar una acción que maximice nuestro bienestar; esto ocurre, por ejemplo, cuando salimos a la calle a tomar un bus, cuando estamos planeando nuestras vacaciones, y cuando vamos al supermercado y vemos una oferta enorme de toda clase de productos. Si logramos tomar conciencia del proceso e identificar sus componentes y la forma en que interactúan, tendremos una comprensión del mundo desde el punto de vista de la ingeniería y estaremos preparados no solo para tomar mejores decisiones, sino para enfrentar problemas más complicados. POLITÉCNICO GRANCOLOMBIANO 2 1. Problema Existen múltiples definiciones de problema, algunas de ellas muy intuitivas y dictadas por los eventos de la cotidianidad. Puede definirse un problema como una dificultad, un obstáculo o un inconveniente; como un evento que nos separa de un estado natural de tranquilidad; como una situación que nos plantea interrogantes, etc. Todas estas definiciones son correctas, pero no son muy útiles a la hora de abordar un problema desde el enfoque algorítmico, por ello, la definición adoptada para este curso será un poco diferente. 1.1. Definición Desde este momento y a lo largo del curso se definirá problema a partir de dos preguntas: 1) ¿Qué conozco? y 2) ¿Qué quiero saber? También podremos nombrar a estas dos preguntas en términos de entradas y salidas o en términos de datos e información, respectivamente. La figura 1 presenta un diagrama representativo del concepto de problema. ¿Qué conozco? ¿Qué quiero saber? Entradas Salidas Datos Información Figura 1. Diagrama representativo de un problema Fuente: elaboración propia Es importante notar que en el esquema hay otros componentes aparte de las preguntas: hay una caja en el medio y dos flechas, una entrando y otra saliendo de la caja. Estos elementos no hacen parte del problema, pero serán de ayuda para realizar otras definiciones más adelante. Para mayor claridad se exponen un par de ejemplos. El primero es un problema como aquellos desarrollados en los cursos de álgebra de la educación secundaria. El segundo es un ejemplo que podría presentarse en la vida real. Nota: no es de interés en esta unidad resolver estos problemas; únicamente son usados para ilustrar qué es un problema. POLITÉCNICO GRANCOLOMBIANO 3 1.1.1. Ejemplo 1 Un granjero tiene conejos y gallina;, el número total de cabezas de los animales suma 83, mientras que la suma de las patas de los animales es 298, ¿cuántos conejos y cuántas gallinas tiene el granjero? Aquí se pueden encontrar las dos partes del problema: ¿qué conozco? y ¿qué quiero saber? Para hacerlo más claro, se reescribe el enunciado anterior con la información conocida en color verde y la información solicitada en color rojo. Un granjero tiene conejos y gallinas; el número total de cabezas de los animales suma 83, mientras que la suma de las patas de los animales es 298, ¿cuántos conejos y cuántas gallinas tiene el granjero? Ahora, se sugiere pensar en las siguientes situaciones: ¿qué pasaría si se borrará el texto escrito en verde y quedará únicamente el escrito en rojo?, ¿qué tal si el texto escrito en rojo ya no estuviese y solamente se presentase el texto en verde? En cualquiera de los dos casos no existiría la definición de problema. Podría decirse que el texto corresponde a una anécdota, a un cuento, a una adivinanza, a una situación descontextualizada; no obstante, en ninguno de los escenarios planteados sería posible identificar un problema. 1.1.2. Ejemplo 2 Una persona se encuentra en la ciudad de Bogotá y desea viajar hacia Valledupar; sabe que puede realizar el viaje por aire o por tierra. El tiquete de avión más barato que puede conseguir le cuesta $350,000 y le permite estar en su destino en 60 minutos; por otro lado, el viaje en bus le cuesta $105,000 y le toma 22 horas. Dado que el viajero tiene un presupuesto ilimitado y le urge viajar a Valledupar, ¿qué decisión debería tomar? De nuevo, los dos componentes de un problema están presentes. Antes de continuar la lectura, se sugiere detenerse un momento e identificar mentalmente cuáles son estos componentes. Como en el primer ejemplo, se presenta el texto correspondiente a lo que se conoce en verde y el texto correspondiente a lo que se desea saber en rojo. Una persona se encuentra en la ciudad de Bogotá y desea viajar hacia Valledupar; sabe que puede realizar el viaje por aire o por tierra. El tiquete de avión más barato que puede conseguir le cuesta $350,000 y le permite estar en su destino en 60 minutos; por otro lado, el viaje en bus le cuesta $105,000 y le toma 22 horas. Dado que el viajero tiene un presupuesto ilimitado y le urge viajar a Valledupar, ¿qué decisión debería tomar? POLITÉCNICO GRANCOLOMBIANO 4 Se pide al lector que haga el ejercicio de determinar qué sucedería en la situación en que el texto verde estuviese ausente y que de igual forma lo haga para el caso en que faltase el texto rojo. ¿Sabía qué...? Muchas de las situaciones que enfrentamos todos los días, en las que debemos decidir, pueden ser modeladas como un problema a través de estas dos sencillas preguntas. 1.2. Tipos de problemas Existen varias formas de clasificar los problemas, algunas serán presentadas más adelante en este curso; por ahora, se hablará de los problemas como específicos o generales. Obsérvese el siguiente ejemplo de problema. 1. Ana María nació y vive en Colombia, donde la mayoría de edad se alcanza a los dieciocho años. Ana María tiene 17 años, ¿es ella mayor de edad? Ahora revise este otro planteamiento. 2. Ana María nació y vive en Colombia, donde la mayoría de edad se alcanza a los dieciocho años. Ana María tiene X años, ¿es ella mayor de edad? Los dos planteamientos son muy similares, casi son iguales; sin embargo, hay un pequeño detalle. En el segundo enunciado, con respecto al primero, se reemplaza el número 17 por la letra X, ¿qué significa eso? El número 17 es un dato constante, lo que implica que el problema planteado en el enunciado 1 siempre será resuelto con base en ese valor y que el resultado será el mismo. Por otra parte, X es un dato variable, uno que puede cambiar su valor cada vez que se resuelva el problema y que provocará que el resultado pueda ser distinto cada vez. Por ejemplo, si X fuese 13, la pregunta ¿es Ana María mayor de edad? Se respondería con una negativa, mientras que si X fuese 25, la respuesta sería afirmativa. POLITÉCNICO GRANCOLOMBIANO 5 Cuando un problema está planteado con todos sus datos constantes, se habla de un problema específico; mientras que si el problema contiene al menos un dato variable, se tiene un problema general. Cómo mejorar... Es recomendable que por algunos días y cada vez que se tenga un rato de ocio, tome cualquier problema cotidiano y piense cómo podría modelarse a través de las dos preguntas mencionadas anteriormente. Adicionalmente, se puede clasificar el problema como específico o general. 2. Algoritmo Una definición inicial y no tan formal de algoritmo podría ser la de un método que transforma lo que conozco (entradas) en lo que quiero saber (salidas). De esta forma, se pueden identificar todos los elementos que fueron diagramados en la definición de problema. ¿Qué conozco? PROCESADOR ¿Qué quiero saber? Entradas Salidas ALGORITMO Datos Información Figura 2. Diagrama representativo de un problema Fuente: elaboración propia El lector debería notar que, además de algoritmo, aparece el término procesador. El procesador es la herramienta o entidad que almacena y ejecuta el algoritmo. POLITÉCNICO GRANCOLOMBIANO 6 Si el algoritmo es una receta para preparar un pastel, el procesador es el cocinero; si el algoritmo es un programa, el procesador es el computador; si el algoritmo es una ruta para esquivar el tráfico pesado de una ciudad, el procesador es el conductor. Finalmente, solamente falta descifrar qué significan las dos flechas: simplemente demuestran flujo; los datos entran al procesador para ser modificados por el algoritmo y convertirse en información que sale del procesador. De manera más formal, se puede definir un algoritmo como un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. ¿Sabía qué...? la palabra algoritmo tiene su origen en el nombre de un matemático árabe, Al- Khwarizmi, que vivió entre 780 y 850 d. C. (Anthes, 2008) 2.1. Partes de un algoritmo Un algoritmo contiene tres partes (Joyanes y Zahonero, 2014): 1. Entradas 2. Instrucciones 3. Salidas Las entradas y las salidas muchas veces corresponden a lo que conozco y lo que quiero saber de un problema; sin embargo, en algunas situaciones pueden llegar a divergir un poco de estos conceptos. Las instrucciones deben estar ordenadas, pues si esta condición no se cumple, no puede existir el algoritmo. 2.2. Ejemplo Uno de los ejemplos más recurrentes de algoritmo son las recetas de cocina, como la de freír un huevo, que se expone a continuación: POLITÉCNICO GRANCOLOMBIANO 7 Entradas: un huevo, una sartén, fuego, sal, aceite. Instrucciones: 1. Poner la sartén en el fuego 2. Verter aceite en la sartén 3. Esperar un minuto para que el aceite se caliente 4. Verter el huevo en la sartén 5. Esperar tres minutos para que se cocine 6. Apagar el fuego 7. Agregar sal al gusto Salida: un huevo frito Este es un ejemplo muy trivial, pero servirá para aclarar varios puntos. Primero, nótese que el algoritmo propuesto tiene muchas fallas, así que se tomará el ejemplo más para ilustrar errores comunes que para demostrar lo que debería ser un buen algoritmo. Se debe diferenciar, entonces, qué está bien y qué está mal. ¿Qué está bien en el caso del algoritmo para freír un huevo? Tiene los tres componentes nombrados como partes del algoritmo, es decir, entradas, instrucciones y salidas. Las instrucciones están escritas de forma ordenada, es decir, se puede determinar con certeza qué acción ejecutar primero y cuál sería la última dado que es una lista numerada. Necesita de un procesador para ser ejecutado. En este caso, el procesador sería un cocinero. ¿Qué está mal en el caso del algoritmo para freír un huevo? El algoritmo no es preciso. Suponga que el procesador será una persona que no tiene ninguna noción de cocinar y en el paso cuatro usted le indica que debe verter el huevo en la sartén, ¿qué podría pasar? Que nuestro cocinero neófito ponga el huevo en la sartén incluyendo la cáscara. ¿Es esto culpa del procesador? No, la responsabilidad es de la persona que diseñó el algoritmo. Este último aspecto es muy importante no solo en este curso, sino en muchos otros que se estudian en programas afines a la tecnología, la ingeniería y las ciencias básicas. POLITÉCNICO GRANCOLOMBIANO 8 2.3. Características de un algoritmo Las siguientes tres características son deseables en un algoritmo: 1. Debe ser finito. Esto no aplica solamente para el número de instrucciones; también implica que el algoritmo debe alcanzar un final en algún momento. 2. Debe estar bien definido. Esto significa que, si se ejecuta el algoritmo en múltiples ocasiones con el mismo conjunto de datos de entrada, se debe obtener siempre un mismo conjunto de datos de salida. Ejemplo: si el algoritmo suma las cantidades seis y cuatro en mil repeticiones diferentes, debe obtenerse el número diez todas las veces; si en una sola ocasión el resultado cambia, el algoritmo no estaría bien definido. 3. Debe ser preciso. El algoritmo no puede ser ambiguo, debe indicar inequívocamente cuáles son las operaciones que debe ejecutar el procesador y cómo deben ser ejecutadas. POLITÉCNICO GRANCOLOMBIANO 9 Referencias Anthes, G. (2008). Back to Basics: Algorithms. Computerworld, 42(13), 30-31. Joyanes, L. y Zahonero, I. (2014). Programación en C, C++, Java y UML. México D.F.: McGraw-Hill / Interamericana. POLITÉCNICO GRANCOLOMBIANO 10 INFORMACIÓN TÉCNICA Módulo: Pensamiento Algorítmico Unidad 1: El Pensamiento Algorítmico y Los Datos Escenario 1: Introducción al pensamiento algorítmico Autor: Javier Fernando Niño Velásquez Asesor Pedagógico: Jeiner Leandro Velandia Diseñador Gráfico: Felipe Puentes Asistente: Leidy Alejandra Morales Eslava Este material pertenece al Politécnico Grancolombiano. Por ende, es de uso exclusivo de las Instituciones adscritas a la Red Ilumno. Prohibida su reproducción total o parcial. POLITÉCNICO GRANCOLOMBIANO POLITÉCNICO GRANCOLOMBIANO 11

Use Quizgecko on...
Browser
Browser