UNIVERSIDAD INTERAMERICANA DE PUERTO RICO
RECINTO METROPOLITANO

 

I. TITULO        :     ALGORITMOS

   CODIGO        :    CMIS2200

   CREDITAJE   :    3 CREDITOS

   REQUISITOS :    DRCG2010

 

II. DESCRIPCION DEL CURSO:
    Desarrollo de algoritmos que contengan las instrucciones necesarias para la
    solución de problemas numéricos y no numéricos.
 
 

III. OBJETIVOS DEL CURSO:

    A. Terminales:
 
         1. Desarrollar métodos para la solución de problemas.

         2. Desarrollar la lógica para la solución de un problema.

         3. Reconocer la sintaxis del lenguaje algorítmico.

         4. Diferenciar figuras que componen un flujograma.

         5. Traducir la lógica a un flujograma y/o a un algoritmo.

         6. Identificar estructuras simples, decisionales y de repetición.

         7. Evaluar algoritmos y juzgar si están correctos o no.

         8. Desarrollar algoritmos usando estructuras simples.

         9. Desarrollar algoritmos usando estructuras de decisión.

        10. Desarrollar algoritmos que incorporen estructuras simples, estructuras
              de decisión y estructuras de repetición.

        11. Crear estructuras de datos compuestas tales como arreglos
              unidimensionales (vectores) y multidimensionales (matrices).

        12. Aplicar estructuras de datos compuestas en los algoritmos.

        13. Evaluar las necesidades para determinar el uso de las estructuras de
             datos compuestas, y de que clase.

        14. Organizar los datos dentro de las estructuras de datos compuestas.

        15. Construir algoritmos para la búsqueda de datos dentro de las
              estructuras de datos compuestas.
 

    B. Capacitantes:

        1. Analizar una situación dada.

        2. Distinguir entre una información relevante y la no relevante.

        3. Definir el problema.

        4. Definir la información que se desea.

        5. Identificar las restricciones existentes en el problema.

        6. Identificar la información necesaria para resolver el problema.

        7. Diferenciar la parte de la información que es dada de la que hay que
            obtener por medio de procesos.

        8. Describir verbalmente la lógica de la solución del problema

        9. Diagramar la lógica usando un flujograma.

        10. Describir los pasos a seguir para la solución del problema.

        11. Reconocer la sintaxis del lenguaje algorítmico.

        12. Transcribir expresiones algebraicas utilizando los símbolos de
              operaciones aritméticas permitidas en el lenguaje algorítmico.

        13. Traducir al lenguaje algorítmico la lógica escrita verbalmente.

        14. Describir los símbolos de los operadores relacionales y operadores
              lógicos.

        15. Desarrollar expresiones condicionales simples, usando los operadores
              relacionales y condicionales compuestos usando operadores lógicos.

        16. Determinar el valor lógico de expresiones condicionales.

        17. Expresar decisiones en forma de algorítmica.

        18. Incorporar estructuras decisionales a un algoritmo.

        19. Expresar repeticiones en lenguaje algorítmico usando IF/ THEN/ELSE.

        20. Definir ciclos definidos e indefinidos, las diferencias entre ellos y como
              implantarlos, especialmente el indefinido.

        21. Determinar qué tipo de ciclo "loop", DO/WHILE, DO/UNTIL,
             REPEAT FOR es el más apropiado para la solución de un problema.

        22. Determinar el alcance y buena indentación en los ciclos anidados.

        23. Incorporar una estructura de repetición a un algoritmo de estructura
              simple ya hecha.

        24. Incorporar una estructura de repetición a un algoritmo que ya tenga una
              estructura decisional.

        25. Definir una estructura de dato compuesta.

        26. Diferenciar entre una estructura de dato compuesta unidimencional y
             una multidimensional.

        27. Distinguir en que situaciones se deben de usar en un algoritmo.

        28. Distinguir en que situaciones se usa una estructura de dato
              unidimencional  y cuando se usa multidimensional.

        29. Crear un algoritmo con una estructura de dato unidimensional.

        30. Crear un algoritmo que puede leer y escribir datos dentro y desde el
              arreglo unidimencional .

        31. Incorporar los arreglos unidimensionales en algoritmos creados
              anteriormente.

        32. Crear un algoritmo con un arreglo multidimensional.

        33. Crear una algoritmo que puede leer y escribir datos dentro y desde el
              arreglo multidimensional.

        34. Exponer el método de ordenamiento usando variables.

        35. Demostrar el método de ordenamiento usando una estructura de datos
              unidimensional dentro de un algoritmo.

        36. Demostrar el método de ordenamiento usando estructuras de datos
              multidimensionales dentro de un algoritmo.
 
 

IV. CONTENIDO DEL CURSO

    A. INTRODUCCION

        1. Perspectiva Histórica

        2. Análisis y definición de un Problema

            a. ambigüedades , especificaciones y restricciones

            b. delinear la problemática

            c. definir lo que se quiere conseguir para solucionar el problema

            d. definir que se necesita para conseguir la solución al problema

            i. definir los datos que son dados

            ii. definir que datos se obtendrán por procesos

    B. ALGORITMOS

        1. Tipos de Algoritmos

            a. "Outline"

            b. esquema de árbol

            c. flujograma

        2. Tipos de Datos y Variables

            a. enteros

            b. reales

            c. lógicos ("booleanos")

            d. ristra caracteres ("caracter strings")

            e. otros

        3. Expresiones

            a. operaciones de asignación

            b. conversiones

            c. operadores y precedencia

            d. funciones matemáticas

            e. evaluación de expresiones

        4. Lenguaje algorítmico

            a. formato

            i. nombres apropiados

            ii. comentarios

            iii. instrucciones principales

        5. Incorporación del Lenguaje algorítmico a la Solución del Problema

    C. ESTRUCTURAS DECISIONALES

        1. Estructuras Simples de Selección

            a. construcción de expresión lógica - (reglas para la construcción de las
                condiciones)

            b. IF - THEN

            c. IF - THEN - ELSE

            d Diseño de soluciones con estas estructuras

        2. Estructuras de Selección Anidada

        3. Estructura de Selección de Cadena (independientes)

        4. Usos del AND, OR y XOR

    D. PROCESOS REPETITIVOS DEFINIDOS E INDEFINIDOS
        ( CICLOS - "LOOPS")

        1. Ciclos condicionales

            a. técnica del contador

            b. técnica del valor centinela

        2. Insumo controlados por Ciclos

            a. REPEAT - FOR

            b. DO - WHILE

            c. DO - UNTIL

        3. Ciclos Anidados

        4. Condicionales Compuestos dentro de los Ciclos

    E. ESTRUCTURAS DE DATOS COMPUESTAS

        1. Arreglos de Una Dimensión (Vectores)

            a. densos ( totalmente llenos)

            b. No densos (la dimensión es mayor que el número de datos dentro de
                el)

        2. Reorganización de Datos dentro de Arreglos

            a. Bubble Sort

        3. Búsqueda dentro de un Arreglo Unidimensional

            a. secuencial

            b. binaria

        4. Arreglos de Múltiples Dimensiones (matrices)

            a. arreglos de dos dimensiones

    B. búsqueda dentro de arreglos de dos dimensiones
 
 

V. EVALUACION DEL CURSO:
    La evaluación final del curso se hará tomando en consideración los exámenes
    parciales (60%), trabajos (15%) y el examen final (25%), siguiendo la
    siguiente escala:

                                            90 - 100 - A

                                            80 - 89 - B

                                            70 - 79 - C

                                            60 - 69 - D

                                            0 - 59 - F
 
 

VI. RECURSOS Y MATERIALES:

    A. Libro de Texto:
         Sprankle, Maureen. Problem Solving & Programming Concepts. Prentice
         Hall Publishing Company. ? 1995

    B. Libros de Referencia:

        1. Harel David, Algorithmics: The Spirit of Computing. 2da. ed.
            Addison-Wesley Publishing Company. ? 1992.

        2. Lisanti, Barbara, Mann, Lydia & Zlotnick. Algorithms, Programming,
            Pascal. Wadsworth Publising Company. ? 1987.

        3. Rood, Harold J. Logic and Structured Design. 2da. ed. PWS-KENT
            Publishing Company, (c) 1992.

        4. Tremblay, Jean P. & Bunt, Richard B. Introduction to Computer
            Science: An Algorithmic Aproach. 2da. ed. Mcgraw-Hill Book
            Company. ? 1989.
 
 

PREPARADO POR:

Prof. Juan Carlos Karman en Enero de 1995. Revisado en mayo 2000.

Recinto Metropolitano, Universidad Interamericana de Puerto Rico