ALGORITMOS Y ESTRUCTURAS DE DATOS

Documentos relacionados
GUÍA DOCENTE. Matemáticas II

1. Conceptos básicos sobre el problema en cuestión y cuestiones afines. 2. Formulación de los correspondientes algoritmos y su pseudocódigo.

SEMINARIOS, TALLERES Y ENCUENTROS CON DIRECTIVOS

Planificaciones Algoritmos y Programación II. Docente responsable: CALVO PATRICIA MABEL. 1 de 6

FACULTAD DE CIENCIAS JURÍDICAS Y ECONOMICAS

PROCESOS PSICOLÓGICOS BÁSICOS

GUÍA DOCENTE. Curso Administración y Dirección de Empresas Doble Grado:

Análisis Exploratorio de Datos 1231X (B.O.E. del 19-julio-2000). Troncal. Obligatoria. Optativa.

Economía del tipo de cambio e integración monetaria

Economía de la Empresa

Nombre de la asignatura Psicología Evolutiva II Curso 3º Equipo docente responsable de la evaluación y las tutorías

Escuela de Ciencias Empresariales. Grado en Contabilidad y Finanzas

GUÍA DOCENTE CURSO: DATOS BÁSICOS DE LA ASIGNATURA DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA DATOS DEL PROFESORADO. Pag.

Vicerrectorado de Ordenación Académica

GUÍA DOCENTE. Ingeniería Informática en Sistemas de Información Doble Grado:

Grado en Contabilidad y Finanzas. Asignatura: Matemáticas Empresariales GUÍA DOCENTE DE LA ASIGNATURA: (Matemáticas Empresariales)

Economía Española GUÍA DOCENTE Curso

Grado en Ciencias Ambientales Universidad de Alcalá Curso Académico 2016/2017 Primer Curso Primer Cuatrimestre

FACULTAD DE CC. JURÍDICAS Y ECONÓMICAS

MICROECONOMÍA. EQUILIBRIO GENERAL Y ECONOMÍA DE LA INFORMACIÓN

Reclutamiento y selección de personal

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Expresion grafica. CURSO ACADÉMICO - SEMESTRE Segundo semestre

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA

Universidad de las Illes Balears Guía docente

ESCUELA UNIVERSITARIA DE RELACIONES LABORALES DE ELDA GUÍA DOCENTE. Créditos Tipo Curso Periodo DEPARTAMENTOS Y ÁREAS. de conocimiento responsable

GUÍA DOCENTE Comunicación Interna y Externa de las Organizaciones

CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN

FUNDAMENTOS MATEMÁTICOS

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Simulacion de escenarios energeticos. CURSO ACADÉMICO - SEMESTRE Primer semestre

FACULTAD DE COMUNICACIÓN

FACULTAD DE CC. JURÍDICAS Y ECONÓMICAS

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. COLOR y PINTURA DIGITAL

DIDÁCTICA Y DINÁMICA DE GRUPOS EN EDUCACIÓN SOCIAL

LAS TIC EN LA ENSEÑANZA DE LAS CIENCIAS SOCIALES

Materias Titulación Materia Carácter Grado de Finanzas y Contabilidad 23 - Optatividad de 4º curso Optativa

Curso de Formación a formadores. Diseño y Planificación de acciones formativas e-learning

4º y 5º Psicología de las Discapacidades

ASIGNATURA DE GRADO: MECÁNICA I

CONTABILIDAD SUPERIOR

GUÍA DOCENTE Fundamentos de Computadores

Instrumentación para el Control de Procesos en la Industria Alimentaria

GUÍA DOCENTE DE ASIGNATURAS

FACULTAD DE CIENCIAS JURÍDICAS Y ECONOMICAS

Guía docente Título superior de diseño

Escuela Técnica Superior de Ingeniería. Informática. Grado en Ingeniería Informática

APLICACIONES INFORMÁTICAS PARA FINANZAS Y CONTABILIDAD

Control de procesos industriales

Tecnología Aplicada a la Logística

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Diseño de maquinas II. CURSO ACADÉMICO - SEMESTRE Segundo semestre

Entorno Económico Internacional GUÍA DOCENTE Curso

GUÍA DOCENTE DE ESTADÍSTICA EMPRESARIAL I

Estadística Aplicada: Técnicas Cuantitativas de Investigación Social

LITERATURA ESPAÑOLA. EDAD MEDIA

ESTRUCTURAS DE DATOS

Nombre de la asignatura: Investigación de Operaciones II. Créditos: Aportación al perfil

ESCUELA SUPERIOR DE ARQUITECTURA Y TECNOLOGÍA PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE

GUÍA DE APRENDIZAJE TRANSFERENCIA DE CALOR Y MATERIA

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

MATEMÁTICAS I. Objetivos Conceptuales/Conocimiento adecuado y aplicado a la Economía y la Administración de Empresas de:

GUÍA DOCENTE. Licenciatura Administración y Dirección de Empresas. Curso 3º Idioma de impartición Coordinador/a de la María José Montero Simó

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.

ANÁLISIS Y DISEÑO DE SISTEMAS

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Fundamentos de automatica. CURSO ACADÉMICO - SEMESTRE Primer semestre

Directrices del Trabajo de Fin de Grado en el Grado en Relaciones Laborales y Recursos Humanos

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Control estadistico de procesos. CURSO ACADÉMICO - SEMESTRE Primer semestre

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

DISTRIBUCIÓN HORARIA DE LA ASIGNATURA SEGÚN NORMATIVA

PSICOLOGÍA DEL TRABAJO Y DE LAS ORGANIZACIONES

ESTADÍSTICA I PRESENTACIÓN DE LA ASIGNATURA

INTRODUCCIÓN A LA TEORÍA ECONÓMICA

Conceptos de Algoritmos, Datos y Programas

Introducción a la Contabilidad

GUÍA DOCENTE Organización y Gestión de Proyectos y Obras

GUÍA DOCENTE INTRODUCCIÓN A LA CONTABILIDAD PÚBLICA

GUÍA DOCENTE MATEMÁTICAS FINANCIERAS

Plan Ciclo Formativo Tipo Curso Duración. Grado en Humanidades (Plan 2010) Grado Obligatoria 2 Segundo Cuatrimestre

Control de procesos industriales

UNIVERSIDAD DE ALMERIA GUÍA DOCENTE CURSO:

PROGRAMA DE LA ASIGNATURA "Intervención Psicológica en Niños y Adolescentes" Máster Universitario en Psicología General Sanitaria

FACULTAD DE CIENCIAS DE LA COMUNICACIÓN

GUÍA DOCENTE CONTRATACIÓN PÚBLICA

3. Desarrollar en los estudiantes habilidades en el manejo de la información contable.

Bloque temático Marketing turístico Curso Segundo. Tipos asignatura Obligatoria Créditos 6 cr. ECTS Horas de trabajo autónomo

Plan docente de la asignatura: Dirección de Operaciones

ASIGNATURA: FARMACOGNOSIA

El educador social en el sistema educativo

Didáctica de la Educación Física y el deporte para Educación Primaria. ÍNDICE

REGLAMENTO DE PRÁCTICAS EXTERNAS GRADO EN INGENIERÍA EN TECNOLOGÍAS INDUSTRIALES

Transcripción:

Planificación de la asignatura de ALGORITMOS Y ESTRUCTURAS DE DATOS de 2º de Ingeniería Técnica en Informática de Gestión para su adecuación al Espacio Europeo de Enseñanza Superior I. INTRODUCCIÓN II. CONTEXTO III. MÉTODO DE TRABAJO (planificación) IV. DISEÑO DE LA ASIGNATURA (GUÍA DOCENTE) 1. Identificación 1.1. De la asignatura 1.2. Del profesorado 2. Presentación 3. Conocimientos previos 4. Competencias 5. Contenidos 5.1. Sobre los conocimientos 5.2. Sobre las competencias 5.3. Objetivos formativos de cada tema 6. Metodología docente 7. Temporalización o cronograma 8. Evaluación 8.1. Evaluación del aprendizaje 8.1.1 Esquema tradicional de evaluación (punto de partida) 8.1.2 Nuevo esquema de evaluación (esquema tradicional + añadidos) 9. Bibliografía 9.1 Bibliografía básica 9.2 Bibliografía complementaria IV. DISEÑO DE LA ASIGNATURA (GUÍA DOCENTE) I. INTRODUCCIÓN Con el ánimo de responder a la necesidad de promover la convergencia entre los sistemas nacionales de educación superior de la Unión Europea, y teniendo en cuenta la importancia de un desarrollo armónico del Espacio Europeo de Educación Superior antes del año 2010, ante la demanda de una serie de mejoras en los sistemas educativos de los estados de la Unión Europea que permitan una formación óptima de los estudiantes y su integración en un mercado laboral unificado y sin fronteras, es necesario acercarse cuanto antes a la metodología que la nueva situación implica. Para aproximarse a dicho propósito, la Universidad de Murcia lanzó la Convocatoria para el desarrollo de experiencias de innovación educativa en el contexto de la convergencia europea para el curso 2006-2007, dentro de la cual se sitúa el marco de trabajo de este documento.

II. CONTEXTO La Facultad de Informática de la Universidad de Murcia no es ajena a la necesidad de la adaptación de sus planes de estudio al Espacio Europeo de Educación Superior. De hecho, durante las últimos tres cursos se han llevado a cabo experiencias piloto de cursos completos y de asignaturas individuales o en grupo, e incluso para el curso 2007-2008 se va a continuar en la misma línea con proyectos de tipo A y B. En este contexto, durante el curso 2006-2007, nos acogimos a la convocatoria de la Universidad de Murcia referida anteriormente, en su modalidad B, para trabajar con la asignatura Algoritmos y Estructuras de datos: Carácter Troncal Temporalidad Anual Créditos LRU 6 teóricos + 6 prácticos Alumnos 154 III. MÉTODO DE TRABAJO El trabajo a realizar consistía en los siguientes apartados: 1. Creación de equipos docentes con participación de profesores, estudiantes y, en su caso, personal de administación y servicios de la Universidad de Murcia, para el desarrollo de materias o conjuntos de asignaturas concretas. 2. Elaboración de guías docentes de titulación, asignaturas y unidades didácticas en una o varias áreas, bajo el prisma de la metodología ECTS. 3. Diseño de materiales en relación al ECTS. 4. Actividades no presenciales, desarrollo de materiales y estrategias para la integración y aplicación de las TIC a las nuevas metodologías docentes en la titulación. 5. Acciones encaminadas a la formación, motivación, difusión e información del profesorado, del personal de administración y servicios y del alumnado en nuevas metodologías docentes, tanto generales como específicas, de las respectivas áreas o grupos de áreas de conocimiento. Para poder llevar a cabo la planificación anterior, se conformó al comienzo del curso 2006-2007 el grupo de trabajo, formado por los siguientes profesores: Norberto Marín Pérez (coordinador), Domingo Giménez Cánovas y Jesualdo Tomás Fernández Breis; también se incluyeron en dicho grupo a tres alumnos con experiencia en proyectos piloto en cursos anteriores: Javier Serrano Esteban, Lidia Sánchez Sánchez y Eva María Brocal Sánchez.

Se han mantenido periódicamente reuniones durante todo el curso, evitando, evidentemente, los periodos de exámenes. El objetivo que se marcó desde el principio fue preparar el material necesario para la docencia en la asignatura con el propósito de procurar su adaptación a la metodología ECTS. Se contaba con el texto guía que se elaboró durante el curso 2002-2003 y se ofreció a los alumnos al siguiente curso. A partir de él se ha elaborado la Guía Docente, que se incluye en este documento partiendo del modelo propuesto por la Universidad de Murcia para tal fin. Durante el primer trimestre del curso, se llevó a cabo una labor de recopilación de material, tanto documentos oficiales como relativos a experiencias piloto desarrolladas con anterioridad en asignaturas y áreas de conocimiento paralelas a las implicadas en nuestra asignatura y de utilidad como modelo y fuente de ideas y sugerencias. Durante el segundo trimestre se elaboraron y confeccionaron competencias, objetivos, unidades didácticas, planificaciones temporales, metodologías docentes y métodos de evaluación. Durante el tercer trimestre se ha estudiado la viabilidad y empleo de nuevas tecnologías y herramientas software para la mejora de la docencia. En concreto se ha estudiado la viabilidad del uso de una aplicación software, Mooshack, empleada en los ACM Contest (concursos internacionales de programación organizados por la ACM, Association for Computing Machinery), para corrección automática de ejercicios. Se va a utilizar durante el curso 2007-2008. También se tiene presente la posible utilización de otra aplicación, Moodle. Además, por supuesto, se cuenta con la página web de la asignatura. En realidad, no se puede decir que en cada periodo temporal nos hayamos ceñido a desarrollar exclusivamente lo que estaba planificado. Ha habido un proceso de realimentación conforme se iban recopilando nuevos materiales o nuevas experiencias. Durante el curso hemos asistido a las I Jornadas Nacionales sobre adaptación de la Universidad de Murcia al Espacio Europeo de Educación Superior: Proyectos de Innovación Educativa los días 11 y 12 de diciembre de 2006, a las II Jornadas Nacionales sobre el Espacio Europeo de Educación Superior. Presente y futuro de la Convergencia Europea los días 23 y 24 de abril de 2007, a la conferencia titulada Adaptación al Espacio Europeo de Educación Superior en la Escuela de Informática, impartida en la Facultad de Informática por la Subdirectora de Innovación Educativa de ETS de Ingeniería Informática de la Universidad de Málaga, y a las JENUI (XIII Jornadas de Enseñanza Universitaria de la Informática) desarrolladas en Teruel del 16 al 18 de julio de 2007, así como a diversas reuniones con la Vicerrectora de Convergencia Europea y con los coordinadores de proyectos piloto de otros centros. Finalmente, y con todo lo anterior, se ha elaborado este informe que solo pretende dar un pequeño paso adelante hacia la convergencia europea en cuanto experiencia enriquecedora y previsora de lo que se avecina inminentemente.

IV. DISEÑO DE LA ASIGNATURA (GUÍA DOCENTE) 1. Identificación 1.1 De la asignatura Nombre de la signatura ALGORITMOS Y ESTRUCTURAS DE DATOS Código 05BH Curso / Grupos Segundo / 1 Tipo Troncal Créditos LRU 6 Teóricos + 6 Prácticos Estimación del volumen de trabajo del alumno 10 (ECTS)* Duración Anual 1.2 Del profesorado Nombre y apellidos (Coordinador) Norberto Marín Pérez Área/ Departamento Lenguajes y Sistemas Informáticos / DIS Despacho y Facultad dónde se ubica. 2.27 Facultad de Informática Teléfono 968 36 46 37 Correo electrónico y página web nmarin@dif.um.es http://dis.um.es/~nmarin/ Horario de atención al alumnado Nombre y apellidos Domingo Giménez Cánovas Área/ Departamento Lenguajes y Sistemas Informáticos / DIS Despacho y Facultad dónde se ubica. 2.03 Facultad de Informática Teléfono 968 36 46 11 Correo electrónico y página web domingo@dif.um.es http://dis.um.es/~domingo/ Horario de atención al alumnado Nombre y apellidos Alberto Pérez Vela Área/ Departamento Lenguajes y Sistemas Informáticos / DIS Despacho y Facultad dónde se ubica. 2.16 Facultad de Informática Teléfono 968 39 85 26 Correo electrónico y página web albperez@um.es http://dis.um.es/~albertopv/ Horario de atención al alumnado Nombre y apellidos Juan José Meroño Sánchez Área/ Departamento Lenguajes y Sistemas Informáticos / DIS Despacho y Facultad dónde se ubica. 2.23 Facultad de Informática Teléfono 968 36 46 46 Correo electrónico y página web jjmerono@um.es http://dis.um.es/~jjmerono/ Horario de atención al alumnado

2. Presentación Los algoritmos y las estructuras de datos constituyen los dos pilares básicos de la programación. Esta asignatura se puede ver como una continuación natural de la asignatura de programación de primer curso. Partiendo de una base previa en los principios de la programación, se intenta desarrollar en los alumnos las habilidades de resolución de problemas, con herramientas como los esquemas algorítmicos, el razonamiento inductivo, la descomposición modular, la aplicación de procesos metódicos, y en general el pensamiento algorítmico. Los conocimientos adquiridos en la asignatura resultan fundamentales en todas las asignaturas posteriores donde se requieran conocimientos de programación. 3. Conocimientos previos Se supone que el alumno domina los conceptos esenciales de programación, y conoce las estructuras de datos fundamentales estudiadas en primer curso. En concreto, es imprescindible que los alumnos hayan aprobado la asignatura 05BD - Metodología y Tecnología de la Programación. Asimismo, deben saber programar con soltura en un lenguaje imperativo estructurado. También es necesario un dominio suficiente de los conceptos y destrezas matemáticas de primer curso. 4. Competencias Transversales/Genéricas - Capacidad de análisis y síntesis. - Capacidad de organización y planificación. - Comunicación oral y escrita. - Conocimientos de informática relativos al ámbito de estudio. - Resolución de problemas. - Toma de decisiones. - Razonamiento crítico. - Compromiso ético. - Habilidades en las relaciones interpersonales. - Trabajo en equipo. - Aprendizaje autónomo. Específicas de la asignatura En el siguiente apartado sobre los contenidos se incorporan las competencias y objetivos específicos asociados a cada tema en particular. De esta manera, creemos que es más claro.

5. Contenidos 5.1 Sobre los conocimientos 5.1.1 Programa de Teoría Parte I. Estructuras de Datos. Tema 1. Abstracciones y especificaciones Tema 2. Conjuntos y diccionarios Tema 3. Representación de conjuntos mediante árboles Tema 4. Grafos Parte II. Algorítmica Tema 1. Análisis de algoritmos Tema 2. Divide y vencerás Tema 3. Algoritmos voraces Tema 4. Backtracking Tema 5. Ramificación y poda 5.1.2 Programa de Prácticas Las prácticas consistirán en el análisis, diseño, implementación y prueba de algunos problemas de algoritmos y de estructuras de datos, usando el lenguaje de programación C++ sobre Linux. Para ello se impartirán dos seminarios: - Seminario 1: Programación en C (8 horas) - Seminario 2: Programación en C++ (6 horas) Además, se impartirá un seminario, cuya participación será opcional, que servirá para la realización voluntaria de una práctica sobre los contenidos del tema 1 (Abstracciones y especificaciones), que eliminará la materia correspondiente para el examen: - Seminario de especificaciones algebraicas (2 horas) 5.2 Sobre las competencias El objetivo fundamental de la asignatura es el siguiente: ser capaz de analizar, comprender y resolver una amplia variedad de problemas computacionales, diseñando e implementando soluciones eficientes y de calidad, como resultado de la aplicación de un proceso metódico.

5.3 Objetivos formativos de cada tema Parte I. Estructuras de Datos. Tema 1. Abstracciones y Especificaciones Reconocer la importancia de la abstracción no solo en programación, sino como un mecanismo fundamental de la capacidad intelectual humana y conocer los mecanismos y tipos de abstracciones que aparecen en programación. Concienciarse de la necesidad de desarrollar especificaciones del software que sean útiles y precisas, entendiendo la especificación como un punto de acuerdo entre el usuario y el implementador de una abstracción. Conocer algún lenguaje de especificación formal de TAD y aplicarlo en la especificación de los TAD estudiados en la asignatura. En particular, conocer el método algebraico, basado en el uso de axiomas, y el constructivo, basado en la definición de precondiciones y poscondiciones. Tema 2. Conjuntos y diccionarios Familiarizarse con la notación y terminología de los tipos de datos abstractos conjunto, diccionario y bolsa, siendo consciente de la importancia y ubicuidad de estos tipos en el desarrollo de programas. Ser capaz de diseñar, implementar y analizar estructuras de representación no arbóreas para los tipos conjunto y diccionario, adaptadas a las necesidades específicas de cada aplicación. Conocer la estructura de datos de tablas de dispersión, sus distintas variantes y los factores que influyen en su eficiencia. Concienciarse de la importancia del factor eficiencia, en cuanto a tiempo de ejecución y uso de memoria, en el diseño e implementación de estructuras de datos. Comprender la independencia entre la idea de datos almacenados y estructura de acceso a esos datos, a través del estudio de estructuras duales o múltiples. Tema 3. Representación de conjuntos mediante árboles Entender y conocer un conjunto de técnicas eficientes de representación de conjuntos y diccionarios mediante estructuras arbóreas, como los árboles trie, AVL y B. Comprender la necesidad de usar mecanismos de equilibrado o balanceo para conseguir eficiencia en las distintas representaciones arbóreas. Adquirir la habilidad de evaluar las necesidades de representación de una aplicación específica, tomando decisiones justificadas sobre las estructuras de representación más adecuadas. Ser capaz de diseñar e implementar tipos de datos usando las estructuras estudiadas en este tema, realizando las adaptaciones que cada aplicación concreta requiera.

Tema 4. Grafos Familiarizarse con la notación y terminología usada en teoría de grafos, incluyendo tipos de grafos, propiedades, conceptos y problemas típicos sobre grafos. Ser capaz de diseñar e implementar una estructura para el tipo de datos grafo en sus distintas variantes, usando listas y matrices de adyacencia. Analizar las ventajas e inconvenientes de las representaciones de grafos mediante listas y matrices de adyacencia, y su influencia en la eficiencia de los algoritmos sobre grafos estudiados. Conocer y comprender el funcionamiento de una amplia variedad de algoritmos clásicos sobre grafos (tales como los algoritmos de Prim, Kruskal, Dijkstra, Floyd y Warshall), razonando sobre las ideas subyacentes y analizando su complejidad computacional. Adquirir la habilidad de usar los algoritmos estudiados como herramientas para la resolución de problemas en un contexto genérico, a través de la transformación de un problema de interés en un problema sobre grafos. Ser capaz de diseñar algoritmos para resolver nuevas clases de problemas sobre grafos. Parte II. Algorítmica Tema 1. Análisis de algoritmos Concienciarse de la importancia del estudio de los recursos consumidos por un algoritmo y del interés de hacerlo antes de la implementación, entendiendo que para cada aplicación puede variar lo que sea considerado un recurso crítico. Saber determinar en función de qué parámetros está dado el tamaño de un problema y qué otros factores afectan al consumo de recursos. Comprender, distinguir y relacionar los conceptos de eficiencia, complejidad computacional y tiempo de ejecución de un algoritmo, en los casos mejor, peor y promedio. Conocer y usar correctamente y con soltura las notaciones de complejidad O, omega, y o-pequeña, comprendiendo su significado, utilidad y limitaciones. Conocer las cotas de complejidad que aparecen más frecuentemente en el estudio de algoritmos, así como la relación entre los órdenes de estas funciones. Saber calcular el tiempo de ejecución, el orden de complejidad y el uso de memoria de una gran variedad de tipos de algoritmos, usando las técnicas básicas de conteo de instrucciones y de memoria. Repasar el concepto de recursión y las cuestiones ligadas a la construcción de algoritmos recursivos. Ser capaz de analizar algoritmos recursivos, aplicando los resultados del análisis en comparación de algoritmos, evaluación de resultados experimentales y predicción de tiempos de ejecución.

Conocer y saber aplicar la técnica del polinomio característico para la resolución de ecuaciones recurrentes lineales y homogéneas, y su extensión a algunos casos no homogéneos o no lineales. Conocer algunas técnicas alternativas para la resolución de ecuaciones de recurrencia no lineales. Comprender el papel de las condiciones iniciales en la resolución de las ecuaciones de recurrencia, determinando justificadamente cuáles deben ser usadas en cada caso. Identificar las ecuaciones recurrentes más frecuentes en el estudio de algoritmos y los órdenes de complejidad a los que dan lugar. Tema 2. Divide y vencerás Comprender los fundamentos de la técnica de diseño de algoritmos basada en divide y vencerás, identificando su estructura en algunos algoritmos ya conocidos. Conocer tanto las ventajas como las limitaciones en la aplicación de la técnica de divide y vencerás. Ser capaz de valorar la posibilidad y conveniencia de aplicar divide y vencerás sobre cierto problema, entendiendo que puede existir más de una forma en que la técnica sea aplicada. Analizar el tiempo de ejecución de los algoritmos de divide y vencerás, al menos para el peor caso. Conocer la influencia del tamaño del caso base en el tiempo de ejecución, resolviendo problemas de obtención de tamaños óptimos del caso base. Tema 3. Algoritmos voraces Comprender los fundamentos de la técnica de diseño de algoritmos voraces o de avance rápido, identificando su estructura en varios de los algoritmos sobre grafos ya estudiados. Conocer una variedad de algoritmos voraces, adquiriendo la capacidad de aplicar avance rápido para problemas nuevos, determinando si su aplicación es posible y adecuada. Valorar la importancia de diseñar heurísticas de selección adecuadas, como un medio para obtener buenos algoritmos voraces. Demostrar formalmente la optimalidad de algunos algoritmos voraces, usando reducción al absurdo y análisis de casos. Conocer la utilidad de la técnica de avance rápido en la resolución no óptima o aproximada de problemas complejos, analizando el compromiso exactitud/complejidad que se plantea. Tema 4. Backtracking Comprender los fundamentos de la técnica de diseño de algoritmos basada en backtracking, razonando sobre la idea subyacente de recorrido implícito en árbol de soluciones. Ser consciente de la gran flexibilidad que ofrece backtracking en cuanto a distintos tipos de árboles, problemas a resolver y esquemas (recursivos o no recursivos) para su implementación.

Identificar distintos tipos de problemas que se pueden resolver por backtracking, adquiriendo la capacidad de aplicarlo en problemas nuevos, determinando si su aplicación es posible y adecuada. Saber analizar el orden de complejidad de los algoritmos de backtracking, siendo capaz, al menos, de dar cotas superiores del tiempo de ejecución en el peor caso. Tomar conciencia de la necesidad de usar diferentes estrategias para reducir la complejidad computacional implícita en los algoritmos de backtracking. Tema 5. Ramificación y poda Comprender los fundamentos de la técnica de diseño de algoritmos de ramificación y poda, entendiéndola como una generalización de la idea de recorrido implícito en árbol de soluciones. Distinguir y relacionar las técnicas de backtracking y ramificación y poda, analizando cuando puede ser preferible una u otra para un problema dado. Ser capaz de aplicar ramificación y poda en problemas nuevos, comprendiendo la importancia de la heurística en la resolución eficiente de problemas de alto coste computacional. Entender las implicaciones del compromiso que se plantea en el cálculo de cotas para una solución parcial: cálculo preciso pero lento o rápido pero inexacto. Saber diseñar y utilizar de métodos aproximados (como, por ejemplo, heurísticas voraces) como ayuda en la resolución de problemas por ramificación y poda. 6. Metodología docente El método docente utilizado en la asignatura incluirá las siguientes actividades: La lección magistral, como el método más ampliamente utilizado en el desarrollo de las clases de teoría; aunque no por ello el único. La asistencia es muy aconsejable, puesto que se llevarán a cabo actividades no contempladas en otros materiales, como el establecimiento de los contenidos mínimos necesarios para superar la asignatura (concepto de objetivos mínimos, ver apartado 8 - evaluación). Las clases de problemas, utilizadas como un modo de apoyar la consolidación de los conocimientos teóricos. Los enunciados se entregarán de forma anticipada, y la resolución se realizará por parte de los alumnos, con la supervisión del profesor. La participación activa en las clases de problemas generará puntuación extra. Los seminarios o laboratorios cerrados, usados para la presentación y desarrollo de las actividades prácticas bajo una guía y supervisión directa del profesor. En concreto, se utilizarán para la enseñanza de los lenguajes C y C++. Las prácticas o laboratorios abiertos, que permiten el trabajo autónomo de los alumnos en la elaboración de las prácticas, de manera no presencial, aunque

supervisada con cierta periodicidad (concepto de esquema tutorizado de realización de prácticas). Las tutorías, como un medio para complementar las restantes actividades, ofreciendo un apoyo directo e individualizado de los alumnos. El profesor podrá citar a los alumnos para la realización de tutorías periódicas de seguimiento del trabajo realizado. 7. Temporalización o cronograma Programa de teoría Tiempo (horas) Mínimo (horas) ALGORITMOS Y ESTRUCTURAS DE DATOS 60 53 PARTE I: ESTRUCTURAS DE DATOS 30 27 Tema 0. Estructuras de datos y algoritmos 1 0 Tema 1. Abstracciones y especificaciones 6 5 Tema 2. Conjuntos y diccionarios 7 6 Tema 3. Representación de conjuntos mediante árboles 7 7 Tema 4. Grafos 9 9 PARTE II: ALGORÍTMICA 30 26 TÉCNICAS DE ANALISIS 10 9 Tema 1. Análisis de algoritmos 10 9 TÉCNICAS DE DISEÑO 20 17 Tema 2. Divide y vencerás 5 4 Tema 3. Algoritmos voraces 5 4 Tema 4. Backtracking 6 5 Tema 5. Ramificación y poda 4 4 Programa de prácticas Tiempo presencial (horas) Dedicación alumnos (horas aprox.) Créditos equival. (aprox.) ALGORITMOS Y ESTRUCTURAS DE DATOS 28 100 6 SEMINARIOS DE PROGRAMACIÓN 14 1,4 Seminario 1. Programación en C 8 0,8 Seminario 2. Programación en C++ 6 0,6 Seminario 3. Especificaciones formales algebraicas 2* 4* - PRÁCTICAS DE PROGRAMACIÓN 6 100 3,8 Práctica 1. Análisis y diseño de estructuras de datos 3 60 2,3 Práctica 2. Eficiencia, evaluación y predicción 3 40 1,5 PRÁCTICAS DE PIZARRA 8 0,8 * No se suman al total, al tratarse de prácticas optativas.

8. Evaluación 8.1 Evaluación del aprendizaje En este curso académico, en que la asignatura se encuentra inmersa en un plan piloto de adaptación al EEES, se utilizará en esquema mixto de evaluación del aprendizaje, en el que se toma como punto de partida el esquema tradicional y, sobre él, se añaden formas novedosas de evaluación. En el apartado 7.1.1 se detalla el esquema tradicional, y en el 7.1.2 las novedades añadidas en el mixto. 8.1.1 Esquema tradicional de evaluación (punto de partida) La nota final de la asignatura será un promedio entre la nota total de prácticas y la nota total del examen. La nota total de prácticas contará un 50% y la de examen un 50%. Ambas partes deben estar aprobadas por separado. Teoría Se realizarán dos exámenes parciales eliminatorios, en la modalidad teórico-práctico. La nota total del examen se obtendrá promediando las notas de ambos parciales. El primer parcial corresponde a la parte de estructuras de datos y contará un 50% en el total. El segundo parcial corresponde a la parte de análisis y diseño de algoritmos y contará un 50%. Para obtener el promedio, se requiere que la nota de cada parcial sea como mínimo de 4 sobre 10. Prácticas La nota total de prácticas será un promedio de la nota obtenida en las distintas prácticas de la asignatura. Para calcular el promedio, cada una de las partes (por separado) debe tener como mínimo un 5 sobre 10. En otro caso las prácticas se consideran no aprobadas. La evaluación de las prácticas se concretará cuando se entregue a los alumnos el enunciado de las mismas. 8.1.2 Nuevo esquema de evaluación (esquema tradicional + añadidos) Se realizarán dos exámenes parciales, en la modalidad teórico-práctico. La nota total del examen se obtendrá promediando las notas de ambos parciales. El primer parcial corresponde a la parte de estructuras de datos y contará un 50% en el total. El segundo parcial corresponde a la parte de análisis y diseño de algoritmos y contará un 50%. Para obtener el promedio, se requiere que la nota de cada parcial sea como mínimo de 4 sobre 10. El aprobado global en teoría se establece en 5. Se mantendrá la nota de un parcial aprobado hasta la convocatoria de septiembre incluida. Se aprueba un parcial con una nota mínima de 5 sobre 10. La superación de la práctica opcional de especificaciones algebraicas supone eliminar la materia correspondiente para el examen.

Para la superación de las prácticas podrá haber varios esquemas de trabajo posibles: a) Se realizarán dos prácticas con carácter obligatorio, similares para todos los alumnos: Práctica 1: Implementación y manejo de estructuras de datos. Práctica 2: Eficiencia, evaluación y predicción. Es necesario realizar ambas prácticas y aprobarlas por separado (nota mínima un 5 sobre 10). Cabría la posibilidad de que esas prácticas pudieran descomponerse en subapartados, referidos cada uno de ellos a cada uno de los temas de teoría. b) Se propondrán diferentes prácticas a cada alumno, que deberán versar sobre los contenidos de la materia teórica de la asignatura. Dependiendo de la modalidad del trabajo, se establecerán los requisitos para su superación. Además se podrían proponer diferentes sistemas complementarios de evaluación de la materia teórica (prácticas, trabajos opcionales relativos a determinados temas de la asignatura...). En su caso, la superación de cada trabajo opcional conllevaría la superación de la materia teórica del tema correspondiente. Los alumnos podrán obtener hasta un punto, a sumar a la nota de teoría (una vez aprobada la asignatura), mediante la resolución de problemas en la pizarra en clases de problemas. Esta puntuación adicional no es contabilizada como satisfacción de objetivos mínimos del examen. Adicionalmente y como actividad voluntaria (aunque muy recomendable para los estudiantes), se preparará a los alumnos para participar en el concurso internacional de programación ACM International Collegiate Programming Contest. Para ello se ofrecerá un curso de promoción educativa ( Preparación para el concurso Internacional ACM de programación para estudiantes universitarios ) y un concurso de programación (Olimpiadas Murcianas de Programación) a nivel local. Los alumnos ganadores recibirán como premio la participación en el concurso internacional (SWERC'2008) con los gastos pagados, siempre que ello sea factible. A la nota final de la asignatura (una vez aprobada) se le sumará 0,5 puntos a aquellos alumnos que hayan realizado el curso de promoción educativa y, por consiguiente, hayan participado en la Olimpiadas de Programación. Si se aprueba una de las dos partes de la asignatura (teoría o prácticas), se conservará la nota de dicha parte hasta que se logre superar la parte pendiente.

9. Bibliografía 9.1 Bibliografía básica Ginés García Mateos, Joaquín Cervera López, Norberto Marín Pérez y Domingo Giménez Cánovas. «Algoritmos y Estructuras de Datos, Volumen I: Estructuras de Datos». Diego Marín, 2003. Domingo Giménez Canovas, Joaquín Cervera López, Ginés García Mateos y Norberto Marín Pérez. «Algoritmos y Estructuras de Datos, Volumen II: Algoritmos». Diego Marín, 2003. A.V. Aho, J.E. Hopcroft y J.D. Ullman. «Estructura de datos y algoritmos». Addison-Wesley, 1988. 9.2 Bibliografía complementaria Brassard, G.; Bratley, P.: Fundamentos de algoritmia. Prentice-Hall, 1998. Weiss, M.A.: Estructuras de datos y algoritmos. Addison-Wesley, 1995. Martí, M.; Ortega, Y.; Verdejo, A.: Estructuras de datos y métodos algorítmicos: ejercicios resueltos. Prentice Hall, 2004. Baase, S.; Van Gelder, A.: Computer algorithms. Introduction to Design and Analysis. Addison-Wesley, 2000. Cormen, T.H.; Leierson, C.E.; Rivest, R.L.; Stein, C.: Introduction to algorithms, second edition. The MIT Press, 2001. Wirth, N.: Algoritmos y estructura de datos. Prentice-Hall, 1987. Heileman, G.L.: Estructuras de Datos, Algoritmos y Programación orientada a Objetos. McGraw-Hill, 1997. Hoorobeek, I.V.: Algebraic Specifications. From Many-Sorted Algebras to a Practical Specification Language. K.U. Leuven, Dept. of Computer Science, 1985. Joyanes, L.; Zahonero, I.: Estructura de datos. McGraw-Hill, 1998. Mehlhorn, K.: Data Structures and Algorithms. Springer-Verlag, 1984. Peña, R.: Diseño de programas. Formalismo y abstracción. Prentice-Hall, 1997. Kernighan, B.W., Ritchie, D.M.: El lenguaje de programación C. Prentice- Hall, 1991. Stroustrup, B.: El lenguaje de programación C++. Addison Wesley, 1998. V. CONCLUSIONES Entendemos y consideramos que este trabajo realmente no está del todo concluido. A lo largo del nuevo curso 2007-2008, seguiremos trabajando en ello en un proyecto piloto tipo B, lo que permitirá aplicar lo anterior, siempre abierto a nuevas ideas y opciones.