DISTINTOS TEMAS
TEMA 1: Encriptado
¿De qué se trata?
En este proyecto, trabajarás en un programa de encriptación de mensajes. La encriptación es
un proceso mediante el cual queremos hacer imposible la comprensión de un documento para
cualquiera que no tenga la clave de descifrado.
Por lo tanto, deberas desarrollar un programa para cifrar un mensaje, utilizando los siguientes
métodos de cifrado:
métodos de encriptación:
- ROT13
- Código de César
- Código Vigenère
- Carré de Polybe
Su programa debe proponer al usuario que inscriba su mensaje y luego que elija su método de
cifrado (encriptación) entre los cuatro propuestos.
Para los más avanzados, un segundo programa más complicado consiste en proponer el
descifrado de los mensajes cifrados [conociendo la clave].
Si buscas inspiración:
La web [Link] es una mina de oro en todo lo relacionado con el cifrado y los
códigos de todo tipo. Las diferentes encriptaciones que tienes que hacer en este proyecto se
describen aquí y la web os permitirá probar y verificar si vuestras encriptaciones funcionan. La
descripción de los diferentes cifrados pueden ayudarle a preparar correctamente su código y a
encontrar soluciones.
Ir más allá:
Estos cifrados varían en dificultad, ROT13 y el código César son fáciles y los otros dos son más
difíciles. Tienes todas las herramientas para construir tu código en la lección, así que tómate tu
tiempo para pensar en todo lo que necesitas encriptar en un mensaje.
La desencriptación es un segundo nivel, puedes intentarlo en R0T13 para empezar. Si te
sientes lo suficientemente cómodo como para intentar ir más allá, ¡no lo dudes!
Los puntos esenciales:
- Su código en formato .py está documentado y provisto de las librerías y archivos necesarios,
así como las instrucciones de uso/instalación en caso necesario.
- Las fuentes de inspiración están claramente citadas e identificadas
- Debes ser capaz de explicar qué ocurre en cada una de las partes de código que componen tu
programa. No se trata de copiar y pegar códigos encontrados en Internet, sino que debes ser
capaz de explicar qué ocurre en cada parte del código que compone tu programa (explicando
tus elecciones y los pasos).
- Proporciona un manual para la instalación [si es necesario] y el uso de tu proyecto.
TEMA 2: un cuestionario sobre funciones matemáticas
¿De qué se trata?
En este proyecto, tienes que desarrollar un programa que permita aprender y comprender las
diferentes funciones matemáticas de las que suele disponer un alumno de 1º de Bachillerato
[funciones cuadrada, inversa, lineal, afín y de segundo grado]. Su programa debe permitirle
practicar y evaluar el nivel del usuario. Debe mostrar sucesivamente 10 preguntas sobre las
funciones. A continuación, se genera una puntuación sobre 20 [cada respuesta correcta suma
2 puntos y cada respuesta incorrecta no da ni quita puntos].
Vuestro cuestionario debe constar de 10 preguntas, que se extraen de un "banco de
preguntas" para generar un cuestionario aleatorio.
En las propias preguntas, algunos de los datos pueden ser aleatorios [por ejemplo, ax2+bx+c
con valores aleatorios cada vez para a, b y c.
Cada respuesta debe generar un comentario antes de pasar a la siguiente pregunta. Debe
aparecer "respuesta correcta/incorrecta + solución".
Si buscas inspiración
En Internet hay muchos test de matemáticas, así que no te faltará inspiración.
Fíjese bien en cómo funcionan y qué tipo de preguntas se hacen: verá que algunas
formulaciones no son posibles en un programa sin interfaz gráfica [por ejemplo, casillas de
verificación o preguntas sobre curvas] y que no todos los tipos de preguntas le permitirán
tener valores aleatorios.
Ir más allá:
Si quiere complicar más las cosas, ¿por qué no añade funciones más difíciles [por ejemplo las
funciones vistas este año en matemáticas)
Lo esencial:
- Su código en formato .py está documentado y provisto de las librerías y archivos necesarios,
así como las instrucciones de uso/instalación en caso necesario.
- Las fuentes de inspiración están claramente citadas e identificadas
- Debes ser capaz de explicar qué ocurre en cada una de las partes de código que componen tu
programa. No se trata de copiar y pegar códigos encontrados en Internet, sino que debes ser
capaz de explicar qué ocurre en cada parte del código que compone tu programa (explicando
tus elecciones y los pasos).
- Proporciona un manual para la instalación [si es necesario] y el uso de tu proyecto.