Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Horas de Titorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 51
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Departamentos: Electrónica e Computación
Áreas: Linguaxes e Sistemas Informáticos
Centro Escola Politécnica Superior de Enxeñaría
Convocatoria: Segundo semestre
Docencia: Con docencia
Matrícula: Matriculable | 1ro curso (Si)
Presentación
Na materia descríbense as estruturas de datos lineais e as técnicas algorítmicas básicas para o deseño de algoritmos e a implementación de programas en casos prácticos simples, desenvolvendo as destrezas necesarias para que o estudante saiba 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. Ademais, esta materia completa a formación do estudante en estruturas de datos ao presentar as estruturas de datos non lineais e a súa utilización para representar e resolver problemas de entidade.
Así mesmo, fórmase ao alumno nos conceptos da Programación Orientada a Obxectos, facendo especial énfase nos seus aspectos máis prácticos. Isto supón que á finalización do curso o alumno estará plenamente capacitado para desenvolver un programa seguindo a paradigma orientado a obxectos como alternativa á programación procedimental.
Dando continuidade á materia Fundamentos de Programación, desenvólvense os criterios básicos que deben guiar o deseño dun programa modular, así como a elaboración e execución dun plan de probas apropiado para verificar o correcto funcionamento dun programa. Todos estes aspectos desenvolveranse de forma práctica en proxectos de programación integradores de todos os contidos aprendidos e todas as competencias adquiridas coa realización das actividades da materia.
Obxectivos da materia
* Estudar detalladamente os requirimentos dun problema e identificar os obxectivos e as súas dependencias. Desenvolver a capacidade de abstracción e de generalización para buscar solucións alternativas no deseño dun programa.
* Saber programar baixo a paradigma orientado a obxectos no desenvolvemento de aplicacións, identificando posibles estratexias de solución a problemas con conceptos como a herdanza, o polimorfismo ou o encapsulamiento.
* Coñecer estruturas de datos para a organización da información que permita a obtención de algoritmos eficientes.
* Adquirir a capacidade para analizar con rigor a eficiencia dos algoritmos distinguindo os conceptos de eficiencia en tempo e en espazo, co fin de reducir o custo computacional.
* Coñecer as familias máis importantes de problemas algorítmicos e estudar diferentes esquemas ou paradigmas de deseño aplicables para resolvelos.
* Proporcionar unha ampla información, tanto teórica como práctica, de diferentes técnicas para deseñar algoritmos.
* Presentar e analizar as técnicas algorítmicas básicas que permitan abordar o desenvolvemento de programas correctos e eficientes para resolver problemas non triviais.
* Determinar o método de procura e o método de ordenación máis adecuado segundo as características de cada problema.
Os contidos desta materia están encamiñados a proporcionar unha introdución á programación de computadores con técnicas clásicas e desde unha perspectiva práctica.
Abstracción e Tipos Abstractos de Datos
Programación Orientada a Obxectos. Análise de Algoritmos
Estruturas de Datos lineais
Deseño Recursivo. Estratexias e técnicas algorítmicas
Ordenación e Procura
Estruturas de Datos Complexas: Árbores e Grafos
Estes contidos serán desenvolvidos de acordo co seguinte temario:
Introdución (2 horas presenciais)
* Abstracción
* Tipos Abstractos de Datos
Programación Orientada a obxectos e Análises (8 horas presenciais, 12 non presenciais)
* Clases e Obxectos: Tipos de datos «a medida».
* Variables e funcións estáticas
* Composición, Herdanza e Polimorfismo
* Algunhas clases de uso común. Exemplos
* Clases en C++
* Análises da complexidade dos Algoritmos
Estruturas de Datos Lineais (6 horas presenciais, 12 non presenciais)
* Pilas
* Colas
* Listas
Deseño Recursivo. Estratexias e técnicas algorítmicas (8 horas presenciais, 12 non presenciais)
* Recursividade
* Complexidade en algoritmos recursivos
* Visualización da Recursividade
* Estratexias e técnicas algorítmicas (divide e vencerás, voraces, forza bruta, volta atrás, programación dinámica)
Ordenación e Procura (8 horas presenciais, 12 non presenciais)
* Algoritmos de Procura: Secuencial, Binaria, por salto, Fibonacci, exponencial, interpolación, Hashing, ?
* Algoritmos de Ordenación: Burbulla, selección, inserción, Shell, mestura, rápida (QuickSort), ?
Estruturas de Datos Complexas
Árbores (8 horas presenciais, 12 non presenciais)
* Introdución
* Representacións de árbores
* Percorridas de árbores
* Árbores binarios de procura. Análise
* Árbores binarios de procura equilibrados
Grafos (8 horas presenciais, 12 non presenciais)
* O TAD Grafo
* Matrices e listas de adyacencia
* Grafo Escaleira de Palabras
* Procura en Anchura
* O problema do cabalo
* Procura en profundidade
* Ordenamento Topológico
* O problema da ruta máis curta
Bibliografía básica e complementaria
Bibliografía Básica:
* Brad Miller and David Ranum, Luther College: Problem Solving with Algorithms and Data Structures using Python
* Brad Miller and David Ranum, Luther College, and Jan Pearce, Berea College: Problem Solving with Algorithms and Data Structures using C++
* HEILEMAN, G.L. Estruturas de Datos, Algoritmos e Programación Orientada a Obxectos. Madrid: McGraw-Hill, 2001. ISBN 84-481-1173-7.
* JOYANES AGUILAR, L., ZAHONERO MARTÍNEZ, I. Algoritmos e Estruturas de Datos: Unha perspectiva en C. Madrid: McGraw-Hill, 2010. ISBN 9788448140779.
* JOYANES AGUILAR, L. et ao. Estrutura de Datos. Libro de Problemas. Madrid: McGraw-Hill, 1999. ISBN 84-481-2298-4.
* Brassard, G., Bratley, P. Fundamentos de algoritmia. 1ª edición, Lugar de publicación: Madrid, Prentice Hall, 2002. ISBN: 84-89660-00-X
Bibliografía Complementaria:
* BOWMAN, C.F. Algoritmos e Estruturas de Datos. Aproximación en C. Oxford University Press, 2001. ISBN: 978-9706134592.
* CAIRÓ, Ou., GUARDATI BUERMO, S. Estruturas de Datos. México: McGraw-Hill, 2006. ISBN 970-10-3534-8.
* Kent D. Le ? Steve Hubbard : Data Structures and Algorithms with Python
* MARTÍ OLIET, Narciso, ORTEGA MALLÉN, Yolanda, VERDEJO LÓPEZ, José A.: Estruturas de Datos e Métodos Algorítmicos. Exercicios resoltos. 2ª edición: 213 exercicios resoltos. Ibergarceta Publicacións S.L., 2013. ISBN 978-8415452652.
O alumno que superou o curso con éxito será capaz de:
Coñecemento:
Con11. Coñecer estruturas de datos para a organización da información que permita a obtención de algoritmos eficientes.
Con12. Coñecer as familias máis importantes de problemas algorítmicos e estudar diferentes esquemas ou paradigmas de deseño aplicables para resolvelos.
Destreza:
H/D10. Desenvolver a capacidade de abstracción e de generalización para buscar solucións alternativas no deseño dun programa.
H/D11. Empregar as técnicas algorítmicas básicas que permitan abordar o desenvolvemento de programas correctos e eficientes en tempo e espazo para resolver problemas non triviais co menor custo computacional posible.
H/D12. Aplicar a paradigma orientado a obxectos no desenvolvemento de aplicacións, identificando posibles estratexias de solución a problemas con conceptos como a herdanza, o polimorfismo ou o encapsulamiento.
Competencia:
Comp02.Programar algoritmos, coas estruturas de datos adecuadas para a resolución de problemas no ámbito da robótica.
Adicionalmente, nesta materia, o estudante adquirirá unha serie de competencia xenéricas, desexables en calquera titulación universitaria, e específicas, propias da enxeñaría en xeral ou da robótica en particular. Dentro do cadro que se deseñou para a titulación, traballásense as seguintes:
Competencias básicas
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 nos libros de texto avanzados, inclúe tamén algúns aspectos que implican coñecementos procedentes da vangarda do seu campo de estudo.
CB2: Que os estudantes saiban aplicar os seus coñecementos ao seu traballo ou vocación dunha forma profesional e posúan as competencias que adoitan demostrarse por medio da elaboración e defensa de argumentos e a resolución de problemas dentro da súa área de estudo.
CB5: Que os estudantes desenvolvesen aquelas habilidades de aprendizaxe necesarias para emprender estudos posteriores cun alto grao de autonomía.
Competencias Xerais:
CG2: Capacidade de resolución de problemas no campo da enxeñaría robótica con creatividade, iniciativa, metodoloxía e razoamento crítico.
CG3: Capacidade de utilizar ferramentas informáticas para o modelado, a simulación e o deseño de aplicacións de enxeñaría.
CG5: Ser capaz de obter e analizar información sobre circuítos, elementos de máquinas, control automático, sensores e sistemas informáticos, co fin último de lograr aplicacións robóticas autónomas e flexibles.
Competencias transversais:
CT1: Capacidade de análise e síntese.
CT3: Capacidade de traballo individual, con actitude autocrítica.
CT4: Capacidade para traballar en grupo e abarcar situacións problemáticas de forma colectiva.
CT9: Habilidade no manexo de tecnoloxías da información e da comunicación (TIC).
CT10: Utilización de información bibliográfica e de Internet.
CT12: Capacidade para resolver problemas mediante a aplicación integrada dos seus coñecementos.
A metodoloxía de ensino que se persegue dentro da materia onde se encadra a presente materia é a seguinte:
* Os contidos da materia impartiranse de maneira indistinta nas clases expositivas e nas clases interactivas. As unidades teóricas e prácticas impartiranse de maneira alternativa ao longo do semestre co obxecto de afianzar os conceptos impartidos nelas.
* A realización de todas as actividades propostas é necesaria, e é moi recomendable a asistencia a todas as clases (expositivas e interactivas) para superar a materia.
* Os recursos necesarios para a presente materia son os seguintes:
a) Dispor dun computador persoal
b) Copias dos apuntamentos da materia.
c) Acceso dos alumnos á bibliografía na Biblioteca ou por Internet.
d) Acceso á ferramenta Ms Visual Studio
e) OpenOffice ou LibreOffice para a preparación da documentación das prácticas.
f) Acceso o campus virtual da USC
g) Acceso a Ms Teams
Curso Virtual: Esta materia disporá dun curso virtual desenvolvido sobre a plataforma de Campus virtual da USC, usando ademais a ferramenta colaborativa Ms Teams. Nestas facilitaráselle ao alumnado todo o material necesario en formato dixital, ademais de distintas ferramentas de comunicación para o apoio, tanto da docencia virtual como das tutorías, incluíndo videoconferencia, chat, correo electrónico, foros?
Lección maxistral.
Clases Expositivas e interactivas: As clases consistirán na explicación dos apartados do programa coa axuda dunha presentación electrónica. Tamén se realizarán exercicios na lousa, facendo que o alumnado participe e #desenvolver programas interactuando co profesor para a resolución destes. Todos os contidos dixitais (os códigos dos programas en Python e en C++, as diapositivas da presentación en formato PDF) serán postos a disposición do alumnado no Campus virtual.
Prácticas en Aula de Informática
As clases interactivas terán lugar nunha aula de informática, na que se proporcionará un computador para cada alumno. A metodoloxía de aprendizaxe de prácticas consiste fundamentalmente na resolución por parte do alumno das actividades propostas e outros exercicios de programación, individualmente ou por grupos, coa axuda do profesor.
Resolución de problemas
Actividades: Ao longo do semestre, o alumno deberá resolver problemas de programación adecuados aos contidos desenvolvidos até o momento. Ditas actividades correspóndense con enunciados dos problemas resoltos nos exames de convocatorias anteriores e con problemas propostos en recursos detallados na bibliografía.
A resolución e entrega destas actividades considéranse esenciais para alcanzar un resultado satisfactorio na presente materia.
Tutorías: As sesións de tutorías servirán para resolver as dúbidas do alumnado en canto aos contidos da materia, resolución de problemas de teoría e exercicios de prácticas propostos no anexo de actividades. Estas tutorías serán tanto presenciais como virtuais a través da plataforma Ms Teams, e son fundamentais para alcanzar unha aprendizaxe efectiva da materia.
A memoria de título expón que, para os sistemas de avaliación da materia, seguirase a normativa xeral de avaliación da USC e as especificacións descritas no apartado 5.1. da mesma. En concreto, e para esta materia, fíxanse as ponderaciones mínima e máxima de cada apartado, tal e como se reflicte na seguinte táboa
Sistema de avaliación
Actividades Propostas: entre 20% e 100%
Proba ou probas avaliación: entre 0% e 70%Tutorías: entre 0% e 10%
A asistencia ás clases interactivas e expositivas é moi recomendable e poderase ter en conta a participación dos alumnos para a avaliación da materia. As clases prácticas realizaranse ao longo do curso durante as sesións de clases interactivas.
Recoméndase encarecidamente utilizar as tutorías, tanto presenciais como virtuais, para a resolución das dúbidas respecto diso destes problemas ou de calquera contido da materia.
Para superar a materia, o estudante terá que realizar todas as actividades que se propoñan e superar os exames correspondentes.
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o recolleito na ?Normativa de avaliación do rendemento académico dous estudantes e de revisión de cualificacións? da USC.
Primeira oportunidade
Para superar a materia, o estudante deberá entregar e superar as actividades propostas, que se realizarán mediante talleres na plataforma virtual da materia (40% da cualificación final) e aprobar por separado tanto a teoría, que se realizará mediante un exame tipo test coa axuda da plataforma virtual, como a parte práctica, que se realizará mediante tarefas na plataforma virtual da materia consistente na resolución de problemas de programación ( 60% da cualificación final). Terase en conta a asistencia ás tutorías para a resolución de dúbidas.
As preguntas do exame teórico poderán referirse tanto aos contidos reflectidos nos apuntamentos da materia como aos contidos prácticos traballados polo estudante nas actividades entregadas. Estas probas poderán constar de preguntas tipo test, preguntas curtas e problemas de casos prácticos.
En todas as probas avaliarase o grao de asimilación das competencias establecidas no programa docente da materia. Non se realizará ningún exame parcial. Para superar a materia terase que demostrar un coñecemento superior ao 50% en todos os tipos de avaliación.
Segunda oportunidade
Á marxe da avaliación continua, todos os estudantes teñen dereito a asistir ao exame da segunda oportunidade. Mantense a nota, e tamén o seu peso na nota final, conseguida en cada unha das partes (entrega de actividades e as notas da parte teórica, como da parte práctica) durante o curso. Con todo, os estudantes poderán entregar en data previa o exame da segunda oportunidade, aquelas actividades que non alcanzasen a nota de corte na convocatoria anterior. Para superar a materia terase demostrar un coñecemento superior ao 50% en todos os tipos de avaliación.
Sistema de avaliación Competencias Ponderación máxima
Actividades Propostas CG2, CG3, CG5, Con11, Con12,H/D10, H/D11, H/D12, Comp02 40%
Proba ou probas avaliación CG2, CG3, CG5, Con11, Con12,H/D10, H/D11, H/D12, Comp02 60%Tutorías CG2, CG3, CG5, Con11, Con12,H/D10, H/D11, H/D12, Comp02 10%
Para superar a materia, é obrigatorio para os estudantes repetidores de anos anteriores, a realización e entrega das actividades propostas nas mesmas datas establecidas para o resto dos estudantes, así como superar a proba de tipo Test e o exame de tipo práctico.
Os estudantes que non asistan a ningunha das actividades de ensino programadas por conciliación laboral ou familiar deberán cumprir coas disposicións da Instrución 1/2017 da Secretaría Xeral. Nestes casos, para aprobar esta materia, é obrigatorio a realización e entrega das actividades propostas, así como superar a proba de tipo Test e o exame de tipo práctico.
Tempo de estudo e traballo persoal
A materia ten fixada unha carga de traballo de 6 ECTS. Este dato conduce a unha carga de traballo para a materia situada entre as 150 (6x25) horas e as 180 (6x30) horas.
Na guía da materia pódese ver un estudo máis detallado sobre o tempo de estudo e traballo persoal necesario para superar a materia. A recomendación xeral sería empregar entre 5,5 e 6,5 horas (incluídas as 4 de clase) por semana
Traballo presencial na aula
* Clases teóricas (expositivas de grupo grande): 24 horas.
* Prácticas (con grupos reducidos): 24 horas.
* Tutorías de grupo (con grupos reducidos): 3 horas.
* Tutorías individualizadas: 4 horas.
* Actividades de avaliación: 5 horas.
Traballo persoal do alumnado
* Lectura e preparación de temas: 24 horas.
* Realización de exercicios e Elaboración de traballos: 56 horas.
* Tutoría en grupo: 7 horas.
* Tutoría individualizada: 3 horas.
* Preparación de probas de avaliación: 9 horas.
TOTAL 99 horas
Dado que se emprega unha metodoloxía sustentada na avaliación continua, é necesario un traballo continuado cos contidos da materia. Isto é especialmente importante coas prácticas, xa que uns contidos vanse asentando sobre os anteriores, o que fai moi conveniente ter asimilados os temas anteriores antes de tentar comprender os novos. É a única forma de poder ir superando as distintas actividades de avaliación que se propoñen.
Para o estudo da materia, recoméndase realizar a totalidade dos exercicios dos boletíns de problemas e das actividades, tanto os que se resolvan nas propias sesións interactivas, como os que queden propostos.
A materia impartirase en Castelán
Por razóns evidentes de convivencia, así como unha adecuada calidade das actividades didácticas que levan a cabo no marco do grao, está terminantemente prohibido o uso do teléfono móbil na aula, responsabilizando ao alumnado das consecuencias legais e académicas que poidan derivarse da utilización de leste.
Efren Arias Jordan
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Linguaxes e Sistemas Informáticos
- Correo electrónico
- efren.arias [at] usc.es
- Categoría
- Profesor/a: Titular de Escola Universitaria
Martes | |||
---|---|---|---|
09:00-11:00 | Grupo /CLE_01 | Castelán | Aula 7 (Aulario 2) |
Mércores | |||
11:00-13:00 | Grupo /CLE_01 | Castelán | Aula 8 (Aulario 2) |