
Fundamentos de Programación II
Código: 108256Créditos: 9
| Titulación | Tipo | Curso |
|---|---|---|
| Inteligencia Artificial / Bachelor in Artificial Intelligence | OB | 1 |
Profesor/a de contacto
- Nombre :
- Abraham De la Rosa Ibarra
- Correo electrónico :
- abraham.delarosa@uab.cat
Idiomas de los grupos
Puede consultar esta información al final del documento.
Prerrequisitos
El curso no tiene requisitos previos oficiales. Sin embargo, se basa en Fundamentos de Programación I. Por lo tanto, se recomienda que los/las estudiantes tengan un buen conocimiento de los conceptos básicos de programación y Python.
Objetivos
Este curso es la continuación de Fundamentos de Programación I, y los objetivos generales son:
- Comprender diferentes estructuras de datos, como pilas, colas y listas.
- Comprender diferentes estructuras de datos más complejas, como tablas hash, árboles y grafos.
- Comprender la memoria dinámica y los punteros.
- Comprender diferentes algoritmos para ordenar y buscar, y las limitaciones de esos algoritmos.
- Ser capaz de analizar un problema complejo, diseñar una solución eficiente, implementarla, calcular su coste y probarla.
- Introducir el concepto de recursividad y su aplicación, así como ser capaz de analizar la complejidad de los algoritmos recursivos.
Resultados de aprendizaje
- CM01 (Planificar e implementar proyectos de software en el ámbito de la inteligencia artificial que se ajusten a los requerimientos de la aplicación, abordando todas las fases de desarrollo del proyecto y siguiendo los principios y métodos estándares para la gestión y el desarrollo de proyectos de software) Planificar e implementar proyectos de software en el ámbito de la inteligencia artificial que se ajusten a los requerimientos de la aplicación, abordando todas las fases de desarrollo del proyecto y siguiendo los principios y métodos estándares para la gestión y el desarrollo de proyectos de software
- CM02 (Organizar las tareas para el desarrollo de un proyecto de software demostrando la capacidad de liderazgo y cooperación necesarias para el éxito del proyecto) Organizar las tareas para el desarrollo de un proyecto de software demostrando la capacidad de liderazgo y cooperación necesarias para el éxito del proyecto
- KM07 (Describir las metodologías y procedimientos para el análisis, diseño, validación y gestión de proyectos de desarrollo de software) Describir las metodologías y procedimientos para el análisis, diseño, validación y gestión de proyectos de desarrollo de software
Contenidos
El contenido de la asignatura es:
- Memoria dinámica: Punteros
- Estructuras de datos dinámicas (listas, pilas, colas)
- Algoritmos de ordenación y búsqueda
- Análisis de la complejidad de los algoritmos
- Estructuras de datos no lineales. Técnicas de hash: Arrays y listas de hash
- Recursividad
- Gráficas
- Árboles
Programación avanzada de diferentes estructuras de datos dinámicas en lenguaje C.
Actividades formativas y Metodología
| Título | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|
| Estudio de la materia, preparación y realización de problemas y prácticas. | 144 | 5,76 | CM01, CM02, KM07 |
| Problemas | 18 | 0,72 | CM01, CM02 |
| Teoría | 39 | 1,56 | KM07 |
| Prácticas | 18 | 0,72 | CM01, CM02 |
Usaremos la plataforma moodle (Caronte o Campus Virtual) para compartir materiales, entregar proyectos y otras actividades administrativas. Al principio del curso se publicarán todos los detalles.
La metodología docente se centrará principalmente en el trabajo práctico. Se organizarán sesiones presenciales para la discusión de los contenidos teóricos de la asignatura, seguidas de ejercicios y problemas de programación. Más concretamente, los diferentes tipos de actividades docentes son los siguientes:
- Clases teóricas: Explicación en pizarra de la parte teórica de cada tema del programa. La estructura típica de una clase será la siguiente: en primer lugar se realizará una introducción donde se expondrán brevemente los objetivos de la clase y los contenidos a tratar. A continuación, se abordarán los contenidos de un tema, incluyendo exposiciones narrativas, desarrollos formales que aporten fundamentos teóricos, e intercalando ejemplos prácticos, que ilustren la aplicación de los contenidos expuestos. Finalmente, el profesorado expondrá las conclusiones de los contenidos tratados. Las clases teóricas, a pesar de ser principalmente una explicación por parte del profesorado, serán participativas para los/las estudiantes dándoles la oportunidad de preguntar aquellos puntos que no terminan de entender. A los/las estudiantes se les plantearán constantemente preguntas y problemas para comprobar la buena comprensión del tema expuesto. Habrá 2 exámenes para evaluar esta parte de la asignatura.
- Clases de resolución de problemas: Resolución conjunta de problemas. Todos los temas irán acompañados de un conjunto de problemas que el/la estudiante deberá intentar resolver. En este sentido, y a medida que el/la estudiante progrese yprofundice en sus conocimientos, estos problemas serán progresivamente más complejos. Las clases serán el foro natural en el que se pueda discutir en común el desarrollo del trabajo práctico, aportando los conocimientos que le faltan al alumnado para llevarlo adelante. Las clases de resolución de problemas tienen como misión servir de puente entre las clases teóricas y las clases de laboratorio, lo que fomentará la capacidad de análisis y síntesis, el desarrollo del razonamiento crítico, y que capacitará al/la estudiante en la resolución de problemas. Durante el curso, los/las estudiantes (en grupos de 2 personas) realizarán varios ejercicios cortos y básicos que serán evaluados. Cada grupo resolverá estos ejercicios básicos y realizará la entrega en un plazo corto correspondiente. Este ejercicio busca a que los/las estudiantes puedan resolver teóricamente los conceptos trabajados en las clases teóricas para luego poder aplicarlos al caso práctico de laboratorio.
- Proyectos prácticos: los/las estudiantes trabajarán en parejas y recorrerán los diferentes pasos del ciclo de vida del desarrollo de software para implementar la solución a un problema. Estos proyectos prácticos completarán las asignaturas teóricas, donde el/la estudiante desarrollará varios programas y tendrá que intentar resolver un problema concreto propuesto. Estos proyectos deberán ser entregados en las fechas indicadas. Habrá 2 proyectos durante el curso.
Este enfoque de trabajo está dirigido a promover el aprendizaje activo y desarrollar competencias de organización y planificación, comunicación oral y escrita, trabajo en equipo y razonamiento crítico. Se valorará especialmente la calidad de los ejercicios realizados, de su presentación y de su funcionamiento.
Todos los detalles del funcionamiento, el calendario y las fechas de evaluación se informarán al principio del curso y aparecerá en la plataforma de comunicación.
Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.
Evaluación
Actividades de evaluación continuada
| Título | Peso | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|---|
| Prácticas | 30 | 2 | 0,08 | CM01, CM02, KM07 |
| Teoría/Problemas Control 1 | 35 | 2 | 0,08 | CM01, KM07 |
| Teoría/Problemas Control 2 | 35 | 2 | 0,08 | CM01, KM07 |
a) Actividades de evaluación programadas
Teoría/Problemas Control 1: 35% de la nota final;
Teoría/Problemas Control 2: 35% de la nota final;
Prácticas: 30% de la nota final;
Es imprescindible que la media ponderada de les tres actividades de evaluación sea como mínimo 5 para poder superar la asignatura. Además, es necesario una nota mínima de 5 en la media de los dos controles y una nota mínima de 5 en les Prácticas.
Nota Importante: El profesorado puede solicitar una entrevista o prueba de validación de las prácticas entregadas por el estudiante, cuando lo considere necesario. El resultado de la entrevista o prueba de validación, podrá invalidar la entrega, dejando un cero como calificación en ese apartado y por tanto el curso como suspendido.
Tanto en lo que se refiere a los controles, reevaluaciones y cualquier actividad evaluable, no se permitirá la entrada de ningún/a alumno/a transcurridos 5 minutos desde el comienzo de la prueba/actividad. En las pruebas evaluativas no se pueden utilizar teléfonos móviles.
En caso de no superar la asignatura, la nota numérica del expediente será el menor valor entre 4.5 y la media ponderada de las notas.
b) Programación de actividades de evaluación
La calendarización de les actividades de evaluación se dará el primer día de la asignatura y se hará pública a través del Campus Virtual. Estas fechas pueden estar sujetas a cambios de programación per motivos de adaptación a posibles incidencias; siempre se informará a través del campus virtual sobre estos cambios ya que se entiende que es el mecanismo habitual de intercambio de información entre el profesorado y el alumnado.
c) Proceso de Recuperación:
Aquellos/as estudiantes que, habiendo hecho la evaluación continuada, no han conseguido el mínimo necesario para superar la asignatura, tendrán opción a una recuperar uno o los dos controles de la parte de Teoría/Problemas. La parte de Prácticas, dada su naturaleza, no se puede recuperar. Las calificaciones obtenidas en la(s) recuperación(es) serán las definitivas que se considerarán para la nota final del curso.
d) Procedimiento de revisión de las calificaciones
Para cada actividad de evaluación, los alumnos que lo deseen podrán solicitar fecha y hora para revisar dicha evaluación con el profesorado correspondiente. La solicitud de revisión tendrá que ser hecha en los días que se indiquen para cada actividad, fuera de ese tiempo no se podrá agendar la revisión.
e) Calificaciones
Matrícula de Honor: Un/a estudiante podrá obtener la calificación de Matrícula de Honor siempre y cuando la nota final de la asignatura sea 9 o superior y teniendo en cuenta el porcentaje máximo de Matrículas de Honor que se pueden otorgar según la normativa de la UAB.
Dado que la metodología de evaluación es continuada, el hecho de presentar cualquier entrega de alguna evidencia evaluable (ejercicio de problemas, control, practicas...) se interpreta como la voluntad expresa de presentarse a la asignatura y, por lo tanto, de ser evaluado con una nota diferente de No Avaluable (NA). Una calificación de NA solo se puede obtener no entregando evidencias evaluables en todo el curso.
f) Irregularidades por parte del alumnado, copia y plagio
Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y según la normativa académica vigente, las irregularidades cometidas por un estudiante que puedan conducir a una variación de la calificación en una actividad evaluable se calificaran con un cero (0). Las actividades de evaluación calificadas de esta forma y por este procedimiento, no serán recuperables. Si es necesario superar cualquiera de estas actividades de evaluación para aprobar la asignatura, esta asignatura quedará suspendida directamente, sin oportunidad de recuperarla en el mismo curso. Estas irregularidades incluyen, entre otras:
- la copia total o parcial de una práctica, informe, o cualquierotra actividad de evaluación;
- dejar copiar;
- presentar un trabajo de grupo no hecho íntegramente por miembros del grupo (aplicado a todos los miembros, no solamente a los que no han trabajado);
- el uso no autorizado de la IA (p. ejemplo Copilot, ChatGPT o equivalente) para resolver cualquier actividad evaluable;
- presentar como propios materiales elaborados por un tercero,aunque sean traducciones o adaptaciones, y en general trabajos con elementos no originales y exclusivos del/la estudiante;
- tener dispositivos de comunicación (como teléfonos móviles, smart watches, bolígrafos con cámara, etc.) accesibles durante las pruebas de evaluación teórico-prácticas individuales (exámenes);
- hablar con compañeros/as durante las pruebas de evaluación teórico-prácticas individuales (exámenes);
- copiar o intentar copiar de otros/as alumnos/as durante las pruebas de evaluación teórico-prácticasindividuales (exámenes);
- usar o intentar usar escritos relacionados con la materia durante la realización de las pruebas de evaluación teórico-prácticas (exámenes), cuando estos no haya sido explícitamente permitidos.
Para esta asignatura, el uso de tecnologías de Inteligencia Artificial (IA) está permitido exclusivamente en tareas de soporte, tales como búsquedas bibliográficas o de información, corrección de textos o traducciones. El estudiante debe identificar claramente qué partes se han generado con esta tecnología, especificar las herramientas utilizadas e incluir una reflexión crítica sobre cómo éstas han influido en el proceso y el resultado final de la actividad. La falta de transparencia en el uso de la IA se considerará una carencia de honestidad académica y podrá comportar una penalización parcial o total en la nota de la actividad, o sanciones mayores en casos graves.
En resumen: copiar, dejar copiar o plagiar (o el intento de) en cualquiera de les actividades de evaluación, equivale a un SUSPENDIDO, no compensable y sin convalidaciones de partes de la asignatura en cursos posteriores.
g) Evaluación única
Esta asignatura no contempla el sistema de evaluación única.
h) Reprogramación de pruebas de evaluación
De acuerdo con la normativa, el estudiantado que no pueda asistir a un Control de Teoría/Problemas dado que supone más de un 20% de la nota final de la asignatura, tiene derecho a una prueba o actividad alternativa evaluable en los siguientes casos:
- Situaciones médicas sobrevenidas que incapacitan poder llevar a cabo la actividad de evaluación.
- Asuntos judiciales con citación oficial.
- Asistencia a oposiciones oficiales.
- Fallecimiento de un familiar hasta segundo grado el día del examen o en los cuatro días anteriores a la fecha del examen.
- Asistencia a reuniones de los órganos colegiados de representación universitaria u otros motivos previstos en las normativas respectivas.
- Participación en programas de movilidad de la UAB.
Tal y como se indica en el apartado 6 de la Normativa, la solicitud de reprogramación deberá hacerse llegar a la Gestión Académica y de Servicios de la Escuela de Ingeniería, junto con toda la documentación necesaria, dentro de los cinco días naturales anteriores a fecha de la prueba y hasta cinco días naturales inmediatamente posteriores.
Bibliografía
- Mark Allen Weiss: Data Structures and Algorithm Analysis in C (2nd Edition). Pearson, 1996.
- Mark Allen Weiss: Data Structures and Algorithm Analysis in C++. 4 th edition. Pearson, 2014.
- Kernighan, Brian; Ritchie, Dennis M., The C Programming Language (2nd edition). Englewood Cliffs, NJ:
- Prentice Hall. 1988.
- K.N. King: C Programming: A Modern Approach. 2nd edition. W.W. Norton & Company. 2008
- http://www.cplusplus.com/ : The C++ Resources Network
Software
Windows/Linux
Microsoft Visual Code
Linux or Windows compilers
Grupos e idiomas de la asignatura
La información proporcionada es provisional hasta el 30 de noviembre. A partir de esta fecha, podrá consultar el idioma de cada grupo a través de este enlace. Para acceder a la información, será necesario introducir el CÓDIGO de la asignatura
| Tipo de docencia | Grupo | Idioma | Semestre | Turno |
|---|---|---|---|---|
| (TE) Teoría | 1 | Inglés | segundo cuatrimestre | tarde |
| (PAUL) Prácticas de aula | 1 | Inglés | segundo cuatrimestre | tarde |
| (PLAB) Prácticas de laboratorio | 1 | Inglés | segundo cuatrimestre | tarde |
| (PLAB) Prácticas de laboratorio | 2 | Inglés | segundo cuatrimestre | tarde |