Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 99 Horas de Titorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 150
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: Primeiro semestre
Docencia: Con docencia
Matrícula: Matriculable | 1ro curso (Si)
Nesta materia preséntanse os fundamentos básicos da programación estruturada co obxectivo de que o alumnado partindo dun problema sinxelo sexa capaz de analizalo e descompoñelo en subproblemas máis simples e atopar as estruturas e algoritmos que permitan resolvelo de maneira eficiente. Esta é unha materia eminentemente práctica que focalizará os seus exemplos nunha linguaxe de programación amplamente empregad no ámbito da enxeñería como é Python pero, con todo, a comprensión das bases e os fundamentos da programación, comúns ás diferentes linguaxes de desenvolvemento, permitirá ao alumnado enfrontarse con soltura e solvencia a novos problemas, independentemente do ámbito do mesmo e da linguaxe de programación empregada.
Durante o desenvolvemento da asignatura o alumno traballará cunha ampla variedade de exemplos que lle que lle permitirán alcanzar as competencias transversais e específicas da materia.
En particular perséguese que o alumno sexa capaz de:
- Resolver problemas de enxeñería civil mediante o deseño de programas informáticos
- Deseñar programas seguindo unha metodoloxía baseada na programación estruturada e modular.
Para fomentar:
- Pensamento analítico: capacidade para comprender e especificar un problema, descompoñéndoo nunha serie de subproblemas e identificando os elementos que entran en xogo en cada un.
- Pensamento operativo: dada a especificación dun problema, ser capaz de atopar unha solución cos recursos dispoñibles
- Pensamento conceptual: ser capaz de abstraer o coñecemento aprendido para poder utilizalo nun novo ámbito.
Obxectivos da materia
Os obxectivos, para o alumnado, perseguidos nesta materia son:
1) Coñecer os compoñentes básicos dun computador, as súas funcionalidades e as relacións entre eles.
2) Introducirse nos conceptos e técnicas básicos da programación desde un enfoque xeral. Resolver problemas de programación básica aplicando adecuadamente os tipos de datos elementais, os tipos de datos estruturados e as estruturas de control. Dominar os principios da programación estruturada.
3) Asimilar o concepto programación modular e saber aplicalo na resolución de problemas. Coñecer o concepto de recursividade, aplicándoo a problemas sinxelos. Comprender o concepto de ficheiro e saber utilizalos
4) Desenvolver as destrezas necesarias para a resolución de problemas básicos de cálculo no ámbito da enxeñería mediante o uso das ferramentas de programación. Ser capaz de, ante unha nova especificación dun problema, atopar unha solución cos recursos dispoñibles e abstraer o coñecemento aprendido para poder utilizalo nun novo ámbito
5) Ser capaz de utilizar ferramentas de programación para editar, compilar, executar e verificar un programa. Capacidade para aplicar estratexias de depuración, proba e corrección de programas.
A memoria do título contempla para esta materia os seguintes contidos:
Introdución a informática. Conceptos básicos de sistemas operativos. Redes de computadoras e internet. Fundamentos de bases de datos. Introdución ao desenvolvemento de programas. Metodoloxía de programación. Deseño de algoritmos. Tipos de datos e expresións básicas. Entrada/Saída. Estruturas de control. Programación modular
Estes contidos serán desenvolvidos de acordo ao seguinte temario:
1. Introdución
* Fundamentos dos computadores.
* Linguaxes de programación.
2. Linguaxe de programación Python
* Variables, expresións, asignación
* Tipos de datos
* Funciones predefinidas.
* Módulos e importación de funcións e variables.
* Entrada/saída.
* Prácticas: Realización de algoritmos e programas básicos
3. Estruturas de control
* Sentenzas condicionais.
* Sentenzas iterativas.
* Captura e tratamento de excepcións.
* Prácticas: Realización de algoritmos e programas con estruturas de control
4. Funcións
* Definición e uso de funcións.
* Documentación do código.
* Ámbito das variables.
* Recursividade.
* Prácticas: Realización de algoritmos e programas modulares
5. Tipos estruturados en Python
* Cadeas. Listas.
* Tuplas. Conxuntos e Dicionarios
* Prácticas: Realización de algoritmos e programas con estruturas de datos
6. Cálculo científico e Técnico en Python
* Cálculo Numérico con Numpy
* Cálculo simbólico con Sympy
* Prácticas: Realización de algoritmos e programas con librerías científico-técnicas de Python
Aproximadamente, as horas de traballo presenciais (HP) e non presenciais (HNP) para o desenvolvemento do temario exposto anteriormente (sen ter en conta as prácticas que se describen a continuación) distribuiranse da seguinte maneira:
- 2 HP e 4 HNP para o tema introdutorio no que o alumnado verá os compoñentes básicos dos computadores e os tipos de linguaxes de programación .
- 3 HP e 6 HNP para introducir os elementos básicos da programación (variables, asignacións, entrada/saída , etc).
- 5 HP e 10 HNP para que o alumnado profunde nos bucles e estruturas de control do tema 3
- 4 HP e 8 HNP para a definición e uso de funcións no tema 4
- 6 HP e 12 HNP para o estudo dos tipos estruturados en Python (Tema5)
- 4 HP e 8 HNP para a introdución ao cálculo científico e simbólico con librerías de Python (Tema 6)
O programa de prácticas se intercala co programa da materia, tal e como se mostra no temario descrito anteriormente. As actividades que se realizarán estarán enmarcadas no seguinte programa de prácticas:
- P1. Algoritmos e programas básicos
- P2. Estruturas de control e funcións
- P3. Tipos de datos estruturados
- P4. Cálculo científico e Técnico con Python
A materia ten reservadas 12 horas de prácticas e 12 horas de seminarios (incluídos traballos) para o desenvolvemento de actividades en sesións interactivas. Aproximadamente, as horas de traballo presenciais (HP) e non presenciais (HNP) para o desenvolvemento do programa de prácticas distribuiranse da seguinte maneira:
- 4 HP e 6 HNP para as prácticas introdutorias de P1
- 8 HP e 17 HNP para a implementación de prácticas orientadas ao manexo de bucles, estruturas de control e funcións en P2
- 8 HP e 18 HNP para que o alumno profunde nos tipos de datos estruturados de Python (listas, cadeas, tuplas, dicionarios,etc.) no módulo P3
- 4 HP e 10 HNP para introducir ao alumnado no cálculo científico en P4
Bibliografía Básica:
[1] Andrés Marzal Varó, Isabel Gracia Luengo, Pedro García Sevilla. - Introducción a la programación con Python 3. Universitat Jaume I (Creative Commons)
[2] Hunt, John. “A Beginners Guide to Python 3 Programming.”, Editorial Springer, 2019
[3] McKinney, Wes. “Python for data analysis: Data wrangling with Pandas, NumPy, and Ipython.”, Editorial O'Reilly Media, Inc., Segunda edición, 2017
Bibliografía Complementaria:
[4] Baltasar Garcia Perez-Schofield. - Introducción a la programación con Python (Creative Commons)
[5] Raúl González Duque. - Python para todos (Creative Commons)
[6] Guido Van Rossum. - El tutorial de Python. http://tutorial.python.org.ar/
[7] Eugenia Bahit. - Curso: Python para Principiantes. (Creative Commons)
[8] Franck EBEL - Sébastien ROHAUT. - Algoritmia - Técnicas fundamentales de programación (Ediciones ENI)
[9] Sébastien CHAZALLET. - Python 3: Los fundamentos del lenguaje (Ediciones ENI)
[10]De Miguel, Pedro. "Fundamentos de los computadores." Editorial Thomson Learning Paraninfo, 2004.
[11] Ramalho, Luciano. "Fluent Python." Editorial O'Reilly, 2015.
Xerais:
CG1 - Capacitación científico-técnica para o exercicio da profesión de Enxeñeiro Técnico de Obras Públicas e coñecemento das funcións de asesoría, análise, deseño, cálculo, proxecto, construción, mantemento, conservación e explotación
CG11 - Planificación, proxecto, dirección, execución e xestión de procesos e produtos de aplicación na sociedade da información no ámbito da enxeñería
Competencias básicas
CB2 - Que os estudantes saiban aplicar os coñecementos o seu traballo o vocación dun xeito profesional e posúan as competencias que solen demostrarse por medio da elaboración e defensa de argumentos e na resolución de problemas dentro da súa área de estudio.
Competencias transversais
CT1 - Capacidade de análises e sínteses
CT2 - Capacidade para el razoamento e a argumentación
CT3 - Capacidade de traballo individual, con actitude autocrítica
CT8 - Compromiso de veracidade da información que ofrece a os demais.
Competencias específicas
CEFB1 - Capacidade para a resolución dos problemas matemáticos que podan darse na Enxeñaría. Aptitude para aplicar los coñecementos sobre: álxebra lineal; xeometría; xeometría diferencial; cálculo diferencial e integral; ecuacións diferenciais e en derivadas parciais; métodos numéricos; algorítmica numérica; estatística e optimización.
CEFB3 - Coñecementos básicos sobre o uso e programación dos computadores, sistemas operativos, bases de datos e programas informáticos con aplicación en enxeñaría
Os contidos da asignatura 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, do mesmo xeito que a asistencia a todas as clases (expositivas e interactivas) para superar a asignatura.
Os recursos necesarios para a presente materia son os seguintes:
a) Dispoñer dun computador persoal
b) Copias dos apuntes da materia.
c) Acceso dos alumnos á bibliografía na Biblioteca ou por Internet.
d) Acceso á ferramenta de desenvolvemento Visual Studio Code, ao intérprete de Python e as librerías de Numpy e Sympy
e) Acceso o campus virtual da USC
f) Acceso a Microsoft Teams
Clases Expositivas e interactivas: As clases consistirán na explicación dos apartados do programa, coa axuda dunha presentación electrónica, e na resolución de diferentes exercicios de programación relacionados co contido da materia.
Todos os contidos dixitais (ex. presentacións en pdf, exemplos de Python ou videos formativos) serán postos ao dispor do alumnado no Campus virtual.
As clases terán lugar, fundamentalmente, 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 (principalmente exercicios de programación), coa axuda do profesor.
Actividades: Ao longo do semestre, o alumno deberá resolver problemas de programación adecuados aos contidos desenvolvidos ata o momento. A resolución e entrega destas actividades considéranse esenciais para alcanzar un resultado satisfactorio na presente materia.
Titorías: As sesións de titorías servirán para resolver as dúbidas do alumnado relacionadas cos contidos da materia. Estas titorías serán tanto presenciais como virtuais a través de correo electrónico, campus virtual ou plataforma Microsoft Teams.
Curso Virtual: Esta materia disporá dun curso virtual desenvolto sobre a plataforma Moodle do Campus virtual da USC a través da cal se facilitará ao alumnado todo o material necesario en formato dixital. Ademáis tamén se proporcionará distintas ferramentas de comunicación para o apoio, tanto da docencia virtual como das titorías, incluíndo videoconferencia, chat, correo electrónico, foros…
A asistencia ás clases interactivas e expositivas é obrigatoria e terase en conta para a avaliación da materia. Será obrigatorio a asistencia polo menos ao 80% das sesións (salvo causas moi xustificadas, segundo normativa da USC). As clases prácticas realizaranse ao longo do curso durante as sesións de clases interactivas.
Recoméndase encarecidamente utilizar as titorías, tanto presenciais como virtuais, para a resolución das dúbidas relacionadas co contido da materia.
Para superar a materia, o alumno terá que realizar todas as actividades que se propoñan e superar os exames correspondentes.
Primeira oportunidade:
Para superar a materia, o alumno deberá asistir ás clases, entregar e superar as actividades propostas (40% da cualificación final) e aprobar o exame final (60% da cualificación). O exame final estará composto de dous partes que o alumno deberá superar por separado: parte teórica, que será avaliada a través dun tipo test, e parte práctica, que será desenvolta a través de exercicios de programación. As preguntas do exame final terán un enfoque práctico relacionado cos contidos que se desenvolveron na materia, en relación coas súas competencias, e que poderán ser adquiridos polo alumno tanto na parte expositiva como na interactiva.
O exame poderá constar de preguntas tipo test, preguntas curtas e problemas de casos prácticos.
Exames parciais: non se realizará ningún exame parcial.
Segunda oportunidade:
Mantense a nota conseguida nas prácticas durante o curso e tamén o seu peso na nota final. Os alumnos poderán entregar en data previa o exame final para a segunda oportunidade, aquelas actividades que non alcanzasen a nota de corte na convocatoria anterior. Unha vez aprobadas ambas as partes por separado, o exame será o 60% da nota final e as prácticas o 40%. Seguindo o esquema descrito en primeira convocatoria, a superación do exame final implicará superar por separado unha parte teórica, a través dun tipo test, e unha parte práctica, a través do desenvolvemento de exercicios de programación.
Dispensa de asistencia:
En caso de dispensa de asistencia os alumnos estarán exentos do cumprimento do deber de asistencia a clases presenciais, pero seguirá sendo obrigatorio a realización e entrega das actividades propostas, así como superar o exame final.
Alumnos repetidores:
Os alumnos repetidores de anos anteriores estarán exentos do cumprimento do deber de asistencia ás clases presenciais. Para aprobar a materia é obrigatorio a realización e entrega das actividades propostas nas mesmas datas establecidas para o resto dos alumnos, así como superar o exame teórico-práctico,
Realización fraudulenta de exercicios ou probas :
Para os casos de realización fraudulenta de exercicios ou probas será de aplicación o recollido na “Normativa de avaliación do rendemento académico dous estudantes e de revisión de cualificacións” da USC.
Avaliación das competencias
En xeral o desenvolvemento das actividades prácticas, así como a preparación dos temas teóricos permitirá ao alumnado traballar as competencias básicas, xerais e transversais da materia. En concreto, o desenvolvemento das prácticas, así como a proba final permitirá avaliar as competencias CEFB3, CEFB1, CT3 e CB2 .Algunhas das actividades de programación con Python servirán para avaliar a competencia CG1.
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 10 e 12 horas (incluídas as 3 de clase) por semana.
Traballo presencial no aula
* Clases teóricas: 24 horas.
* Prácticas: 24 horas.
* Titorías de grupo (con grupos reducidos): 3 horas.
* Actividades de avaliación: 4 horas.
TOTAL 55 horas
Traballo persoal do alumnado
* Lectura e preparación de temas: 24 horas.
* Realización de exercicios: 27 horas.
* Elaboración de traballos do curso: 24 horas.
* Preparación de probas de avaliación: 24 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.
Idioma principal: a materia impartirase en castelán
Juan Diego Gutiérrez Gallardo
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Linguaxes e Sistemas Informáticos
- Correo electrónico
- juandiego.gutierrez [at] usc.es
- Categoría
- Profesor/a: Profesor Axudante Doutor LOU
Martin Liz Dominguez
- Departamento
- Electrónica e Computación
- Área
- Linguaxes e Sistemas Informáticos
- Teléfono
- 982823207
- Correo electrónico
- martin.liz [at] usc.es
- Categoría
- Profesor/a: Axudante Doutor LOSU
Mércores | |||
---|---|---|---|
12:00-14:00 | Grupo /CLE_01 | Castelán | Aula de Informática 1 (Pav.III) |
Xoves | |||
10:00-12:00 | Grupo /CLIL_01 | Castelán | Aula de Informática 1 (Pav.III) |
13.01.2025 10:00-14:00 | Grupo /CLE_01 | Aula de Informática 7 (Aulario 4) |
23.06.2025 10:00-14:00 | Grupo /CLE_01 | Aula de Informática 7 (Aulario 4) |