quinta-feira, 26 de maio de 2016

JobbyDoo: uma boa alternativa para quem está procurando emprego

Em tempos onde encontrar emprego está difícil, devido a situação econômica do nosso país, ferramentas que conectem profissionais à vagas de trabalho assumem uma grande importância. Existem inúmeros websites de empregos que anunciam vagas, ligando profissionais e empresas, porém, não é fácil acompanhar todos ao mesmo tempo.

O JobbyDoo é um serviço que propõe resolver esse problema. Ele agrega ofertas de emprego de todos os sites de carreira, placas de emprego e agências de recrutamento e organiza essas informações para torná-las acessíveis, grátis, fácil e rapidamente. Suas ofertas são mais de 400.000, inclusive para pessoas com deficiência física, e o número continua crescendo.

Vantagens chave de JobbyDoo:
- Mais de 400.000 postos de trabalho disponíveis no Brasil.
- Anúncios de emprego abrangentes, frescos e organizados em uma interface fácil de usar.
- O site é completamente seguro: é o único motor de busca de trabalho a utilizar o protocolo HTTPS que garante a proteção de dados.
- Excelente para pessoas à procura de trabalho, tanto estudantes quanto graduados.
- Confiável: já colabora com muitas Instituições Educacionais, tais como:

Pontifícia Universidade Católica de São Paulo
Universidade Santa Cecília
Centro Universitário Nossa Senhora do Patrocínio - CEUNSP
Centro de Ensino Superior e Desenvolvimento - CESED
Centro Estadual de Educação Tecnológica Paula Souza


Quem estiver interessado em procurar vagas para o mercado de TI, pode acessar diretamente através desse link.

Escrito por:
Antunes Dantas - Integrante do PET Computação

terça-feira, 17 de maio de 2016

Conheça a Computação Voluntária

        O que você faz com o tempo ocioso do seu computador? Sabia que você pode ajudar em pesquisas importantes, como o combate à AIDS ou ao câncer, sem precisar fazer nada, a não ser disponibilizar o tempo que sua máquina está "desocupada"? Vamos então conhecer um pouco sobre a Computação Voluntária e sua importância para pesquisas que exigem um grande poder de processamento.

     A Computação Voluntária, também chamada de Computação Filantrópica, visa disponibilizar, para projetos de grande porte, a capacidade de computadores pessoais (PC) ociosos (que estejam ligados, obviamente) espalhados pelo mundo para processar grandes quantidades de informação, reduzindo, assim, o tempo de processamento de um dado experimento.


Figura 1. Divisão das tarefas. Créditos: Google.com


       Qualquer pessoa pode ser um voluntário computacional. Para tanto, basta instalar o programa cliente no computador e se cadastrar no projeto. Este programa é o responsável pela comunicação do computador pessoal com o servidor do projeto na Internet e pelo escalonamento das tarefas na utilização dos ciclos ociosos do computador pessoal.

      Mesmo acreditando que seu PC não chega nem perto de ser tão rápido quanto deveria, saiba que ele pode, sim, ser considerado um supercomputador -- ou pelo menos parte disso. Essa é a proposta dos sistemas de computação distribuída, também conhecidos como computação voluntária, que utilizam a capacidade de milhares de máquinas ociosas espalhadas pelo mundo para processar grandes quantidades de informação. Ao “quebrar” pacotes de dados e enviá-los para diferentes usuários, é possível processá-los simultaneamente, reduzindo os custos e também o tempo gasto com estudos.

     Apesar de alguns desses projetos para causas coletivas exigirem computadores robustos de grandes centros de pesquisa, a maioria deles se contenta com o que seu computador pessoal - seja de casa ou do trabalho - tem a oferecer. Assim, se você já fosse voluntário, poderia sair agora da frente do computador para tomar um lanche e voltar mais tarde com a sensação de ter contribuído para resolver uma grande questão da humanidade.



Figura 2. Divisão do projeto e processamento em vários computadores. Créditos: Globo.com

     Como exemplos de programas mundialmente conhecidos, que englobam vários projetos científicos numa plataforma unificada, tem-se: o Folding@Home, o BOINC e o World Community Grid. Esse último, por exemplo, segundo o que foi divulgado na Globo.com, já registrou mais de 1 milhão de computadores que, juntos, realizaram, nos últimos 4 anos, o equivalente a 188 mil anos de processamento de dados em diversas áreas. A cada semana, voluntários dessa comunidade doam o equivalente a 1,4 mil anos do tempo de suas máquinas para processar dados de pesquisas sobre o combate ao câncer, à AIDS, à dengue, gripe, entre outras doenças.


Figura 3. Significado do acrônimo SETI@home. Créditos: Allacronyms.com



Segurança

     Quando participa de um projeto de computação voluntária, o internauta deve baixar em seu computador um programa que permitirá a captura e envio dos dados, depois que eles tiverem sido processados. Por isso, antes da adesão, é importante ter certeza de que se trata de um projeto sério, ligado a instituições responsáveis - caso contrário, pode acabar instalando um software não confiável em seu PC. Uma busca na internet e a leitura atenta das regras e políticas das iniciativas podem evitar que o usuário se associe a projetos que comprometam a segurança de sua máquina.


Como escolher?

     Uma busca na internet traz muitos projetos de computação voluntária, de diferentes áreas. Além das alternativas já citadas, é possível contribuir com o LHC (Grande Colisor de Hádrons), com a previsão do clima, com pesquisas sobre estrelas de nêutrons, com a busca por inteligência extraterrestre, com estudos sobre malária, com a previsão de estruturas de proteínas e com a determinação de formas tridimensionais de proteínas, para citar alguns exemplos. 


Figura 4. Cada um contribui um pouco. Créditos: Google.com

Escrito por:
Kaio Oliveira - Integrante do PET Computação

        

quinta-feira, 12 de maio de 2016

Desafios no ensino de Ciência da Computação a alunos com deficiência auditiva

A busca pela inclusão de pessoas com deficiência auditiva nas salas de aula tem sido um dos maiores movimentos no mundo da educação nos últimos anos. Desde a criação da cota para pessoas com alguma deficiência, o número de alunos especiais nas salas de aula das universidades brasileiras tem aumentado consideravelmente.
Como exemplo de aluno com necessidades especiais, temos os alunos com deficiência auditiva. Apesar do crescente ingresso deles no ensino superior, não os vemos em grande quantidade cursando Ciência da Computação.
Isso se dá, principalmente, pela dificuldade que têm de acompanhar o curso, uma vez que as instituições não estão devidamente preparadas para dar total suporte para eles. Uma das maiores dificuldades deles é a Língua Portuguesa, notadamente a escrita, por causa da difícil memorização das sílabas, que para os ouvintes é mais fácil, pois relacionam o som de uma letra com a sua representação gráfica.
Outra grande dificuldade enfrentada pelos alunos surdos quando chegam em Computação é a falta de material adaptado para a LIBRAS (Língua Brasileira de Sinais). Como alguns podem ter problemas em ler, interpretar e assimilar o conteúdo escrito, fica restrita a obtenção de conhecimentos por outras fontes, que não sejam o professor e o intérprete. Embora haja softwares, como o VLibras ou ProDeaf, que traduzem texto para língua de sinais, ainda faltam alguns sinais para representar termos técnicos, o que atrapalha o aprendizado. Há um trabalho sendo desenvolvido para ajudar na falta de sinais específicos para informática, o Informática em LIBRAS, desenvolvido pelo Instituto Federal de Educação, Ciência e Tecnologia da Paraíba Campus Campina Grande (IFPB-CG).
O VLibras é uma suíte de ferramentas utilizadas na tradução
do Português para LIBRAS. 
Além disso, os intérpretes de língua de sinal que são colocados em sala, muitas vezes, não recebem treinamento para a disciplina e acaba distorcendo algum conceito passado pelo professor, levando o aluno a cometer erros que normalmente só são detectados na avaliação. Por último, e não menos importante, os professores não são treinados para lidarem com estudantes com necessidades especiais, especialmente os deficientes auditivos. Com isso, não conseguem prover material necessário para que haja melhor aproveitamento pela parte discente, bem como ajudar o intérprete.
A Ciência da Computação, com todo o seu poder, pode ajudar a melhorar essa situação. Muito já tem sido feito, como os softwares de tradução de texto para LIBRAS, mas ainda há muito trabalho nessa área. As instituições de ensino superior também precisam criar frentes de trabalho que auxiliem os professores a lidar com esses alunos, bem como preparar as suas unidades acadêmicas para recebê-los. A educação deve ser democrática e levada à maior quantidade de pessoas possível.

Escrito por:

Antunes Dantas - Integrante do PET Computação

terça-feira, 3 de maio de 2016

Paradigmas da Programação Orientada a Objeto X Programação Estrutural



Paradigmas da Programação Orientada a Objeto x Programação Estrutural



   O desenvolvimento de softwares nos dias atuais é absurdamente amplo, qualquer pessoa com sã consciência e vontade, pode de sua própria casa, aprender a programar e se tornar um desenvolvedor. Existem os mais diversos tipos de desenvolvedores. Desde os que tem a programação como hobby até os  que vivem profissionalmente deste ramo.
   O fato é que, seja qual tipo de programador você seja, em algum momento da vida computacional irá se deparar com os paradigmas da programação orientada a objeto, convencionalmente chamada (OO)  e a programação estrutural. Então qual são as diferenças ? Em que se fundamenta cada uma ?
No recapitulando de hoje trataremos sobre isso.

Programão Estrutural

   A programação estrutural está baseada em um paradigma sequencial, em que cada linha de código é executada uma após a outra, sem muitos desvios de fluxo. Diferente do que veremos posteriormente nos paradigmas da programação orientada a objeto.  A programação estrutural está baseada em três pilares.
  • Sequencia
  • Seleção
  • Iteração
   A sequência diz respeito a implementação dos passos necessários para descrever determinada funcionalidade ou programa desejado.
   A seleção se relaciona com o fluxo a ser percorrido, dependendo da escolha, onde pode ser um fluxo condicional ou multifluxos !
   E a Iteração diz respeito a repetição de passos ou execução de instruções repetidas.

Programação Orientada a Objeto

   Esse tipo de programação tem crescido bastante , principalmente por questões voltadas a segurança e reaproveitamento de código, o que é muito importante no desenvolvimento de qualquer aplicação moderna. É um padrão de desenvolvimento que é seguido por muitas linguagens como C# e Java. Além disso a OO tenta aproximar a representação do sistema mais perto do que veríamos no mundo real. Assim como a programação estrutural, a OO tem se sustentado em quatro pilares. 

  • Abstração
  • Encapsulamento
  • Herança
  • Polimorfismo


   A abstração: Chegar o mais próximo da representação de um objeto real. Para tal temos três
características.





  1. Identidade: Geralmente associado ao conceito de pacotes e nomes de classes;
  2. Propriedades: Características que o objeto terá. Por exemplo, imaginando um cachorro as propriedades de um cachorro seriam tamanho, raça, idade e etc.
  3. Métodos: Associados as "ações" que o objeto pode descrever. Ainda levando em consideração o cachorro, ele pode "latir()", "correr()" e etc.










   O encapsulamento se trata de um dos elementos que adicionam segurança a aplicação em uma programação OO, pelo fato de esconder as propriedades, criando uma espécie de caixa preta. A maior parte das linguagens OO implementam o encapsulamento baseado em propriedades privadas, ligadas a métodos especiais chamados getters e setters. Essa atitude evita o acesso direto a propriedade do objeto adicionando outra camada de segurança a aplicação.






  A herança está relacionado ao reuso de código,e é uma das grandes vantagens da programação OO. O objeto abaixo irá herdar características de todos os objetos acima dele, que são seus ancestrais 




   Sabe-se que graças a herança os objetos filhos herdam caracteristicas e comportamentos de seus ancestrais, entretanto, em alguns casos é necessário que as ações para um mesmo, seja diferente. O polimorfismo consiste na alteração do funcionamento interno de um método herdado de um objeto pai.






Por fim, quais são as vantagens e as desvantagens de cada paradigma ?!


VANTAGENS PE:

  • Segue um paradigma sequencial;
  • Leitura de linha por linha, sem muitos caminhos paralelos;
  • Fácil compreensão;

VANTAGENS POO:

  • Procura aproximar o sistema que está sendo criado ao que é observado no mundo real;
  • Reutilização de código;
  • Facilidade para mantenção;


Escrito por:
Igor Matheus - Integrante do PET Computação