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