PIEU – Participantes y tareas

Relación de alumnos participantes en el proyecto

El Grupo Editor del proyecto está compuesto por los siguientes alumnos, agrupados por parejas de trabajo.

pieu_alumnos

Grupo Alu Nombre E-mail Github
Grupo1 alu72 Pepe Rubio Valero pepe.rubio@goumh.umh.es PepeRubio2005
alu66 Carlos Perez Arevalo carlos.perez38@alu.umh.es Carlosss05
Grupo2 alu26 Javier Leandro Crespo Berland javier.crespo02@goumh.umh.es JavierCresp0
alu56 Ismael Mohamed Mohamed ismael.mohamed@goumh.umh.es Ismaelmm11
Grupo3 alu53 Alfonso Martinez Sanchez alfonso.martinez06@goumh.umh.es alfonso-martinez06
alu12 Iñaki Bazan Fernandez inaki.bazan@goumh.umh.es ibf3rn4nd3z
Grupo4 alu25 Ajejandro Coves Bolaños alejandro.coves02@goumh.umh.es acoves
alu27 Gaspar Cruañes Martínez gaspar.cruanes@goumh.umh.es Gaspar2003
Grupo5 alu34 Rodrigo Andres Fernandez Marin rodrigo.fernandez01@goumh.umh.es rodriiFdz
alu07 Lorena Almoguera Romero lorena.almoguera@goumh.umh.es lorenaalmoguera
alu71 Ainhoa Rodriguez Gonzalez ainhoa.rodriguez@goumh.umh.es Ainhoa-Rodriguez25
Grupo6 alu37 Alejandro Fresneda Duran alejandro.fresneda@alu.umh.es FresxX
alu55 Jamal Menchi Hajii jamal.menchi@goumh.umh.es jamalmn

Relación de Temas

Bash Básicos (BBn)

Código Grupo Tarea Responsable
BB1 6 Un programa de consola que genere numeros aleatorios del 1 hasta el número indicado alu37
BB2 5 Un programa que haga una copia de todos los archivos especificados, con el nombre terminado en '.AAA-MM-DD-HH:MM.backup'. Si no recibe entrada, rearliza una copia de todos los archivos del directorio y si uno de ellos ya es una copia, lo ignora. alu34
BB3 1 Dada una extensión, cambiar la extensión de todos los archivos del directorio actual por otra alu66
BB4 4 Contar el número de líneas que no están ni comentadas y ni en blanco de un archivo de código en bash alu25
BB5 5 Obtener la IP externa de la máquina realizando una petición web con curl o wget devolviendo únicamente la ip por stdout. Si fallase la petición, devolver "Error de conexión" por stderr. ayuda: https://duckduckgo.com/?t=ffab&q=my+ip&ia=answer https://ipchicken.com alu71
BB6 2 Dado un string, encontrar todos los archivos que lo contengan en el nombre o en el contenido. Devolver el nombre de dichos archivos y su tamaño en dos columnas (\t), ordenando de mayor a menor. alu56
BB7 6 Listar todos los procesos cuyo nombre contenga un string dado, e ir preguntar uno a uno si debe detenerlos. alu55
BB8 1 Escribe un script que cuente el número de archivos en un directorio dado. Pista: Usa ls o find y wc -l. alu72
BB9 2 Crea un script que tome como argumento un nombre de archivo y verifique si ese archivo existe. Pista: Usa [ -e archivo ] o [ -f archivo ]. alu26
BB10 3 Crea un script que simule el lanzamiento de un dado y muestre un número al azar entre 1 y 6. Pista: Usa $RANDOM con una expresión matemática para limitar el rango. alu12
BB11 4 Realiza un script que reciba un nombre de fichero como parametro y dos cadenas de texto. Debe reemplazar una cadena por otra en ese fichero. Usar find -exec y sed alu27
BB12 5 Realiza un script que reciba como parametro una cadena de caracteres y una extensión de fichero (md o txt) y saque por pantalla para cada fichero con esa extensión cuantas veces encuentra en ese fichero la cadena alu07
BB13 3 Crear una función LogMessage( texto_a_mostrar, file_name) que gener un log, bien por pantalla, si el segundo parametro se omite o bien en un fichero que se pase como segundo parametro. Si el fichero ya existe, añade, si no, lo crea. alu53

Bash Avanzados (BAn)

Código Grupo Tarea Alumno
BA1 5 El n-esimo de la serie de fibonacci, soluciones iterativa y recursiva. alu07
BA2 5 Modificar todos los campos de string (entre ") del codigo fuente (.c, .sh, .h) contenido en un directorio por un string a elección del usuario recibido como argumento o por stdin si el único argumento es '-'. alu71
BA3 1 Mejorar el programa de números aleatorios para que lance dados personalizados: [-d NUM] para lanzar un dado convencional de NUM caras [-s spec.txt] un fichero de NUM lineas, donde cada una contiene el texto de una cara del dado [-r REPEAT] repite la tirada REPEAT veces alu66
BA4 3 Mejorar el programa de cuenta de lineas para que funcione también con código en C. El lenguaje se puede especificar con [-l EXT] (ej: -l sh) o determinar de la extensión del fichero. En caso de no tener extensión, y no pasar [-l EXT], tratarlo como bash. alu53
BA5 1 Obtener la información del tiempo de wttr.in y añadir un emoji de nube al $PS1 si llueve y ocultarlo si ha dejado de llover, la actualización se realiza cada 15 min mediante cron-job o temporizador de systemd. ayuda: https://wttr.in/Elche?format=%c alu72
BA6 4 Unir varios archivos de texto en uno, eliminando lineas repetidas. alu25
BA7 2 Escribe un script que cambie los permisos de todos los archivos en un directorio a 755 si son ejecutables, o 644 si no lo son y sólo para los ficheros a los que tenga acceso el grupo que se recibe como parámetro alu26
BA8 6 Escribe un script que busque un patrón de texto que recibe como parámetro, dentro de un archivo dado también como parametro, indicando en qué líneas aparece. alu55
BA9 3 Escribe un script que descargue una lista de archivos desde URLs proporcionadas en un archivo de texto y los deje en un directorio que recibe como parámetro. alu12
BA10 6 Crea un script donde el sistema elija un número aleatorio entre 1 y 100, y el usuario tenga que adivinarlo. El sistema debe dar pistas de "mayor" o "menor" en cada intento. alu37
BA11 5 Crear un script que genere una contraseña aleatoria de cierta longitud y complejidad. alu34
BA12 4 Tienes una gran cantidad de archivos con una extensión específica (por ejemplo, .txt) y deseas cambiarles la extensión a .md. Realiza un script que reciba las extensiones origen y destino como parametro y utilice xargs y find para realizar el cambio de extensiones a todos los ficheros origen. Utilizar otro parametro para permitir hacer copia en vez de sustitución. alu27
BA13 2 Crea un script que analice un directorio y genere un informe detallado sobre el tamaño total, la cantidad de archivos y subdirectorios, y los archivos más grandes. alu56

C Básicos (CBn)

Código Grupo Tarea Alumno
CB1 1 Escribe un programa que invierta una cadena de texto introducida por el usuario. alu72
CB2 2 Implementa la búsqueda binaria sobre un array ordenado. El programa debe pedir un número a buscar y decir si está en el array. alu56
CB3 4 Implementar un programa que calcule el interés compuesto a partir de un capital inicial, una tasa de interés y el número de años. alu25
CB4 6 Implementar un programa que lea una lista de estudiantes de un fichero separado por comas y sus calificaciones, y luego ordene la lista por nombre o por calificación utilizando el algoritmo de ordenamiento de tu preferencia (burbujas, selección, etc.). alu37
CB5 6 Escribir un programa que genere contraseñas aleatorias seguras según ciertos criterios (longitud, uso de mayúsculas/minúsculas, dígitos y caracteres especiales). alu55
CB6 5 Escribir un programa que lea una lista de números (floats) de un fichero separado por comas donde cada columna es una variable y muestre un informe para cada variable de estadísticos como la media, desviación estandar, mínimo y máximousuario y calcule su media. alu34
CB7 3 Escribir un programa que calcule el MCD de dos números utilizando el algoritmo de Euclides. alu53
CB8 2 Escribir un programa que cuente el número de vocales en una cadena de texto introducida por el usuario. alu26
CB9 5 Crear un programa que permita al usuario realizar operaciones básicas como suma, resta, multiplicación y división, pidiendo los dos números y la operación a realizar. alu71
CB10 3 Crea un programa que pida al usuario que ingrese el nombre de un fichero  de texto y cuente cuántas vocales y cuántas consonantes hay en el. Imprime el resultado en pantalla. alu12
CB11 5 Escribe un programa que convierta una temperatura ingresada en grados Celsius a grados Fahrenheit y viceversa. alu07
CB12 1 Dado un fichero de texto separado por comas con dos columnas que son un radio de un círculo y una velocidad, que genere para cada circulo el tiempo que tardará con esa velocidad en ir del centro a cualquier punto del círculo. (Movimiento uniforme) alu66
CB13 4 Crear una clase Crandom que tenga métodos para crear valores aleatorios, enteros o floats, tantos como se pidan y en el rango de valores en los que se pidan. Poner ejemplos de uso de esta clase. alu27

C Avanzados (CAn)

Código Grupo Tarea Alumno
CA1 5 Implementa al programa de los canarios en la jaula que se ha explicado en clase con hilos. alu71
CA2 3 Implementa un ejemplo en el que múltiples hilos de un proceso acceden a una región de memoria compartida y escriben en ella. Explicar cómo sería con procesos. alu12
CA3 2 Escribe un programa que simule un sistema bancario con múltiples cuentas. Cada cuenta debe tener un saldo que pueda ser actualizado por múltiples hilos que representen operaciones como depósitos o retiros. Usa un mutex para asegurar que las operaciones en una cuenta se realicen de forma atómica. alu26
CA4 5 Escribe un programa que divida un archivo grande en partes y procese cada parte en paralelo utilizando múltiples procesos. Cada proceso debe calcular el número de palabras en su parte asignada, y el proceso principal debe recolectar los resultados parciales y sumar el total. alu34
CA5 1 Implementa una versión simplificada de grep, que busque una palabra clave en múltiples archivos. El programa debe aceptar como argumentos la palabra clave y los archivos, y luego utilizar procesos hijos para buscar en cada archivo en paralelo alu66
CA6 6 Implementa un programa que simule una cola de impresoras. Usa hilos para representar impresoras, y otro hilo principal que gestione la cola de trabajos. Cada trabajo debe ser atendido por una impresora disponible, y se debe gestionar la sincronización entre hilos. alu37
CA7 4 Crea un programa que implemente el patrón productor-consumidor utilizando múltiples buffers circulares. Los productores deben llenar los buffers y los consumidores deben vaciarlos, utilizando semáforos para gestionar la sincronización entre ambos. alu25
CA8 2 Escribe un programa que lance varios procesos hijos que deben sincronizarse entre sí utilizando pipes o semáforos. Los procesos deben realizar tareas coordinadas, como sumar un conjunto de números en paralelo y luego enviar los resultados parciales al proceso padre para su agregación alu56
CA9 4 Simula un supermercado con múltiples cajas registradoras y una fila de clientes. Cada caja debe ser un hilo que atienda a los clientes, y los clientes deben esperar su turno en la fila. Usa semáforos o variables de condición para sincronizar las cajas y los clientes. alu27
CA10 6 Crea un programa que lea múltiples archivos en paralelo (usando hilos o procesos), y cuente el número de líneas, palabras y caracteres en cada uno, mostrando los resultados parciales y finales alu55
CA11 3 Crea una lista doblemente enlazada que incluya las operaciones básicas: insertar al principio, insertar al final, borrar un nodo y mostrar la lista en orden directo e inverso. alu53
CA12 1 Implementa una lista enlazada en la que los elementos se mantengan en orden ascendente. Permite operaciones como inserción, búsqueda y eliminación de elementos manteniendo el orden. alu72
CA13 5 Implementar un proceso padre que, mediante pipes, distribuya enteros a N hilos hijos. Cada hilo genera un array aleatorio del tamaño recibido y lo almacena en una región de memoria compartida. El proceso padre serializa los resultados en un archivo alu07