Prácticas de programación Código:  81.578    :  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en el que se proyecta   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de la UOC para la asignatura   Información adicional sobre los recursos de aprendizaje y herramientas de apoyo   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.
En la asignatura de Fundamentos de Programación habéis adquirido los conceptos básicos de programación dentro del paradigma clásico o procedimental. En esta asignatura se busca ayudar al estudiante a asentar estos conceptos básicos, profundizando en algunos de ellos.
Hasta el momento, los problemas propuestos se podían resolver con la utilización de herramientas y conceptos teóricos explicados en los módulos de teoría, siguiendo unas guías de buenas prácticas de programación. El objetivo final del estudiante era obtener un código que solucionara el problema dado. En la resolución de problemas reales, la obtención de soluciones informáticas a problemas concretos es una tarea de ingeniería, donde la creatividad i la pericia del programador puede ser la diferencia entre conseguir una solución o que el proyecto fracase.
No existen recetas mágicas para encontrar soluciones factibles a todos los problemas a los que un programador se puede enfrontar al largo de su vida profesional. La única forma de que el estudiante adquiera las capacidades de abstracción de problemas y planteamiento eficiente de soluciones, es por medio de la creación de sus propios mecanismos, lo que solo se consigue a base de práctica. Por consiguiente, esta será una asignatura mayoritariamente práctica, donde el estudiante deberá enfrentarse a problemas más complejos y tener en cuenta aspectos de optimización de código para encontrar soluciones que no solo funcionen, sino que también sean eficientes en términos de velocidad y utilización de la memoria.
Siguiendo con lo que se ha iniciado en la asignatura de Fundamentos de Programación, esta asignatura utilizará el lenguaje de programación C para codificar las soluciones a los problemas propuestos.

Amunt

Esta asignatura profundiza en los conocimientos introducidos en la asignatura de Fundamentos de Programación, y por lo tanto se da por superado todo su temario. Dado que los conocimientos introducidos en esta asignatura se sustentan en los conocimientos básicos de programación, si el estudiante decide cursar esta asignatura si haber asimilado los conocimientos básicos de Fundamentos de Programación, necesitará más tiempo para resolver las tareas propuestas, encontrándose con una dificultad mayor a la hora de entender los distintos módulos teóricos.
Es importante que al final de la asignatura, el estudiante haya logrado un alto nivel de programación dentro del paradigma clásico, dado que en se introducirá la programación dentro del paradigma de la programación Orientada a Objeto dentro de la asignatura Diseño y Programación orientada a Objetos.

Amunt

Conseguir un buen nivel de algorítmica y programación es la base para el ejercicio profesional dentro del ámbito del desarrollo de aplicaciones informáticas, y en la mayoría de las tareas que requieren de automatización de procesos o simulación de eventos. Además, la capacidad de abstracción en la resolución de problemas de programación, resulta de gran utilidad en otros aspectos de la vida profesional de los ingenieros, creando buenos hábitos de trabajo y una correcta estructuración y organización de las tareas.
Además, el lenguaje de programación C utilizado en las prácticas de la asignatura es un lenguaje ampliamente utilizado en todo tipo de problemas i ámbitos, y ha sido utilizado como fuente de inspiración para muchos otros lenguajes más modernos, lo que os dará la capacidad de aprender nuevos lenguajes de programación más fácilmente.

Amunt

Los conocimientos previos para la realización de la asignatura son los que se especifican como contenidos en la asignatura de Fundamentos de Programación. En especial, se necesita un buen conocimiento en la formulación de algoritmos y en las técnicas de la programación estructurada. También se necesita facilidad para la codificación de algoritmos en lenguaje C.

Amunt

Dado que esta asignatura es la continuación de Fundamentos de Programación, se recomienda tenerla superada. En caso de estudiantes con posibilidad de convalidar Fundamentos de Programación, hay que tener en cuenta que para el correcto seguimiento de Prácticas de Programación es necesario disponer de los siguientes conocimientos:

  • Conceptos básicos de la programación estructurada
    • Flujo de un programa
    • Estructuras de control condicional e iterativas
    • Modularidad: Definición e implementación de acciones y funciones
  • Tipos de datos
    • Tipos básicos
    • Vectores y matrices
    • Tuplas y tablas
    • Tipos Abstractos de Datos básicos (colas, pilas y listas)
  • Punteros
  • Nociones de Recursividad
  • Uso memoria dinámica
  • Conocimiento básico del lenguaje de programación C.


Como estudiantes de Prácticas de Programación tendréis acceso a todos los materiales de Fundamentos de Programación, pero el tiempo de dedicación a la asignatura y su dificultad será mucho mayor en caso de no tener nociones básicas de estos contenidos.

Amunt

La competencia central de esta asignatura es que el estudiante asimile la capacidad de diseñar y construir aplicaciones informáticas mediante técnicas de desarrollo, integración y reutilización.
La asimilación de esta competencia requiere trabajar en las siguientes competencias específicas:
1)       Saber escribir e implementar un algoritmo que satisfaga unos requerimientos preestablecidos aplicando la metodología más adecuada.
2)       Saber calcular la complejidad de un algoritmo y ser capaz de comparar la eficiencia de distintas soluciones posibles para resolver un problema dado.
3)       Conocer en profundidad los lenguajes y herramientas de programación (IDE) más actuales y populares.
4)       Conocer los distintos mecanismos para la ejecución de una aplicación (Compiladores, intérpretes, etc.).
5)       Conocer en profundidad los recursos existentes para la depuración de un programa.
6)       Saber implementar (codificar) cualquier diseño de programa.
7)       Saber elegir la estructura modular y de datos necesaria para construir una aplicación informática.
8)       Ser capaz de entender algoritmos y programas escritos (en un lenguaje de programación concreto) por otras personas, así como conocer los algoritmos y componentes de bibliotecas más aceptados para problemas concretos (ej. Manipulación de datos, etc.).
9)       Conocer las buenas prácticas de programación (tabulación, comentarios, documentación, política de nombres, etc.).

Amunt

Los contenidos de la asignatura se han dividido en 5 bloques teóricos:
1)       Diseño descendente.
2)       Estructuras de datos básicas: Listas, Pilas y Colas.
3)       Recursividad.
4)       Técnicas de análisis de algoritmos (complejidad algorítmica y eficiencia).
5)       Algoritmos de búsqueda y clasificación (búsqueda lineal, búsqueda binaria, método de la burbuja, ordenación por inserción, ordenación por selección, etc.).
y 5 bloques prácticos:
1)       Introducción a las herramientas de programación: Entornos de desarrollo (IDE), compilador, intérprete y depurador.
2)       El lenguaje de programación C.
3)       Gestión de la memoria.
4)       Entrada y Salida.
5)       Implementación de algoritmos complejos.

Amunt

Estructuras de datos básicas PDF
Màquina virtual Fonaments de programació / Máquina virtual fundamentos de programación Software en línea
Materiales de programación Web
Prácticas de programación Web

Amunt

Para el contenido teórico de la asignatura se utilizará el libro "Manual de Algorítmica",  escrito por Jesús Bisbal Riera, y que encontrareis en la bibliografía de la asignatura. En este libro encontrareis las explicaciones teóricas y ejemplos para los bloques teóricos 1, 3, 4 y 5. Para el bloque 2, se utilizará un documento anexo desarrollado específicamente para esta asignatura. En los recursos del aula encontrareis:

·         Módulo 2. Estructuras de datos básicas: Éste modulo corresponde al anexo que contiene información sobre el módulo 2 de teoría. 

·         Corrector automático: Pera una autocorrección orientativa de algunos ejemplos de codificación en C, dispondréis de un corrector automático. En los recursos del aula de laboratorio encontrareis:

·         Manual del lenguaje C: Éste manual introduce un entorno y un lenguaje de programación en concreto, que permitir poner en práctica los conocimientos aprendidos en los materiales didácticos. Concretamente, el manual presenta un lenguaje de programación comercial (el C) y da las pautas de traducción de la notación algorítmica a C. ·         Guía de estilo de programación en C.

·         Programas: Dev-C++ y manual de instalación.

·         Tablas de conversión entre lenguaje algorítmico y C.

Amunt

El proceso de evaluación se fundamenta en el trabajo personal de cada estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares que pueden tener consecuencias académicas y disciplinarias graves.

Por un lado, si se detecta alguna de estas conductas irregulares, puede comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente - incluidas las pruebas finales - o en la calificación final de la asignatura, ya sea porque se han utilizado materiales o dispositivos no autorizados durante las pruebas, como redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas del resto de estudiantes, etc.) sin la correspondiente citación, o porque se ha practicado cualquier otra conducta irregular.

Por el otro, y de acuerdo con las normativas académicas, las conductas irregulares en la evaluación, además de comportar el suspenso de la asignatura, pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda.

La UOC se reserva la potestad de solicitar al estudiante que se identifique o que acredite la autoría de su trabajo a lo largo de todo el proceso de evaluación por los medios que establezca la universidad (síncronos o asíncronos). A estos efectos, la UOC puede exigir al estudiante el uso de un micrófono, una cámara u otras herramientas durante la evaluación y que este se asegure de que funcionan correctamente.

La verificación de los conocimientos para garantizar la autoría de la prueba no implicará en ningún caso una segunda evaluación.

Amunt

Esta asignatura sólo puede superarse a partir de las actividades hechas a lo largo del curso y la realización de una prueba de síntesis (PS). La combinación de la nota final de las actividades de evaluación continua (EC) y la calificación final de las actividades prácticas (Pr) da como resultado la calificación final de evaluación continua (FC: EC + Pr).

Para tener derecho a hacer la PS, la calificación final de evaluación continua (FC) debe ser igual o superior a 5. La nota final de la asignatura se obtendrá posteriormente cruzando la nota de la PS con la FC.

La fórmula de acreditación de la asignatura es la siguiente: (EC + Pr) + PS.

 
 

Amunt