Projetos Finais de Graduação publicados em 2016

  • IC-PFG-16-22 pdf bib
    Introdução à Teoria de Ramsey em Grafos.
    Victor Seixas Souza - Christiane Neme Campos.
    December 2016. In Portuguese, 45 pages.

    Resumo: A Teoria de Ramsey é uma área da matemática que unifica o tema: desordem completa é impossível. Mais especificamente, observamos que se uma estrutura é grande o suficiente, então ela possui uma subestrutura bem especial e ordenada. Este fenômeno ocorre em diversos campos da Matemática, como Combinatória, Geometria e Teoria dos Números. Este projeto aborda conceitos básicos e alguns dos resultados clássicos em Teoria de Ramsey aplicada a grafos.

    A Teoria de Ramsey tem seu nome em homenagem ao matemático e filósofo britânico Frank P. Ramsey, por seu trabalho, em lógica, publicado em 1930, mas apenas adquiriu um corpo teórico coeso na década de 1970. A área vem recebendo grande atenção nos últimos vinte anos por suas conexões com diversos campos da matemática e, ainda assim, muito dos seus problemas fundamentais permanecem sem solução. Além disso, não muito da teoria propagou-se para os livros didáticos em nível de graduação. Considerando esta lacuna da literatura, este texto apresenta conceitos básicos da Teoria de Ramsey em grafos em um nível introdutório e em língua portuguesa. Ademais, o método probabilístico é apresentado como um exemplo de tópico mais avançado.

  • IC-PFG-16-21 pdf bib
    Recursos digitais no ensino de Matemática em nível de Ensino Fundamental e Médio.
    Victor Fernando Pompêo Barbosa, Gustavo Rodrigues Basso, Matheus Souza, and Christiane Neme Campos.
    December 2016. In Portuguese, 227 pages.

    Resumo: Projetos de educação popular são iniciativas que se propõem a oferecer cursos de formação complementar, gratuitos ou de baixo custo, para a comunidade em que estão inseridos. Por conta de seu caráter não-lucrativo, é comum terem problemas de falta de material didático, dependendo de doações para funcionar. Tendo em vista essa necessidade e o potencial de influência benéfica da tecnologia na educação, este trabalho tem como objetivo a produção de recursos educacionais digitais de apoio às aulas de Matemática do Curso Exato, projeto de extensão comunitária da PREAC (Pró-Reitoria de Extensão e Assuntos Comunitários da Unicamp). O Curso Exato é um projeto de educação popular que busca o desenvolvimento acadêmico de alunos de Ensino Médio da rede pública da região de Campinas. O material desenvolvido deve constituir a base do ``Mês da Matemática'', um período de aulas dedicado inteiramente ao ensino de Matemática elementar, e é composto de: um conjunto de slides, a serem utilizados nas aulas teóricas; um conjunto de listas de exercícios, a serem utilizadas nas aulas práticas; indicações de ferramentas e recursos digitais que complementam o assunto de cada aula; e orientações para os professores de como utilizá-los.

  • IC-PFG-16-20 pdf bib
    REST Client generation using RAML API documentation.
    Andre Vitor Terron and Guido Araujo.
    December 2016. In English, 17 pages.

    Abstract: In the past few years, mobile devices and apps have become more and more popular. This increased the demand for mobile development in multiple platforms, more than there are developers available.

    A common development pattern used by such projects is to have a central server, and multiple clients in different platforms, like Android, iOS and web. The server exposes an API (Application Program Interface), and the clients send http requests to the API to interact with the business logic of the app. For multiplatform apps, having to implement the API client for every platform can be very time consuming, and the work needed grows with the size of the api, and number of supported platforms. Also, with every refactor of the API, it’s needed to review all other platforms’ clients.

    The first step to improve the client develpment, is to have good documentation and communication between the server developers, and client developers. There are several ways of documenting an API, but the most common frameworks are: RAML, Swagger and API Blueprint. These frameworks are a structured way of documenting an API, but also can be visualized as a more human-readable way, and even be used to generate client code for the applications, saving a lot of time and mistakes for the developer.

    In this project, I built an Android client generator based on the RAML framework. It uses other common patterns in Android, like Dependency Injection with Dagger 2, Promises with Bolts, and the Spring Rest Template for the actual requests. It reads the RAML documentation, and generates Android code to communicate with the API.

  • IC-PFG-16-19 pdf bib
    Construindo um Runtime OpenMP 4.0 com suporte a offload de resolução de dependências para acelerador em FPGA.
    Lucas Henrique Morais e Guido Costa Souza de Araújo.
    December 2016. In Portuguese, 10 pages.

    Resumo: As barreiras tecnológicas para a implementação de processadores unicore que mantivessem o ritmo de avanço de performance das últimas décadas deram ensejo para o surgimento das arquiteturas multicore que os desenvolvedores de hoje devem aprender a utilizar. A natural dificuldade de se desenvolverem sistemas destinados a tais arquiteturas levaram ao surgimento de diversos frameworks de programação paralela que procuram, cada um a seu modo, tornar tal tipo de desenvolvimento mais eficiente e menos propenso a erros. Nesse contexto surge o conceito de Task Parallelism, capaz de encapsular chamadas de função e pequenos trechos de código em entidades chamadas Tasks, que, sendo um análogo macroscópico das intruções de processador, podem ser escalonadas em paralelo nas diversas unidades de processamento disponíveis desde que suas relações de dependência - inferidas a partir do modo como cada uma acessa os seus dados - sejam respeitadas, numa lógica muito próxima à que rege o escalonamento de instruções para as diversas ALUs disponíveis em um processador superescalar. Atualmente, a especificação OpenMP dá amplo suporte a Task Parallelism, o que criou ocasião para o presente trabalho: o desenvolvimento de um runtime com suporte a OpenMP 4.0 capaz de acelerar task-scheduling por meio de offload de computação relativa à inferência de dependências de dados para um acelerador em FPGA.

  • IC-PFG-16-18 pdf bib
    Aplicativos Móveis como Suporte e Incentivo a Doação de Sangue.
    Giovanna Madella de Luca and Cecilia Baranauskas.
    December 2016. In Portuguese, 134 pages.

    Resumo: A Organização Mundial da Saúde estima que para atender a demanda transfusional de sangue é necessário que 3% a 5% da população com idade entre 18 e 65 anos seja doadora regular. No Brasil, a porcentagem total de doadores corresponde a apenas 1.8%, dos quais 40% são doadores esporádicos. Atrair novos doadores, especialmente os jovens, é crucial para atender essa demanda. O objetivo deste trabalho é propor e desenvolver uma aplicação em dispositivo móvel que promova o exercício da cidadania apoiando e incentivando a doação de sangue em redes de amigos.

    Foram utilizadas as seguintes técnicas visando uma boa qualidade do resultado: o conceito do sistema foi gerado com base nos métodos e artefatos da Semiótica Organizacional; usuários voluntários participaram de um BrainDraw (adaptado); usuários voluntários participaram de avaliação de um aplicativo de doação de sangue já existente; foram feitas várias versões da interface, sempre buscando uma maior adequação ao princípios de Usabilidade (facilidade de aprendizado, eficiência de uso, facilidade de retorno, frequência dos erros, satisfação subjetiva), de Qualidade Afetiva em Design (baseado em Norman), e nas Leis da Simplicidade de Maeda; foi feita a apresentação do projeto, debriefing e avaliação com o grupo de pesquisa em IHC InterHAD (avaliando o protótipo segundo o conjunto de Guidelines Mobile de Nicastro F., proposto em sua dissertação de Mestrado no IC-Unicamp em 2015); finalmente foram inseridas no projeto e implementadas várias das melhorias identificadas a partir desta última avaliação. O resultado prático deste trabalho foi a especificação do aplicativo “Amigos de Sangue” para suporte e incentivo a doação de sangue, assim como a implementação de sua interface para Android.

  • IC-PFG-16-17 pdf bib
    Evaluating Active Learning Strategies for Image Annotation of Intestinal Parasites.
    Felipe Lemes Galvão and Alexandre Xavier Falcão.
    December 2016. In English, 14 pages.

    Abstract: Manually annotating large datasets is unfeasible and, to do it automatically with a pattern classifier, it depends on the quality of a much smaller training set. Active learning techniques have been proposed to select those relevant samples from large datasets by prompting an user with label suggestions to be confirmed or corrected.

    In this work we explore variations of an active learning methodology that, given an organization of the data computed beforehand and only once, allows interactive response times during the active learning process involving an expert.

    We use the optimum-path forest (OPF) data clustering algorithm for the a priori organization and some combinations of active learning algorithms and classifiers to test the methodology. The active learning algorithms considered are the root distance-based sampling (RDS), a new variation of it that we call root path-weight-based sampling (RWS) and two additional random selection baselines. The included classifiers are the OPF-based supervised and semi-supervised learning methods, and an ensemble of logistic regression classifiers.

    We tested each combination of active learning and classification algorithm against a dataset extracted from images of intestinal parasites, in which the presence of a large diverse class, namely impurities, mixed with the actual parasites poses a challenge for learning methods.

  • IC-PFG-16-16 pdf bib
    WebLectures 2.0: Uma ferramenta para Android para geração e compartilhamento de conteúdos educacionais.
    José Ernesto Stelzer Monar and Rodolfo Jardim de Azevedo.
    February 2016. In Portuguese, 17 pages.

    Resumo: A introdução de dispositivos tecnológicos no ambiente educacional tem sido uma grande revolução e propiciado a disseminação de conteúdo, o aumento do alcance da informação, possibilitando tanto a maior penetração nas diversas esferas de usuários, como facilitando a tarefa de quem se propõem a gerar esse conteúdo. Os computadores e seus principais dispositivos de entrada, mouse e teclado, foram projetados para interação individual e estática e tendo a produtividade por objetivo, limitando, assim o seu uso no ensino, além da presença cada vez menor destes na vida dos usuários em detrimento dos equipamentos móveis. O resultado deste trabalho foi a criação de uma aplicação para a plataforma móvel Android com diversos recursos para a gravação de conteúdo educacional, essa aplicação gera um pacote que pode ser compartilhado e enviado aos estudantes. Outro resultado desse projeto foi a criação de uma reprodutor, embutido nesse pacote gerado pela aplicação, que interpreta o conteúdo exportado e permite ao estudante assistir de forma simples a aula, nesse pacote ainda estão presentes informações para catalogação e classificação da aula. Outro fruto obtido com essa aplicação é o uso inteligente do armazenamento, conseguindo diminuir consideravelmente o tamanho do conteúdo gerado.

  • IC-PFG-16-15 pdf bib
    AlphaMMO – Servidor para Jogos Multijogador.
    Victor Roth Cardoso e André Santanchè.
    Dezembro 2016. In Portuguese, 23 pages.

    Resumo: Este relatório trata do trabalho final de graduação do aluno Victor Roth Cardoso, cujo foco é um estudo para a criação de um servidor para jogos multijogador, bem com a sua implementação. O estudo foi feito em diversas etapas: o estudo de diversos design patterns para jogos, estudo de arquiteturas para jogos multijogador e a implementação de um jogo cliente-servidor. A implementação considera as demandas para um jogo online, incluindo aspectos de performance, segurança e de engenharia de software.

  • IC-PFG-16-14 pdf bib
    IoT-Noise: Um Dispositivo IoT de Baixo Custo para Detecção de Poluição Sonora.
    Andre Filliettaz and Edson Borin.
    December 2016. In Portuguese, 25 pages.

    Resumo: Ruídos sonoros podem ser definidos como ondas onde há ausência de periodicidade, de forma que o as vibrações no meio não são harmônicas. Altos níveis de ruído podem causar estresse ou mesmo danos à saúde das pessoas, sendo assim definidos como poluição sonora. Locais de trabalho como usinas, aeroportos, indústrias, construção civil, call centers ou mesmo lugares cotidianos, como shoppings centers, salas de aula, avenidas ou ruas, são alguns exemplos de onde a sociedade está sujeita aos efeitos, como estresse, falta de sono e em casos mais extremos, perda auditiva, que podem ser causados pela poluição sonora.

    Sob este contexto, foi desenvolvido um dispositivo de baixo custo (um microfone simples acoplado a uma placa Arduino e um módulo WiFi), chamado IoT-Noise, que permite a obtenção de dados a serem entregues para análise a um sistema mais complexo, transmitindo dados através da internet, de forma que este possa tomar decisões de controle adequadas visando um melhor gerenciamento do ambiente e maior segurança, já que o ouvido humano possui um limite para que não haja perda auditiva. Além disso, principalmente em áreas urbanas, existem locais como hospitais e escolas, aonde por lei, existe um limite para o nível de poluição sonora e buzinas são proibidas.

  • IC-PFG-16-13 pdf bib
    Game Engine with 3D Graphics.
    Cauê Viegas Oliveira, Felipe Santos Oliveira, and Helio Pedrini.
    December 2016. In English, 18 pages.

    Resumo: Um motor de jogo (game engine) é uma ferramenta computacional que consiste em códigos de propósito geral para o desenvolvimento de um jogo, a qual provê recursos para renderização e áudio, técnicas de inteligência artificial e física, entre muitas outras funcionalidades. Em geral, editores de cenário e linguagens script estão também disponíveis. Assim como a indústria automobilística pode aproveitar o projeto de um motor, jogos diferentes podem reaproveitar um mesmo motor de jogo, tornando o processo de desenvolvimento mais simples e rápido. O foco deste projeto é o desenvolvimento de um motor de renderização, uma vez que este é um dos componentes mais importantes de um motor de jogo. A linguagem C++ e o pacote gráfico OpenGL foram utilizados para construir uma Voxel Game Engine (ou Block Engine). Mapas de altura (heightmaps) foram gerados proceduralmente empregando Perlin Noise, assim como a criação de dois tipos de câmera: em primeira pessoa (FPS camera) por meio de projeção perspectiva e câmera isométrica por meio de projeção isométrica. Além disso, o projeto permitiu a interação com o mapa para gerar novos blocos sobre aqueles já gerados.

    Abstract: A game engine is a computational tool that consists of general purpose codes for game development, which provides features for rendering and audio, techniques for artificial intelligence and physics, among many other functionalities. In general, scenario editors and script languages are also available. Just as the automotive industry can take advantage of the design of an engine, different games can reuse the same game engine, making the development process simpler and faster. The focus of this project is the development of a rendering engine, since this is one of the most important component of a game engine. C++ programming language and OpenGL graphics package were used to build a Voxel Game Engine (or Block Engine). Height maps were generated procedurally using Perlin noise, as well as the creation of two types of camera: (i) first person (FPS camera) through perspective projection and (ii) isometric camera by means of isometric projection. In addition, the project allowed the interaction with the map to generate new blocks on those already generated.

  • IC-PFG-16-12 pdf bib
    A mobile application to remotely control humanoid robots.
    Henrique Lima Cará de Oliveira and Esther Luna Colombini.
    December 2016. In English, 17 pages.

    Resumo: Este trabalho apresenta um aplicativo para o controle remoto do robô NAO - um robô humanoide programável desenvolvido pela Aldebaran Robotics. O controle remoto permite que o usuário envie comandos básicos para o dispositivo robótico, além de manter o usuário informado sobre os aspectos posicionais do mesmo em relação ao ambiente através da exibição na tela de controle do aplicativo, em tempo real, tanto de um modelo 3D do robô que reproduz a pose atual do mesmo quanto das imagens obtidas a partir dos sensores de visão do mesmo. Para tal propósito, desenvolvemos uma estrutura de aplicativo que encapsula ações atômicas, que controlam cada um dos 25 graus de liberdade do robô individualmente, além de ações predefinidas (andar para frente, girar, abaixar, etc.) a serem executadas pelo robô. Para permitir a expansão do uso do aplicativo para um robô real sem a necessidade de modificações, implementamos um protocolo de alto nível para a comunicação entre o controlador e o robô. Com o uso desse protocolo, podemos facilmente controlar um robô bípede real, caso haja suporte ao protocolo, e expandir essas ações para contextos diversos, como o do futebol de robôs, por exemplo. Para validação do aplicativo, construímos todas as interfaces do lado do servidor que nos permitem controlar uma versão simulada do robô. O aplicativo e o servidor foram implementados em Java e usaram a biblioteca Libgdx. Todos os testes foram realizados no ambiente robótico simulado V-REP.

  • IC-PFG-16-11 pdf bib
    Rastreamento de viagens compartilhadas publicadas no facebook.
    Luiz F. Takakura e Leandro Aparecido Villas.
    Dezembro 2016. Em Português, 22 pages.

    Resumo: O compartilhamento de viagens intermunicipais é uma prática bastante difundida principalmente entre os estudantes de universidades públicas. A popularização de tal prática provocou um elevado crescimento das comunidades digitais destinadas a este fim presentes em redes sociais como, por exemplo, o Facebook. O crescimento das ofertas de compartilhamento de viagens provocou um bombardeamento intenso de informações na rede social fato que, ironicamente, prejudicou a prática do ponto de vista de quem busca a viagem. Utilizando a ideia por trás do conceito de redes de sensoriamento participativo e buscando a melhoria da experiência do usuário que busca o compartilhamento de viagens através do Facebook, propôs-se criar uma aplicação capaz de coletar o grande volume de informações geradas pelos sensores sociais para interpretá-las e então servi-las aos usuários de maneira organizada por intermédio de um messenger bot inteligente.

  • IC-PFG-16-10 pdf bib
    Análise de um cluster de dados de alta disponibilidade usando Postgresql e pgpool2.
    Leonnardo Rabello and Luiz Eduardo Buzato.
    December 2016. In Portuguese, 12 pages.

    Resumo: O volume de dados usado na internet hoje é extremamente alto, e muitos desses dados são sensíveis. Para permitir a alta disponibilidade desses dados, soluções de load balancing e high avaliability estão disponíveis no mercado. Utilizando o PostgreSQL com um método de replicação chamado de Streaming Replication, que cria uma arquitetura de master-slave, e a ferramenta pgpool, cujo um dos papéis é distribuir as cargas de operações de leitura entre os bancos replicados, foi possível medir o tempo de queda entre uma instância master e a recuperação da instância slave promovendo-se a master.

  • IC-PFG-16-09 pdf bib
    Heurísticas para o Problema de Precificação Livre de Inveja.
    Fabio Yudi Murakami e Rafael Crivellari Saliba Schouery.
    December 2016. In Portuguese, 21 pages.

    Resumo: Problemas de precificação visam determinar o preço de itens a serem vendidos com o objetivo de maximizar o lucro do vendedor. Neste trabalho propomos uma nova heurística para o problema de precificação livre de inveja com demanda unitária. Nesse problema temos como entrada os valores que os consumidores dão para os itens, e como saída uma precificação, isto é, um preço para cada item, bem como a alocação de itens à consumidores. A metaheurística utilizada foi o Biased Random-Key Genetic Algorithm (BRKGA) que é um algoritmo genético. Além disso, duas heurísticas previamente definidas na literatura, Equal Price e Maximum Reservation Price, foram utilizadas para gerar soluções a serem injetadas nas populações iniciais do algoritmo. A decodificação foi aprimorada utilizando uma rotina chamada Improvement que melhora o fitness de cada cromossomo. Ela faz isso encontrando os caminhos mínimos num grafo auxiliar. Esse grafo é construído com base na alocação encontrada a partir de uma precificação. De modo geral, o BRKGA conseguiu bons resultados em termos de qualidade das soluções e muitas vezes foi melhor e em outras ficou muito perto dos algoritmos da literatura, sendo melhor em aproximadamente 65% das instâncias testadas e ficando a pelo menos 97% do melhor valor nas instâncias restantes. Ele peca em relação ao tempo de execução, porém com alguns ajustes e pequenas otimizações foi possível melhorar tais tempos.

  • IC-PFG-16-08 pdf bib
    Algoritmos para Teste de Isomorfismo de Grafos.
    Erick Ricardo Mattos and Eduardo C. Xavier.
    December 2016. In Portuguese, 17 pages.

    Resumo: O objetivo deste trabalho é estudar a implementação de algoritmos que resolvam o problema de Isomorfismo em Grafos (em inglês Graph Isomorphism ou apenas GI). Não é conhecida uma solução polinomial para o problema geral, aquele que não assume alguma propriedade especial para o grafo, bem como não foi provado que este problema é NP-Difícil e, assim, a complexidade deste problema ainda está em aberto.

    Foram estudados diferentes métodos para a solução do problema, sendo escolhido para implementação um método proposto por Weisfeiler e Lehman, conhecido como $k$-dim WL, que é capaz de resolver o problema em tempo linear no número de vértices, mas que, no pior caso, ainda é exponencial, tanto em espaço como em tempo.

    O método implementado obteve um grande speedup em relação ao método trivial, que é tentar todas as possíveis permutações de vértices, quando executados com grafos aleatórios.

    Apesar de ser um método com complexidade exponencial, a implementação conseguiu resolver muito casos de teste em baixo tempo computacional e com rapidez, mesmo para grafos com muito vértices. O pior caso do método nos testes foi observado em grafos regulares, como previsto pela análise teórica do algoritmo.

  • IC-PFG-16-07 pdf bib
    Resultados teóricos para leilões de um único item.
    Iago A. Neves e Rafael C. S. Schouery.
    Dezembro 2016. Em português, 19 páginas.

    Resumo: A Teoria dos Leilões é uma área da Teoria de Jogos que estuda as propriedades de leilões e as ações dos seus participantes. Este trabalho aborda os principais conceitos da Teoria dos Leilões para a venda de um único item e os discute para os principais tipos de leilão. Analisamos as estratégias possíveis e ótimas para participantes de leilões de carta fechada de primeiro preço e de segundo preço e apresentamos a receita esperada para o organizador em cada tipo de leilão. Estudamos ainda o leilão de Myerson como alternativa para maximizar a receita do leiloeiro e sua viabilidade perante os demais tipos de leilão.

  • IC-PFG-16-06 pdf bib
    Um Estudo sobre Aproximação de Altura de Pessoas em Vídeos de Segurança.
    Fábio Sartorato and Helio Pedrini.
    Dezembro 2016. Em português, 14 páginas.

    Resumo: Estimar a altura de pessoas é uma atividade importante na área de vigilância e segurança, facilitando a identificação de um indivíduo em aplicações tais como biometria e ciência forense. As imagens geradas pelos sistemas de vigilância normalmente apresentam baixa qualidade para reconhecimento facial, de modo que outras características podem ser utilizadas para reconhecer indíviduos. Este trabalho investiga o problema de aproximação da altura de pessoas em vídeos capturados por câmeras de segurança. Diversos métodos da literatura são analisados e uma abordagem baseada em regressão não-linear para calibração da câmera é selecionada para implementação devido aos resultados satisfatórios apresentados.

  • IC-PFG-16-05 pdf bib
    Gerência de Redes Definidas por Software em Nuvens Computacionais.
    Ulisses Malta Santos and Edmundo Roberto Mauro Madeira.
    December 2016. In Portuguese, 26 pages.

    Resumo: Cada vez mais dispositivos estão conectados a Internet, aumentando a complexidade envolvida no gerenciamento das redes de computadores. A Internet das Coisas (Internet of Things - IoT), como é chamada, exige que as redes, ao contrário dos modelos e topologias tradicionais, sejam dinâmicas e flexíveis. As redes definidas por software (Software Defined Networks - SDN) surgiram nesse cenário e representam um novo modelo para a configuração, controle e operação das redes de computadores. Além de facilitar a virtualização de servidores e a orquestração de nuvens computacionais, as redes definidas por software ainda proporcionam grande flexibilidade e escalabilidade, pois permitem que sua administração seja feita de forma programática e que políticas de qualidade de serviço sejam implementadas. Este projeto tem por objetivo estudar a gerência de redes definidas por software dentro do ambiente de uma nuvem computacional OpenStack, focando no desenvolvimento de uma ferramenta que facilite a configuração das redes definidas por software. Também foram analisadas políticas de qualidade de serviço nessas redes virtuais, as quais permitiram uma diminuição do nível de congestionamento da rede, além de permitir que fluxos prioritários de dados fossem estabelecidos conforme a demanda.

  • IC-PFG-16-04 pdf bib
    Prototipação de Instruções para Implementação Segura de Algoritmos Criptográficos.
    Antonio Carlos Guimarães Junior and Diego de Freitas Aranha.
    December 2016. In Portuguese, 46 pages.

    Resumo: A recente popularização da Internet da Coisas fez surgir uma grande preocupação com vulnerabilidades nos mecanismos criptográficos e ataques de canal lateral em suas implementações. Neste trabalho, utilizou-se da simulação, através do simulador de sistema MARSSx86, e da prototipagem, através da tecnologia FPGA, de uma plataforma similar a tais dispositivos. Nelas, foram implementadas instruções que permitem a implementação segura, isto é, resistente a ataques de canal lateral, de alguns dos principais algoritmos criptográficos em uso. Tais ferramentas foram também utilizadas na validação, em desempenho e segurança, das diversas implementações desses algoritmos. Foram realizados experimentos com o protocolo baseado em curvas X25519 e com a cifra de bloco AES. Nos experimentos, a partir das estatísticas obtidas no simulador e na FPGA, foi possível detectar as vulnerabilidades existentes nas implementações avaliadas; e também avaliar o impacto, em segurança e desempenho, da introdução das novas instruções propostas.

  • IC-PFG-16-03 pdf bib
    Análise preliminar de segurança do sistema Expresso.Br.
    Matheus Ferreira Tavares Boy and Diego de Freitas Aranha.
    December 2016. In Portuguese, 63 pages.

    Resumo: Foi realizada uma análise preliminar da segurança do principal sistema de email do governo brasileiro, o Expresso.Br, com ênfase na segurança da aplicação web. A primeira parte da análise de segurança foi realizada de forma dinâmica, através de scanners de aplicação, e a segunda parte de forma estática, através de uma varredura da base de código instalada. Além disso, foi verificada a configuração do servidor SSL do Expresso. Foram utilizados os scanners de aplicação AppScan, Nessus e Arachni; e o scanner da base de código foi implementado pelo próprio aluno baseado em listas de funções perigosas. Como resultados, a análise da configuração do certificado SSL retornou algumas vulnerabilidades e a varredura da base de código encontrou diversos usos de funções perigosas.

    Abstract: A preliminary security analysis of the main Brazilian government email system was performed, focusing on web application security. The first part of the security analysis was executed dynamically through application scanners AppScan, Nessus and Arachni; followed by static analysis through a code base scanner implemented by the student. The SSL server configuration of the main installation Expresso.BR was also assessed. We report that the some vulnerabilities were found in the assessment of the SSL configuration and that several cases of dangerous functions were found in the code base scan.

  • IC-PFG-16-02 pdf bib
    Skin Lesion Classification in Dermoscopy Images.
    William Tustumi and Helio Pedrini.
    December 2016. In Eglish, 10 pages.

    Resumo: Melanoma é um dos tipos mais agressivos de cancer de pele. O sucesso do tratamento é dependente do diagnóstico prematuro. Esse projeto procura estudar e desenvolver uma ferramenta automática para assitir o diagnóstico de lesões de pele. Inicialmentem, as imagens de ferídas cutânias são segmentadas através de algorítmos utilizados em análise de imagens, como Otsu's threshold, Chan-Vese and Statistical Region Merging. Depois, caracteírsticas são extraídas através das regras ABCD e relações de segunda ordem da imagem. A partir dessas características, uma decisão é feita utilizando a combinação, através do método de voto, dos classificadores Extra Tree, Decision Tree, AdaBoost, Linear Discrimination e Random Forest. Os resultados das classificações atingiram uma taxa de acerto de 77% usando a base de dados ISIC, que é comparável ao sucesso de dermatologistas especialistas que apenas fizeram o exame dermatológico e inspecionaram o histórico do paciente.

    Abstract: Melanoma is one of the most aggressive types of skin-cancer. The success of the treatment is very reliant on early diagnosis. This project aims to study and develop an automatic tool to help physicians diagnose skin lesions. Initially, skin lesion images are segmented through well known image analysis algorithms, such as Otsu, Chan-Vese and Statistical Region Merging. Then, features are extracted by following the ABCD rule and second order image characteristics. From these features, a decision is made by means of a voting strategy combining Extra Tree, Decision Tree, AdaBoost, Linear Discrimination and Random Forest classifiers. Classification results achieved a success rate of 77% on the ISIC dataset, which is comparable to expert dermatologists that only had access to dermatology exams and patient history.

  • IC-PFG-16-01 pdf bib
    Problema da Ordenação Ponderada por Reversões e Transposições.
    Eduardo Rossetti Donoso, Andre Rodrigues Oliveira, Ulisses Dias, and Zanoni Dias.
    July 2016. In Portuguese, 25 pages.

    Resumo: Rearranjo de genomas é uma área de pesquisa que estuda a distância entre genomas contabilizando os eventos de mutação que afetam grandes porções do genoma. De modo geral, a distância entre dois genomas é calculada considerando que o custo de cada operação é unitário. Este trabalho aborda a ordenação de permutações sem sinais e considera que o custo de cada operação é o número de elementos presentes na região afetada. Realizamos a comparação dos custos médios fornecidos por algumas das heurísticas conhecidas na área, e apresentamos os resultados obtidos ao modificar algumas delas para considerar o problema com distância ponderada. Com isso, desenvolvemos uma heurística a partir da combinação daquelas que obtiveram os melhores resultados. Esta heurística apresentou custos médios menores que o das outras analisadas neste trabalho. Além disso, realizamos uma análise dos custos médios obtidos pela heurística de Grafo de Ciclos, uma heurística que obteve os melhores resultados quando os custos das operações são unitários.

    Abstract: Genome rearrangements is a research area that studies the distance between genomes through mutation events that affect large fragments of the genome. Generally, the distance between two genomes is calculated assuming that each operation cost is unitary. This work addresses the unsigned sorting problem, where the operation cost is given by the number of elements in the affected region. We conducted a comparison of the average costs of some of the known heuristics in this field, and we show the results obtained when some are modified so that the length-weighted problem is considered. From this, we have developed a heuristic obtained from the combination of the ones that presented the best results, and which provided lower average costs than the others analyzed in this work. Furthermore, we conducted an analysis of the average costs obtained by the Cycle Graph heuristic, which achieved the best results when the operation costs are unitary.


  • Instituto de Computação :: Universidade Estadual de Campinas
    Av. Albert Einstein, 1251 - Cidade Universitária Zeferino Vaz • 13083-852 Campinas, SP - Brasil • Fone: [19] 3521-5838