Aprendiendo a Programar con Python POO y Bases de Datos MySQL
Creado por Daniel C.
Cómo fue en el aula
Todavía nadie ha contado cómo le fue con este recurso.
Descripción del Curso
Este curso está diseñado para introducir a estudiantes de educación técnica y tecnológica en el mundo de la programación orientada a objetos (POO) utilizando Python, así como en la gestión básica de bases de datos con MySQL. A lo largo de cuatro semanas, los participantes desarrollarán habilidades fundamentales para crear aplicaciones estructuradas y eficientes que integren lógica de programación con almacenamiento y manipulación de datos en bases de datos relacionales.
Dirigido a estudiantes de ingeniería de sistemas y áreas afines, este curso combina teoría y práctica mediante una metodología activa que incluye ejemplos, ejercicios guiados y un proyecto final. Los estudiantes aprenderán desde los conceptos básicos de la POO en Python, hasta cómo conectar y operar con bases de datos MySQL, facilitando así una comprensión integral y aplicada.
Al finalizar el curso, los alumnos serán capaces de diseñar clases y objetos en Python, implementar principios básicos de la programación orientada a objetos, establecer una conexión exitosa con una base de datos MySQL, realizar consultas básicas y desarrollar un proyecto integrador que consolide todos los conocimientos adquiridos.
Objetivos Generales
- Identificar y describir los principios básicos de la programación orientada a objetos en Python.
- Construir programas simples utilizando clases, objetos, atributos y métodos en Python.
- Configurar e interactuar con una base de datos MySQL desde un entorno Python.
- Implementar consultas básicas para crear, leer, actualizar y eliminar datos (CRUD) en MySQL.
- Integrar los conocimientos adquiridos en un proyecto final que demuestre la conexión efectiva entre Python POO y bases de datos MySQL.
Competencias
- Aplicar los conceptos fundamentales de la programación orientada a objetos utilizando Python para resolver problemas técnicos.
- Desarrollar y estructurar código limpio y modular basado en clases y objetos.
- Configurar y administrar una base de datos MySQL para el almacenamiento y consulta de información.
- Establecer conexiones entre aplicaciones Python y bases de datos MySQL para la manipulación de datos.
- Diseñar y ejecutar un proyecto integrador que combine programación orientada a objetos y gestión de bases de datos.
Requerimientos
- Conocimientos básicos de programación (variables, estructuras de control, funciones).
- Conocimientos elementales de sistemas operativos para instalación de software.
- Computadora con acceso a internet para instalar Python y MySQL.
- Software instalado: Python 3.x, MySQL Server y un entorno de desarrollo integrado (IDE) recomendado como Visual Studio Code o PyCharm.
Unidades del Curso
Fundamentos de Python y Programación Orientada a Objetos
Introducción a Python, revisión de conceptos básicos y fundamentos de la programación orientada a objetos: clases, objetos, atributos y métodos.
Objetivos de Aprendizaje
- Al finalizar la unidad, el estudiante será capaz de identificar y describir los componentes básicos de Python y su sintaxis fundamental en ejercicios prácticos.
- Al finalizar la unidad, el estudiante será capaz de explicar los conceptos clave de la programación orientada a objetos como clases, objetos, atributos y métodos mediante ejemplos simples.
- Al finalizar la unidad, el estudiante será capaz de diseñar y construir programas básicos en Python utilizando clases y objetos para representar entidades específicas.
- Al finalizar la unidad, el estudiante será capaz de implementar métodos y manipular atributos dentro de clases en Python para resolver problemas sencillos de programación.
Contenidos Temáticos
Introducción a Python y su sintaxis básica
- Descripción general de Python: historia, características y aplicaciones.
- Entorno de desarrollo: instalación de Python, uso de un editor de código (IDLE, VS Code o similar).
- Elementos básicos de la sintaxis: indentación, comentarios, variables y tipos de datos (numéricos, cadenas, booleanos).
- Operadores básicos: aritméticos, de comparación y lógicos.
- Estructuras de control: condicionales (if, else, elif) y bucles (for, while).
Conceptos fundamentales de Programación Orientada a Objetos (POO)
- Definición y ventajas de la POO frente a la programación estructurada.
- Clases y objetos: definición, creación y uso.
- Atributos: variables asociadas a clases y objetos, tipos (de instancia y de clase).
- Métodos: funciones definidas dentro de una clase, uso del parámetro self.
- Encapsulamiento básico: acceso a atributos y métodos, convenciones de visibilidad (público, protegido, privado).
Diseño y construcción de programas básicos con clases y objetos en Python
- Definición de clases para representar entidades específicas (por ejemplo: Persona, Vehículo, Producto).
- Creación y manipulación de objetos a partir de clases definidas.
- Inicialización de objetos mediante el método __init__.
- Uso de atributos para almacenar estado y métodos para comportamientos.
- Ejemplos prácticos: modelar una clase con atributos y métodos simples.
Implementación y manipulación de métodos y atributos dentro de clases
- Definición y llamada de métodos para modificar y consultar atributos.
- Uso de métodos getters y setters básicos para controlar acceso a atributos.
- Modificación de atributos de instancia desde métodos internos y externos.
- Prácticas para resolver problemas sencillos: calcular propiedades, actualizar estados, mostrar información.
- Manejo de errores comunes y buenas prácticas en programación orientada a objetos en Python.
Actividades
Actividad 1: Explorando la sintaxis básica de Python
Objetivo: Identificar y describir los componentes básicos de Python y su sintaxis fundamental.
Descripción:
- El docente presenta ejemplos simples de variables, tipos de datos, operadores y estructuras de control.
- Los estudiantes escriben pequeños fragmentos de código que incluyan variables, condiciones y bucles para resolver ejercicios sencillos (por ejemplo, calcular la suma de números pares entre 1 y 20).
- Discusión grupal para analizar los resultados y solucionar dudas.
Organización: Individual
Producto esperado: Código Python básico funcional que demuestre el uso correcto de sintaxis y estructuras.
Duración estimada: 1.5 horas
Actividad 2: Creación y uso de clases y objetos en Python
Objetivo: Explicar los conceptos clave de la POO mediante ejemplos simples.
Descripción:
- El docente explica la definición de clase, objeto, atributos y métodos con ejemplos en pantalla.
- Los estudiantes diseñan una clase sencilla (por ejemplo, una clase "Animal" con atributos nombre y tipo, y un método que imprima un mensaje).
- Se crean objetos de la clase y se manipulan sus atributos y métodos.
- Se realiza una puesta en común para compartir y discutir los códigos generados.
Organización: Parejas
Producto esperado: Código Python con definición de clase y creación de objetos que ilustre los conceptos básicos de POO.
Duración estimada: 2 horas
Actividad 3: Programando una entidad con atributos y métodos
Objetivo: Diseñar y construir programas básicos usando clases y objetos para representar entidades.
Descripción:
- Los estudiantes seleccionan o reciben una entidad para modelar (por ejemplo, un "Estudiante" con atributos nombre, edad y método para mostrar datos).
- Desarrollan la clase completa con atributos, método constructor y métodos para modificar o mostrar información.
- Prueban el programa creando varios objetos y manipulando sus datos.
- Se realiza revisión entre pares para detectar posibles mejoras.
Organización: Individual
Producto esperado: Programa Python funcional que modele una entidad con atributos y métodos.
Duración estimada: 2.5 horas
Actividad 4: Métodos para manipular atributos y resolver problemas simples
Objetivo: Implementar métodos y manipular atributos dentro de clases para resolver problemas sencillos.
Descripción:
- El docente presenta ejemplos de métodos que modifican atributos y métodos de consulta (getters y setters).
- Los estudiantes amplían la clase creada en la actividad anterior para incluir estos métodos.
- Plantean y resuelven un problema sencillo (por ejemplo, actualizar la edad de un estudiante o calcular su año de nacimiento).
- Se discuten las soluciones y buenas prácticas.
Organización: Grupos pequeños (3-4 estudiantes)
Producto esperado: Código con métodos que manipulan atributos correctamente y solucionan un problema planteado.
Duración estimada: 2 horas
Evaluación
Evaluación diagnóstica
Se evalúa el conocimiento previo sobre conceptos básicos de programación y familiaridad con Python.
- Método: Cuestionario corto con preguntas de opción múltiple y ejercicios simples de sintaxis.
- Instrumento: Test en papel o plataforma digital con preguntas sobre variables, tipos de datos y estructuras básicas.
Evaluación formativa
Se evalúa el progreso en la comprensión y aplicación de conceptos de POO y sintaxis Python durante las actividades.
- Método: Revisión continua de códigos entregados en actividades prácticas.
- Instrumento: Lista de cotejo para verificar la correcta definición de clases, creación de objetos, uso de atributos y métodos.
- Retroalimentación oral y escrita para orientar mejoras.
Evaluación sumativa
Se evalúa la capacidad para diseñar y construir un programa básico en Python usando POO que incluya atributos y métodos.
- Método: Proyecto final individual que consiste en desarrollar una clase con atributos y métodos para representar una entidad, e implementar funcionalidades para manipular dichos atributos.
- Instrumento: Rúbrica que considere diseño correcto, funcionalidad, claridad del código y documentación básica.
Duración
La unidad tiene una duración sugerida de 8 horas distribuidas en 4 sesiones de 2 horas cada una. La primera sesión se dedica a introducir Python y su sintaxis básica, la segunda a los conceptos fundamentales de POO, la tercera a diseño y construcción de programas con clases y objetos, y la cuarta a la implementación y manipulación de métodos y atributos para resolver problemas prácticos.
Profundizando en POO con Python
Exploración de conceptos avanzados como herencia, encapsulación y polimorfismo, y su aplicación práctica en Python.
Objetivos de Aprendizaje
- Al finalizar la unidad, el estudiante será capaz de explicar los conceptos de herencia, encapsulación y polimorfismo en programación orientada a objetos con ejemplos en Python.
- Al finalizar la unidad, el estudiante será capaz de implementar clases en Python que utilicen herencia para reutilizar código y extender funcionalidades.
- Al finalizar la unidad, el estudiante será capaz de aplicar encapsulación mediante el uso adecuado de atributos y métodos privados y públicos en clases Python.
- Al finalizar la unidad, el estudiante será capaz de diseñar y desarrollar programas en Python que demuestren polimorfismo a través de la sobrescritura y sobrecarga de métodos.
- Al finalizar la unidad, el estudiante será capaz de integrar conceptos avanzados de POO en proyectos prácticos que faciliten la manipulación y organización de datos en Python.
Contenidos Temáticos
1. Introducción a conceptos avanzados de POO en Python
- Definición y relevancia de la herencia, encapsulación y polimorfismo en la programación orientada a objetos.
- Visión general de la aplicación de estos conceptos en Python con ejemplos simples.
2. Herencia en Python
- Concepto de herencia: reutilización y extensión de código.
- Clases base y derivadas: sintaxis y estructura en Python.
- Ejemplos prácticos de herencia simple.
- Herencia múltiple: conceptos, ventajas y precauciones.
- Uso de la función
super()para llamar a métodos de la clase base.
3. Encapsulación en Python
- Definición y finalidad de la encapsulación en POO.
- Control de acceso a atributos y métodos: públicos, protegidos y privados en Python.
- Convenciones en Python para atributos privados (uso de guiones bajos).
- Métodos getter y setter: implementación y uso para controlar acceso a datos.
- Ejemplos prácticos de encapsulación en clases Python.
4. Polimorfismo en Python
- Concepto de polimorfismo y su importancia en POO.
- Sobrescritura de métodos: redefinir comportamientos en clases derivadas.
- Sobrecarga de métodos en Python: limitaciones y alternativas (uso de argumentos por defecto y *args, **kwargs).
- Ejemplos prácticos que muestren polimorfismo mediante sobrescritura.
- Polimorfismo en interfaces: uso de métodos con nombres comunes en distintas clases.
5. Integración de conceptos avanzados de POO en proyectos prácticos
- Diseño de un sistema con clases relacionadas que utilicen herencia, encapsulación y polimorfismo.
- Ejemplo práctico: sistema de gestión de una biblioteca o inventario con clases y métodos polimórficos.
- Buenas prácticas para organizar código y mantener la escalabilidad en proyectos POO.
- Uso de POO para facilitar la manipulación y organización de datos en Python.
Actividades
Actividad 1: Explorando la herencia en Python
Objetivo: Implementar clases en Python que utilicen herencia para reutilizar código y extender funcionalidades.
Descripción:
- El docente presenta una clase base simple (por ejemplo, Vehículo) con atributos y métodos comunes.
- Los estudiantes, individualmente o en parejas, crean clases derivadas (como Coche, Bicicleta) que hereden de la clase base y añadan atributos o métodos específicos.
- Se debe usar la función
super()para llamar a métodos de la clase base desde las clases derivadas. - Finalmente, los estudiantes prueban sus clases creando objetos y llamando a los métodos para observar la reutilización y extensión de funcionalidad.
Organización: Individual o parejas.
Producto esperado: Código en Python con clases que implementan herencia correctamente y resultados de ejecución.
Duración: 60 minutos.
Actividad 2: Aplicando encapsulación con atributos privados y métodos getter/setter
Objetivo: Aplicar encapsulación mediante el uso adecuado de atributos y métodos privados y públicos en clases Python.
Descripción:
- Se presenta una clase que contiene atributos públicos y se discute la necesidad de controlar el acceso.
- Los estudiantes modifican la clase para cambiar atributos a privados usando convenciones de Python (_ o __).
- Implementan métodos getter y setter para esos atributos, asegurando validación básica (por ejemplo, no permitir valores negativos).
- Prueban el acceso a atributos desde fuera de la clase y verifican el funcionamiento de los métodos de acceso.
Organización: Individual.
Producto esperado: Código Python con atributos privados y métodos getter/setter implementados y funcionando.
Duración: 50 minutos.
Actividad 3: Demostrando polimorfismo mediante sobrescritura de métodos
Objetivo: Diseñar y desarrollar programas en Python que demuestren polimorfismo a través de la sobrescritura de métodos.
Descripción:
- Se define una clase base con un método común (por ejemplo, método
descripcion()que devuelve información del objeto). - Los estudiantes crean clases derivadas que sobrescriben ese método para mostrar información específica.
- Implementan un programa que crea una lista heterogénea de objetos y llama al método común de forma polimórfica.
- Se observa y analiza cómo el mismo método llama comportamientos diferentes según el objeto.
Organización: Grupos pequeños (3-4 estudiantes).
Producto esperado: Programa Python que ejemplifique polimorfismo mediante sobrescritura y salida demostrativa.
Duración: 70 minutos.
Actividad 4: Proyecto integrado de POO: Sistema de gestión con herencia, encapsulación y polimorfismo
Objetivo: Integrar conceptos avanzados de POO en proyectos prácticos que faciliten la manipulación y organización de datos en Python.
Descripción:
- En equipos, diseñar un sistema sencillo (por ejemplo, un inventario o biblioteca) que utilice clases con herencia para representar diferentes tipos de objetos.
- Aplicar encapsulación para proteger datos sensibles dentro de las clases.
- Implementar polimorfismo mediante sobrescritura de métodos para mostrar información o realizar acciones específicas.
- Presentar el proyecto explicando el diseño y mostrando la ejecución del código.
Organización: Grupos (3-5 estudiantes).
Producto esperado: Código funcional del sistema, documentación básica del diseño y presentación oral o escrita.
Duración: 2 sesiones de 90 minutos cada una.
Evaluación
Evaluación diagnóstica
Qué se evalúa: Conocimientos previos sobre clases, objetos y conceptos básicos de POO en Python.
Cómo se evalúa: Cuestionario corto con preguntas teóricas y ejercicios simples de código para identificar el nivel inicial.
Instrumento sugerido: Test en línea o impreso con preguntas de opción múltiple y preguntas abiertas de código.
Evaluación formativa
Qué se evalúa: Progreso en la comprensión y aplicación de herencia, encapsulación y polimorfismo durante las actividades.
Cómo se evalúa: Observación directa durante actividades, revisión de códigos entregados y retroalimentación personalizada.
Instrumento sugerido: Lista de cotejo para seguimiento de criterios en código y participación en clase.
Evaluación sumativa
Qué se evalúa: Dominio integral de los conceptos avanzados de POO y su aplicación en un proyecto final.
Cómo se evalúa: Presentación y entrega del proyecto integrado de POO, con análisis de código y respuesta a preguntas técnicas.
Instrumento sugerido: Rúbrica que valore diseño, funcionalidad, aplicación correcta de herencia, encapsulación y polimorfismo, y calidad de la presentación.
Duración
La unidad "Profundizando en POO con Python" tiene una duración sugerida de 2 semanas, equivalente a 10 horas presenciales o virtuales. La distribución recomendada es:
- Semana 1 (5 horas): Introducción teórica y actividades 1, 2 y 3 para práctica de herencia, encapsulación y polimorfismo.
- Semana 2 (5 horas): Desarrollo y presentación del proyecto integrado de POO (actividad 4) y evaluación sumativa.
Introducción a Bases de Datos MySQL y su conexión con Python
Conceptos básicos de bases de datos relacionales, instalación y configuración de MySQL, y conexión de Python con MySQL usando librerías adecuadas.
Objetivos de Aprendizaje
- Al finalizar la unidad, el estudiante será capaz de explicar los conceptos básicos de bases de datos relacionales y su importancia en el manejo de información estructurada.
- Al finalizar la unidad, el estudiante será capaz de instalar y configurar el servidor MySQL en un entorno local siguiendo instrucciones técnicas específicas.
- Al finalizar la unidad, el estudiante será capaz de establecer una conexión entre Python y MySQL utilizando librerías adecuadas como mysql-connector o PyMySQL.
- Al finalizar la unidad, el estudiante será capaz de realizar consultas básicas de creación, lectura, actualización y eliminación (CRUD) en una base de datos MySQL desde un programa en Python.
- Al finalizar la unidad, el estudiante será capaz de identificar y corregir errores comunes en la configuración y conexión entre Python y MySQL para asegurar una comunicación efectiva.
Contenidos Temáticos
1. Conceptos básicos de bases de datos relacionales
- Definición de base de datos y base de datos relacional: explicación de qué es una base de datos, tipos y enfoque en bases de datos relacionales.
- Componentes de una base de datos relacional: tablas, filas, columnas, claves primarias y foráneas.
- Modelo relacional: relaciones entre tablas y normalización básica.
- Importancia de las bases de datos en el manejo de información estructurada: ventajas sobre archivos planos y ejemplos prácticos en ingeniería y tecnología.
2. Instalación y configuración del servidor MySQL en entorno local
- Requisitos previos para la instalación: sistema operativo, espacio en disco, privilegios de usuario.
- Descarga del instalador oficial de MySQL para Windows, Linux o MacOS.
- Proceso paso a paso de instalación: selección de tipo de instalación (Developer Default o Custom), configuración inicial del servidor, definición de contraseña de usuario root.
- Configuración de variables de entorno y verificación del servicio MySQL en ejecución.
- Uso básico de MySQL Workbench para conectarse localmente y pruebas iniciales.
3. Conexión de Python con MySQL usando librerías adecuadas
- Introducción a librerías para conexión: mysql-connector-python y PyMySQL.
- Instalación de librerías mediante pip: comandos y verificación.
- Configuración de parámetros de conexión: host, usuario, contraseña, puerto y base de datos.
- Establecimiento de conexión y manejo de cursor para ejecutar consultas SQL desde Python.
- Manejo de excepciones y cierre adecuado de conexiones para evitar fugas.
4. Operaciones básicas CRUD en MySQL desde Python
- Creación de tablas y bases de datos desde Python.
- Inserción de datos (CREATE): instrucciones para insertar registros mediante consultas parametrizadas.
- Consulta de datos (READ): uso de SELECT y recuperación de resultados para procesamiento en Python.
- Actualización de datos (UPDATE): modificación de registros específicos.
- Eliminación de datos (DELETE): eliminación de registros y consideraciones de integridad referencial.
- Ejemplos prácticos con código comentado para cada operación.
5. Identificación y corrección de errores comunes en la configuración y conexión Python-MySQL
- Errores frecuentes de conexión: credenciales incorrectas, servidor no iniciado, puerto bloqueado.
- Errores en ejecución de consultas: sintaxis SQL errónea, uso incorrecto de parámetros.
- Manejo de excepciones en Python para capturar y reportar errores.
- Buenas prácticas para depuración: logs, mensajes de error descriptivos y pruebas paso a paso.
- Recursos y documentación oficial para solución de problemas.
Actividades
Actividad 1: Explorando bases de datos relacionales
Objetivo: Explicar los conceptos básicos de bases de datos relacionales y su importancia en el manejo de información estructurada.
Descripción:
- Investigar en parejas los conceptos de base de datos, modelo relacional y componentes (tablas, claves primarias, foráneas).
- Realizar un esquema en papel o digital que represente una base de datos simple (por ejemplo: base de datos para una biblioteca con tablas de libros, autores y préstamos).
- Presentar el esquema al grupo explicando las relaciones y la utilidad del modelo.
Organización: Parejas
Producto esperado: Esquema gráfico y explicación oral breve.
Duración estimada: 1 hora
Actividad 2: Instalación y configuración de MySQL
Objetivo: Instalar y configurar el servidor MySQL en un entorno local siguiendo instrucciones técnicas específicas.
Descripción:
- Seguir un tutorial guiado para descargar e instalar MySQL en el equipo personal o laboratorio.
- Configurar el servidor con usuario root y contraseña, asegurándose que el servicio esté activo.
- Usar MySQL Workbench para conectarse localmente y ejecutar consultas básicas como SHOW DATABASES.
- Documentar cada paso con capturas de pantalla o notas.
Organización: Individual
Producto esperado: Informe con evidencia de instalación y configuración exitosa.
Duración estimada: 2 horas
Actividad 3: Conectando Python con MySQL
Objetivo: Establecer una conexión entre Python y MySQL utilizando librerías adecuadas.
Descripción:
- Instalar la librería mysql-connector-python o PyMySQL con pip.
- Escribir un script en Python que establezca conexión con el servidor MySQL local usando credenciales configuradas.
- Ejecutar una consulta simple para obtener y mostrar las bases de datos existentes.
- Manejar posibles errores de conexión con try-except y mostrar mensajes apropiados.
Organización: Individual
Producto esperado: Código Python funcional con reporte de conexión y resultados en consola.
Duración estimada: 1.5 horas
Actividad 4: Implementación de operaciones CRUD desde Python
Objetivo: Realizar consultas básicas de creación, lectura, actualización y eliminación (CRUD) en una base de datos MySQL desde un programa en Python.
Descripción:
- Crear una base de datos y tabla(s) desde Python.
- Insertar varios registros usando consultas parametrizadas.
- Consultar y mostrar los registros insertados.
- Actualizar un registro y mostrar el resultado.
- Eliminar un registro y verificar la eliminación.
- Documentar el código con comentarios y explicar cada paso.
Organización: Individual o en parejas
Producto esperado: Script completo que realice operaciones CRUD con salida en consola y archivo de código comentado.
Duración estimada: 3 horas
Actividad 5: Diagnóstico y solución de errores comunes
Objetivo: Identificar y corregir errores comunes en la configuración y conexión entre Python y MySQL para asegurar una comunicación efectiva.
Descripción:
- Se proporcionarán scripts con errores típicos (credenciales erróneas, sintaxis SQL mal formada, cierre incorrecto de conexiones).
- Los estudiantes deberán ejecutar, identificar los errores mediante mensajes y corregirlos.
- Registrar las correcciones hechas y explicar la causa del error original.
Organización: Grupos de 3
Producto esperado: Informe de diagnóstico con correcciones y explicación técnica.
Duración estimada: 2 horas
Evaluación
Evaluación diagnóstica
Qué se evalúa: Conocimientos previos sobre bases de datos relacionales y experiencia básica con Python y MySQL.
Cómo se evalúa: Cuestionario corto con preguntas de opción múltiple y verdadero/falso sobre conceptos básicos de bases de datos y programación.
Instrumento sugerido: Prueba escrita o formulario digital (Google Forms o similar).
Evaluación formativa
Qué se evalúa: Progreso en la instalación, configuración, conexión y manejo de consultas CRUD. Capacidad para detectar y corregir errores.
Cómo se evalúa: Revisión continua de actividades prácticas, observación directa durante la ejecución, retroalimentación inmediata con corrección de scripts y aclaración de dudas.
Instrumento sugerido: Rúbrica de evaluación para actividades prácticas, registro de observaciones y entregas parciales.
Evaluación sumativa
Qué se evalúa: Dominio integral de los contenidos: explicación teórica, instalación/configuración, conexión y ejecución de consultas CRUD, manejo de errores.
Cómo se evalúa: Proyecto final consistente en desarrollar un programa en Python que:
- Se conecte a MySQL correctamente.
- Cree una base de datos y tablas.
- Inserte, consulte, actualice y elimine registros.
- Incluya manejo de errores.
Instrumento sugerido: Rúbrica detallada para valoración del proyecto final con criterios de funcionalidad, calidad del código, documentación y manejo de errores.
Duración
La unidad tiene una duración sugerida de 2 semanas, distribuidas de la siguiente manera:
- Semana 1:
- Introducción a bases de datos relacionales y su importancia (2 horas).
- Instalación y configuración de MySQL (3 horas).
- Actividad práctica 1 y 2.
- Semana 2:
- Conexión de Python con MySQL y operaciones CRUD (4 horas).
- Diagnóstico y solución de errores comunes (2 horas).
- Actividades prácticas 3, 4 y 5.
- Evaluación sumativa mediante proyecto final (tiempo asignado para desarrollo y presentación).
Proyecto Integrador – Desarrollo de una aplicación con Python POO y MySQL
Desarrollo de un proyecto final que integre programación orientada a objetos y gestión de datos en MySQL, aplicando consultas CRUD y buenas prácticas de programación.
Objetivos de Aprendizaje
- Al finalizar la unidad, el estudiante será capaz de diseñar la estructura de una aplicación utilizando programación orientada a objetos en Python, integrando clases, objetos, atributos y métodos para resolver un problema específico.
- Al finalizar la unidad, el estudiante será capaz de implementar la conexión entre una aplicación Python y una base de datos MySQL, configurando correctamente el entorno y estableciendo la comunicación necesaria para la gestión de datos.
- Al finalizar la unidad, el estudiante será capaz de desarrollar y ejecutar consultas CRUD (Crear, Leer, Actualizar, Eliminar) en MySQL desde Python para manipular datos de manera efectiva dentro de la aplicación.
- Al finalizar la unidad, el estudiante será capaz de aplicar buenas prácticas de programación orientada a objetos y manejo de bases de datos en el desarrollo de una aplicación integrada que demuestre el funcionamiento conjunto de Python y MySQL.
- Al finalizar la unidad, el estudiante será capaz de evaluar y probar la aplicación desarrollada, identificando y corrigiendo errores para asegurar su correcto funcionamiento y eficiencia.
Contenidos Temáticos
1. Diseño de la estructura de la aplicación con Python POO
- Conceptos fundamentales de la programación orientada a objetos (POO) en Python: clases, objetos, atributos y métodos.
- Identificación del problema y análisis de requisitos para el desarrollo de la aplicación.
- Diseño de diagramas de clases y planificación de la estructura del código.
- Implementación inicial de clases y objetos con atributos y métodos básicos.
2. Configuración y conexión de Python con base de datos MySQL
- Instalación y configuración del entorno para integración de Python con MySQL (MySQL Server, MySQL Connector/Python, entorno de desarrollo).
- Creación y configuración de la base de datos MySQL correspondiente al proyecto.
- Establecimiento de la conexión desde Python a MySQL: conexión, manejo de cursor y cierre de conexión.
- Manejo de errores y excepciones en la conexión y operaciones con la base de datos.
3. Desarrollo y ejecución de consultas CRUD en MySQL desde Python
- Conceptos de operaciones CRUD: Crear, Leer, Actualizar y Eliminar datos en bases de datos.
- Implementación de funciones/métodos en Python para realizar consultas SQL CRUD en MySQL.
- Integración de las operaciones CRUD con la estructura orientada a objetos de la aplicación.
- Validación y manejo de resultados de las consultas para asegurar integridad y consistencia de datos.
4. Aplicación de buenas prácticas en programación orientada a objetos y manejo de bases de datos
- Principios SOLID y su aplicación en el diseño del código Python.
- Manejo adecuado de la conexión y transacciones con la base de datos para evitar errores y pérdidas de datos.
- Documentación clara y estructurada del código y consultas SQL.
- Uso de estructuras y patrones de diseño para mejorar la mantenibilidad y escalabilidad de la aplicación.
5. Evaluación, prueba y depuración de la aplicación integrada
- Diseño y ejecución de pruebas funcionales para validar cada módulo y la aplicación en conjunto.
- Identificación y corrección de errores comunes en POO y consultas SQL.
- Optimización del rendimiento y manejo correcto de excepciones en la aplicación.
- Elaboración de reportes de pruebas y propuestas de mejora para el proyecto.
Actividades
Actividad 1: Diseño y creación de la estructura de clases para la aplicación
Objetivo: Diseñar la estructura orientada a objetos para resolver un problema específico aplicando clases, objetos, atributos y métodos.
Descripción:
- Seleccionar un problema o caso de uso para la aplicación (ej. sistema de gestión de inventarios, biblioteca, ventas).
- Analizar los requisitos y definir las clases necesarias, sus atributos y métodos.
- Elaborar un diagrama de clases que represente la estructura del sistema.
- Implementar las clases en Python con atributos y métodos básicos.
Organización: Individual
Producto esperado: Documento con diagrama de clases y archivo Python con la implementación inicial.
Duración estimada: 3 horas
Actividad 2: Configuración del entorno y conexión de Python con MySQL
Objetivo: Configurar el entorno y establecer la conexión entre la aplicación Python y la base de datos MySQL.
Descripción:
- Instalar MySQL Server y MySQL Connector para Python en el equipo.
- Crear la base de datos y tablas necesarias para el proyecto.
- Desarrollar un script en Python que establezca la conexión con MySQL y valide la conexión.
- Implementar manejo básico de errores en la conexión.
Organización: Individual
Producto esperado: Script Python funcional que conecta y valida conexión con MySQL.
Duración estimada: 2 horas
Actividad 3: Implementación de operaciones CRUD desde Python
Objetivo: Desarrollar funciones para crear, leer, actualizar y eliminar registros en MySQL desde la aplicación Python.
Descripción:
- Definir las operaciones CRUD necesarias para las entidades del proyecto.
- Implementar funciones o métodos en Python que ejecuten las consultas SQL correspondientes.
- Integrar estas funciones con las clases de la aplicación.
- Probar cada operación con datos reales y verificar resultados en la base de datos.
Organización: Parejas o grupos pequeños
Producto esperado: Código Python con funciones CRUD integradas y documento de prueba de operaciones.
Duración estimada: 4 horas
Actividad 4: Pruebas, depuración y documentación del proyecto integrador
Objetivo: Evaluar, identificar errores, corregir y documentar la aplicación desarrollada para asegurar su correcto funcionamiento.
Descripción:
- Diseñar casos de prueba que cubran las funcionalidades principales del sistema.
- Ejecutar pruebas y registrar resultados, identificando errores o comportamientos inesperados.
- Realizar depuración y corrección de errores en el código Python y consultas SQL.
- Documentar el código, incluyendo comentarios, instrucciones de uso y descripción de la estructura.
- Preparar una presentación o informe final del proyecto integrador.
Organización: Grupos
Producto esperado: Aplicación funcional corregida y documentada, informe o presentación del proyecto.
Duración estimada: 4 horas
Evaluación
Evaluación diagnóstica
Qué se evalúa: Conocimientos previos sobre programación orientada a objetos en Python y manejo básico de bases de datos.
Cómo se evalúa: Cuestionario de selección múltiple y preguntas abiertas sobre conceptos básicos de POO y MySQL.
Instrumento sugerido: Prueba escrita o en línea al inicio de la unidad.
Evaluación formativa
Qué se evalúa: Progreso en el diseño e implementación del proyecto, aplicación de consultas CRUD, manejo de errores y documentación.
Cómo se evalúa: Revisión continua de actividades prácticas, retroalimentación sobre código entregado, pruebas y documentación.
Instrumento sugerido: Rúbricas para actividades prácticas y observación directa durante el desarrollo.
Evaluación sumativa
Qué se evalúa: Producto final del proyecto integrador, que incluye la aplicación funcional con Python y MySQL, junto a la documentación y presentación.
Cómo se evalúa: Evaluación del código fuente, pruebas funcionales realizadas, calidad de la documentación y defensa del proyecto.
Instrumento sugerido: Rúbrica detallada que considere diseño, funcionalidades, calidad del código, manejo de base de datos y presentación final.
Duración
La unidad tiene una duración sugerida de 3 semanas, con una dedicación aproximada de 13 horas distribuidas de la siguiente manera:
- Semana 1 (4 horas): Diseño de la estructura POO y configuración del entorno con conexión a MySQL.
- Semana 2 (5 horas): Desarrollo e implementación de consultas CRUD y integración con la aplicación.
- Semana 3 (4 horas): Pruebas, depuración, documentación y presentación del proyecto final.
Crea tus propios cursos con EdutekaLab
Diseña cursos completos con unidades, objetivos y actividades usando IA.
Comenzar gratis