Información general


Tipo de asignatura: básica

Coordinador: Alfonso Palacios González

trimestre: Primer trimestre

Créditos: 6

Profesorado: 

Catalina Juan Navidad
Enric Sesa Nogueras 
Enric Sesa Nogueras 

Competencias


competencias básicas
  • B2_Que los estudiantes sepan aplicar sus conocimientos en su trabajo o vocación de una forma profesional y tengan las competencias que demuestran mediante la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio

Competencias específicas
  • EFB3_Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería

  • EFB4_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 la ingeniería

competencias transversales
  • T1_Que los estudiantes conozcan un tercer idioma, que será preferentemente el inglés, con un nivel adecuado de forma oral y por escrito, de acuerdo con las necesidades que tendrán las graduadas y graduados en cada titulación

Descripción


La asignatura de Fundamentos de la Programación pertenece a la materia de la Programación y es la primera dentro de esta área. Los diversos temas tratados en la asignatura están pensados ​​para capacitar a los estudiantes en el aprendizaje de los conceptos básicos dentro de la programación. Estos conceptos se necesitarán en el resto de asignaturas dentro de esta misma materia y también en posteriores asignaturas dentro del grado.

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covidien-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

 

Resultados de aprendizaje


A nivel general, esta asignatura contribuye a siguientes resultados de aprendizaje especificados para la materia a la que pertenece (Algorítmica y

programación)

  • Construir algoritmos correctos y eficientes para problemas de dificultad baja.
  • Implementar algoritmos sencillos en un lenguaje de programación imperativo de referencia para el nivel inicial.
  • Identificar las soluciones algorítmicas más adecuadas para resolver problemas de dificultad baja.
  • Razonar sobre la corrección y la eficiencia de una solución algorítmica.
  • Diseñar, escribir, probar, depurar, documentar y mantener código en un lenguaje de alto nivel para resolver problemas de programación aplicando esquemas algorítmicos y usando estructuras de datos.
  • Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
  • Aplicar técnicas básicas de descomposición modular de programas.
  • Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática ya sus disciplinas de referencia.

A un nivel más concreto, al finalizar la asignatura el estudiante debe ser capaz de:

  • RA1: Escribir programas simples que hacen uso de estructuras secuenciales y / o condicionales, codificarlos en un lenguaje de programación imperativo y de alto nivel, probarlos y depurarlos.
  • RA2: Escribir programas que hacen uso de estructuras iterativas, codificarlos en un lenguaje de programación imperativo y de alto nivel, probarlos y depurarlos. Hay que seleccionar los esquemas algorítmicos más adecuados.
  • RA3: Escribir programas que usen la técnica de descomposición funcional que permiten dividirlo en subproblemas más simples, codificarlos en un lenguaje de alto nivel imperativo, probarlos y depurarlos.
  • RA4: Escribir programas que usen las tablas para almacenar datos, codificarlos en un lenguaje de alto nivel imperativo, probarlos y depurarlos.

Metodología de trabajo


Todos los conceptos teóricos de la materia expondrán en clases de teoría (grupos grandes). En estas clases, ya discreción de los docentes impartidores, también se resolverán ejercicios y problemas de carácter más práctico. Asimismo y siempre a discreción de los impartidores, se podrá pedir a los estudiantes que resuelvan, de manera individual o en grupo, problemas y / o ejercicios breves. Estas actividades, que por su naturaleza de optatividad y brevedad no aparecen reflejadas en la lista de actividades, servirán al estudiante como instrumento de autoevaluación de su adquisición de los contenidos de la materia y podrán ser utilizados por parte del docente para tomar decisiones sobre la calificación final del estudiante bueno y que nunca en detrimento de la calificación numérica calculada según el sistema de calificación antes indicado.

Los conceptos de carácter más práctico y todo lo que en esencia se pueda considerar la aplicación práctica de los conceptos teóricos serán trabajados en grupos pequeños (de laboratorio). En las sesiones que se programen al efecto se darán las herramientas adecuadas para resolver las actividades programadas bueno y que se espera que estas alarguen desde el punto de vista temporal más allá de las horas de laboratorio y que, en consecuencia, los estudiantes deban finalizar durante el tiempo de aprendizaje autónomo.

Se pondrá a disposición de los estudiantes actividades de tipo totalmente opcional que le ayuden a preparar ya prepararse para las de carácter obligatorio.

Este curso, debido a la situación generada por la Covidien, algunas de las sesiones de grupo grande se harán en formato híbrido: presencial y en línea (vía en streaming). Esto permitirá que los estudiantes puedan ir rotativamente en las clases presenciales, respetando el máximo de estudiantes por aula que imponen las medidas de distanciamiento. Cuando no les toque sesión presencial podrán seguir la clase en línea desde casa.

En cuanto a las sesiones de prácticas en espacios más reducidos (como laboratorios, estudios o plató), en su caso se trabajará simultáneamente en varios espacios para garantizar que se cumplen las condiciones establecidas por los protocolos de seguridad.

Contenidos


1.- INTRODUCCIÓN AL algorítmica Y LA PROGRAMACIÓN

  • Algoritmos y programas
  • Lenguajes de programación
  • Entorno de programación
  • Proceso de programación
  • Anatomía de un programa simple

2.- CONCEPTOS BÁSICOS DE LA programación imperativa

  • Variables y tipos
  • El operador de asignación
  • Expresiones y evaluación de expresiones
  • Lectura y escritura
  • Formas de ejecución: secuencial, condicional / alternativa y iterativa
  • ejecución Condicional
  • ejecución Alternativa

3.- Estructuras iterativas

  • ejecución iterativa
  • Esquemas iterativos básicos: recorridos y búsquedas

4.- PARAMETRIZACIÓN

  • Procedimientos. parametrización
  • Anatomía de un procedimiento
  • Funciones. Tipo de funciones

5.- EL TIPO MESA

  • Tablas y tipos estructurados
  • Variables de una componente y variables de múltiples componentes
  • Declaración, creación y llenado de tablas
  • Rellenos de tablas con estructuras iterativas
  • Las tablas como parámetros
  • tablas bidimensionales
  • Declaración, creación y llenado de tablas bidimensionales
  • Rellenos de tablas bidimensionales con estructuras iterativas
  • Esquemas de búsqueda y recorridos en tablas

Actividades de aprendizaje


Se pone a disposición de los estudiantes una serie de actividades de carácter eminentemente práctico (ejercicios cortos, problemas ...) que son la base de las actividades de aprendizaje de la asignatura. Estas actividades los estudiantes / se las tendrán que resolver, a menudo de manera no presencial, siguiendo las indicaciones de los docentes y también serán trabajadas en clase, ya sea como ejemplos en las sesiones de teoría, ya sea en las sesiones de laboratorio. Si bien estas actividades tendrán carácter optativo (los docentes no verificarán de manera individualizada la realización por parte de los estudiantes), serán imprescindibles para alcanzar los conocimientos teórico-prácticos de la asignatura.

Con el objetivo de recoger evidencia del logro de los resultados de aprendizaje esperados se realizarán las siguientes actividades de carácter evaluativo (cinco prácticas y dos exámenes).

Las prácticas podrán ser realizadas individualmente o en grupo de dos estudiantes. En este último caso, no necesariamente, la calificación de los dos miembros del grupo debe ser la misma, se tendrá en cuenta el grado de participación de cada uno de ellos en la confección de cada una de las prácticas.

PRÁCTICA 1

En esta práctica, los estudiantes tienen un primer contacto con el entorno de desarrollo de programas que deberán utilizar en todas las prácticas y actividades de la asignatura que estén relacionadas con la programación.

En la primera parte, es el profesor quien hace la presentación del entorno, mostrándoles aquellos elementos que les serán de más utilidad.

En la segunda parte, el estudiante se enfrenta a la resolución de varios problemas como:

  • finalizar la codificación de algunos programas sencillos incompletos
  • codificar totalmente algunos programas para la resolución de problemas muy simples
  • detección y corrección de errores sintácticas y lógicas en pequeños programas suministrados

En esta primera actividad, los estudiantes aprenden a usar las opciones más básicas de un programa informático, concretamente de un entorno de programación, que mediante un lenguaje de programación les permitirá codificar los problemas pedidos a las sesiones de prácticas y actividades de la asignatura. Así cómo avance la asignatura el estudiante y estudiantes aprenderán más funciones del programa informático, profundizando en las partes necesarias para desarrollar el temario de la asignatura. El estudiante y estudiantes deben comprender y entender todo el proceso de programación que se lleva a cabo cuando se usa un entorno de programación.

El entorno de programación ya está instalado en los ordenadores de los laboratorios, por lo tanto los estudiantes lo usarán directamente sin ningún tipo de instalación, pero se les pide que se le instalen en sus ordenadores para poder trabajar las diferentes actividades fuera del laboratorio. La instalación los lleva a seleccionar diferentes opciones (sistema operativo, versiones, ..) ligadas con el ordenador donde se hace la instalación.

La realización de esta actividad contribuye al logro del resultado de aprendizaje RA1.

PRÁCTICA 2

Esta práctica está específicamente destinada a que los estudiantes practiquen la codificación y depuración de programas de naturaleza condicional e iterativa y que pueden ser diseñados aplicando los esquemas iterativos básicos presentados en la clase de teoría. El estudiante y estudiantes se enfrentan a la resolución de varios problemas que se han de aplicar los conceptos de teoría trabajados hasta entonces, profundizando principalmente a la lógica algorítmica necesaria en la escritura de las condiciones y estructuras condicionales. Los estudiantes deben aplicar diferentes estructuras condicionales, usando las más adecuadas en cada caso, siempre tomando conciencia de la importancia del factor de la eficiencia algorítmica.

En cada práctica, se incorpora alguna función más del entorno de programación, el estudiante y estudiantes deben tomar conciencia de la magnitud y posibilidades de la herramienta usada y usarlas cuando el pedido se ajuste.

Los problemas que se han resolver habrán sido puestos a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo, que conozcan los problemas que serán tratados y que hayan comenzado a diseñar las soluciones.

La realización de esta actividad contribuye a la consecución de los resultados de aprendizaje RA1 y RA2. 

PRÁCTICA 3

Esta práctica está específicamente destinada a que los estudiantes practiquen la codificación y depuración de programas ligeramente más complejas que los de las dos prácticas anteriores, en uso de las técnicas de descomposición funcional que permiten descomponer un problema en subproblemas más simples, la solución a los que puede ser codificada con la ayuda de procedimientos parametrizados.

El estudiante y estudiantes se enfrentan a la resolución de varios problemas que se han de aplicar los conceptos de teoría trabajados hasta entonces, profundizando principalmente a la lógica algorítmica necesaria en la escritura de estructuras iterativas. Los estudiantes ayudarán de los esquemas algorítmicos trabajados en clase de teoría que les garantizan que hacer implementaciones correctas y más eficientes.

Los problemas que se deben resolver habrán sido puestos a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo, que conozcan los problemas que serán tratados y que hayan comenzado a diseñar las soluciones .

La realización de esta actividad contribuye a la consecución de los resultados de aprendizaje RA1, RA2 y RA3. 

PRÁCTICA 4

En esta práctica, los estudiantes deberán codificar y depurar programas que, potencialmente, pueden requerir de todos los utensilios y mecanismos trabajados en los contenidos teóricos trabajados hasta entonces (conceptos básicos de la programación imperativa). Así pues, el carácter de esta práctica puede ser de síntesis de las anteriores y / o hacer énfasis en los últimos aspectos teóricos vistos en clase y que aún no hayan sido trabajados en su vertiente práctica. El estudiante, con la resolución de los ejercicios de esta actividad, tomará conciencia de la importancia del reaprovechamiento del código, escribirlo una única vez y usarlo tantas veces como se quiera.

Los problemas que se deben resolver habrán sido puestos a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo, que conozcan los problemas que serán tratados y que hayan comenzado a diseñar las soluciones .

La realización de esta actividad contribuye a la consecución de los resultados de aprendizaje RA1, RA2 y RA3. 

PRÁCTICA 5

En esta práctica, los estudiantes han de codificar y depurar programas que, potencialmente, pueden requerir además de todos los utensilios y mecanismos trabajados en las prácticas anteriores, el último contenido de la asignatura, las tablas. El estudiante y estudiantes, con la resolución de los ejercicios de esta actividad, trabajará con almacenes de datos que le permiten mediante el uso de los esquemas algorítmicos trabajados en teoría, hacer tratamientos de los datos de la tabla de forma iterativa.

Los problemas que se deben resolver habrán sido puestos a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo, que conozcan los problemas que serán tratados y que hayan comenzado a diseñar las soluciones .

La realización de esta actividad contribuye a la consecución de los resultados de aprendizaje RA1, RA2, RA3 y RA4. 

A nivel competencial las cinco prácticas, que mayoritariamente se deberán desarrollar en tiempo no presencial, cubren las siguientes competencias comunes y específicas de la asignatura (entre paréntesis los aspectos más relevantes de cada competencia a los que contribuye):

  • CIN1 (desarrollar software)
  • CIN3 (hábitos de trabajo efectivos en los entornos de desarrollo de software)
  • CIN6 (aplicar procedimientos algorítmicos)
  • EFB3 (comprender y dominar los conceptos de la algorítmica) y
  • EFB4 (uso de programas informáticos)

 

PRUEBA ESCRITA Y

Esta actividad evaluará de forma individualizada los tres o cuatro primeros contenidos de la asignatura. Evaluará los resultados de aprendizaje RA1, RA2 y RA3. Este último resultado será o no evaluado en esta actividad dependen de si se ha trabajado o no suficiente en la fecha establecida para esta actividad.

PRUEBA ESCRITA II

Esta segunda prueba escrita, evaluará todos los contenidos de la asignatura. Evaluando así todos los resultados de aprendizaje de la asignatura: RA1, RA2, RA3 y RA4. Como esta actividad también evalúa los dos primeros resultados, si el estudiante no supera la prueba escrita I, se considerará únicamente esta prueba escrita II.

A nivel competencial estas dos pruebas, cubren las siguientes competencias comunes y específicas de la asignatura:

  • CIN1 (desarrollar software)
  • CIN6 (aplicar procedimientos algorítmicos)
  • EFB3 (comprender y dominar los conceptos de la algorítmica y su aplicación para resolución de problemas)

Para superar (aprobar) las actividades evaluativas, los estudiantes deberán demostrar

  • Que han adquirido los conocimientos teóricos relativos a los contenidos de la asignatura y que su comprensión les permite llevarlos a la práctica [MECES-2 punto a, punto c]
  • Que pueden desarrollar soluciones a problemas que, si bien son similares a otros vistos anteriormente, presentan aspectos que son nuevos [MECES-2 punto f]

En relación a la competencia básica asignada a la asignatura, ésta queda cubierta especialmente en cuanto a los aspectos que se explicitan:

  • B2: resolución de problemas dentro de su área de estudio.

Finalmente, y en cuanto a la competencia transversal asociada a la asignatura (T1: conocimiento tercera lengua) esta se trabaja a partir de las fuentes documentales que los estudiantes deben consultar, dado que todas ellas se encuentran en inglés.

 

Normas de realización de las actividades

Para cada actividad, los docentes informarán de las normas y condiciones particulares que las rijan.

Las actividades unipersonales presuponen el compromiso del estudiante de realizarlas de manera individual. Se considerarán suspendidas todas aquellas actividades en que el estudiante no se ajuste a este compromiso, independientemente de su papel (origen o destino).

Igualmente, las actividades que se deban realizar en grupos presuponen el compromiso por parte de los estudiantes que lo integran de realizarlas en el seno del grupo. Se considerarán suspendidas todas aquellas actividades en las que el grupo no haya respetado este compromiso con independencia de su papel (origen o destino).

En las actividades realizadas en grupo el docente puede, en base a la información de que disponga, personalizar la calificación para cada integrante del grupo.

Cualquier actividad no entregada se considerará puntuada con cero puntos.

Es potestativo de los docentes aceptar o no entregas fuera de los plazos que se indiquen. En caso de que estas entregas fuera de plazo se acepten, es potestativo del docente decidir si aplica alguna penalización y la cuantía de la misma.

Sistema de evaluación


La calificación final es la suma ponderada de las calificaciones de las siguientes actividades:

ACTIVIDAD PESO

PRUEBA ESCRITA Y 15%

PRUEBA ESCRITA II 50%

PRACTICA 1 5%

PRACTICA 2 6%

PRACTICA 3 6%

PRACTICA 4 8%

PRÁCTICA 5 10%

Con las ponderaciones anteriores, las actividades de laboratorio (prácticas) tienen un peso del 35%, las actividades de carácter teórico tienen un peso del 65%.

Para aprobar la asignatura es necesario que el estudiante:

  • como mínimo, haya entregado tres prácticas, y que,
  • la calificación mínima de tres de las prácticas entregadas debe ser 4.

Si no se dan estas premisas la asignatura quedará suspendida y en este caso sin posibilidad de recuperarla.

Si la calificación de la PRUEBA ESCRITA II tiene una calificación inferior a 4 la calificación final de la asignatura será la de esta actividad. La asignatura quedará suspendida, con posibilidad de recuperación.

En caso de que fuera favorable para el estudiante, la ponderación 15% + 50% de las dos pruebas escritas podría cambiarse para 0% + 65%.

La recuperación sólo posibilita recuperar la calificación de las actividades teóricas, PRUEBA ESCRITA I y II, y siempre que esta nueva calificación no sea inferior a 4 se aplicará la misma ponderación descrita anteriormente. En caso contrario la asignatura no se considerará recuperada.

Bibliografía


Básico

Sesa Nogueras, Enrique (2010). Programación: Notas de clase y ejercicios. Publicación interna de la EUPMT.

Juan Nadal, Lina. Programación: Notas de clase y ejercicios. Publicación interna del ESUPT.