Git Product home page Git Product logo

ft_labs's Introduction

Labs 4º Edição

Desafio

O desafio consiste no desenvolvimento de uma aplicação de análise e compressão de dados. Essa aplicação utilizará o algoritmo de compressão Huffman e poderá receber múltiplos dados onde, uma vez que comprimido deve ser descomprimido e coletar informações pertinentes para a análise do processo e dado.

Para isso, você criará dois programas: encoder e decoder. O encoder receberá o dado a ser comprimido e exibirá suas informações vindas do decoder. Já, o decoder descomprimirá o dado e irá enviá-lo ao encoder com suas informações, onde será exibido. Os programas devem se comunicar utilizando shared memory operations.

A linguagem C será utilizada para o desenvolvimento e não há bibliotecas externas permitidas.

É necessário

  • Que existam dois programas encoder e decoder que se comuniquem via memória compartilhada.
  • Que o encoder possa receber, no mínimo, múltiplos textos como dado e comprimi-lo. Caso mais de um texto seja enviado, devem ser comprimidos juntos, resultando em apenas um único dado.
  • Que o algoritmo de Huffman seja implementando em sua totalidade e que o processo de compressão e descompressão ocorram utilizando-o.
  • Que o decoder possa descomprimir e enviar as seguintes informações ao encoder: dado descomprimido, quantidade de bits ou bytes totais, quantidade de bits ou bytes comprimidos e o tempo da operação de descompressão.
  • O encoder exibir as informações recebidas pelo decoder.

O que será avaliado

  • Código bem escrito e limpo.
  • A documentação do seu código.
  • Ferramentas que foram utilizadas e por quê.
  • Sua criatividade e capacidade de lidar com problemas diferentes.
  • Alinhamento do seu projeto com a proposta.

O mínimo necessário

  • README.md com a documentação contendo informações do projeto.

Bônus

Os itens a seguir não são obrigatórios, mas são funcionalidades que darão mais valor ao seu desafio.

  • Compressão de múltiplos arquivos binários.
  • Criptografia do dado comprimido, utilizando senha fornecida pelo usuário.
  • Verificação de integridade do arquivo comprimido.
  • Opção para escolher mais outro algoritmo de compressão a ser utilizado.
  • Tempo de descompressão (decoder) abaixo da média dos candidatos.
  • Cuidados especiais com otimização e padrões de código.
  • Uso de ferramentas externas para planejamento nas etapas de desenvolvimento.

Importante

ft_labs's People

Contributors

renanguillen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.