DAS5334 - Projeto de Python

De Aulas

Links Relacionados: DAS5334 Introdução a Informática para Automação

Objetivo

Fazer um programa em Python para simular um processo (relativamente complexo).

Observações

  • A escolha do processo ou cenário a ser simulado faz parte do projeto.
  • O trabalho deve ser feito em duplas.
  • O trabalho deve ser enviado por e-mail um dia antes da apresentação.

Descrição

Seguem algumas idéias de processos para servir de inspiração:

  • Elevador e Escada: Pessoas chegam em um saguão e esperam por um (ou mais) elevador. Caso haja um elevador esperando elas podem ingressar nele. O elevador aguarda umas pessoas entrarem nele (pode ter um limite de pessoas por elevador) e parte. Algumas pessoas desistem de esperar e sobem por uma escada. O programa pode mostrar uma estatística de média de pessoas que aguardam o elevador, média de pessoas que sobem pela escada, etc.
  • Chão de fábrica (peças em esteira): Uma esteira leva peças para manufatura. A esteira pára em determinados pontos quando as peças passam por sensores, e estas recebem algum tratamento (ex. são pintadas, etc.)
  • Estudantes na fila do RU: Estudantes chegam ao RU e aguardam em uma fila. Quando um estudante entra no RU pega sua comida e escolhe um lugar vazio em um banco. Aguarda um tempo comendo e sai do RU. Podem ser mostradas estatísticas de quantas pessoas comeram, média de pessoas na fila, tempo de espera na fila, etc.
  • SimCity: Simular uma cidade ou uma casa, onde existe uma população que vai envelhecendo, morrendo e se reproduzindo. etc…
  • Carga e descarga de navios em um Porto: Caminhões chegam em um porto e descarregam mercadoria. Caso não haja navio atracado eles esperam. etc…
  • Pacotes de mensagens em um roteador Internet: Pacotes de mensagens (datagramas) chegam em um roteador Internet e aguardam em uma fila até serem roteadas por um determinado enlace.
  • Banco: Pessoas chegam a um banco para serem atendidas. São classificadas em tipos diferentes de clientes (comuns, especiais e VIP) e são atendidas por filas separadas. etc…
  • Distribuidor de combustível e postos de gasolina: Cada posto recebe carros que consomem combustível, e quando este acaba (ou esteja para acabar) envia uma mensagem para o distribuidor enviar um caminhão para ele.
  • Formigueiro: As condições do tempo são geradas aleatoriamente (chuva, sol etc). Conforme as condições de chuva as formigas tem mais alimento. Elas saem para buscar alimento e retornam para o formigueiro e se reproduzem. Mas a medida que a população de formigas aumenta muito, começa a faltar alimento e elas morrem. E esse é um ciclo que se repete.

Recomenda-se que em cada trabalho haja um contador no programa. Por exemplo, um contador de peças transportadas, de carros que abasteceram no posto, de pessoas atendidas no banco, de formigas vivas etc.

Serão usados alguns critérios para avaliação do trabalho: ex. uso de listas (necessário), uso de rotinas parametrizáveis e reutilizáveis etc

Relatório

  • Nome da equipe
  • Descrição do problema
  • Código fonte documentado

Critérios de avaliação

  • Apresentação oral do trabalho
  • qualidade do problema vs solução
  • uso adequado da linguagem
  • modularização
  • documentação
  • conhecimento da solução por todos os membros da equipe