Diseño Estructurado de Algoritmos
1 Sesión No. 1 Nombre: Conceptos de algoritmos Objetivo de la sesión: Al concluir la sesión el estudiante identificará los conceptos básicos sobre la definición de algoritmos y los diferentes tipos de lenguajes Contextualización Tienes idea de por qué el tema de los algoritmos es tan importante para todos? Debes saber que los algoritmos no son sólo un tema académico, ya que en la vida cotidiana se emplean frecuentemente para resolver problemas. Por ejemplo, alguna vez te imaginaste que al seguir los pasos de una receta de cocina, estás aplicando un algoritmo?, esto sucede porque éstas están diseñadas para ser entendidas por un amplio público, con una serie de instrucciones en las que se indica paso a paso cómo elaborar un plato o una bebida. Alguna vez pensaste que al hacer tus actividades diarias antes de ir a la escuela, como bañarte, vestirte, desayunar, tomar el transporte, desarrollarías un algoritmo? Tal vez lo haces intuitivamente, pero realizas una serie de acciones o pasos que cada día te permiten la resolución de algún problema. Al final de la sesión conocerás la definición, características y tipos de algoritmos.
2 Introducción al Tema Sabías que todo el desarrollo de un algoritmo se inicia con un problema? Existe gran variedad de ciencias que se apoyan en el uso de algoritmos para producir soluciones como son: Ciencias de la Computación. Matemáticas. Ciencias Sociales. Ciencias Políticas. En esta asignatura nos enfocaremos más en el desarrollo de algoritmos para la solución de un problema a través de computadoras. Por lo que es importante saber que las computadoras se iniciaron por la necesidad de llevar a cabo cálculos, forzando a mucha gente a desarrollar procedimientos para describir los procesos que se utilizarían para la realización de tareas. El procesador es una herramienta que por sí sola no puede producir nada, pues precisa ser sistematizada, es decir, incluirle ciertas reglas que le indiquen lo que tiene que hacer.
3 Aquí viene la importancia de un programador, éste debe proyectar una solución y formularla usando un algoritmo; después, debe agruparlo expresándose de forma adecuada de acuerdo al uso y términos de programación; finalmente deberá y por último establecer el programa, el cual manifestará el resultado del problema inicial.
4 Explicación Conceptos de algoritmos Resolución de problemas cotidianos Cómo te imaginas que podrías resolver un problema cotidiano por medio de un algoritmo? Los algoritmos son instrucciones detalladas para la resolución de problemas, no sólo se utilizan de forma científica, sino también son aplicados a las actividades cotidianas. Por ejemplo: Marcos acaba de despertar y debe ir a la universidad. Primero debemos identificar el problema: Qué debe hacer marcos? Algoritmo: Inicio: Mirar la hora. Si hay tiempo entonces Bañarse Vestirse Peinarse Desayunar Cepillarse los dientes Despedirse de mamá Tomar autobús Bajarse Entrar a la universidad. Si no hay tiempo entonces: Vestirse Cepillarse los dientes Tomar taxi Bajarse Entrar a la universidad
5 Definición de Algoritmo De acuerdo a lo que nos plantea Donald (1968), un algoritmo es una secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones que un ordenador debe realizar para llevar a cabo una tarea en un tiempo determinad. Por lo tanto, podemos decir que es un método realizado paso a paso que nos permite solucionar un problema. Para ser clasificado como tal, debe contar con ciertas propiedades: Finito. Un algoritmo debe siempre terminar después de un número finito de pasos. Definido. Cada paso de un algoritmo debe ser definido de forma precisa, estableciendo las acciones que van a efectuar clara y rigurosamente en cada caso. Entradas. El algoritmo tiene cero o más entradas, es decir cantidades que se entregan inicialmente al algoritmo antes de su ejecución. Salidas. El algoritmo tiene una o más salidas, es decir cantidades que tienen una relación específica respecto a las entradas. Efectivo. Generalmente también se espera que un algoritmo sea efectivo. Esto significa que todas las operaciones que serán realizadas en el algoritmo deben ser lo suficientemente básicas, de modo que puedan en principio ser llevadas a
6 cabo en forma exacta y un período de tiempo finito por una persona usando lápiz y papel (Peralta Murua Lisandro, s/f, p.2). Definición de lenguajes algorítmicos Cuál te imaginas que sea la definición de lenguajes algorítmicos? Un lenguaje algorítmico es una serie de símbolos e instrucciones que se utilizan para describir un proceso. Podríamos decir que después de crear nuestro algoritmo sencillo en papel, podemos representarlo de una forma más estructurada basándonos en un lenguaje especial. Tipos de Lenguajes Algorítmicos Gráficos. Nos ayuda a percibir con mayor claridad, basándose en la utilización de gráficos (símbolos, imágenes o vectores, líneas, superficies) que se entiende con un lenguaje propio. Por ejemplo: un diagrama de flujo. No gráficos. La forma de representación no maneja ningún tipo de gráfico, ésta sólo se basa en un pseudocódigo, un lenguaje que no precisamente es muy estructurado, más bien hay una relación entre el lenguaje de programación y el lenguaje del ser humano.
7 Aplicación de lenguajes algorítmicos en la solución de problemas Se puede solucionar algún problema de la manera más exacta por medio de la aplicación de lenguajes algorítmicos, debemos de estructurar una serie de pasos procurando ser lo más breves. Ejemplo 1: Si queremos obtener el promedio de 4 calificaciones, podemos seguir los pasos siguientes: Análisis del problema Entrada: Leer las calificaciones individuales. Proceso: Sumar las calificaciones y dividirlo entre 4. Salida: resultado.
8 Conclusión Cómo pudiste revisar durante esta sesión, un algoritmo no es más que una serie de pasos lógicos para llevar a cabo una tarea, cualquiera que ésta sea, sin importar si se dirige al área científica, o a las actividades cotidianas. A qué crees que se deba la importancia de estructurar una serie de pasos de forma lógica para resolver un problema? De la misma forma que los idiomas sirven como un vehículo de comunicación entre los seres humanos, existen lenguajes que realizan la comunicación entre los humanos y las computadoras. Estos lenguajes permiten la adecuada expresión de las tareas en forma de instrucciones que el programador desea que la computadora ejecute. Ahora que sabes el significado de algoritmos, otro tema importante es la metodología de resolución de problemas a través de computadora, por lo que en la siguiente sesión podrás estructurar de manera sencilla los pasos necesarios que te permitan resolver problemas.
9 Para aprender más Seminarios objetos de aprendizaje Introducción a los Algoritmos Olmos, K. (s/f). Objetos de aprendizaje enfocados a la resolución de problemas para facilitar la enseñanza de la programación. Consultado el 4 de junio de 2014: http://www.academia.edu/1303813/objetos_de_aprendizaje_enfocados_a _la_resolucion_de_problemas_para_facilitar_la_ensenanza_de_la_prog ramacion No te quedo claro cómo realizar un algoritmo? En estas ligas encontrarás ejemplos ilustrados de un algoritmo: Guía 1 Lección 1: Algoritmia Básica (parte 1). (2012). Consultado el 4 de junio de 2014: http://youtu.be/xkoem72r2hs Guía 1 Lección 1: Algoritmia Básica (parte 2). (2012). Consultado el 4 de junio de 2014: http://youtu.be/kngypwsaece
10 Actividad de Aprendizaje Con el objetivo de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar una actividad en la cual a través de un mapa conceptual definas y describas los elementos, características de los algoritmos así como los tipos de lenguajes algorítmicos. Posteriormente describe el algoritmo para revisar tu correo electrónico desde una computadora. Puedes auxiliarte del software libre Cmap Tools para realizar tu mapa, al final tendrás que guardarlo como imagen en formato JPG, para subirlo a la plataforma. Recuerda que esta actividad te ayudará a identificar mejor la estructura de un algoritmo. Esta actividad representa tu calificación y se tomará en cuenta lo siguiente: Tus datos generales Referencias bibliográficas Ortografía y redacción Título Resumen Representación gráfica
11 Cibergrafía Castillo, V. (s/f). Lenguajes algorítmicos, Apuntes de la materia. Consultado el 11 de Marzo 2013: http://docente.ucol.mx/abolio/tareas/lenguaje.pdf Pérez, L. E. (2008) Fundamentos de Programación Mtro. Bernal Consultado el 11 de marzo del 2013: http://www.dgb.sep.gob.mx/informacion_academica/secuencias_didacticas/2sem /material-informatica-ii/b1-algoritmosysolucion%20deproblemas.pdf Peralta, L. (s/f). Análisis de Lenguaje. Consultado el 12 de marzo de 2013: http://enriquebarrueto0.tripod.com/algoritmos/algor01.pdf Quezada, C. (s/f). Práctica diseño de programas. Consultado el 11de marzo de 2013: http://profesores.fi-b.unam.mx/jareyc/labcomping/p7.pdf