DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I FACULTAD (ES) CARRERA (S) CÓDIGO 112643 ELABORADO POR: Ingeniería Computación y Sistemas HORAS TEÓRICAS 02 HORAS PRÁCTICAS 02 REVISADO POR: UNIDADES DE CRÉDITO 03 SEMESTRE II FECHA: PRE-REQUISITO INTRODUCCIÓN El programa de Algoritmos, Estructuras y Programación I, está desarrollado para centrar en el conocimiento de las herramientas básicas para la organización y manipulación de datos. Para ello se presentan las estructuras de datos fundamentales y los diversos algoritmos clásicos que actúan sobre ellas, con especial atención a los conceptos de abstracción y encapsulado. Mediante su estudio y análisis, además de conocer los métodos más usuales y sus características, se adquiere la técnica necesaria para la comprensión y evaluación de algoritmos más complejos y la capacidad de razonar cuál es la solución más adecuada para unas especificaciones concretas. OBJETIVO (S) GENERAL (ES) Al Finalizar el curso de Algoritmos, Estructuras y Programación I, el alumno tendrá la capacidad de conocer la filosofía de la Programación básica y estructurada orientada a la utilización del lenguaje de programación C y C++. UNIDAD I: introducción a la lógica de programación y diseño programas en lenguaje c OBJETIVO: Conocer los elementos principales de la lógica de programación y el diseño de un programa, utilizando una metodología propuesta y la implementación del lenguaje C. OBJETIVOS CONTENIDO ESPECÍFICOS Desarrollar habilidades en el análisis de algoritmos Desarrollar programas bajo la Estructura General de un programa Describir las Estructuras de Control Estudiar Metodología General de Desarrollo de Programas De f in ic i o ne s b ás ic a s A n á li s is de un pr o b le ma - - D i se ñ o d e A l g o r i t mo – C o n ce p t o - C a r a ct e r í st i ca s D es cr ip ci ón - H e r r a m i en t a d e pr o g r a ma ci ón Di a g r a ma de F lu jo P se u do có d ig o E st r u ct u r a Ge n e r a l d e u n P r og r a ma -Datos y tipos de datos - Tipos de datos Simples y estructurado - Constantes y variables Expresiones: aritméticas, lógicas, cadena, prioridad operadores Instrucciones: asignación, E/S, control Palabras reservadas - Identificadores Comentarios - Declaraciones E st r u ct u r a s de c o nt r o l Flujo de control de un programa Estructura: Secuencial - Selectiva Simple, doble, múltiple Repetitiva Repetir (bucle controlado por un contador) Mientras (bucle controlado por centinela) Desde Sentencia de salto M et od o l og í a d e P r og r a m a c ió n Proceso de Análisis de un Problema Solución de un Problema aplicando lógica de programación Actividades a realizar para el desarrollo de un programa Realización de diversos ejercicios de aplicación ACTIVIDADES/ ESTRATEGIAS DE APRENDIZAJE Resolución de ejercicios que reafirmen los Conocimientos. Prácticas en el laboratorio utilizando el lenguaje de C, C++ RECURSOS REQUERIDOS Video Beam Guías de, Estudio Grupos de internet, interactividad de guías digitales Bibliografía Recomendada ACTIVIDADES/ ESTRATEGIAS DE EVALUACIÓN PESO % EVALUACIÓN Trabajos en Grupos Talleres Prueba escrita Prácticas en el laboratorio 20 % UNIDAD II: Introducción a la programación modular y la estructura de datos lineales OBJETIVO: Diseñar programas utilizando procedimientos, funciones y estructuras de datos OBJETIVOS ESPECIFICOS Introducir la estructura de un programa procedimientos y funciones Introducir a la estructura de datos lineales Utilizar ordenación, búsqueda e intercalación interna de datos CONTENIDO Programación Modula: Procedimientos y Funciones Introducción a la programación modular Criterios de descomposición modular Llamadas a los módulos - Tipos de subprogramas Funciones Funciones predefinidas - Declaración de funciones - Llamadas a las funciones Procedimientos Declaración de procedimientos Llamadas de procedimientos Visibilidad de las variables Intercambio de información paso de parámetros Programación con estructura de datos lineales. Arrays Arrays Unidimensionales: Vector Declarar variable tipo vector Referencia a los elementos de un vector Acceso secuencial al vector (recorrido) Declaración de tipos de datos Utilización de vectores Actualización de un vector Arrays dedos dimensiones Arrays multidimensional Registros Declaración de registros - Referencia a los componentes de un registro Arrays de registros Ordenación, Búsqueda e intercalación interna. Ordenación Interna Burbuja (Por intercambio directo) Por inserción directa y binaria Por selección directa Método de inserción por incremento decreciente (Shell) Búsqueda Secuencia - Binaria o dicotómica Transformación de claves (hash) ACTIVIDADES/ ESTRATEGIAS DE APRENDIZAJE Resolución de ejercicios que reafirmen los Conocimientos. Prácticas en el laboratorio utilizando el lenguaje de C, C++ RECURSOS REQUERIDOS ACTIVIDADES / ESTRATEGIAS DE EVALUACION Video Beam Trabajos en Grupos Grupos de internet, interactividad de guías digitales Prueba escrita Guías de, Estudio Bibliografía Recomendada PESO % EVALUACIÓN Talleres Prácticas en el laboratorio 20 % UNIDAD III: Manejo de cadenas de caracteres y tipos abstractos de datos (TAD) OBJETIVO: Utilizar el manejo de cadena de caracteres y TAD OBJETIVOS ESPECIFICOS CONTENIDO Utilizar cadenas de caracteres en un programa Cadena de Caracteres - Datos alfanuméricos - Cadenas de caracteres Variables de cadena - Operaciones con cadena - Operaciones de relación con cadenas - Concatenación Funciones de cadena Función de longitud() - Función deposición() - Función de subcadena() Otras (insertar, borrar, cambiar) Funciones de conversión Tipos Abstractos de Datos Qué son TAD - Tipos TAD TAD Lineales TAD Pila Modelo de pila - Especificación correctas Implementaciones Análisis de eficiencia - Aplicaciones TAD Cola Modelo de cola - Especificación correctas Implementaciones Análisis de eficiencia - Aplicaciones TAD Lista Operaciones - Clasificación Simples enlazadas - Circulares Doblemente enlazadas - Doblemente enlazadas circulares Especificación correctas – Implementaciones - Análisis de eficiencia Aplicaciones Manipular los Tipos Abstractos de Datos(TAD) y Lograr una concepción general y un uso eficiente del TAD Pila, Cola, Lista ACTIVIDADES/ ESTRATEGIAS DE APRENDIZAJE Resolución de ejercicios que reafirmen los Conocimientos. Prácticas en el laboratorio utilizando el lenguaje de C, C++ RECURSOS REQUERIDOS Video Beam Guías de, Estudio Grupos de internet, interactividad de guías digitales Bibliografía Recomendada ACTIVIDADES/ ESTRATEGIAS DE EVALUACION PESO % EVALUACIÓN Trabajos en Grupos Talleres Prueba escrita Prácticas en el laboratorio 30 % UNIDAD IV: Tipos abstractos de datos (TAD) no lineales OBJETIVO: Aplicar los tipos abstractos de datos (TDA) no lineales OBJETIVOS ESPECIFICOS CONTENIDO Manipular los Tipos Abstractos de Datos(TAD) no lineales Tipos Abstractos de datos no lineales Árboles Descripción del TDA Árbol Especificación Características Implementación Ejemplos Descripción Árbol Binario Especificación Implementación Recorridos Búsquedas Ejemplos Árboles Binarios de Búsqueda Árboles parcialmente ordenados Tipos Abstractos de datos no lineales Grafos Descripción de los Grafos Especificación Clasificación Dirigido, No dirigido Búsqueda Recorrido Lograr una concepción general y un uso eficiente del TAD Árboles Lograr una concepción general y un uso eficiente del TAD Grafos ACTIVIDADES/ ESTRATEGIAS DE APRENDIZAJE Resolución de ejercicios que reafirmen los Conocimientos. Prácticas en el laboratorio utilizando el lenguaje de C, C++ RECURSOS REQUERIDOS ACTIVIDADES/ ESTRATEGIAS DE EVALUACION Video Beam Trabajos en Grupos Grupos de internet, interactividad de guías digitales Prueba escrita Guías de, Estudio Bibliografía Recomendada PESO % EVALUACIÓN Talleres Prácticas en el laboratorio 30 % BIBLIOGRAFIA Arnold K., Gosling J., Holmes D. El lenguaje de programación Java. Addison Wesley. 2001 Arnold, K., Gosling, J., Holmes, P. (2001). "El lenguaje de programación Java" Pearson Educación. 3ª edición. Eckel B., Piensa en Java.. Prentice Hall, 2000. Hebert Schildt ( 2002 ) Fundamentos de la Programacion en Java. Mc Graw Hill Joyanes, Luis (2002 ) Programación en Java Mc Graw Hill Meyer, B., Construcción de software orientado a objetos, 2nd edición, Prentice-Hall, 1999 Weiss, Mark (2000). "Estructuras de datos en Java". Addison-Wesley. ISBN 84-7829-035-4 Witzenfeld, A. (2005). "Ingeniería de Software Orientado a Objetos con UML, Java e Internet ". Contenido Programático de: ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I Este programa es copia fiel y exacta del original que reposa en nuestros archivos. Vigente para el período ____________ Doy Fé en Maracaibo a los _______ días del mes de ___________ del año ________ Nombres: __________________________________________________________ Apellidos:___________________________________________________________ C.I.: _____________________ Carrera: INGENIERIA EN COMPUTACIÓN Confrontado Revisado SECRETARIA