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
- Grupo de Telegram del Doble Grado Informática y Matemáticas
-
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
- Paquetes de Linux que deben estar presentes durante las prácticas (sudo apt install)
-
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
- 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 comoLUbuntu 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
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 |
|
|
|
Semana2 27/feb/2023 | Language0 Manejo de Bigramas Guía para hacer Langage0 Implementación comentada |
|
|
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 | |||
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.
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.
- Manual de referencia
- Primeros pasos
- Hello world!
- Videotutorial
- Abrir Proyecto Netbeans
- Vistas Lógica (Projects) y Física (Files)
- Editor
- Estándar C++14
- Compilar y enlazar
- Carpetas build y dist
- Ejecutar
- Pestaña de salida del programa
- Desde Netbeans
- Desde la terminal de ordenes
- Ficheros de datos de validación
- Directivas del precompilador
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.
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
- Primera parte.De un proyecto monolítico a un proyecto modularizado.
-
Proyecto NetBeans MPGeometry monolítico
-
Videotutorial modularización y compilación separada
-
Proyecto NetBeans MPGeometry sep
-
Proyecto NetBeans MPGeometry modularizado
-
- Segunda parte. Uso de bibliotecas (librerías)
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.
- Introducción a Test-Driven Development. Videotutorial
- Creando el proyecto. Videotutorial
- Pasar los primeros tests unitarios . Videotutorial
- Pasar todos los tests unitarios. Videotutorial
- Los tests de integración. Videotutorial
- Proyecto
MyVector
- Manual completo TDD
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.
- Manual sobre el depurador de NetBeans
- Videotutorial 1
- Videotutorial 2
- Proyectos de NetBeans para depurar incluídos en el videotutorial:
Debugger1
Debugger2
Debugger3
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.
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.
- Manual sobre el manejo (muy básico) de ficheros de texto
- Videotutorial 1. Ficheros de entrada
- Videotutorial 2. Ficheros de salida
- Videotutorial 3. Gestión de errores en el manejo de ficheros
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.
- Manual sobre el paso de argumentos a main()
- Videotutorial 1
- Videotutorial 2
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
- Manejo de señales de error. Videotutorial
- Manejo de excepciones Videotutorial
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;
}