Información general


Idiomas de impartición


  • Català

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 para 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 Covid-19. De esta forma se asegurará el logro de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


En general, esta asignatura contribuye a los siguientes resultados de aprendizaje especificados en la materia a la que pertenece (Algoritmos y Programación):

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

En un nivel específico, al final del curso el estudiante debe ser capaz de:

  • RA1: Escribir programas sencillos que usen estructuras secuenciales y/o condicionales, codificarlos en un lenguaje de programación imperativo y de alto nivel, probarlos y depurarlos.
  • RA2: Escribir programas que usen estructuras iterativas, codificarlos en un lenguaje de programación imperativo y de alto nivel, probarlos y depurarlos. Se necesario aplicar los esquemas algorítmicos más apropiados.
  • RA3: Escribir programas que usen la técnica de descomposición funcional que te permite dividirlos en subproblemas más sencillos, codificarlos en un lenguaje de alto nivel imperativo, probarlos y depurarlos.
  • RA4: Escribir programes que usen los arrays para almacenar datos,  codificarlos en un lenguaje de programación imperativo y de alto nivel, probarlos y depurar-los.

Metodologia de trabajo


Todos los conceptos teóricos de la materia se expondrán en clases de teoría (grupos grandes). En estas clases, y a 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 forma 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 logro 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 a tal efecto se darán las herramientas adecuadas para resolver las actividades programadas todo y que se espera que éstas se 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 totalmente opcionales que contribuyan a preparar y a prepararse para las de carácter obligatorio.

Este curso, debido a la situación generada por la COVID, algunas de las sesiones de grupo grande se harán en formato híbrido: presencial y en línea (vía streaming). Esto permitirá que los estudiantes puedan asistir rotativamente a 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ó), si es necesario se trabajará simultáneamente en varios espacios para garantizar que se cumplan las condiciones establecidas por los protocolos de seguridad.

Contenidos


1.- INTRODUCCIÓN A LA ALGORITMICA 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. Tipos de funciones

5.- EL TIPO ARRAY

  • Tablas y tipos estructurados
  • Variables de una componente y variables de múltiples componentes
  • Declaración, creación y rellenado 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 actividades de carácter práctico (ejercicios cortos, problemas...) que son la base de las actividades de aprendizaje de la asignatura. Los estudiantes las tendrán que resolver, a menudo en sesiones no presenciales, siguiendo las instrucciones de los profesores y también, se trabajarán en clase, ya sea como ejemplos en las sesiones teóricas, ya sea en las sesiones de laboratorio. Si bien estas actividades serán opcionales (los docentes no verificaran individualmente la realización de los alumnos), serán imprescindibles para lograr el conocimiento teórico-práctico de la asignatura.

Con el objetivo de reunir pruebas del logro de los resultados de aprendizaje que se esperan, se realizaran las siguientes actividades evaluativas (prácticas y 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

Con esta práctica, los alumnos tienen un primer contacto con el entorno de desarrollo de programas que será utilizado en todas las prácticas y actividades que se relacionan con la programación.

En la primera parte, es el profesor quien realiza la presentación del entorno, mostrándoles los elementos que serán más útiles.

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

  • finalizar la codificación de algunos programas simples incompletos
  • codificar totalmente algunos programas para la resolución de problemas simples
  • detección y corrección de errores gramaticales e inconsistencias lógicas en pequeños programas dados

En esta primera actividad, los alumnos aprenden a utilizar las opciones más básicas de un programa informático, concretamente de un entorno de programación, que a través de un lenguaje de programación les permitirá codificar los ejercicios solicitados en las sesiones de prácticas i actividades de la asignatura.  Así como avance la asignatura, los estudiantes aprenderán la mayoría de las funciones del entorno de programación, profundizando en las partes necesarias para desarrollar el contenido de la asignatura. El estudiante y la estudiante tienen que entender y comprender todo el proceso de programación que se lleva a cabo cuando se utiliza un entorno de programación.

El entorno de programación ya está instalado en los ordenadores de los laboratorios, por lo tanto los alumnos lo utilizaran directamente sin necesidad de instalación, pero se les pide que se lo instalen en sus ordenadores para poder trabajar las actividades fuera del laboratorio. La instalación requiere seleccionar diferentes opciones (sistema operativo, versiones, etc.) vinculadas al ordenador donde se realiza la instalación.

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

PRÀCTICA 2

Esta práctica está orientada principalmente a que los estudiantes practiquen la codificación y depuración de programas de carácter condicional e iterativo y que pueden ser diseñados aplicando los esquemas básicos presentados en la clase de teoría. Los alumnos se enfrentan a la resolución de varios problemas a los que deben aplicar los conceptos de la teoría trabajados hasta entonces, profundizando en la lógica algorítmica necesaria para escribir las condiciones y estructuras condicionales. Los estudiantes tienen que aplicar diferentes estructuras condicionales, utilizando las más apropiadas en cada caso, siempre tomando conciencia de la importancia del factor de la eficiencia algorítmica.

En cada práctica, se trabaja alguna función más del entorno de programación, los estudiantes tienen que tomar conciencia de la magnitud y el potencial de la herramienta utilizada y usarlas cuando sea necesario.

Los problemas a resolver se han puesto a disposición de los estudiantes antes de la sesión de laboratorio, con un doble objetivo, conocer los problemas que han de solucionar y que empiecen con su resolución.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1 y RA2.

PRÀCTICA 3

Esta práctica está específicamente orientada a que los estudiantes practiquen la codificación y depuración de programas un poco más complejos que los de las dos prácticas anteriores, haciendo uso de las técnicas de descomposición funcional que le permiten desglosar un problema en subproblemas más simples, en este caso la solución se puede codificar con la ayuda de procedimientos parametrizados.

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

Los problemas a resolver se han puesto a disposición de los estudiantes antes de la sesión de laboratorio, con un doble objetivo, conocer los problemas que han de solucionar y que empiecen con su resolución.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1, RA2 y RA3.

PRÀCTICA 4

En esta práctica, los estudiantes tendrán que codificar y depurar programas que potencialmente pueden requerir todas las herramientas y mecanismos trabajados en los contenidos teóricos trabajados hasta entonces (Fundamentos de programación imperativa). Así, el carácter de esta práctica puede ser una síntesis de lo anterior y/o enfatizado en los últimos aspectos teóricos vistos en clase y que aún no se han trabajado en su práctica. El alumno, con la resolución de los ejercicios de esta actividad, tomará conciencia de la importancia de la reutilización del código, lo escribirá una única vez y lo usará tantas veces como desee.

Los problemas a resolver se han puesto a disposición de los estudiantes antes de la sesión de laboratorio, con un doble objetivo, conocer los problemas que han de solucionar y que empiecen con su resolución.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1, RA2 y RA3.

PRÀCTICA 5

En esta práctica, los estudiantes tienen que codificar y depurar programas que potencialmente requieren, además de todas las herramientas y mecanismos trabajados en prácticas anteriores, el último contenido de la asignatura, las tablas. Los alumnos, con la resolución de los ejercicios de esta actividad, trabajarán con almacenes de datos que mediante el uso de los esquemas algorítmicos trabajados en teoría, permiten realizar el tratamiento de los datos mediante iteraciones.

Los problemas a resolver se han puesto a disposición de los estudiantes antes de la sesión de laboratorio, con un doble objetivo, conocer los problemas que han de solucionar y que empiecen con su resolución.

La realización de esta actividad contribuye al logro 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 I

Esta actividad será personal y evaluará los tres o cuatro primeros contenidos de la asignatura. Con esta actividad se evalúan los resultados de aprendizaje: RA1, RA2 y RA3. Este último resultado será o no evaluado en esta actividad dependiendo de si se ha  trabajado o no suficiente para la fecha establecida para esta actividad.

PRUEBA ESCRITA II

Esta segunda prueba escrita, evaluará todos los contenidos de la asignatura. Con esta actividad se evalúan los resultados de aprendizaje: RA1, RA2, RA3 y RA4. Con esta actividad también evalúan los dos primeros resultados de aprendizaje, si el estudiante supera el resultado de 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 las 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 la 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 I   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ásica

Juan Nadal, Lina. Programació: Notes de classe i exercicis. Publicació interna de l'ESUPT.

Sesa Nogueras, Enric (2010). Programació: Notes de classe i exercicis. Publicació interna de l’EUPMT.