PRINCIPIOS DE ALGORITMOS Utilidad ¿Qué esperan del curso? ¿Qué quisieran aprender en este curso? ¿Qué entienden por algoritmos? ¿Qué algoritmos conocen? ¿Qué aplicaciones tiene este curso en su vida cotidiano y en sus carreras? Logro de aprendizaje Al finalizar la sesión, el estudiante elabora algoritmos correspondientes a actividades cotidianas en lenguaje natural. Revisión del Sílabo Ejemplo de algoritmo Algoritmo para cambiar la rueda de un auto • Aflojar los pernos • Levantar el auto con la gata • Sacar los pernos de la llanta • Quitar la llanta • Colocar la llanta de repuesto • Colocar y apretar los pernos • Bajar la gata Conjunto de instrucciones que detalla una secuencia de operaciones a realizar, en orden, para resolver un problema específico. • Son consecuencias de pasos concretos. • Requiere la definición de la entrada y la salida. • Adecuados para ser ejecutados por un computador Algoritmos • Sirven para resolver un tipo de problema específico. Algoritmo: características Se muestran 6 características. Las 5 primeras fueron planteadas por Donald Knuth. Cada paso debe estar especificado con claridad, sin ambigüedad Al realizar seguimiento del algoritmo, debe finalizar, es decir, debe tener un número finito de pasos. El algoritmo tiene cero o más entradas. Preciso Finito Entrada Un algoritmo tiene una o más salidas. Todas las operaciones a realizar deben ser suficientemente básicas. Salida Eficacia Si se sigue varias veces el algoritmo, ingresando los mismos datos, se debe obtener los mismos resultados. Definido Eficiencia y Eficacia de un algoritmo Algoritmo eficiente Algoritmo eficaz Cuando logra alcanzar el objetivo empleando la menor cantidad de recursos, pasos y esfuerzos humano. Cuando alcanza o logra el objetivo planteado de forma prioritaria. Un algoritmo puede ser eficaz al resolver un problema, pero no eficiente pues emplea demasiados recursos, lo ideal es obtener un algoritmo que sea conjuntamente eficiente y eficaz. Fortaleza o robustez de un algoritmo • Un algoritmo debe contemplar diversos escenarios de un problema a resolver. • Un algoritmo robusto controla los giros inesperados en un problema. • En conclusión, es flexible a cambios. Fases en el desarrollo de un algoritmo Consiste en la metodología aplicada para la resolución de problemas. Análisis del problema Diseño del algoritmo Revisar los detalles del problema hasta comprender la tarea que se desea resolver. Descripción ordenada de la secuencia de pasos (sin ambiguedades) que conducen a la solución de problemas dado (Análisis del problema y desarrollo del algoritmo). Realizar prueba de escritorio. Corregir errores y volver a realizar pruebas. Implementación del algoritmo Expresar el algoritmo como un programa en el lenguaje de programación adecuado. Ejecución y validación del programa de computadora. La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un postre. Fases en el desarrollo de un algoritmo Consiste en la metodología aplicada para la resolución de problemas. Análisis del problema Diseño del algoritmo Implementación del algoritmo El diseño de un algoritmo debe describir tres partes: Entrada, proceso y salida. Ejemplo: La receta de un cebiche. Algoritmos presentes en la vida diaria Entradas Proceso Salida ¿Qué hacer para ver una película Star Wars? Algoritmo general Ir al cine Comprar la entrada Ver la película Regresar a casa Algoritmo: refinar el anterior Agregar más pasos importantes, especificar algunos, etc. Algoritmos de la vida cotidiano (formar grupo de 4) Describa los pasos para cruzar la calle. Describa los pasos para cambiar un foco quemado. Describa los pasos para llevar a un(a) amigo(a) al cine. Describa los pasos para cambiar la llanta de una bicicleta. ¿Preguntas? Complete: • Fase del desarrollo de un algoritmo: • Algoritmo: secuencia ordenada de …………….. • Características del algoritmo: ………………….., ………………, ……………, ……………………, ……………….. Y ……………… Resumiendo ..................., ……………… y …………..