ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Hours of tutorials: 3 Expository Class: 24 Interactive Classroom: 24 Total: 51
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Departments: Electronics and Computing
Areas: Languages and Computer Systems
Center Higher Polytechnic Engineering School
Call: First Semester
Teaching: With teaching
Enrolment: Enrollable | 1st year (Yes)
La variedad de plataformas de programación disponibles hoy en día es muy amplia y está en constante evolución. En esta materia se presentan los fundamentos que hay en todos los lenguajes de programación, y en particular en Lenguaje Python y el lenguaje C++, para que el alumnado, partiendo de un problema sencillo, sea capaz de encontrar un algoritmo que lo resuelva. Para alcanzar esto, se mostrará cómo desarrollar programas sencillos y los fundamentos de programación que hay detrás
Objetivos de la materia
Los objetivos, para el alumnado, perseguidos en esta materia son:
1) Conocer los componentes básicos de un computador, su funcionalidad y las relaciones entre ellos. Comprender los diferentes sistemas de representación de la información existentes en los computadores.
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 procedural.
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:
Los contenidos de esta asignatura están encaminados a proporcionar una introducción a la programación de ordenadores con técnicas clásicas y desde una perspectiva práctica.
Introducción: representación de la información y herramientas básicas de programación
Lenguajes de programación para robótica
Estructuras de control
Programación funcional
Tipos estructurados de datos
Cálculo Científico y técnico en robótica
Ficheros y gestión de datos para robótica
Diseño, verificación y validación de programas. Documentación
Estos contenidos serán desarrollados de acuerdo con el siguiente temario:
Introducción (4 horas presenciales)
* Conceptos Básicos sobre Ordenadores.
* Representación de la información.
* Programas y lenguajes de programación.
Lenguaje de programación Python. (6 horas presenciales, 8 no presenciales)
* Variables, expresiones, asignación
* Tipos de datos. Variables y asignaciones.
* Funciones predefinidas.
* Módulos e importación de funciones y variables.
* Métodos.
* Entrada/salida.
* Sobre la legibilidad de los programas.
* Gráficos de tortuga.
* Prácticas: Realización de algoritmos y programas básicos
Estructuras de control (8 Horas presenciales, 10 no presenciales)
* Sentencias condicionales.
* Sentencias iterativas.
* Captura y tratamiento de excepciones.
* Algunos ejemplos gráficos.
* Prácticas: Realización de algoritmos y programas con estructuras de control
Funciones (8 Horas presenciales, 10 no presenciales)
* Definición y uso de funciones.
* Documentación del código.
* Variables locales y variables globales.
* El mecanismo de las llamadas a función.
* Módulos. Diseño de programas con funciones. Recursión.
* Algunos ejemplos gráficos.
* Prácticas: Realización de algoritmos y programas modulares
Tipos estructurados en Python (6 horas presenciales, 10 no presenciales)
* Cadenas. Listas. Matrices.
* Tuplas y Conjuntos
* Diccionarios
* Prácticas: Realización de algoritmos y programas con estructuras de datos
Cálculo científico y Técnico en Python. Interfaces Gráficas (4 horas presenciales, 12 no presenciales)
* Cálculo Numérico con Numpy
* Representación Gráfica con Matplotlib.
* Cálculo simbólico con Sympy
* Creación de interfaces gráficas. Tkinter
Ficheros y Gestión de Datos (6 horas presenciales, 7 no presenciales)
* Generalidades sobre ficheros.
* Ficheros de texto.
* Análisis de datos con Pandas
* Bases de Datos.
* Prácticas: Realización de algoritmos y programas con ficheros
Diseño, verificación y validación de programas. Documentación
Lenguaje C++ (6 horas presenciales, 15 no presenciales)
* Estructura de un programa
* Constantes y variables. Tipos
* Estructuras de control: Secuencial, alternativa, repetitiva
* Tipos estructurados
* Funciones
* Punteros
* Ficheros
Bibliografía básica e complementaria
La bibliografía da programación en Python es extraordinariamente amplia. Nos hemos limitado aquí a unos pocos títulos seleccionados por considerarlos de mucha calidad.
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.
El alumno que ha superado el curso con éxito será capaz de:
Conocimiento:
Con04. Conocer los componentes básicos de un computador, su funcionalidad y las relaciones entre ellos.
Con05. Entender los conceptos y técnicas básicos de la programación desde un enfoque general.
Destreza:
H/D04. Resolver problemas de programación básica aplicando adecuadamente los tipos de datos y las estructuras
de control
H/D05. Aplicar los principios de la programación procedural y programación modular.
Competencia:
Comp02. Programar algoritmos con las estructuras de datos adecuadas para la resolución de problemas en el
ámbito de la robótica.
Adicionalmente, en esta materia, el estudiante adquirirá una serie de competencia genéricas, deseables en cualquier titulación universitaria, y específicas, propias de la ingeniería en general o de la robótica en particular. Dentro del cuadro que se diseñó para la titulación, se trabajaran las siguientes:
Competencias básicas
CB1: Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en los libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
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.
CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
Competencias Generales:
CG2: Capacidad de resolución de problemas en el campo de la ingeniería robótica con creatividad, iniciativa, metodología y razonamiento crítico.
CG3: Capacidad de utilizar herramientas informáticas para el modelado, la simulación y el diseño de aplicaciones de ingeniería.
CG5: Ser capaz de obtener y analizar información sobre circuitos, elementos de máquinas, control automático, sensores y sistemas informáticos, con el fin último de lograr aplicaciones robóticas autónomas y flexibles.
Competencias transversales:
CT1: Capacidad de análisis y síntesis.
CT3: Capacidad de trabajo individual, con actitud autocrítica.
CT4: Capacidad para trabajar en grupo y abarcar situaciones problemáticas de forma colectiva.
CT9: Habilidad en el manejo de tecnologías de la información y de la comunicación (TIC).
CT10: Utilización de información bibliográfica y de Internet.
CT12: Capacidad para resolver problemas mediante la aplicación integrada de sus conocimientos.
La metodología de enseñanza que se persigue dentro de la materia donde se encuadra la presente asignatura es la siguiente:
* 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, y es muy recomendable 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 Ms Visual Studio
e) OpenOffice o LibreOffice para la preparación de la documentación de las prácticas.
f) Acceso el campus virtual de la USC
g) Acceso a Ms Teams
Curso Virtual: Esta materia dispondrá de un curso virtual desenvuelto sobre la plataforma de Campus virtual de la USC, usando además la herramienta colaborativa Ms Teams. En estas se le facilitará al alumnado todo el material necesario en formato digital, además de 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…
Lección magistral.
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. También se realizarán ejercicios en la pizarra, haciendo que el alumnado participe y desarrolle programas interactuando con el profesor para la resolución de estos. Todos los contenidos digitales (los códigos de los programas en Python y en C++, las diapositivas de la presentación en formato PDF) serán puestos a disposición del alumnado en el Campus virtual.
Prácticas en Aula de Informática
Las clases interactivas tendrán lugar 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 y otros ejercicios de programación, individualmente o por grupos, con la ayuda del profesor.
Resolución de problemas
Actividades: A lo largo del semestre, el alumno deberá resolver problemas de programación adecuados a los contenidos desarrollados hasta el momento. Dichas actividades se corresponden con enunciados de los problemas resueltos en los exámenes de convocatorias anteriores y con problemas propuestos en recursos detallados en la bibliografía.
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 en cuanto a los contenidos de la materia, resolución de problemas de teoría y ejercicios de prácticas propuestos en el anexo de actividades. Estas tutorías serán tanto presenciales como virtuales a través de la plataforma Ms Teams, y son fundamentales para alcanzar un aprendizaje efectivo de la materia.
La memoria de título plantea que, para los sistemas de evaluación de la asignatura, se seguirá la normativa general de evaluación de la USC y las especificaciones descritas en el apartado 5.1. de la misma. En concreto, y para esta asignatura, se fijan las ponderaciones mínima y máxima de cada apartado, tal y como se refleja en la siguiente tabla
Sistema de evaluación
Actividades Propuestas: entre 20% y 100%
Prueba o pruebas evaluación: entre 0% y 70%
Tutorías: entre 0% y 10%
La asistencia a las clases interactivas y expositivas es muy recomendable y se podrá tener en cuenta la participación de los alumnos para la evaluación de la materia. 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 al respecto de estos problemas o de cualquier contenido de la materia.
Para superar la materia, el estudiante tendrá que realizar todas las actividades que se propongan y superar los exámenes correspondientes.
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.
Primera oportunidad
Para superar la materia, el estudiante deberá haber entregado y superado las actividades propuestas, que se realizarán mediante talleres en la plataforma virtual de la asignatura (40% de la calificación final) y aprobar por separado tanto la teoría, que se realizará mediante un examen tipo test con la ayuda de la plataforma virtual, como la parte práctica, que se realizará mediante tareas en la plataforma virtual de la asignatura consistente en la resolución de problemas de programación ( 60% de la calificación final). Se tendrá en cuenta la asistencia a las tutorías para la resolución de dudas.
Las preguntas del examen teórico podrán referirse tanto a los contenidos reflejados en los apuntes de la asignatura como a los contenidos prácticos trabajados por el estudiante en las actividades entregadas. Estas pruebas podrán constar de preguntas tipo test, preguntas cortas y problemas de casos prácticos.
En todas las pruebas se evaluará el grado de asimilación de las competencias establecidas en el programa docente de la materia. No se realizará ningún examen parcial. Para superar la materia se tendrá que demostrar un conocimiento superior al 50% en todos los tipos de evaluación.
Segunda oportunidad
Al margen de la evaluación continua, todos los estudiantes tienen derecho a asistir al examen de la segunda oportunidad. Se mantiene la nota, y también su peso en la nota final, conseguida en cada una de las partes (entrega de actividades y las notas de la parte teórica, como de la parte práctica) durante el curso. Sin embargo, los estudiantes podrán entregar en fecha previa el examen de la segunda oportunidad, aquellas actividades que no hubiesen alcanzado la nota de corte en la convocatoria anterior. Para superar la materia se tendrá demostrar un conocimiento superior al 50% en todos los tipos de evaluación.
Sistema de evaluación Competencias Ponderación máxima
Actividades Propuestas CG2, CG3, CG5, Con04, Con05,H/D04, H/D05, Comp02 40%
Prueba o pruebas evaluación CG2, CG3, CG5, Con04, Con05,H/D04, H/D05, Comp02 60%
Tutorías CG2, CG3, CG5, Con04, Con05,H/D04, H/D05, Comp02 10%
Para superar la materia, es obligatorio para los estudiantes repetidores de años anteriores, la realización y entrega de las actividades propuestas en las mismas fechas establecidas para el resto de los estudiantes, así como superar la prueba de tipo Test y el examen de tipo práctico.
Los estudiantes que no asistan a ninguna de las actividades de enseñanza programadas por conciliación laboral o familiar deberán cumplir con las disposiciones de la Instrucción 1/2017 de la Secretaría General. En estos casos, para aprobar esta materia, es obligatorio la realización y entrega de las actividades propuestas, así como superar la prueba de tipo Test y el examen de tipo práctico.
Tempo de estudio y trabajo personal
La materia 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 (100% de presencialidad)
* Clases teóricas (expositivas de grupo grande): 12 horas.
* Prácticas (con grupos reducidos): 36 horas.
* Tutorías de grupo (con grupos reducidos): 3 horas.
* Actividades de evaluación: 5 horas.
Trabajo personal del alumnado
* Lectura y preparación de temas: 10 horas.
* Realización de ejercicios y Elaboración de trabajos: 70 horas.
* Tutoría en grupo: 7 horas.
* Tutoría individualizada: 3 horas.
* Preparación de pruebas de evaluación: 9 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.
Para el estudio de la materia, se recomienda realizar la totalidad de los ejercicios de los boletines de problemas y de las actividades, tanto los que se resuelvan en las propias sesiones interactivas, como los que queden propuestos.
La asignatura se impartirá en Castellano.
Por razones evidentes de convivencia, así como una adecuada calidad de las actividades didácticas que se llevan a cabo en el marco del grado, está terminantemente prohibido el uso del teléfono móvil en el aula, responsabilizando al alumnado de las consecuencias legales y académicas que puedan derivarse de la utilización de este.
Efren Arias Jordan
Coordinador/a- Department
- Electronics and Computing
- Area
- Languages and Computer Systems
- efren.arias [at] usc.es
- Category
- Professor: University School Lecturer
Monday | |||
---|---|---|---|
12:00-14:00 | Grupo /CLE_01 | Spanish | Classroom 7 (Lecture room 2) |
Wednesday | |||
11:00-14:00 | Grupo /CLIL_01 | Spanish | Computer Room 7 (Aulario 4) |
Thursday | |||
11:00-14:00 | Grupo /CLIL_02 | Spanish | Computer Room 7 (Aulario 4) |
Friday | |||
11:00-14:00 | Grupo /CLIL_03 | Spanish | Computer Room 7 (Aulario 4) |
12.19.2024 09:00-14:00 | Grupo /CLE_01 | Computer Room 1 (Pav.III) |
12.19.2024 09:00-14:00 | Grupo /CLE_01 | Computer Room 4 (Pav.III) |
12.19.2024 09:00-14:00 | Grupo /CLE_01 | Computer Room 5 (Pav III) |
06.12.2025 09:00-14:00 | Grupo /CLE_01 | Computer Room 1 (Pav.III) |
06.12.2025 09:00-14:00 | Grupo /CLE_01 | Computer Room 4 (Pav.III) |
06.12.2025 09:00-14:00 | Grupo /CLE_01 | Computer Room 5 (Pav III) |