CI-2615 (Algoritmos y Estructuras
de Datos I)
Sept.-Dic. 2.001
|
Teoría
(Lunes) |
Teoría
(Miércoles) |
Laboratorio |
|
(1) 24-28 Sept.
|
Teoría
de Conjuntos, Relaciones, Secuencias |
Cálculo
proposicional y cálculo de predicados |
|
|
(2) 1-5 Oct.
|
Resolución
de problemas mediante algoritmos (conceptos: especificación, acción,
algoritmo, proceso, etc.) Ejemplos: pelar papas, corrección versus
depuración. |
Solución
algorítmica de Problemas. ¿Qué es un programa?. Lenguaje
de Programación, Diseño descendente. Especificación
de Programas |
Práctica
sobre Conjuntos, Proposiciones y predicados. |
|
(3) 8-12 Oct.
|
Introducción
al Pseudolenguaje. La instrucción de asignación. Regla para
demostrar la corrección de programas. Tipos básicos del Pseudolenguaje.
La secuenciación de acciones. Bloques de acciones. Regla para demostrar
la corrección de secuencia de acciones. Ejemplo de síntesis:
covertir segundos en días, horas, minutos y segundos. |
Procedimientos
y Funciones. Motivación del uso (control de la complejidad inducido
por el diseño descendente, encapsulamiento de acciones que se repiten).
Ejemplos con la máquina de trazados. |
Familiarización
con el ambiente de desarrollo JDK de JAVA.. Cómo compilar un programa
en JAVA. Ejemplo sencillo de programa. Lectura y Escritura (clase Console) |
|
(4) 15-19 Oct.
|
Análisis
por casos (instrucción condicional). Reglas para demostrar la corrección.
Ejemplo: raíces reales de un polinomio de segundo grado. |
Ciclos
(Procesos Iterativos). La instrucción "Mientras". Concepto de Invariante.
Reglas para demostrar la corrección de ciclos. Ejemplos (se determina
el invariante y función de cota de manera intuitiva): suma de los
primeros n números de una sucesión.
(Quiz 17-10-2001. 10%. Material:
semanas 1-3) |
Ejercicios
sobre especificación de problemas. Uso de las nociones de lógica,
conjuntos. Desarrollo de programas sencillos en JAVA usando solo la asignación,
secuenciación y llamadas a funciones y procedimientos (ejemplo,
usar máquina de trazados). |
|
(5) 22-26 Oct.
|
Ciclos.
Otros ejemplos: desarrollo de taylor de una función, Cálculo
de la potencia n-ésima de un número. Aplicación de
diseño descendente. |
Tipo
Arreglo. Ejemplos (intercambio, búsqueda binaria, recorrido de arreglos) |
Ejercicios
de programación que incluyan análisis de casos. (Especificación
de los programas, Diseño Descendente, uso de normas de Estilo de
programación, varias soluciones, documentación de los programas,
usando JAVA DOC) |
|
(6) 29-2 Oct./Nov.
|
Tipo
arreglo. Ejemplos sobre matrices: multiplicación de matrices, almacenar
una matriz en un arreglo lineal) |
Esquemas
de algoritmos de recorrido y búsqueda secuencial. Tipo archivo Secuencial. |
Desarrollo
de programas en JAVA utilizando la máquina de trazados, problemas
númericos, problemas sobre secuencias donde se apliquen esquemas
de algoritmos (procedimientos y funciones, secuenciación, uso del
condicional, ciclos) (Especificación de los programas, Diseño
Descendente, uso de normas de Estilo de programación, varias soluciones,
documentación de los programas, usando JAVA DOC) |
|
(7) 5-9 Nov.
|
Esquemas
de algoritmos de recorrido y búsqueda secuencial. |
Primer
examen Parcial 07-11-2001 (25 %). Material de semanas 1-6 |
Desarrollo
de programas en JAVA utilizando la máquina de trazados, problemas
númericos, problemas sobre secuencias donde se apliquen esquemas
de algoritmos, ej: merge de dos secuencias ordenadas. (procedimientos y
funciones, secuenciación, uso del condicional, ciclos) (Especificación
de los programas, Diseño Descendente, uso de normas de Estilo de
programación, varias soluciones, documentación de los programas,
usando JAVA DOC) |
|
(8) 12-16 Nov.
|
Diseño
Descendente. Refinamiento de datos y acciones. Ejemplo 1. |
Diseño
Descendente. Refinamiento de datos y acciones. Invariante de acoplamiento.
Encapsulamiento y Ocultamiento de datos.
Ejemplo 2. |
Desarrollo
de programas en JAVA utilizando la máquina de trazados, problemas
númericos, problemas sobre secuencias. Hablar de clases en JAVA
para implementar Encapsulamiento y Ocultamiento de datos (procedimientos
y funciones, secuenciación, uso del condicional, ciclos) (Especificación
de los programas, Diseño Descendente, uso de normas de Estilo de
programación, varias soluciones, documentación de los programas,
usando JAVA DOC) |
|
(9) 19-23 Nov.
|
Diseño
Descendente. Refinamiento de datos y acciones. Ejemplo 3. |
Diseño
Descendente. Refinamiento de datos y acciones. Ejemplo 4. |
Desarrollo
de programas en JAVA utilizando la máquina de trazados, problemas
númericos, problemas sobre secuencias. Ejemplos sencillos para definir
clases. (procedimientos y funciones, secuenciación, uso del condicional,
ciclos) (Especificación de los programas, Diseño Descendente,
uso de normas de Estilo de programación, varias soluciones, documentación
de los programas, usando JAVA DOC) |
|
(10) 26-30 Nov.
|
Derivación
formal de programas iterativos (Heurísticas) |
Derivación
formal de programas iterativos (Heurísticas). Tratamiento formal
de arreglos. |
Desarrollo
y Prueba de corrección de programas en JAVA . |
|
(11) 3-7 Dic.
|
Soluciones
recursivas de problemas. Procedimientos y funciones recursivas |
Derivación
de programas iterativos a partir de una formulación recursiva. |
Desarrollo
y Prueba de corrección de programas en JAVA . Ejemplo de programas
recursivos en JAVA. |
|
(12) 10-14 Dic.
|
Segundo
Examen Parcial 10-12-2001 (25%). Material: semanas 7-11 |
|
|