Skip to: site menu | section menu | main content

Prof. Marlos Marques

marlos.uesb@gmail.com

DCET 0734 - Programação Concorrente

Trabalhos Práticos

Objetivo:

  • Desenvolver pequenos programas utilizando programação concorrente, de modo a compreender melhor este tipo de computação

Regras:

  • Codificação:
    • O arquivo Principal.java deverá conter o método main
    • O trabalho deverá compilar com a linha de comando javac Principal.java

  • Estrutura de arquivos:
    • O diretório com o trabalho deverá ser chamado de pc_trabalhoXX_numeroDeMatricula. Ex. pc_trabalho01_200012345
    • Este diretório deverá conter o arquivo Principal.java na sua raiz
    • A partir deste diretório organize os arquivos conforme conveniência

  • Entrega dos trabalhos via e-mail:
    • O subject/assunto deverá ser [pc][trabalhoXX][numeroDeMatricula]. Ex: [pc][trabalho01][200012345]
    • Compactar (.zip ou .rar) o diretótio pc_trabalhoXX_numeroDeMatricula (sem os arquivos .class). Ex. pc_trabalho01_200012345.rar
    • Anexar o arquivo compactado a um novo email e enviar
Observações:
  • Cada trabalho será entregue via email até as 23h59m da data estipulada
  • Os prazos NÃO SERÃO prorrogados
  • Utilizar editores de texto simples (ASCII puro) para a codificação
  • Gerar código através de compiladores padrão (JRE ou GCC/G++ GNU/Linux)
  • Em caso de alguma incompatibilidade, os trabalhos deverão estar executando perfeitamente nos sistemas computacionais (leia-se Linux) do laboratório de redes
  • Os trabalhos deverão estar em conformidade com as especificações do arcabouço (esqueleto dos métodos) pré-definidos em sala de aula
  • Utilize boas técnicas de programação. Sugestões podem ser encontradas aqui ou aqui.
  • Se utilizar um padrão de projeto, sugiro (só sugestão mesmo) utilizar o MVC aqui
  • Os trabalhos serão desenvolvidos individualmente;
  • Não serão admitidos trabalhos iguais:
    • Ajuda entre alunos/equipes é permitida e saudável ao processo de aprendizado, a cópia pura e simples não
    • Serão DESCONSIDERADOS os trabalhos dos envolvidos em cópia
  • Com relação aos nomes:
    • XX é o número correspondente ao trabalho desenvolvido
    • numeroDeMatricula é o número de matrícula do aluno



INSTRUÇÕES PARA BAIXAR E INSTALAR VERSÃO DO JDK 1.8 com biblioteca do JavaFX incorporada:

Os passos a seguir pressupõem que você esteja utilizando o sistema operacional Linux/Ubuntu e baixou a versão de 64bits. Caso utilize outra pasta ou versão, atualize os nomes correspondentes. Para o Windows, sugiro instalar o Linux :-)

  • PASSO 1: Efetue o download da versão 32bits ou 64bits do Java de acordo com seu SO no link abaixo
    https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html (a versão Windows pode ser baixada neste link)
    OU
    Baixe diretamente a versão 64bits para Linux/Ubuntu aqui

  • PASSO 2: Descomprima o arquivo baixado
    tar -xvf jdk-8-linux-x64.tar.gz (versão 64 bits)

  • PASSO 3: Mova a pasta descompactada para /usr/lib/jvm/
    sudo mkdir -p /usr/lib/jvm
    sudo mv ~/Downloads/jdk-8u351-linux-x64 /usr/lib/jvm/

  • PASSO 4: Execute a instalação
    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0/bin/javaws" 1

  • PASSO 5: Corrija as permissões
    sudo chmod a+x /usr/bin/java
    sudo chmod a+x /usr/bin/javac
    sudo chmod a+x /usr/bin/javaws
    sudo chown -R root:root /usr/lib/jvm/jdk1.8.0

  • PASSO 6: Execute a configuração
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws

    OBS: As informações abaixo vão aparecer para cada comando executado. Escolha a opção que será a prioritária (JDK1.8.0)

    There are 3 choices for the alternative java (providing /usr/bin/java)
    Selection Path Priority Status
    ------------------------------------------------------------------------------------
    0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
    1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
    * 2 /usr/lib/jvm/jdk1.7.0/bin/java 1 manual mode
    3 /usr/lib/jvm/jdk1.8.0/bin/java 1 manual mode

  • PASSO 7: Teste se está tudo OK
    Exemplo: java -version:

  • OBS: Perceba que você ficou com pelo menos 2 versões da linguagem Java instaladas. Para retornar a versão mais atual como padrão, basta executar o PASSO 6 novamente, escolhendo a nova prioridade


Descrição dos Trabalhos

Lista de Exercício:
Título: lista de exercícios com o objetivo de fixar os conceitos vistos na disciplina. Alguns dos conceitos abordados ainda serão vistos nas próximas aulas.
Data da entrega: na aula do dia 14/04/2026
Nota: não vale nota
Descrição: ATENÇÃO! A LISTA DEVE SER ENTREGUE MANUSCRITA PESSOALMENTE NA DATA ESTIPULADA! A lista pode ser encontada aqui.

Trabalho #01:
Título: Interface Gráfica (pode utilizar AWT ou SWING ou JavaFX ou etc)
Data da entrega: até o dia 29/03/2026
Nota: parte da nota da III Unidade
Descrição: conforme explicações e exemplos vistos em aula, implemente uma simulação de trens utilizando recursos de uma GUI (janelas, botões, áreas de texto, menus, figuras, som, etc).Um esboço do trabalho a ser desenvolvido poderá ser encontrado aqui
OBS: SORTEIO da orientação dos trilhos:
202210327 = HORIZONTAL
202511722 = VERTICAL
202511258 = HORIZONTAL
202210840 = VERTICAL
202520556 = HORIZONTAL
202510860 = VERTICAL
202510528 = VERTICAL
202511527 = HORIZONTAL
202210872 = VERTICAL
202410329 = HORIZONTAL
202510533 = HORIZONTAL
202510548 = VERTICAL
202411217 = VERTICAL
202411222 = HORIZONTAL
202510943 = VERTICAL
202511710 = HORIZONTAL
202510517 = VERTICAL
202510819 = HORIZONTAL
202511474 = HORIZONTAL
202511495 = VERTICAL
202511541 = VERTICAL
202510837 = HORIZONTAL
202420527 = HORIZONTAL
202510603 = HORIZONTAL
202510593 = VERTICAL
202510683 = HORIZONTAL
202510523 = VERTICAL
202410861 = VERTICAL
202511095 = HORIZONTAL
202511587 = VERTICAL
202510536 = VERTICAL
202510817 = HORIZONTAL
202410807 = VERTICAL
202510822 = VERTICAL
202210527 = HORIZONTAL
202511102 = HORIZONTAL
202511061 = VERTICAL
202511026 = VERTICAL
201810433 = VERTICAL
202511716 = HORIZONTAL
202110860 = HORIZONTAL
202420500 = VERTICAL
202310484 = VERTICAL
202511101 = HORIZONTAL