guía docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de...

12
hola Universidad Católica San Antonio de Murcia – Tlf: (+34) 968 278 160 [email protected] – www.ucam.edu Guía Docente 2017/2018 Algoritmia Algorithmics Grado en Ingeniería Informática A distancia

Upload: hadiep

Post on 15-Oct-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

hola

Universidad Católica San Antonio de Murcia – Tlf: (+34) 968 278 160 [email protected] – www.ucam.edu

Guía Docente 2017/2018

Algoritmia

Algorithmics

Grado en Ingeniería Informática

A distancia

Page 2: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

ÍndiceAlgoritmia ............................................................................................................................. 4

Breve descripción de la asignatura ................................................................................... 4

Brief Description .................................................................................................................. 4

Requisitos Previos .............................................................................................................. 4

Objetivos de la asignatura .................................................................................................. 4

Competencias ...................................................................................................................... 5

Metodología ......................................................................................................................... 6

Temario ................................................................................................................................. 7

Relación con otras asignaturas del plan de estudios ...................................................... 9

Sistema de evaluación ........................................................................................................ 9

Bibliografía y fuentes de referencia ................................................................................. 10

Web relacionadas .............................................................................................................. 11

Recomendaciones para el estudio ................................................................................... 11

Material necesario ............................................................................................................. 12

Tutorías .............................................................................................................................. 12

Page 3: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

Algoritmia Módulo: Común de la Rama de Informática. Materia: Programación Carácter: Obligatoria Nº de créditos: 4,5 Unidad Temporal: 2º curso – 1er Semestre Profesor de la asignatura: Andrés Muñoz Ortega Email: [email protected] Horario de atención a los alumnos/as: Jueves de 11:30 a 13:30 (Fuera de ese horario se puede

solicitar cita vía correo electrónico indicado en la línea anterior) Profesor coordinador de curso: Andrés Bueno Crespo Profesor coordinador de módulo: Andrés Muñoz Ortega

Breve descripción de la asignatura La asignatura de Algoritmia se basa fundamentalmente en explicar los conocimientos teóricos necesarios para cualquier tipo de programación informática. Con estos conocimientos, el alumno tendrá las herramientas necesarias para encontrar soluciones a diferentes tipos de problemas mediante programación software. En particular, se estudiarán algoritmos de recorrido de estructura de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing.

Brief Description This subject is fundamentally based on explaining and understanding the theoretical concepts needed to develop any kind of programming in informatics. With these concepts, the student will have the fundamental tools to develop software solutions to different types of problem. In particular, the following concepts will be studied: Scanning of linear and non-linear data structures, Search and classification algorithms, backtracking and hashing.

Requisitos Previos Son requisitos necesarios los conocimientos impartidos en las asignaturas de Fundamentos de Programación I y II

Objetivos de la asignatura Los objetivos específicos de la asignatura son:

1. Que el alumno comprenda el esquema de funcionamiento de los algoritmos más importantes de clasificación, búsqueda, backtracking y hashing.

Page 4: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

2. Que el alumno sea capaz de aplicar soluciones óptimas para la resolución de problemas utilizando algoritmos adecuados

3. Que el alumno sepa desarrollar aplicaciones informáticas aplicando el algoritmo correcto para un problema, es decir, que sea capaz de seleccionar un algoritmo de búsqueda, clasificación, backtracking o hashing, dependiendo del problema a resolver

4. Que el alumno sea capaz de detectar las importantes diferencias que se pueden obtener, en términos de rendimiento temporal, entre algoritmos aparentemente equivalentes en cuanto a su resultado.

Competencias Competencias transversales

T1 - Capacidad de análisis y síntesis.

T3 - Capacidad de gestión de la información.

T4 - Resolución de problemas.

T5 - Toma de decisiones.

T6 - Trabajo en equipo.

T11 - Razonamiento crítico.

T14 - Aprendizaje autónomo.

T15 - Adaptación a nuevas situaciones.

T16 - Creatividad e innovación.

T21 - Capacidad de reflexión.

T22 - Comprender los puntos principales de textos claros y en lengua estándar si tratan sobre cuestiones relacionadas con el ámbito de estudio

Competencias específicas

C6 - Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.

C7 - Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.

C8 - Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.

Page 5: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

Resultados de aprendizaje RA 2.3.7. Reproducir el esquema de funcionamiento de los algoritmos más importantes de clasificación, búsqueda y backtracking.

RA 2.3.8. Aplicar soluciones óptimas para la resolución de problemas utilizando estructuras de datos coherentes y algoritmos adecuados.

RA 2.3.9.Comparar diferentes soluciones algorítmicas atendiendo a criterios de eficiencia.

RA 2.3.10. Desarrollar aplicaciones informáticas aplicando el algoritmo correcto para un problema concreto.

Metodología

Metodología Horas Horas de trabajo presencial

Horas de trabajo no presencial

Evaluación 9 9 horas (8 %)

Mecanismos de Tutorización

11,25

103,5 horas (92 %) Estudio personal 54

Búsquedas bibliográficas

4,5

Realización de trabajos 33,75

TOTAL 112.5 9 103,5

.

Page 6: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

Temario Programa de la enseñanza teórica

Tema 1. Algoritmos de búsqueda.

1. Búsqueda lineal

2. Búsqueda binaria

3. Búsqueda en árboles binarios balanceados (AVL)

4. Búsqueda de patrones (Fuerza bruta, KMP, BM)

Tema 2. Algoritmos de clasificación y ordenación.

1. Algoritmo de la burbuja

2. Algoritmo de inserción

3. Algoritmo de selección

4. Algoritmo Shell Short

5. Algoritmo Bucket Sort

6. Algoritmo Quick Sort

7. Algoritmo de mezcla directa

8. Algoritmo de mezcla natural

Tema 3. Backtracking: Algoritmos de vuelta atrás.

1. Concepto de backtracking

2. Programación con backtracking

3. Ejemplos de algoritmos de backtracking

4. Optimización: Branch and bound

Tema 4. Métodos de almacenamiento y búsqueda mediante cálculo de dirección basado en clave (hashing).

1. Introducción

2. Colisiones y alternativas para su solución

Page 7: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

3. Borrado de elementos en tablas hash

4. Reordenamiento en tablas hash

5. Eficiencia de algoritmos hash

Programa de la enseñanza práctica

Práctica 1. Algoritmos de búsqueda

La práctica consistirá en implementar algoritmos de búsqueda lineales y binarios, así como implementación del algoritmo de búsqueda de patrones de fuerza bruta. También se deberá explicar los algoritmos de búsqueda de patrones KMP y BM a partir del código proporcionado por el profesor. Por último se realizará un estudio comparativo de la eficiencia de los algoritmos de búsqueda de patrones estudiados en el correspondiente tema teórico.

Práctica 2. Algoritmos de clasificación y ordenación

La práctica consistirá en implementar diversos algoritmos de clasificación y ordenación vistos en el correspondiente tema teórico y aplicar una serie de benchmarks a estos algoritmos con la finalidad de realizar un estudio comparativo que justifique los diferentes niveles de eficiencia obtenidos con cada algoritmo.

Práctica 3. Backtracking

La práctica consistirá en varios problemas de aplicación real en comercios, procesos industriales, juegos, etc., que deben resolverse por el método de backtracking. Se estudiará la eficiencia de esos algoritmos y posibles mejores mediante la técnica de Branch and Bound.

Práctica 4. Hashing

La práctica consistirá en diseñar, implementar y utilizar diferentes estructuras y técnicas hash para el almacenamiento de una base de datos de clientes. Se realizará un estudio comparativo de las diferentes estructuras y técnicas utilizadas para justificar los diferentes niveles de eficiencia obtenidos.

Se podrá consultar información adicional sobre puntuación, fechas de entrega, enunciado, etc. en el documento de “Normativa de prácticas” y “Plan de Trabajo” que se pondrá a disposición de los alumnos en el Campus Virtual.

Page 8: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

Relación con otras asignaturas del plan de estudios Fundamentos de programación (I y II) y Cálculo

Sistema de evaluación - Primera prueba parcial: 30% del total de la nota.

- Temas 1 y 2

- Prueba final: 30% del total de la nota.

- Temas 3 y 4

- Evaluación de prácticas y problemas: 30% del total de la nota.

- Participación: 10% del total de la nota.

Las pruebas parciales se realizarán de manera presencial en el campus de la UCAM. La participación se valorará a partir de la entrega de diferentes tareas voluntarias, así como en la participación de los diversos mecanismos de tutorización dirigidos a resolver dudas entre compañeros (foros, videoconferencias de resolución de dudas). Se tendrá en cuenta no solamente la cantidad de la participación, sino la calidad de la misma, tanto en el planteamiento de dudas como en la resolución de las de los compañeros en herramientas tales como foros y videoconferencias.

El profesor se reserva el derecho de mantener una entrevista personal con el alumno para comprobar la autoridad de las prácticas. Una inadecuada defensa de las prácticas supondrá el suspenso de esta parte de la asignatura.

El alumno superará la asignatura cuando la media ponderada sea igual o superior a 5 puntos y tenga una nota de, al menos, 4 puntos en todas las partes que componen el sistema de evaluación cuya ponderación global sea igual o superior al 20%.

Si el alumno tiene menos de un 4 en alguna de las partes cuya ponderación sea igual o superior al 20%, la asignatura estará suspensa y deberá recuperar esa/s parte/s en la siguiente convocatoria dentro del mismo curso académico. La/s parte/s superada/s en convocatorias oficiales (Febrero/Junio) se guardarán para las sucesivas convocatorias que se celebren en el mismo curso académico.

En caso de que no se supere la asignatura en la Convocatoria de Septiembre, no contarán las partes aprobadas para sucesivos cursos académicos.

El sistema de calificaciones (RD 1.125/2003. de 5 de septiembre) será el siguiente:

0-4,9 Suspenso (SS)

5,0-6,9 Aprobado (AP)

Page 9: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

7,0-8,9 Notable (NT)

9,0-10 Sobresaliente (SB)

La mención de “matrícula de honor” podrá ser otorgada a alumnos que hayan obtenido una calificación igual o superior a 9,0. Su número no podrá exceder del 5% de los alumnos matriculados en una materia en el correspondiente curso académico, salvo que el número de alumnos matriculados sea inferior a 20, en cuyo caso se podrá conceder una sola matrícula de honor.

Bibliografía y fuentes de referencia Bibliografía básica

Joyanes Aguilar, L. C. Algoritmos, Programación y Estructura de Datos. 2ºEd. McGraw-Hill Interamericana, 2011. Serie Schaum (accesible mediante la plataforma www.ingebook.com a través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. The MIT Press, 3 edition, 2009 ((accesible mediante la plataforma BUSCAM través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

Bisbal Riera, J. Manual de algorítmica: Recursividad, complejidad y diseño de algoritmos. Editorial UOC, 2009 ((accesible mediante la plataforma e-libro través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

M. Rodríguez Artalejo, P. A. González Calero, M. A. Gómez Martín. Estructuras de datos. Un enfoque moderno. Editorial Complutense, 2011. (accesible mediante la plataforma e-libro través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

Gottfried, Byron S., Programación en C, Serie Schaum, 2º Edición, McGraw-Hill, 2013 (accesible mediante la plataforma www.ingebook.com a través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

Bibliografía complementaria Hernández Berlinches, R. Problemas de estructuras de datos y algoritmos. 1ª Edición. Editorial Universitaria Ramón Areces, 2006.

Joyanes Aguilar, L., Zahonero Martínez, I. Programación en C. Metodología, algoritmos y estructuras de datos. 2º Edición. McGraw-Hill, 2005 (accesible mediante la plataforma www.ingebook.com a través de un ordenador con IP de la UCAM o a través de cualquier

Page 10: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual)

Schildt, H., C. Manual de Referencia. 4ª Edición, McGraw-Hill, 2004

Nakamura, C., Adriana, M. Diseño de algoritmos y su codificación en C. 1ª Edición, McGraw-Hill, 2011

García Carballería, F. Problemas resueltos de programación en C. Paraninfo, 2009.

Wirth, N. Algoritmos y Estructuras de Datos. Prentice Hall, 1991.

Aho, A.V., Hopcroft, J.E., Ullman, J.D. Estructuras de Datos y Algoritmos. Addison-Wesley, 1999.

Web relacionadas DevC++: IDE y compilador de C para Windows: http://sourceforge.net/projects/dev-cpp/

CodeBlocks: IDE y compilador de C para Windows/Linux: http://www.codeblocks.org/

ACM-ICPC: Concurso internacional de programación de algoritmos: http://icpc.baylor.edu/

AlgorithmStudy: Proyecto de estudio de algoritmos: http://algstudy.sourceforge.net/

IngeBook: Plataforma de libros on-line gratuitos: www.ingebook.com Accesible a través de un ordenador con IP de la UCAM o a través de cualquier navegador desde http://api.ucam.edu Más información en http://www.ucam.edu/servicios/informatica/api-virtual

Recomendaciones para el estudio La asignatura es eminentemente práctica y se centra en la capacidad de resolver problemas y razonamiento crítico del alumno. Por tanto, se recomienda al alumno que siga al día los boletines de prácticas y ejercicios de programación propuestos para cada tema de manera que se refuercen los contenidos teóricos, ya que estos ejercicios prácticos están orientados a que el alumno se plantee las ideas fundamentales detrás de los algoritmos que se explican en los materiales didácticos aportados por el profesor, así como entender y experimentar cómo se obtienen os tiempos de ejecución calculados teóricamente, las posibles mejoras sobre papel de los algoritmos dados, etc.

Aunque los temas de la asignatura pueden estudiarse por separado, el incremento de la dificultad planteado en el curso hace recomendable que el alumno lleve un seguimiento continuo de la asignatura, y no pase a estudiar un tema hasta haber comprendido y controlado los algoritmos e ideas fundamentales detrás de éstos incluidos en cada tema.

Page 11: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

Material necesario Material didáctico

Además de la bibliografía recomendada, en el apartado de Recursos del Campus Virtual se proporcionará al alumno el material didáctico necesario organizado en carpetas por temas para el seguimiento de la asignatura que consistirá en:

• Apuntes sobre cada uno de los temas tratados, con indicaciones específicas a capítulos de libros o manuales en los que se puede profundizar más en los conocimientos expuestos en cada tema.

• Enlaces a páginas Web donde aumentar la información sobre los temas con ejercicios interactivos.

• Ejercicios para practicar y posteriormente las soluciones a los mismos.

• Ejercicios de repaso del lenguaje C así como bibliotecas de las estructuras de datos más comunes.

• Presentaciones Polimedia con explicación oral del profesor de los temas más importantes y/o dificultosos

• Videos guiados con ejercicios resueltos por el profesor a través de la plataforma LiveScribe

Aplicaciones Se recomienda utilizar alguno de los dos IDEs (DevC++ / CodeBlocks) indicados en la sección Web Relacionadas para desarrollar y compilar los programas en C que se pedirán en los boletines de prácticas. El alumno puede utilizar cualquier otro software para realizar las prácticas en C, pero debe asegurarse que las aplicaciones realizadas compilan y se ejecutan correctamente en al menos uno de estos dos IDEs mencionados.

Tutorías Breve descripción

Además de las tutorías presenciales con el profesor en el Departamento, a través del campus virtual se van a establecer diferentes mecanismos de tutorización, soportados por las distintas herramientas disponibles:

• Foros: Sirven para promover la interacción entre todos los participantes en la asignatura. Se establecerá un tema en el foro por cada tema de la asignatura más un tema específico para prácticas y otro tema para cuestiones generales relacionadas con la asignatura.

Page 12: Guía Docente 2017/2018 - ucamonline.net · de datos lineales y no lineales, algoritmos de clasificación y búsqueda, y técnicas de backtracking y hashing. Brief Description . This

Algoritmia

Algoritmia - Tlf: (+34) 902 102 101

• Mensajes privados y/o correo electrónico: Toda la comunicación directa con el profesor puede realizarse mediante estas herramientas. Preferiblemente correo electrónico. Se realizará diariamente, con un compromiso de respuesta en menos de 48 horas lectivas desde la recepción del mismo.

• Videoconferencia: Para la discusión de temas concretos y la aclaración de dudas. El profesor propondrá al menos tres videoconferencias: presentación, seguimiento de las prácticas y aclaración de dudas previas a cada uno de los exámenes. Además de las propuestas por el profesor, los alumnos podrán solicitar la realización de videoconferencias bajo demanda para la explicación de conceptos complejos o problemas al realizar los ejercicios prácticos.

• Teléfono: En las horas de tutorías el profesor atenderá a los alumnos por éste método, fuera de ese horario también será posible contactar con el profesor por teléfono previa petición.