Exámenes - Agosto Diciembre 2022
Examen 1 - Introducción al almacenamiento de datos
Pre-Requisito:
- Para el día lunes 26 de septiembre, cada alumno deberá entregar al profesor (por medio de una memoria USB) el archivo de un libro.
- De preferencia que sea un libro que hayan leído ó que les gustaría leer.
- El libro deberá estar en ESPAÑOL.
- El formato del archivo será en TXT (texto plano sin ninguna codificación).
- No importa la extensión del libro pero deberá estar COMPLETO.
Examen 1:
- El "Examen 1" se realizará el día viernes 14 de octubre a la hora y lugar de clase.
- El examen se realizará de manera totalmente práctica, utilizando la computadora, donde el alumno realizará un código en Python.
- El código desarrollado será subido a la plataforma GitHub Classroom para su posterior revisión y clasificación por parte del Profesor.
- Al momento de terminar el tiempo del examen (de 12:00 a 13:00 horas), la plataforma ya no permitirá subir nuevos códigos.
Temas que vendrán en el Examen 1:
- Leer y escribir archivos que tengan los siguientes formatos:
- txt
- CSV
- JSON
- XLS
- PDF
- XML
- HTML
- Diversidad Léxica.
- Limpieza de Textos.
- Segmentación de Textos.
- Palabras mas importantes.
- Nubes de Palabras.
- Análisis de Sentimientos.
Material de Repaso para el Examen 1:
Códigos de Ejemplo:
- Calcula la Diversidad Léxica de un texto (codigo python, python_lenguaje_natural_diversidad_lexica.py).
- Eliminar los símbolos y caracteres no deseados de un texto (codigo python, python_nlp_eliminar_simbolos.py).
- Eliminar los símbolos y caracteres no deseados de un texto usando expresiones regulares (codigo python, python_nlp_eliminar_simbolos_expresiones_regulares.py).
- Buscar las palabras relevantes de ua frase (tokenizar) quitando las "stopwords" (codigo python, python_nlp_tokenizar_frase.py).
- Buscar las palabras mas repetidas de un texto (codigo python, python_nlp_palabras_mas_repetidas.py).
- Buscar las palabras mas repetidas de un texto y generar su "nube de palabras" (codigo python, python_nlp_nube_de_palabras.py).
- Generar una “Nube de Palabras” a partir de una página de Wikipedia (codigo python, python_nlp_nube_de_palabras_wikipedia.py).
- Analizar un texto para determinar su polaridad (positivo, negativo ó neutral) (codigo python, python_nlp_analisis_sentimientos_manual.py).
- Analiza un texto para determinar su polaridad (positivo, negativo ó neutral) utilizando listas de palabras positivas y negativas (codigo python, python_nlp_analisis_sentimientos_con_listas.py).
- Analiza un texto para determinar su polaridad (positivo, negativo ó neutral) usando TextBlob (codigo python, python_nlp_analisis_sentimientos_con_textblob.py).
- Lee una página Web y la imprime en pantalla usando "urlib" (codigo python, python_web_scraping_leer_pagina.py).
- Lee una página Web y la imprime en pantalla usando "requests" (codigo python, python_web_scraping_leer_pagina_requests.py).
- Extrae el título de una página Web (codigo python, python_web_scraping_extraer_titulo.py).
- Extrae varias etiquetas de una página Web (codigo python, python_web_scraping_extraer_etiquetas.py).
- Extrae enlaces de una página Web (codigo python, python_web_scraping_extraer_enlaces.py).
- Extrae el contenido de un formulario de una página Web (codigo python, python_web_scraping_extraer_formulario.py).
- Lee la página de "xumarhu" y extrae los 3 títulos y fotos mas importantes (codigo python, python_data_science_leer_xumarhu_titulos_fotos.py).
- Lee una página Web y extrae su información (codigo python, python_ds_leer_pagina_extraer_informacion.py).
- Leer un archivo de texto externo en formato JSON y extraer sus datos (codigo python, python_datos_json_extraer.py).
Calificaciones:
Nota: 50 puntos cada parte:
Avalos Villa Rodrigo
Excentado - Calificación: 100
Barrera Orozco Kenneth Osvaldo
Parte 1: ok 50 - Parte 2: ok 50 - Calificación: 100
Garcia Santana Maria Fernanda
Parte 1: ok 50 - Parte 2: ok 50 - Calificación: 100
González Pérez William Alejandro
Parte 1: marca error ('utf-8' codec can't decode byte) 0 - Parte 2: Marca error ('NoneType' object has no attribute 'text') 0 - Calificación: 0
Jacobo Agustin Jaqueline
Parte 1: Tokeniza pero no cuenta los colores 30 - Parte 2: Marca erroes al ejecutar 0- Calificación: 30
Lopez Carranza Ivan Alejandro
Parte 1: ok 50 - Parte 2: Donde dice Zamora imprime los de Uruapan 40 - Calificación: 90
Ornelas Gamero Karla Guadalupe
Parte 1: Marca error ('utf-8' codec can't decode byte) 50 - Parte 2: Se queda ciclado y no hace nada 0 - Calificación: 0
Ortiz Salinas Luis Angel
Excentado - Calificación: 100
Plascencia Silva Axel David
Parte 1: Faltó imprimir si había palabras en común 45 - Parte 2: Ok 50 - Calificación: 95
Páramo Mascote Jennifer
Parte 1: Faltó imprimir si había palabras en común 45 - Parte 2: No se subió la página Web para extraer su información 0 - Calificación: 45
Quevedo Rodríguez Jorge Alejandro
Excentado - Calificación: 100
Soto Garcia Jafet Alexandro
Parte 1: No se usó la lista completa de palabras positivas y negativas 40 - Parte 2: MArca error(list indices must be integers or slices) 0 - Calificación: 40
Torres Gallegos Jessica Jazmin
Parte 1: OK 50 - Parte 2: Marca error al leer el archivo 0 - Calificación: 50
Vieyra Orozco Octavio
Parte 1: ok 50 - Parte 2: marca error (name 'x' is not defined) 0 - Calificación: 50
Pre-Requisitos:
- La forma de trabajo será en equipo (los equipos que se formaron cuando se armaron los Clusters).
- Todos los integrantes del equipo deben estar presentes para la revisión.
- Instalar el Cluster con al menos 2 Raspberry Pi ("Maestro" y "Esclavo").
- EL Cluster puede ser físico o virtualizado.
- En caso de ser un Cluster Físico tendrá puntos extras (+10).
Desarrollo:
Evaluación:
- El Examen 2 se entregará el día lunes 12 de diciembre de 11 a 13 horas en la Sala "O".
- El Profesor revisará de manera presencial la ejecución del programa, el cual debe de imprimir el total de casos calculados de cada nodo y el total final.
- El código final será copiado a una memoria USB al Profesor para su revisión.
Material de Apoyo:
CLuster
- Construcción de un Cluster con Raspberry Pi Parte 1/3 (presentación en PDF y PowerPoint).
- Instalación de un cluster con Raspberry Pi virtualizados (manual en HTML).
MPI
Calificaciones:
? - Axel, Luis, Jaqueline
? - Kenneth, Iván, Fernanda, Alexandro
? - Jessica, Jennifer, William, Karla
? - Rodrigo, Jorge, Octavio
Pre-Requisitos:
- La forma de trabajo será individual ó en equipos de 2 integrantes máximo.
- Todos los integrantes del equipo deben estar presentes para la revisión.
Desarrollo:
- Se requiere una sola computadora, que puede ser Windows/Linux/Mac, la cual llamaremos la "Máquina Nativa".
- Sobre la "Maquina Nativa" se instalará un sistema crear máquinas virtuales (les recomiendo "UTM" aunque puede ser cualquier otro).
- Crear un máquina virtual de "Linux" (puede ser cualquier distribución pero les recomiendo Ubuntu 22.10).
- Dentro de la máquina virtual instalar un aplicación para manejo de "Contenedores", para este caso se usará "Dockers".
- Usando "Docker", bajar un contenedor que contenga una sistema XAMPP (Apache+MySQL+PHP).
- Sobre el contenedor descargado descargar y ejecutar un "carrito de compras" que ya está hecho (lo pueden descargar del Material de Apoyo en la parte inferior).
Evaluación:
- El Examen 3 se entregará el día lunes 12 de diciembre de 11 a 13 horas en la Sala "O".
- El Profesor revisará presencialmente que funcione el "carrito de compras" y que cumpla con todas las especificaciones que se comentaron anteriormente.
Material de Apoyo:
Virtualización
Carrito de Compras
Calificaciones:
100 - Jorge, Rodrigo
100 - Axel, Jaqueline
100 - William
100 - Kenneth, Iván
100 - Octavio, Alexandro
100 - Jessica, Karla
Pre-Requisitos:
- La forma de trabajo será individual.
- Seleccionar 3 palabras (o temas) muy específicos que servirán pára la búsqueda.
Desarrollo:
- Crear una base de datos donde se almacenará lo que se vaya encontrando.
- La estructura de la base (campos y el tipo de los campos) es libre (el alumno lo decidirá), pero al menos debe llevar el enlace encontrado y un fragmento de lo que encontró.
- El primer registro de esta base de datos, será la página de donde iniciará la búsqueda.
- Hacer el motor de búsqueda en Python.
- Una vez arrancado el motor de búsqueda, deberá iniciar en la página inicial y buscará en el contenido de la página (título, etiquetas meta y contenido) alguna de las palabras que esté buscando y que se declararon previamente.
- En caso de encontrar lo que se busca, se deberá almacenar el enlace y un fragmento de lo encontrado en la base de datos.
- Posteriormente debe encontrar los enlaces dentro de la página y almacenarlos.
- Se procederá a repetir el proceso, pero ahora buscando en los enlaces nuevos que se hayan encontrado
- Hacer una página Web (HTML+PHP+MySQL) que muestre lo que se encontró.
Evaluación:
- El Examen 4 se entregará el día lunes 12 de diciembre de 11 a 13 horas en la Sala "O".
- El Profesor revisará que la base de datos solo tenga la página de arranque y al arrancar el motor se deberá observar lo que encuentra y lo que almacene en la base de datos.
- Se revisará la página Web para ver todo lo encontrado.
Material de Apoyo:
Motores de Búsqueda
- Historia de los Motores de Búsqueda (presentación en PDF y PowerPoint).
- Construcción de un Motor de Búsqueda (presentación en PDF y PowerPoint).
Web Scraping
Procesamiento de Lenguaje Natural
MySQL
Calificaciones:
100 - Rodrigo
100 - Kenneth
100 - Iván
80 - Karla
100 - Luis Angel
80 - Axel
70 - Jennifer
50 - Octavio
Portal de Tecnología desarrollado por: Rogelio Ferreira Escutia