Nombre: ANÁLISIS Y DISEÑO DE ALGORITMOS
Código: 525102001
Carácter: Obligatoria
ECTS: 6
Unidad Temporal: Cuatrimestral
Despliegue Temporal: Curso 2º - Primer cuatrimestre
Menciones/Especialidades:
Lengua en la que se imparte: Castellano
Carácter: Presencial
Nombre y apellidos: TERROSO SÁENZ, FERNANDO
Área de conocimiento: Lenguajes y Sistemas Informáticos
Departamento: Tecnologías de la Información y las Comunicaciones
Teléfono:
Correo electrónico: fernando.terroso@upct.es
Horario de atención y ubicación durante las tutorias:
Titulaciones:
Categoría profesional: Profesor Ayudante Doctor
Nº de quinquenios: No procede por el tipo de figura docente
Nº de sexenios: No procede por el tipo de figura docente
Curriculum Vitae: Perfil Completo
Nombre y apellidos: MARTÍNEZ FORTE, ISAAC
Área de conocimiento: Lenguajes y Sistemas Informáticos
Departamento: Tecnologías de la Información y las Comunicaciones
Teléfono:
Correo electrónico: isaac.martinez@upct.es
Horario de atención y ubicación durante las tutorias:
Titulaciones:
Categoría profesional: Profesor Asociado
Nº de quinquenios: No procede por el tipo de figura docente
Nº de sexenios: No procede por el tipo de figura docente
Curriculum Vitae: Perfil Completo
[CB1 ]. Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio
[CB2 ]. Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio
[CB5 ]. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía
[CG2 ]. Conocer y aplicar los fundamentos de ingeniería y tecnologías informáticas actuales para diseñar e implementar nuevas aplicaciones de análisis de datos.
[CG4 ]. Capacidad para aplicar los métodos generales de la ciencia e ingeniería de datos en los tipos de datos de dominios específicos, así como en la presentación de los datos, el modelado de datos y procesos, los roles organizacionales y las relaciones entre estos.
[CE2 ]. Desarrollar programas orientados al análisis de datos, usando las estructuras de datos, algoritmos y herramientas de programación adecuadas.
Tomar conciencia de la importancia de realizar siempre un análisis y diseño previos del problema, como pasos anteriores a la implementación en un lenguaje de programación.
Aplicar las técnicas básicas del estudio teórico de algoritmos y realizar estudios experimentales, comprender su importancia y la necesidad de contrastar los resultados experimentales con los teóricos.
Distinguir los distintos tiempos de ejecución que se utilizan en el estudio de algoritmos: caso más favorable, más desfavorable y promedio.
Conocer la complejidad de las funciones que aparecen más frecuentemente en el estudio de algoritmos, así como la relación entre las complejidades de estas funciones.
Comprender la técnica de resolución por división en problemas más pequeños.
Conocer, distinguir y saber cuándo y cómo aplicar los esquemas algoritmos básicos.
Comprender la importancia de la heurística en la resolución eficiente de problemas de alto coste computacional.
Análisis y complejidad de algoritmos. Esquemas algorítmicos. Divide y vencerás. Algoritmos voraces. Programación dinámica. Backtracking.
Análisis y diseño de algoritmos
Bloque 1: Análisis y complejidad de algoritmos
Tema 1: Análisis y complejidad de algoritmos
Bloque 2: Esquemas algorítmicos
Tema 1: Algoritmos voraces
Tema 2: Backtracking
Tema 3: Divide y vencerás
Tema 4: Programación dinámica
P1: Avance Rápido
Resolución de ejercicios programados y estudio de complejidad Relacionado con: Tema 1: Análisis y complejidad de algoritmos Tema 1: Algoritmos voraces
P2: Backtracking
Resolución de ejercicios programados y estudio de complejidad Relacionado con: Tema 1: Análisis y complejidad de algoritmos Tema 2: Backtracking
Práctica 3 - Divide y Vencerás
Resolución de ejercicios programados y estudio de complejidad Relacionado con: Tema 1: Análisis y complejidad de algoritmos Tema 3: Divide y vencerás
Programación Dinámica
Resolución de ejercicios programados y estudio de complejidad Relacionado con: Tema 1: Análisis y complejidad de algoritmos Tema 4: Programación dinámica
La Universidad Politécnica de Cartagena considera como uno de sus principios básicos y objetivos fundamentales la promoción de la mejora continua de las condiciones de trabajo y estudio de toda la Comunidad Universitaria. Este compromiso con la prevención y las responsabilidades que se derivan atañe a todos los niveles que integran la Universidad: órganos de gobierno, equipo de dirección, personal docente e investigador, personal de administración y servicios y estudiantes. El Servicio de Prevención de Riesgos Laborales de la UPCT ha elaborado un "Manual de acogida al estudiante en materia de prevención de riesgos" que puedes encontrar en el Aula Virtual, y en el que encontraras instrucciones y recomendaciones acerca de cómo actuar de forma correcta, desde el punto de vista de la prevención (seguridad, ergonomía, etc.), cuando desarrolles cualquier tipo de actividad en la Universidad. También encontrarás recomendaciones sobre cómo proceder en caso de emergencia o que se produzca algún incidente. En especial, cuando realices prácticas docentes en laboratorios, talleres o trabajo de campo, debes seguir todas las instrucciones del profesorado, que es la persona responsable de tu seguridad y salud durante su realización. Consúltale todas las dudas que te surjan y no pongas en riesgo tu seguridad ni la de tus compañeros.
Analysis and design of algorithms
Lecture 1. Analysis and complexity of algorithms.
Lecture 2. Algorithmic scheme: Divide and conquer.
Lecture 3. Algorithmic scheme: Voracious algorithms.
Lecture 4. Algorithmic scheme: Dynamic programming.
Lecture 5. Algorithmic scheme: Backtracking.
Exposición teórica: Exposición de los contenidos teóricos de la asignatura por parte del profesor. También se contemplan las sesiones informativas sobre el desarrollo del trabajo de fin de grado o prácticas externas.
Clase en aula convencional: teoría, problemas, casos prácticos, etc.
20
100
Seminarios y actividades de aula: Exposición, análisis y debate dentro del contexto de aplicaciones específicas de contenidos teóricos, así como planteamiento y resolución de ejercicios y casos prácticos en el aula, tanto al grupo completo como en grupos reducidos. También se contemplan conferencias, debates y seminarios temáticos.
Seminarios sobre programación Python
5
100
Prácticas de laboratorio: Ejercicios y resolución de problemas, aprendizaje orientado a proyectos, estudio de casos, exposición y discusión de trabajos, simulaciones y/o prácticas con ordenadores, generalmente desarrolladas en grupos reducidos.
Clase en aula de informática: prácticas.
28
100
Trabajo autónomo del alumno: Estudio y preparación de contenidos teórico-prácticos, trabajo individual consistente en lecturas, búsquedas de información, sistematización de contenidos, elaboración de informes o estudio para la elaboración de casos entre otras actividades.
Trabajo del estudiante: estudio
90
0
Tutorías formativas y resolución de dudas: Asistencia individualizada -tutorías individuales- o en grupo -tutorías colectivas- a los estudiantes por parte del profesor.
Tutorías con estudiantes. Se atenderá bajo demanda, presencial u online, según el caso.
3
100
Evaluación: Pruebas individuales, ya sean escritas, orales o con medios informáticos, donde el estudiante demostrará los conocimientos teóricos y prácticos adquiridos durante las actividades formativas asociadas a la enseñanza de la materia.
Actividades de evaluación
4
100
Exámenes individuales: Pruebas objetivas, de desarrollo, de respuesta corta, de ejecución de tareas o de escala de actitudes, realizadas por los estudiantes para mostrar los conocimientos teóricos y prácticos adquiridos ya sea de forma oral, escrita o utilizando un ordenador.
Se realizarán controles con ejercicios de los temas 1 (Análisis de algoritmos) y 4 (Programación dinámica). En caso de ser superados, esos temas son excluidos del examen final.
En todos los exámenes se valorará la corrección de la solución y la eficiencia del código propuesto, cuando proceda. También criterios básicos de buenas prácticas de programación como una buena estructuración en funciones, legibilidad, modularidad, así como una buena documentación del mismo mediante comentarios.
30 %
Procedimientos de observación del trabajo del estudiante: Registros de participación, de realización de actividades, cumplimiento de plazos, participación en foros, informes de seguimiento del trabajo fin de grado y registros sobre el desarrollo de las prácticas externas.
El profesorado de la asignatura puede tener en cuenta aquí cualquier indicio recogido a lo largo de la impartición de la asignatura.
En particular, se tendrá en cuenta el seguimiento en los laboratorios de la realización de las prácticas.
10 %
Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas y posibles resúmenes del estado del arte sobre temas concretos. La opción de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.
Los criterios evaluar las prácticas son:
- la corrección y eficiencia de los algoritmos propuestos por el estudiante
- el correcto seguimiento de los esquemas algorítmicos correspondientes
- el correcto análisis de la eficiencia de los algoritmos programados
- la calidad de la documentación presentada, así como del código programado
- la superación de la entrevista de prácticas, si procede a criterio del profesor
Cada una de las dos prácticas se evalúa sobre 10. Se requiere un 5 en cada una de ellas para aprobarlas.
Cada práctica tiene un peso del 50% de la nota de prácticas.
Puede requerirse entrevista personal.
60 %
Exámenes individuales: Pruebas objetivas, de desarrollo, de respuesta corta, de ejecución de tareas o de escala de actitudes, realizadas por los estudiantes para mostrar los conocimientos teóricos y prácticos adquiridos ya sea de forma oral, escrita o utilizando un ordenador.
Examen final de todo el temario. Se valorará la corrección de la solución y la eficiencia del código propuesto, cuando proceda. También criterios básicos de buenas prácticas de programación como una buena estructuración en funciones, legibilidad, modularidad, así como una buena documentación del mismo mediante comentarios.
30 %
Procedimientos de observación del trabajo del estudiante: Registros de participación, de realización de actividades, cumplimiento de plazos, participación en foros, informes de seguimiento del trabajo fin de grado y registros sobre el desarrollo de las prácticas externas.
El profesorado de la asignatura puede tener en cuenta aquí cualquier indicio recogido a lo largo de la impartición de la asignatura.
En particular, se tendrá en cuenta el seguimiento en los laboratorios de la realización de las prácticas.
10 %
Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas y posibles resúmenes del estado del arte sobre temas concretos. La opción de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.
Los criterios evaluar las prácticas son:
- la corrección y eficiencia de los algoritmos propuestos por el estudiante
- el correcto seguimiento de los esquemas algorítmicos correspondientes
- el correcto análisis de la eficiencia de los algoritmos programados
- la calidad de la documentación presentada, así como del código programado
- la superación de la entrevista de prácticas, si procede a criterio del profesor
Cada una de las dos prácticas se evalúa sobre 10. Se requiere un 5 en cada una de ellas para aprobarlas.
Cada práctica tiene un peso del 50% de la nota de prácticas.
Puede requerirse entrevista personal.
60 %
Los criterios para establecer la nota que aparecerá en el acta son los siguientes:
- Si el alumno no se presenta al examen de teoría ni realiza ninguna entrega de prácticas, su calificación será "No
Presentado"
- Si el alumno supera una parte y no se presenta a la otra, su calificación será "No Presentado"
- Si el alumno suspende una parte y no se presenta a la otra, su calificación será "Suspenso" con la mitad de la nota de la parte
suspensa En este caso, la calificación numérica reflejada en el acta no será superior a 4,5
- Si el alumno suspende una parte y aprueba la otra, su calificación será "Suspenso" con la media ponderada. Si esa media
fuera igual o superior a 4,5 la calificación numérica reflejada en el acta sería 4,5
- Cuando el alumno apruebe o suspenda las dos partes, su calificación será el resultado de aplicar la media ponderada. Esto
será así en cualquier convocatoria
Autor: Domingo Giménez Cánovas, Joaquín Cervera López, Ginés García Mateos, Norberto Marín Pérez
Título: Algoritmos y estructuras de datos (volumen II)
Editorial: Diego Marín Librero Editor SL
Fecha Publicación:
ISBN: 84-8425-312-0
Autor: Brassard, Gilles
Título: Fundamentos de algoritmia
Editorial: Prentice-Hall
Fecha Publicación:
ISBN: 84-89660-00-X
Autor: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Título: Introduction to Algorithms, fourth edition
Editorial: The MIT Press
Fecha Publicación: 2022
ISBN: 9780262046305
Autor: Magnus Lie Hetland
Título: Python Algorithms: mastering basic algorithms in the Python Language
Editorial: Apress
Fecha Publicación: 2014
ISBN: 148420056X
Autor: Steven S. Skiena
Título: The Algorithm Design Manual (vol 2)
Editorial: Springer
Fecha Publicación:
ISBN: