Skip to content

Anatoli-Grishenko/UGRMPBase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

UGRMPBase Un repo base para la asignatura Metodología de la programación

image Para estar al día de las incidencias de la asignatura y tener contacto directo con los profesores puedes unirte al grupo de Telegram de algunas titulaciones

Preparandolo todo

  • Videotutorial introducción a la asignatura.

  • Documentos de apoyo al videotutorial para la preparación del entorno de trabajo en el ordenador. En él se describe, a rasgos generales, cómo preparar el ordenador para la asignatura e incluye enlaces a otros videotutoriales, PDF, o Webs con descripciones más precisas de cada aspecto concreto. Este documento en PDF que aparece aquí son las transparencias del videotutorial y contiene los enlaces desde los que acceder a las herramientas y documentos que se citan en el vídeo.

    • Las transparencias del vídeo con enlaces
    • Descargar el repo
      git clone https://github.com/Anatoli-Grishenko/UGRMPBase UGRMPBase
      
    • Mantener el repo actualizado con los últimos cambios
      cd UGRMPbase
      git pull
      
    • Videotutorial Preparando el entorno de trabajo
      • Paquetes de Linux que deben estar presentes durante las prácticas (sudo apt install) gcc make valgrind wdiff doxygen ImageMagick git graphviz
  • Para aquellos que decidáis la opción de VirtualBox, el profesorado de MP hemos preparado una copia de una máquina virtual ya preparada con Linux, NetBeans y C++. Aquí tenéis las instrucciones para instalarla. Son tres pasos muy sencillos MP_VBOXc

    • Descargar e Instalar Virtualbox
    • Descargar la Máquina virtual oficial de la asignatura desde Google Drive (tardará un poco porque son más de 4 GB). Es una versión de Ubuntu 20 conocida como LUbuntu 16.04 LTS la cual ya vien empaquetada para consumir la mínima cantidad de recursos dado que se va a usar dentro de una VirtualBox sobre Windows. Esta imagen ya está configurada para la asignatura MP y lleva todo el software necesario instalado.
    • Importar la máquina virtual y acceder a ella. guía de importación
    • Usuario mp
    • Password .CambiaEsto
  • Laboratorios de prácticas de la ETSIIT. Arranque con Ubuntu 20.04. El resto de herramientas ya están instaladas.

  • Y, finalmente una última opción: el servidor de imágenes virtuales de la ETSIIT. Arrancar con Ubuntu 18. Ya tiene instalado NetBeans 11.2 y C++.

  • Enlaces interesantes

Secuencia de prácticas

Mira los vídeos de introducción a la asignatura y de introducción a las prácticas

Comienzo Práctica
Entregable en Prado
Herramientas Metodología
Semana1 20/feb/2023
  1. NetBeans 1
    • Primeros pasos
    • HelloWorld
    • Directivas del precompilador
  2. Gestión de la documentación con Doxygen
  1. Caso práctico: Análisis del el proyecto MP Geometry
    • Métodos const.
    • Parámetros por valor y por referencia.
    • Funciones friend
    • Validación simple de programas. Lectura de datos con redirección de la enrtada
  2. Caso práctico: Separación de la declaración e implementación de los métodos con el proyecto MP Geometry
  3. Caso práctico: Compilación separada con el proyecto MP Geometry
Semana2 27/feb/2023 Language0 Manejo de Bigramas

Guía para hacer Langage0 Implementación comentada
  1. NetBeans 2
    • Compilación separada: Bibliotecas
  1. Clases con vectores estáticos. Paso de vectores a funciones y métodos
  2. Uso de bibliotecas con el proyecto MP Geometry
Semana4 13/mar/2023 Language1 Bigramas con frecuencias asociadas. Tests detallados Acceso a datos en disco. Lectura y escritura. Errores frecuentes
Semana5 20/mar/2023 Uso de parámetros desde la línea de comandos
Semana6 27/mar/2023 Language2
Semana7 3/abr/2023 Semana Santa
Semana8 10/abr/2023
Semana9 17/abr/2023 Language3 valgrind Detección de pérdidas de memoria Uso de memoria dinámica en C++. Arrays dinámicos. Detección de pérdidas de memoria
Semana10 24/abr/2023
Semana11 1/may/2023 Language4 Constructor de copia+Operador de asignación+Destructor
Semana12 8/may/2023 Language4
Examen de laboratorio
1 PUNTO
Semana13 15/may/2023 Language5
2 PUNTOS
Matrices bidimensionales dinámicas. CStrings
Semana14 22/may/2023
Semana15 29/may/2023
Semana16 5/jun/2023

Técnicas, herramientas y metodologías de prácticas

En esta sección encontrarás manuales y videotutoriales sobre temas específicos de las prácticas que irán complementando al tema principal de la práctica.

El entorno de desarrollo NetBeans

NetBeans es un entorno de desarrollo integrado libre y multiplataforma, creado principalmente para el lenguaje de programación Java, pero que ofrece soporte para otros muchos lenguajes de programación. Existe además un número importante de módulos para extenderlo. NetBeans es un producto libre y gratuito sin restricciones de uso.

Documentación con Doxygen

Doxygen es un programa de apoyo a la documentación (comentarios) de proyectos de software que usa una sintaxis de anotación de los comentarios en el código que podríamos llamar, estándar, y común a otros lenguajes.

Compilación separada

Es una metodología de desarrollo de proyectos de software que divide el proyecto en unidades funcionales, llamados módulos o paquetes o bibliotecas (librerías), que se compilan por separado y se enlazan en un único fichero

Test-Driven Development

Es una metodología de desarrollo de proyectos software en la que primero se definen los tests de validez que debe pasar el proyecto y después es cuando se codifica el proyecto. Un proyecto se considera válido si pasa todos los tests previstos.

Depuración de programas

El depurador es una herramienta que suele estar incorporada en los IDE (Integrated Development Environment) como NetBeans. Se utiliza para ejecutar el programa paso a paso e intentar encontrar errores en el código.

Detección de pérdidas de memoria y errores en la gestión de la memoria

Valgrind y Dr Memory son herramientas para la detección, sobre todo, de pérdidas de memoria, pero también de otros problemas de gestión de la memoria dinámica.

  • Manual sobre el uso de Valgrind
  • Manual sobre el uso de Dr Memory
  • Proyecto Interactivo ValgrindShowcase
    • Descomprimir
    • Cargar en Netbeans
    • Ejecutar y seguir las instrucciones. Se puede volver a empezar de nuevo sin más que descomprimir de nuevo.

Manejo de ficheros de texto (muy básico)

Los ficheros de texto permiten almacenar datos que pueden leer los programas de forma masiva para procesarlos. Este apartado es una (muy breve) introducción al manejo de ficheros que se verá en teoría.

Paso de parámetros a la función main() desde la línea de órdenes

Esta es una técnica muy habitual para introducir datos en un programa desde la línea de comandos. Absolutamente imprescindible en programas de consola de Linux/Unix.

Manejo de errores y excepciones

Breve introducción a la gestión de señales de error durante la ejecución de un programa y la gestión controlada de estos mediante el uso de excepciones. Videotutorial

Erratas

1. En el videotutorial sobre La implementación de los métodos se menciona el código

bool isValidCharacter(char character, const string& validCharacters) {
    return validCharacters.find(character) >= 0;
}

este código tiene un error porque supone que el dato que devuelve find() es un número entero con signo, pero es un número entero sin signo, por lo que se resuelve fácilmente con un cambio de tipo forzado (casting)

bool isValidCharacter(char character, const string& validCharacters) {
    return (int) validCharacters.find(character) >= 0;
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published