Identifying Data 2022/23
Subject (*) Programming II Code 614G03007
Study programme
Grao en Intelixencia Artificial
Descriptors Cycle Period Year Type Credits
Graduate 2nd four-month period
First Basic training 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Ciencias da Computación e Tecnoloxías da Información
Coordinador
Cabrero Canosa, Mariano Javier
E-mail
mariano.cabrero@udc.es
Lecturers
,
Alvarez Estevez, Diego
Cabrero Canosa, Mariano Javier
López Varela, Emilio
Paz López, Alejandro
Vilares Calvo, David
E-mail
inigo.lopezrioboo.botana@udc.es
diego.alvareze@udc.es
mariano.cabrero@udc.es
e.lopezv@udc.es
alejandro.paz.lopez@udc.es
david.vilares@udc.es
Web http://campusvirtual.udc.es
General description Nesta materia o alumnado desenvolverá as destrezas necesarias para decidir con criterio a combinación de estruturas de datos (lineais ou árbores) e algoritmos máis convenientes para resolver un determinado problema de forma eficiente en termos de recursos espaciais e temporais. Ademais, a materia introduce o paradigma de orientación a obxectos, os seus elementos e propiedades básicas como clases, obxectos, herdanza, polimorfismo, etc. e o paradigma de programación funcional, as súas estruturas de datos características, e ámbitos de aplicación, salientando aqueles onde se logran formulacións e resolucións máis fáciles que con outros paradigmas de programación

Study programme competencies
Code Study programme competences
A2 Capacidad para resolver problemas de inteligencia artificial que precisen algoritmos, aplicando correctamente metodologías de desarrollo software y diseño centrado en usuario/a.
A3 Capacidad para comprender y dominar los conceptos básicos de lógica, gramáticas y lenguajes formales para analizar y mejorar las soluciones basadas en inteligencia artificial.
B2 Que el alumnado sepa aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posea 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.
B4 Que el alumnado pueda transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
B5 Que el alumnado haya desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
B6 Capacidad para concebir, redactar, organizar, planificar, y desarrollar modelos, aplicaciones y servicios en el ámbito de la inteligencia artificial, identificando objetivos, prioridades, plazos recursos y riesgos, y controlando los procesos establecidos.
B7 Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad.
B8 Capacidad para diseñar y crear modelos y soluciones de calidad basadas en Inteligencia Artificial que sean eficientes, robustas, transparentes y responsables.
B9 Capacidad para seleccionar y justificar los métodos y técnicas adecuadas para resolver un problema concreto, o para desarrollar y proponer nuevos métodos basados en inteligencia artificial.
C2 Capacidad de trabajo en equipo, en entornos interdisciplinares y gestionando conflictos.
C3 Capacidad para crear nuevos modelos y soluciones de forma autónoma y creativa, adaptándose a nuevas situaciones. Iniciativa y espíritu emprendedor.

Learning aims
Learning outcomes Study programme competences
Levar a cabo o proceso que permite, desde a abstracción, implementar código de alta calidade. A2
B2
B5
B7
C3
Aplicar programación modular para resolver problemas específicos no ámbito de IA. A2
B6
B8
B9
C3
Adquirir competencias para resolver problemas de forma metodolóxica e práctica. B5
B7
C3
Identificar e ter a capacidade para seleccionar nunha contorna práctica as principais librerías no campo de IA e Ciencia de Datos. B2
B5
B9
Comprender os conceptos básicos da programación funcional e o lambda cálculo e demostrar en que medida a súa aplicación favorece o desenvolvemento de aplicacións en IA. A3
B8
B9
Adquirir as competencias para analizar a complexidade computacional dun determinado algoritmo, así como desenvolver as capacidades necesarias para escoller a combinación de estruturas de datos e estratexia de resolución máis apropiada para resolver de modo eficiente (en termos de recursos espaciais e temporais) un determinado problema. A2
B4
B6
B7
C2
C3
Analizar as alternativas para afrontalo e identificar que aspectos poden abordarse con IA e cales non. A2
A3
B6
B8
B9
C2
Comprender os principios necesarios para construír solucións completas, escalables e robustas, centradas no/a usuario/a, nas que os compoñentes de IA encaixan como parte dun todo. A2
B2
B4
B6
B8
B9
C3
Manexar técnicas e ferramentas de proba para asegurar a calidade dos resultados. B8
B9
C2

Contents
Topic Sub-topic
Introdución á orientación a obxectos Clases e obxectos.
Métodos.
Herencia.
Interfaces e Polimorfismo.
Técnicas de deseño de programas Abstracción e especificación
Módulos
Excepcións e eventos
Tipos abstractos de datos lineais Listas
Pilas
Colas e Colas de Prioridade
Tipos abstractos de datos no lineais Árbores
Árbores Binarios de búsqueda
Árbores AVL
Introdución á programación funcional Funcións puras
Recursión
Inmutabilidade

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Laboratory practice A2 A3 B2 B6 B7 B8 B9 C2 C3 20 40 60
Problem solving A2 A3 B6 B7 10 17 27
Objective test B2 B4 B5 B7 B9 2 0 2
Guest lecture / keynote speech A2 A3 B5 B9 30 30 60
 
Personalized attention 1 0 1
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Laboratory practice Realización e entrega de distintas prácticas de programación para fomentar o traballo continuado. Proporcionarase o enunciado e as especificacións que deberán respectarse estritamente. Durante as clases o profesor supervisará o traballo solucionando dúbidas e corrixindo erros de interpretación, malos hábitos de programación e erros de sintaxe, etc.
Problem solving Presentación e resolución de supostos prácticos sinxelos para afianzar os conceptos teóricos. Poderán requerir o desenvolvemento de código. Fomentarase a participación dos alumnos poñendo en común as distintas solucións para promover o diálogo aberto e a valoración de solucións. Ademais poderanse formularan exercicios adicionais que o estudante deberá resolver e comentar/corrixir co profesor.
Objective test Avaliación sumativa do alumno mediante un exame final ao termo do cuadrimestre. Será eminentemente práctico para que o alumno poida demostrar que adquiriu os coñecementos necesarios de deseño de programas, orientación a obxectos e utilización de estruturas de datos, e que adestrou o suficiente con eles como para posuír as habilidades precisas para resolver supostos prácticos que implique a aplicación dos devanditos coñecementos.
Guest lecture / keynote speech Exposición oral complementada co uso de medios audiovisuais e a introdución de algunhas preguntas dirixidas
aos estudantes, coa finalidade de transmitir coñecementos e facilitar a aprendizaxe. Constarán dunha breve descrición dos contidos temáticos e dos obxectivos básicos perseguidos, e interrelacións con outros conceptos previamente adquiridos para pasar a desenvolver os contidos teóricos.

Personalized attention
Methodologies
Problem solving
Laboratory practice
Description
O desenvolvemento das sesións de solución de problemas e os laboratorios de prácticas realizarase atendendo ao progreso dos alumnos nas capacidades de comprensión e asimilación dos contidos impartidos. O avance xeral da clase compaxinarase cunha atención específica a aqueles alumnos que presenten maiores dificultades na tarefa da aprendizaxe e cun apoio adicional a aqueles outros que presenten maior desenvoltura e desexen ampliar coñecementos.

No que respecta ás titorías individuais, dado o seu carácter personalizado deben dedicarse a aclarar os conceptos xa expostos e serán una vía de interacción que permitirá extraer conclusións respecto ao grao de asimilación da materia. Realizaranse de xeito presencial. Excepcionalmente realizarase a través das ferramentas corporativas da UDC (email, Teams, etc.) respectando os horarios docentes.


Assessment
Methodologies Competencies Description Qualification
Objective test B2 B4 B5 B7 B9 Realización obrigatoria. Necesario aprobar a proba para superar a materia. 60
Laboratory practice A2 A3 B2 B6 B7 B8 B9 C2 C3 Realización e calificación segundo as condicións establecidas no enunciado de cada práctica. Necesario aprobar as practicas para superar a materia 40
 
Assessment comments

Traballos prácticos e
solución de problemas

  • De acordo ao artigo 14, apartado 4, da normativa*, o
    plaxio dos traballos levará unha nota global de NON APTO (0), tanto ao
    estudante que presente material copiado como a quen o facilitase, e a
    cualificación de SUSPENSO na oportunidade.
  • Se as prácticas ou outras actividades se
    realizaren en grupo, todos os membros do grupo responderán de forma solidaria
    do traballo realizado e entregado e das súas posibles consecuencias.

Avaliación na segunda
oportunidade

  • A
    nota global das prácticas
    manterase para a segunda oportunidade. Soamente as prácticas calificadas con
    SUSPENSO ou NON PRESENTADAS na primeira oportunidade poderán entregarse na
    segunda oportunidade, sempre de acordo ao enunciado que se propoña para elo.
  • En
    consonancia coa normativa de avaliación da UDC, a cualificación derivada doutras
    actividades desenvolvidas ao longo do curso como parte da avaliación continua
    (prácticas introdutorias, controis parciais de prácticas, probas en Grupos de Titoría Reducidos,etc.)
    non serán recuperables para a segunda oportunidade.

Matrícula a tempo
parcial

  • Os alumnos matriculados a tempo parcial terán que
    entregar as actividades avaliables nas condicións e prazos específicos que se
    establecerán. Será obriga do estudante comunicar a súa situación ao
    profesorado.

Non presentado

  • Quen non concurra á proba obxectiva no período
    oficial de avaliación terá a condición de “Non presentado” (NP).

 



* Normativa de avaliación, revisión e reclamación das cualificacións dos
estudos de grao e máster universitario, aprobada polo Consello de Goberno da
Universidade da Coruña o 19 de decembro de 2013.


Sources of information
Basic Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser (2013). Data Structures and Algorithms in Python. John Wiley & Sons
Kenneth A. Lambert (2013). Fundamentals of Python: Data Structures. Course Technologies

Complementary Camilo Chacon (2021). Computación y Programación Funcional. Marcombo
Bradley N. Miller, David L. Ranum. (2013). Problem Solving with Algorithms and Data Structures using Python.. Franklin, Beedle & Associates
Benjamin Baka (2017). Python Data Structures and Algorithms: Improve application performance with graphs, stacks, and queues.. Packt Publishing

Sitio web da contorna de desenvolvemento Spyder: https://www.spyder-ide.org/


Recommendations
Subjects that it is recommended to have taken before
Programming I/614G03006
Discrete Mathematics/614G03003

Subjects that are recommended to be taken simultaneously

Subjects that continue the syllabus

Other comments


(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.