Proyecto Final 1º DAW: Programación y Bases de Datos

Los que siguen este blog desde hace tiempo sabrán lo que me gusta aplicar el aprendizaje basado en proyectos. De hecho, en algún momento, lo hemos varios profesores a la vez de varios módulos formativos incluso títulos, ciclos con alumnos de grado, etc, etc… Quien me conozca de hace poco, que se eche un paseo por las etiquetas #pbes proyectos integradores de este mismo blog.

Este curso, quizás por las características del grupo, lo mucho que le han costado algunos aspectos fundamentales y básicos de la programación y la programación orientada a objetos, la dificultad para organizar dinámicas de grupo, mi primer año en el centro, la primera vez que impartía bases de datos, el miedo a quedarme solo, amoldarme a la dinámica del centro de pruebas trimestrales, los tiras y aflojas con muchos de los alumnos del grupo y qué sé yo… muchas razones que he ido valorando (no son ni reproches, ni quejas, sólo mis reflexiones en voz alta), al final he tardado en llevarlo al aula este curso. Finalmente la semana pasada, lancé una idea de proyecto integrador o aprendizaje basado en proyectos para dos de las materias que casan en esto del desarrollo web. Va a estar más pensado en afianzar lo visto hasta el momento y que los alumnos enlacen las muchas cosas que hemos visto hasta el momento (que no han sido pocas). También servirá para enlazar con lo que aún no hemos visto: mínimas nociones de programación de interfaces gráficos y conexión de Java con una base de datos.

A raíz de una idea de uno de mis alumnos que se está enfrentando a esto pero para un entorno de servidor web y PHP (Sergio Mora, que también me ha prestado las imágenes de sus menús con HTML), vamos a tratar de abordar e implementar una aplicación para la gestión de los pedidos de una cafetería. Para ello se abordará desde PROGRAMACIÓN y BASES DE DATOS. La idea de este proyecto es trasladar todo lo aprendido durante el curso en una secuencia lógica de desarrollo de un proyecto software. En este caso, comparándolo con lo que hemos hecho otros cursos, no voy a focalizar otros aprendizajes transversales como trabajo en equipo, metodologías ágiles, gestión y fases de proyecto, análisis y requisitos con cliente (ficticio o real), trabajo más autónomo, si no que va a ser mucho más guiado, con muchas más entregas de actividades parciales. He sacrificado algunas de esas cosas por afianzar contenidos del curriculum. La calificación de este proyecto será repartida como actividades de clase en determinadas entregas que se tienen que realizar y como objetivos principales serán:
– Implementar una aplicación funcional con interfaz gráfico y acceso a base de datos.
– Aplicar todos los conocimientos aprendidos en PROGRAMACIÓN y BASES DE DATOS a un proyecto real.

A los alumnos les he contado un poco la operativa:

La pantalla “Inicial” debe tener un menú  con al menos las opciones de Administración (que servirá para añadir, modificar, eliminar categorías/productos) y otra de Pedidos. A su vez esta parte de pedidos tendrá la posibilidad de Iniciar Nuevo Pedido o Añadir comandas a un pedido existente. 

La pantalla “Iniciar Nuevo Pedido” pedirá primero el número de mesa del pedido (sólo existirá un pedido activo por mesa), después mostrará las categorías de productos.

Al clickar en algunas de las categorías, aparecerán los respectivos productos de esa categoría. Al seleccionar algún producto el precio de este se añadirá al total de la cuenta.

Tendremos diferentes botones, como puede ser guardar la comanda (en la base de datos) o eliminar la mesa. Habrá un botón de cobrar, que generará un ticket con los productos que tenga dicho pedido el cual nos pedirá cómo se pagará y en caso de ser efectivo, con que tamaño de moneda. Al realizar la venta y el cobro, la mesa se liberará. La opción Añadir comandas a un pedido existente deberá mostrar primero un listado de los pedidos existentes, al seleccionar uno de ellos, ya mostrará la operativa para solicitar más productos al pedido.

La pantalla de Administración deberás organizarla como consideres. Deberá ser capaz de añadir/modificar/borrar categoría de productos y productos de esa categoría. Tendrás que listar los existentes.

Y con eso, ya pueden empezar con los dos primeros entregables:

// Bases de Datos

Entregable 1 – Modelo de datos -> MER (debéis de suponer todas las necesidades de la aplicación en cuanto a los datos: tablas (entidades) y columnas (atributos), así como sus relaciones.
Entregable 2 – MR -> Scripts Creación Tablas SQL + Scripts Inserción Datos por defectos
Entregable 3 – Consultas SQL que se requerirían para la operativa descrita. Se tendrá que realizar una descripción de la consulta por qué se necesita, pasar el SQL y el resultado obtenido en Oracle.
Entregable 4 – Código Java que ejecute esas consultas

// Programación

Entregable 1 -> Interfaces gráficos Básicos (Swing)
Entregable 2 -> Conexión de Interfaz Gráfico y Bases de Datos
Entregable 3 -> Proyecto completo (Administración ó Administración + Operativa)

A ver hasta dónde llegamos que sólo queda un mes de clase!!!!

También te podría gustar...

5 Respuestas

  1. Me parece fantástico que tus alumnos desarrollen este tipo de proyectos mientras aprenden. Sin lugar a duda, la mejor forma de aprender es poner las manos en la masa y trabajar con proyectos reales que puedan tener aplicación a la realidad de los alumnos. Creo que desarrollar la programación de una aplicación para la gestión de los pedidos de una cafetería es el ejemplo perfecto de proyecto real. Seguro que aprendieron muchísimo y se llevaron una gran experiencia. ¡Enhorabuena!

  2. David Perez Alonso dice:

    Muchas gracias! La verdad es que desde que trabajé en la Universidad Europea de Madrid aprendimos mucho sobre el «Aprendizaje basado en Proyectos» y lo pusimos en práctica. A partir de ahí lo he intentado hacer siempre que he podido. al impartir Programación y Bases de Datos, la última parte que es programar bases de datos, pues ya casi lo tienes. En mi blog puedes encontrar muchos ejemplos.

    La aplicación de cafetería surgió porque un chico trabajaba en un bar. Fijate si dio de sí su idea, que luego la transformó en una aplicación y empresa real. Un crack aquel alumno. Mira en que se ha convertido : https://afpapp.es/

  3. Manuel García dice:

    Antes que nada, darte la enhorabuena por tu blog, y sobre todo por las geniales ideas que aplicas en el aula.
    Estoy preparando mi programación didáctica (unidad didáctica) para las próximas oposiciones de la especialidad de informática de secundaria, en concreto del módulo de bases de datos de de DAM, y he dado con tu blog, el cual me parece interesantísimo, puesto estaba investigando sobre el aprendizaje basado en proyectos. Pero me surgen varias dudas:
    1.- ¿El proyecto se plantea el último mes de curso? ¿O bien al principio y como se va avanzando se van evaluando los diferentes entregables?
    2. – ¿Qué peso tiene al final sobre la nota del módulo, cómo lo evaluamos?

    Muchas gracias por todas tus ideas.
    Saludos

    • David Perez Alonso dice:

      Hola Manuel!
      Muchas gracias por tus palabras ;-))

      Te comento un poco… aunque fuimos variandolo y aplicandolo de diferentes maneras. Alguna vez sí fue desde el principio de curso, pero concretamente estos ya se hacían al final de curso cuando se habían visto prácticamente todos los contenidos.
      – El proyecto se planteaba para los dos últimos meses prácticamente. Se hacía una introducción para utilizar la librería de JAVA para acceder a base de datos, se les daba algunos ejemplos y luego lo tenían que desarrollar ya con las ventanas y parte gráfica de JAVA. Se iban pidiendo entregables según se fuera avanzando fases.
      – En esta modalidad, los entregables contaban como actividades normales, con un poco más de peso que el habitual.

      Trato de buscarte material de estos proyectos y te lo envío por correo.

      • Manuel García dice:

        Hola! Muchas gracias por contestar, si pudieras pasarme la información me vendría muy bien, y ya te paso lo que yo estoy haciendo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.