Curso Académico:
2023/24
20057 - PROGRAMACIÓN I: FUNDAMENTOS DE PROGRAMACIÓN
Información de la asignatura
Código - Nombre:
20057 - PROGRAMACIÓN I: FUNDAMENTOS DE PROGRAMACIÓN
Titulación:
771 - Graduado/a en Ciencia e Ingeniería de Datos
800 - Microtítulo en Programación
Centro:
350 - Escuela Politécnica Superior
Curso Académico:
2023/24
1. Detalles de la asignatura
1.2. Carácter
800 - Obligatoria
771 - Formación básica
1.3. Nivel
800 - Estudios Propios (MECES 2)
771 - Grado (MECES 2)
1.5. Semestre
Primer semestre
1.6. Número de créditos ECTS
6.0
1.8. Requisitos previos
No hay
1.9. Recomendaciones
A programar se aprende programando. Por ese motivo es importante seguir la asignatura con constancia y programar todo lo que se pide. Las clases serán más prácticas que teóricas y por ello es aconsejable disponer de un ordenador portátil para aprovechar completamente las docencia recibida.
1.10. Requisitos mínimos de asistencia
Dado el eminente carácter práctico, la asistencia mínima es del 90% tanto a teoría como a prácticas de forma independiente.
1.11. Coordinador/a de la asignatura
Eloy Anguiano Rey
1.12. Competencias y resultados del aprendizaje
1.12.1. Competencias
CG2 - Diseñar y desarrollar productos y procesos en los distintos ámbitos de la ciencia e ingeniería de datos, por medio de técnicas analíticas, computacionales o experimentales apropiadas.
CG3 - Resolver problemas con iniciativa, creatividad y razonamiento crítico en el ámbito de la ciencia e ingeniería de datos.
CG5 - Conocer el estado del arte de las tecnologías y las ciencias para permitir la innovación en el ámbito de la ciencia e ingeniería de datos.
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.
CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
CT1 - Trabajar en equipo de forma colaborativa y con responsabilidad compartida.
CT2 - Aprender a realizar y aceptar críticas y fomentar la autocrítica.
CT4 - Organizar su propio autoaprendizaje con un alto grado de autonomía en nuevos métodos y tecnologías, así como adaptarse a nuevas situaciones.
CE3 - Conocer y aplicar los fundamentos de programación y técnicas algorítmicas básicas para diseñar soluciones a problemas, eligiendo el paradigma y los lenguajes de programación más relevantes en el ámbito de la ciencia e ingeniería de datos.
CE4 - Evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
CE5 - Conocer, diseñar y utilizar de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de problemas en el contexto de la ciencia e ingeniería de datos
1.12.2. Resultados de aprendizaje
PROGRAMACIÓN I: FUNDAMENTOS DE PROGRAMACIÓN (6 ECTS, FORMACIÓN BÁSICA)
Conocer y aplicar de forma práctica los conceptos y habilidades de carácter básico para la programación de computadores. Saber y utilizar las nociones primordiales de automatización de tareas, recursos técnicos para hacerlo y la aplicación de ambas cosas (como algoritmos, diagramas de flujo, pseudocódigo ...). Conocer los fundamentos de un sistema operativo y de su uso a nivel de usuario. Conocer y aplicar los conocimientos fundamentales sobre recursos facilitados por los sistemas operativos (como almacenamiento, flujo de datos, procesos ...) y para la automatización de tareas. Conocer y aplicar los conceptos esenciales de programación (como variables, condicionales, bucles, funciones ...). Conocer y emplear conceptos intermedios de programación (como estructuras de datos básicas, objetos, entrada/salida ...). Utilizar de forma básica, pero autónoma y operativa, un lenguaje de programación actual de alto nivel.
1.12.3. Objetivos de la asignatura
-
1.13. Contenidos del programa
- Automatización de tareas y recursos técnicos para ello (como algoritmos, diagramas de flujo, pseudocódigo ...).
- Fundamentos de un sistema operativo y su uso a nivel de usuario.
- Recursos facilitados por los sistemas operativos (como almacenamiento, flujo de datos, procesos ...) y para la automatización de tareas.
- Conceptos básicos de programación (como variables, condicionales, bucles, funciones ...).
- Fundamentos de un lenguaje actual de alto nivel.
- Conceptos intermedios de programación (como estructuras de datos básicas, objetos, entrada/salida ...)
1.14. Referencias de consulta
Existen multitud de libros de alta calidad para aprender a programar en python. La bibliografía está formada por los libros que voy a utilizar como base de la asignatura, sin embargo cualquiera de la bibliografía complementaria puede ser igual de bueno o mejor para seguir la asignatura.
Bibliografía
- "Think Python: How to Think Like a Computer Scientist", Allen B. Downey, Ed. O'Reilly.
- "Linux, principios básicos del uso del sistema" (7ª edición), Nicolás Pos, Ediciones ENI.
Bibliografía complementaria
- "Effective Python, 90 Specific Ways to Write Better Python" (2nd Edition), "Brett Slatkin, Ed. Pearson.
- "Python paso a paso", Angel Pablo Hinojosa Gutirrez, Ed. Ra-Ma
- "Python Data Scince Handbook", Jake VanderPlas, Ed. O'Reilly
2. Metodologías docentes y tiempo de trabajo del estudiante
2.1. Presencialidad
Presencial |
55h |
No presencial |
95h |
2.2. Relación de actividades formativas
Actividad Formativa |
Horas
|
Clases teóricas en aula |
28
|
Prácticas con medios informáticos |
24
|
Actividades de evaluación. Realización de cuestionarios /pruebas escritas individuales de evaluación en el aula con la presencia del profesor. |
3
|
Trabajo autónomo del estudiante |
95
|
3. Sistemas de evaluación y porcentaje en la calificación final
3.1. Convocatoria ordinaria
Para aprobar la asignatura es necesario aprobar por separado teoría y prácticas. Se puede optar por realizar la evaluación continua o la evaluación final pero no por ambas. Se considerará que un estudiante opta por la evaluación continua cuando se presente a la primera prueba de evaluación de teoría o de prácticas.
La nota se calculará según la siguiente fórmula (donde T es la nota de teoría y Pr la de prácticas):
Todas las entregas tanto de problemas como de prácticas se realizarán a través del GIT de la escuela. El profesor corregirá la última versión disponible previa a la fecha y hora límites de entrega.
Continua
Una vez que el estudiante haya presentado la primera práctica o se haya presentado al primer parcial se asumirá que el estudiante ha optado por este tipo de evaluación. En caso de aprobar la evaluación continua la nota final se verá premiada con un 10% sobre la nota obtenida. En ningún caso podrá superarse la nota de 10. Es decir, se calculará según la siguiente fórmula:
Teoría
Consta de dos elementos:
- P (problemas de la asignatura): la asignatura consta de cuatro problemas (P1, P2, P3 y P4). Estos problemas deben realizarse individualmente. Si no se entrega algún problema la nota de dicho problema será un 0. La nota de problemas se computará según la siguiente fórmula:
- EP (exámenes parciales): se realizarán dos exámenes parciales. La nota de los exámenes será calculada según la siguiente fórmula:
Para aprobar la teoría es imprescindible que la media de los problemas esté aprobada y haber aprobado el segundo parcial (EP2). Aprobar por evaluación continua será premiado con un 10% sobre la nota obtenida. En este caso la nota de teoría se calculará como:
Prácticas
La parte práctica continua consta de 2 prácticas (Pr1 y Pr2). La primera de las prácticas será una práctica de introducción a la programación muy guiada y la segunda práctica será un proyecto de programación completo. Es necesario aprobar ambas prácticas para que las prácticas se consideren aprobadas. La nota de prácticas se calculará como:
La nota de la asignatura será calculada según la fórmula indicada al principio de esta sección.
No continua
La evaluación no continua de la teoría se realizará con un examen único (E), con una práctica única (Pr) y una entrega de los problemas incluidos los problemas especiales para evaluación no continua (P).
La nota de teoría se calculará según la fórmula:
La nota de la asignatura será calculada según la fórmula indicada al principio de esta sección. Sólo podrán optar por este tipo de evaluación los estudiantes que no hayan entregado ninguna práctica ni se hayan presentado a ningún parcial, sin embargo se podrán entregar los problemas realizados hasta que sea necesario entregar la primera práctica o presentarse al primer parcial.
3.1.1. Relación actividades de evaluación
Evaluación
|
Parte
|
% sobre el total |
Tipo |
% sobre la parte evaluada
|
Continua
|
Teoría |
65% |
Exámenes
|
65% |
Problemas
|
35% |
Prácticas |
35% |
Introducción
|
30% |
Proyecto
|
70% |
No continua |
Teoría |
65% |
Examen
|
65% |
Problemas
|
35% |
Prácticas
|
35% |
Proyecto especial
|
100%
|
3.2. Convocatoria extraordinaria
La evaluación extraordinaria de la teoría se realizará con un examen único (E), una entrega de problemas P y una práctica única (Pr). Deben aprobarse todas las partes de forma independiente. La nota de la asignatura será calculada según la fórmula:
3.2.1. Relación actividades de evaluación
Evaluación
|
Parte
|
% sobre el total |
Tipo |
% sobre la parte evaluada
|
Extraordinaria |
Teoría |
65% |
Examen
|
65% |
Problemas
|
35% |
Prácticas
|
35% |
Proyecto especial
|
100% |
4. Cronograma orientativo
Semana
|
Programación |
1 |
- Introducción a los Sistemas Operativos
|
2 |
- Comandos básicos para el uso de los Sistemas Operativos
|
3 |
- El camino de la programación
- Variables, expresiones y declaraciones
|
4 |
- Funciones
- Condicionales y recursividad
- Funciones fructíferas
|
5 |
|
6 |
|
7 |
Examen parcial EP1 |
8 |
|
9 |
|
10 |
- Archivos
- Formato
- Módulos
- Depuración
|
11 |
|
12 |
- Clases y métodos
- Herencia
|
13 |
- Algunas golosinas
- Depuración
- Iteradores y decoradores
|
14 |
Examen parcial EP2 |