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