Créditos ECTS Créditos ECTS: 6
Horas ECTS Criterios/Memorias Trabajo del Alumno/a ECTS: 99 Horas de Tutorías: 3 Clase Expositiva: 24 Clase Interactiva: 24 Total: 150
Lenguas de uso Castellano, Gallego
Tipo: Materia Ordinaria Grado RD 1393/2007 - 822/2021
Departamentos: Electrónica y Computación
Áreas: Lenguajes y Sistemas Informáticos
Centro Escuela Politécnica Superior de Ingeniería
Convocatoria:
Docencia: Sin docencia (Extinguida)
Matrícula: No matriculable
En esta asignatura se presentan los fundamentos básicos de la programación estructurada con el objetivo de que el alumnado partiendo de un problema sencillo sea capaz de analizarlo y descomponerlo en subproblemas más simples y encontrar las estructuras y algoritmos que permitan resolverlo de manera eficiente. Esta es una asignatura eminentemente práctica que focalizará sus ejemplos en un lenguaje de programación ampliamente empleado en el ámbito de la ingeniería como es Python pero, sin embargo, la comprensión de las bases y los fundamentos de la programación, comunes a los diferentes lenguajes de desarrollo, permitirá al alumnado enfrentarse con soltura y solvencia a nuevos problemas, independientemente del ámbito del mismo y el lenguaje de desarrollo empleado.
Durante el desarrollo de la asignatura el alumno trabajará con una amplia variedad de ejemplos que le que le permitirán alcanzar las competencias transversales y específicas de la materia.
En particular se persigue que el alumno sea capaz de:
- Resolver problemas de ingeniería civil mediante el diseño de programas informáticos
- Diseñar programas siguiendo una metodología basada en la programación estructurada y modular.
Para fomentar:
- Pensamiento analítico: capacidad para comprender y especificar un problema, descomponiéndolo en una serie de subproblemas e identificando los elementos que entran en juego en cada uno.
- Pensamiento operativo: dada la especificación de un problema, ser capaz de encontrar una solución con los recursos disponibles
- Pensamiento conceptual: ser capaz de abstraer el conocimiento aprendido para poder utilizarlo en un nuevo ámbito.
Objetivos de la asignatura
Los objetivos, para el alumnado, perseguidos en esta asignatura son:
1) Conocer los componentes básicos de un computador, sus funcionalidades y las relaciones entre ellos.
2) Introducirse en los conceptos y técnicas básicos de la programación desde un enfoque general. Resolver problemas de programación básica aplicando adecuadamente los tipos de datos elementales, los tipos de datos estructurados y las estructuras de control. Dominar los principios de la programación estructurada.
3) Asimilar el concepto programación modular y saber aplicarlo en la resolución de problemas. Conocer el concepto de recursividad, aplicándolo a problemas sencillos. Comprender el concepto de fichero y saber utilizarlos
4) Desarrollar las destrezas necesarias para la resolución de problemas básicos de cálculo en el ámbito de la ingeniería mediante el uso de las herramientas de programación. Ser capaz de, ante una nueva especificación de un problema, encontrar una solución con los recursos disponibles y abstraer el conocimiento aprendido para poder utilizarlo en un nuevo ámbito
5) Ser capaz de utilizar herramientas de programación para editar, compilar, ejecutar y verificar un programa. Capacidad para aplicar estrategias de depuración, prueba y corrección de programas.
La memoria del título contempla para esta materia los siguientes contenidos:
Introducción a informática. Conceptos básicos de sistemas operativos. Redes de computadoras e internet. Fundamentos de bases de datos. Introducción al desarrollo de programas. Metodología de programación. Diseño de algoritmos. Tipos de datos y expresiones básicas. Entrada/Salida. Estructuras de control. Programación modular
Estos contenidos serán desarrollados de acuerdo con el siguiente temario:
1. Introducción
* Fundamentos de los computadores.
* Lenguajes de programación.
2. Lenguaje de programación Python
* Variables, expresiones, asignación
* Tipos de datos
* Funciones predefinidas.
* Módulos e importación de funciones y variables.
* Entrada/salida.
* Prácticas: Realización de algoritmos y programas básicos
3. Estructuras de control
* Sentencias condicionales.
* Sentencias iterativas.
* Captura y tratamiento de excepciones.
* Prácticas: Realización de algoritmos y programas con estructuras de control
4. Funciones
* Definición y uso de funciones.
* Documentación del código.
* Ámbito de las variables.
* Recursividad.
* Prácticas: Realización de algoritmos y programas modulares
5. Tipos estructurados en Python
* Cadenas. Listas.
* Tuplas. Conjuntos y Diccionarios
* Prácticas: Realización de algoritmos y programas con estructuras de datos
6. Cálculo científico y Técnico en Python
* Cálculo Numérico con Numpy
* Cálculo simbólico con Sympy
* Prácticas: Realización de algoritmos y programas con librerías científico-técnicas de Python
Aproximadamente, las horas de trabajo presenciales (HP) y no presenciales (HNP) para el desarrollo del temario expuesto anteriormente (sin tener en cuenta las prácticas que se describen a continuación) se distribuirán de la siguiente manera:
- 2 HP y 4 HNP para el tema introductorio en el que el alumnado verá los componentes básicos de los computadores y los tipos de lenguajes de programación.
- 3 HP y 6 HNP para introducir los elementos básicos de la programación (variables, asignaciones, entrada/salida, etc.).
- 5 HP y 10 HNP para que el alumnado profundice en los bucles y estructuras de control del tema 3
- 4 HP y 8 HNP para la definición y uso de funciones en el tema 4
- 6 HP y 12 HNP para el estudio de los tipos estructurados en Python (Tema5)
- 4 HP y 8 HNP para la introducción al cálculo científico y simbólico con librerías de Python (Tema 6)
El programa de prácticas se intercala con el programa de la asignatura, tal y como se muestra en el temario descrito anteriormente. Las actividades que se realizarán estarán enmarcadas en el siguiente programa de prácticas:
- P1. Algoritmos y programas básicos
- P2. Estructuras de control y funciones
- P3. Tipos de datos estructurados
- P4. Cálculo científico y Técnico con Python
La asignatura tiene reservadas 12 horas de prácticas y 12 horas de seminarios (incluídos trabajos) para el desarrollo de actividades en sesiones interactivas. Aproximadamente, las horas de trabajo presenciales (HP) y no presenciales (HNP) para el desarrollo del programa de prácticas se distribuirán de la siguiente manera:
- 4 HP y 6 HNP para las prácticas introductorias de P1
- 8 HP y 17 HNP para la implementación de prácticas orientadas al manejo de bucles, estructuras de control y funciones en P2
- 8 HP y 18 HNP para que el alumno profundice en los tipos de datos estructurados de Python (listas, cadenas, tuplas, diccionarios, etc) en el módulo P3
- 4 HP y 10 HNP para introducir al alumnado en el 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.
Generales:
CG1 - Capacitación científico-técnica para el ejercicio de la profesión de Ingeniero Técnico de Obras Públicas y conocimiento de las funciones de asesoría, análisis, diseño, cálculo, proyecto, construcción, mantenimiento, conservación y explotación
CG11 - Planificación, proyecto, dirección, ejecución y gestión de procesos y productos de aplicación en la sociedad de la información en el ámbito de la ingeniería.
Competencias básicas
CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean 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.
Competencias transversales
CT1 - Capacidad de análisis y síntesis
CT2 - Capacidad para el razonamiento y la argumentación
CT3 - Capacidad de trabajo individual, con actitud autocrítica
CT8 - Compromiso de veracidad de la información que ofrece a los demás.
Competencias específicas
CEFB1 - Capacidad para la resolución de los problemas matemáticos que puedan darse en la Ingeniería. Aptitud para aplicar los conocimientos sobre: álgebra lineal, geometría, geometría diferencial, cálculo diferencial e integral, ecuaciones diferenciales y en derivadas parciales, métodos numéricos, algorítmica numérica, estadística y optimización.
CEFB3 - Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería. Algorítmica numérica.
Los contenidos de la materia se impartirán de manera indistinta en las clases expositivas y en las clases interactivas. Las unidades teóricas y prácticas se impartirán de manera alternativa a lo largo del semestre con el objeto de afianzar los conceptos impartidos en ellas.
La realización de todas las actividades propuestas es necesaria, al igual que la asistencia a todas las clases (expositivas e interactivas) para superar la materia.
Los recursos necesarios para la presente materia son los siguientes:
a) Disponer de un ordenador personal
b) Copias de los apuntes de la materia.
c) Acceso de los alumnos a la bibliografía en la Biblioteca o por Internet.
d) Acceso a la herramienta de desarrollo Visual Studio Code, al intérprete de Python y las librerías de Numpy y Sympy
e) Acceso el campus virtual de la USC
f) Acceso a Microsoft Teams
Clases Expositivas e interactivas: Las clases consistirán en la explicación de los apartados del programa, con la ayuda de una presentación electrónica, y en la resolución de diferentes ejercicios de programación relacionados con el contenido de la asignatura.
Todos los contenidos digitales (ej. presentaciones en pdf, ejemplos de Python o vídeos formativos) serán puestos a disposición del alumnado en el Campus virtual.
Las clases tendrán lugar, fundamentalmente, en un aula de informática, en la que se proporcionará un ordenador para cada alumno. La metodología de aprendizaje de prácticas consiste fundamentalmente en la resolución por parte del alumno de las actividades propuestas (principalmente ejercicios de programación) con la ayuda del profesor.
Actividades: A lo largo del semestre, el alumno deberá resolver problemas de programación adecuados a los contenidos desarrollados hasta el momento. La resolución y entrega de estas actividades se consideran esenciales para alcanzar un resultado satisfactorio en la presente materia.
Tutorías: Las sesiones de tutorías servirán para resolver las dudas del alumnado relacionadas con los contenidos de la materia. Estas tutorías serán tanto presenciales como virtuales a través de correo electrónico, campus virtual o plataforma Microsoft Teams.
Curso Virtual: Esta materia dispondrá de un curso virtual desenvuelto sobre la plataforma Moodle del Campus virtual de la USC. Se facilitará al alumnado, a través de este curso virtual, todo el material necesario en formato digital. Se proporcionará también distintas herramientas de comunicación para el apoyo, tanto de la docencia virtual como de las tutorías, incluyendo videoconferencia, chat, correo electrónico, foros…
La asistencia a las clases interactivas y expositivas es obligatoria y se tendrá en cuenta para la evaluación de la materia. Será obligatorio la asistencia al menos al 80% de las sesiones (salvo causas muy justificadas, según normativa de la USC). Las clases prácticas se realizarán a lo largo del curso durante las sesiones de clases interactivas.
Se recomienda encarecidamente utilizar las tutorías, tanto presenciales como virtuales, para la resolución de las dudas relacionadas con el contenido de la materia.
Para superar la materia, el alumno tendrá que realizar todas las actividades que se propongan y superar los exámenes correspondientes.
Primera oportunidad:
Para superar la asignatura, el alumno deberá haber asistido a las clases, haber entregado y superado las actividades propuestas (40% de la calificación final) y aprobar el examen final (60% de la calificación). El examen final estará compuesto de dos partes que el alumno deberá superar por separado: parte teórica, que será evaluada a través de un tipo test, y parte práctica, que será desarrollada a través de ejercicios de programación. Las preguntas del examen final tendrán un enfoque práctico relacionado con los contenidos que se han desarrollado en la materia, en relación con sus competencias, y que podrán haber sido adquiridos por el alumno tanto en la parte expositiva como en la interactiva.
El examen podrá constar de preguntas tipo test, preguntas cortas y problemas de casos prácticos
Exámenes parciales: no se realizará ningún examen parcial.
Segunda oportunidad:
Se mantiene la nota conseguida en las prácticas durante el curso y también su peso en la nota final. Los alumnos podrán entregar en fecha previa el examen final para la segunda oportunidad, aquellas actividades que no hubiesen alcanzado la nota de corte en la convocatoria anterior. Una vez aprobadas ambas partes por separado, el examen será el 60% de la nota final y las prácticas el 40%. Siguiendo el esquema descrito en primera convocatoria, la superación del examen final implicará superar por separado una parte teórica, a través de un tipo test, y una parte práctica, a través del desarrollo de ejercicios de programación.
Dispensa de asistencia:
En caso de dispensa de asistencia los alumnos estarán exentos del cumplimiento del deber de asistencia a las clases presenciales, pero seguirá siendo obligatorio la realización y entrega de las actividades propuestas, así como superar el examen final.
Alumnos repetidores:
Los alumnos repetidores de años anteriores estarán exentos del cumplimiento del deber de asistencia a las clases presenciales. Para aprobar la materia es obligatorio la realización y entrega de las actividades propuestas en las mismas fechas establecidas para el resto de los alumnos, así como superar el examen final,
Realización fraudulenta de ejercicios o pruebas :
Para los casos de realización fraudulenta de ejercicios o pruebas será de aplicación lo recogido en la “Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións” de la USC.
Evaluación de las competencias:
En general el desarrollo de las actividades prácticas, así como la preparación de los temas teóricos permitirá al alumnado trabajar las competencias básicas, generales y transversales de la asignatura. En concreto, el desarrollo de las prácticas, así como la prueba final permitirá evaluar las competencias CEFB3, CEFB1, CT3 y CB2. Algunas de las actividades de programación con Python servirán para evaluar la competencia CG1.
La asignatura tiene fijada una carga de trabajo de 6 ECTS. Este dato conduce a una carga de trabajo para la materia situada entre las 150 (6x25) horas y las 180 (6x30) horas.
En la guía de la materia se puede ver un estudio más detallado sobre el tiempo de estudio y trabajo personal necesario para superar la materia. La recomendación general sería emplear entre 10 y 12 horas (incluidas las 4 de clase) por semana
Trabajo presencial en el aula
* Clases teóricas : 24 horas.
* Prácticas: 24 horas.
* Tutorías de grupo (con grupos reducidos): 3 horas.
* Actividades de evaluación: 4 horas.
TOTAL 55 horas
Trabajo personal del alumnado
* Lectura y preparación de temas: 24 horas.
* Realización de ejercicios: 27 horas.
* Elaboración de trabajos del curso: 24 horas.
* Preparación de pruebas de evaluación: 24 horas.
TOTAL 99 horas
Dado que se emplea una metodología sustentada en la evaluación continua, es necesario un trabajo continuado con los contenidos de la materia. Esto es especialmente importante con las prácticas, ya que unos contenidos se van asentando sobre los anteriores, lo que hace muy conveniente tener asimilados los temas anteriores antes de intentar comprender los nuevos. Es la única forma de poder ir superando las distintas actividades de evaluación que se proponen.
Idioma principal: la materia se impartirá en castellano
Juan Diego Gutiérrez Gallardo
Coordinador/a- Departamento
- Electrónica y Computación
- Área
- Lenguajes y Sistemas Informáticos
- Correo electrónico
- juandiego.gutierrez [at] usc.es
- Categoría
- Profesor/a: Profesor Ayudante Doctor LOU
Martin Liz Dominguez
- Departamento
- Electrónica y Computación
- Área
- Lenguajes y Sistemas Informáticos
- Teléfono
- 982823207
- Correo electrónico
- martin.liz [at] usc.es
- Categoría
- Profesor/a: Ayudante Doutor LOSU
Miércoles | |||
---|---|---|---|
12:00-14:00 | Grupo /CLE_01 | Castellano | Aula de Informática 1 (Pab.III) |
Jueves | |||
10:00-12:00 | Grupo /CLIL_01 | Castellano | Aula de Informática 1 (Pab.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) |