Identifying Data 2020/21
Subject (*) Fundamentals of Programming II Code 614G02009
Study programme
Grao en Ciencia e Enxeñaría de Datos
Descriptors Cycle Period Year Type Credits
Graduate 2nd four-month period
First Basic training 6
Language
Spanish
Teaching method Hybrid
Prerequisites
Department Ciencias da Computación e Tecnoloxías da Información
Coordinador
Alonso Pardo, Miguel angel
E-mail
miguel.alonso@udc.es
Lecturers
Alonso Pardo, Miguel angel
Cabrero Canosa, Mariano Javier
Hernandez Pereira, Elena Maria
E-mail
miguel.alonso@udc.es
mariano.cabrero@udc.es
elena.hernandez@udc.es
Web http://moodle.udc.es
General description Nesta materia preséntanse as técnicas de deseño de programas, incluindo os fundamentos da orientación a obxectos, asi como as estruturas de datos básicas en computación e os seus principios de uso.

A materia pertence ao bloque Programación e Algoritmos, polo que a relación más estreita dase coas outras dos materias deste mesmo bloque: Fundamentos de Programación I (que se pode considerar predecesora directa) e Deseño e Análise de Algoritmos (que se pode considerar sucesora directa). Con respecto aos outros bloques, as relacións máis directas danse con Bases de Datos e Sistemas para Procesamento de Datos. Outro bloque temático de materias relacionadas é o que forman aquelas de Fundamentos Matemáticos, e dentro deste grupo, especialmente a materia Matemática Discreta.
Contingency plan 1. Modificacións nos contidos

Non hai modificacións

2. Metodoloxías
*Metodoloxías docentes que se manteñen

As metodoloxías mantéñense co único cambio de pasar todas a ser realizadas online. En particular:
• Clases maxistrais: Os contidos que se impartían nelas pasan a ser emitidos en sesións síncronas online e/ou en vídeos pregravados polos profesores. En calquuera caso os vídeos póñense a disposición dos alumnos en Stream e mediante enlaces en Moodle, nas semanas en que estaba previsto impartir eses contidos na planificación da materia. Se non hai sesións síncronas, nos horarios das clases de teoría, o profesor de cada grupo establece unha tutoría en grupo en Teams.
• Solución de problemas: Proponse o enunciado dos exercicios en Moodle. O profesor atende as dúbidas na ferramenta Teams. Pasado un tempo móstranse as solucións propostas nun documento e/ou nun vídeo.
• Prácticas de laboratorio: Todas as ferramentas necesarias para a realización das prácticas poden ser instaladas sen custo nos equipos informáticos do alumnado. Nos horarios das clases de prácticas realízase un seguemento mediante tutorías en grupo en Teams que inclúen reunións audiovisuais síncronas se é preciso.
• Proba obxectiva: Utilizaranse as ferramentas que proporciona Moodle e Office365 para a súa realización online se non é posible a realziación presencial


3. Mecanismos de atención personalizada ao alumnado

Realizarase, respetando os horarios de titorías, mediante as seguintes ferramentas:
Teams: Atención continuada ao alumnado.
Email: Atención continuada ás mensaxes enviadas polo alumnado.
Moodle: Atención continuada ás mensaxes enviadas polo alumnado nos foros de Moodle.


4. Modificacións na avaliación

Non hay variacións

*Observacións de avaliación:

A segunda oportunidade avaliarase do mesmo xeito que a primeira

5. Modificacións da bibliografía ou webgrafía

Non hai cambios.

Study programme competencies
Code Study programme competences
A5 CE5 - Coñecemento de estruturas de datos e algoritmos básicos e capacidade para utilizalos eficientemente na resolución dun problema.
B1 CB1 - Que os estudantes demostrasen posuír e comprender coñecementos nunha área de estudo que parte da base da educación secundaria xeral, e adóitase atopar a un nivel que, aínda que se apoia en libros de texto avanzados, inclúe tamén algúns aspectos que implican coñecementos procedentes da vangarda do seu campo de estudo
B5 CB5 - Que os estudantes desenvolvesen aquelas habilidades de aprendizaxe necesarias para emprender estudos posteriores cun alto grao de autonomía
B6 CG1 - Ser capaz de buscar e seleccionar a información útil necesaria para resolver problemas complexos, manexando con soltura as fontes bibliográficas do campo.
C1 CT1 - Utilizar as ferramentas básicas das tecnoloxías da información e as comunicacións (TIC) necesarias para o exercicio da súa profesión e para a aprendizaxe ao longo da súa vida.

Learning aims
Learning outcomes Study programme competences
Comprender e saber programar utilizando orientación a obxectos B1
B5
B6
C1
Coñecer e saber usar linguaxes de programación de relevancia actual B1
B5
B6
C1
Comprender os principios básicos de almacenamento de datos e a súa manipulación A5
B1
B6
C1
Coñecer e saber utilizar as estruturas de datos estándar en computación e os algoritmos máis relevantes para manipulalas A5
B5
B6
C1
Identificar a estrutura de datos máis adecuada para un problema determinado A5
B5
B6
C1

Contents
Topic Sub-topic
Técnicas de deseño de programas Abstracción e especificacación
Módulos funcionais e de datos
Manexo de excepcións y eventos
Orientación a obxectos Clases e obxectos. Métodos.
Clases e funcións
Herencia
Interfaces e Polimorfismo
Utilización das estruturas de datos básicas en computación Listas
Pilas
Colas
Colas de Prioridade
Dicionarios
Árbores
Árbores Binarias de Busca
Tablas Hash
Grafos

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Guest lecture / keynote speech A5 B1 B5 B6 30 24 54
Laboratory practice A5 B1 B5 B6 C1 20 36 56
Problem solving A5 B1 B5 B6 C1 10 17.5 27.5
Objective test A5 B1 B5 B6 3 7.5 10.5
 
Personalized attention 2 0 2
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Guest lecture / keynote speech Nas clases de teoría, o profesor realizará unha breve descrición dos contidos temáticos e dos obxectivos básicos perseguidos, co fin de dotar o alumno dunha visión global da materia. Ademais tratará de establecer interrelacións con outros conceptos previamente adquiridos, de forma que se poida establecer unha liña temporal, e expoñerá a bibliografía recomendada. Seguidamente pasará a desenvolver os contidos teóricos, utilizando como método a clase maxistral.
Laboratory practice As clases de prácticas obrigan á realización de prácticas de programación nunha linguaxe de alto nivel. Impoñerase unha periodicidade na súa entrega para fomentar o estudo continuo. O enunciado das prácticas, que se proporcionará coa suficiente antelación para que o alumno o lea con detemento e analice en profundidade, detallará o problema e as especificacións, que deberán respectarse estritamente. Posteriormente, o labor do profesor será o de supervisar as sesións de prácticas, solucionando dúbidas e corrixindo erros de interpretación, malos hábitos de programación e erros de sintaxe, etc.
Problem solving Nas clases de problemas, co fin de afianzar os conceptos teóricos presentaranse supostos prácticos, que nun principio serán resoltos polo profesor para orientar os alumnos. A medida que se avance no desenvolvemento teórico formularase a resolución de problemas por parte dos alumnos, constituídos en grupos de traballo.

Tanto nas clases de problemas coma nos exemplos mostrados durante as exposicións teóricas, cando estes impliquen o desenvolvemento de código ou pseudocódigo este realizarase mostrando os sucesivos pasos do deseño descendente. Con isto pretendemos: a) que o alumno se acostume ao uso deste método, e b) evitar que se perda nos detalles de sintaxe e as características particulares da linguaxe, en lugar de fixar a súa atención na comprensión e deseño da solución.

Formularanse exercicios adicionais que o alumno deberá resolver e comentar/corrixir co profesor durante as horas de titorías, colectivas e/ou individuais. Trátase de fomentar a participación dos alumnos e promover, na medida do posible, o diálogo aberto e a valoración de solucións.
Objective test Avaliación sumativa do alumno mediante un exame final ao termo do cuadrimestre. Este 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 como para posuír as habilidades precisas para resolver supostos prácticos que implique a aplicación dos devanditos coñecementos.

Personalized attention
Methodologies
Laboratory practice
Problem solving
Description
O desenvolvemento, tanto das clases maxistrais coma das de resolució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, non deben dedicarse a estender os contidos con novos conceptos, senón a aclarar os conceptos xa expostos. O profesor utilizaraas como unha interacción que lle permita extraer conclusións respecto ao grao de asimilación da materia por parte dos alumnos.

A atención personalizada realizarase de modo preferente a través das ferramentas corporativas da UDC (email, Teams, etc.) respetando os horarios de titorías.


Assessment
Methodologies Competencies Description Qualification
Laboratory practice A5 B1 B5 B6 C1 Realización segundo as condicións establecidas no enunciado de cada práctica. 40
Objective test A5 B1 B5 B6 Realización obrigatoria. Necesario aprobar a proba para superar a materia. 60
 
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, tanto ao estudante que
presente material copiado como a quen o facilitase, e a
cualificación de SUSPENSO na convocatoria anual.

- 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

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 entrgue todas as prácticas ou 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 Technology

Complementary 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/
Sitio web da plataforma para ciencia de datos Anaconda: https://www.anaconda.com/

Libro de Miller & Ranum: https://runestone.academy/runestone/static/pythonds/index.html

Recommendations
Subjects that it is recommended to have taken before
Discrete Mathematics/614G02002
Fundamentals of Programming I/614G02004

Subjects that are recommended to be taken simultaneously

Subjects that continue the syllabus
Design and Analysis of Algorithms/614G02011

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.