Sou professor do Campus Serra do Instituto Federal do Espírito Santo, e leciono principalmente disciplinas relacionadas a lógica, ciência de dados, teoria da computação, e programação funcional. Defendi meu Doutorado em Educação pela Universidad del Norte, e obtive o Mestrado em Informática e o grau de Engenheiro de Computação pela Universidade Federal do Espírito Santo.
Também sou membro do Núcleo de Estudos em Técnicas e Teoria da Computação, Nu[TeC]². Sou um apaixonado pela ciência da computação e tenho uma ampla gama de interesses nesse campo, incluindo programação funcional e programação lógica, métodos formais, verificação formal, ciência de dados, e inteligência artificial (tanto métodos clássicos quanto modernos). Eu também tenho um forte interesse na área de educação, especialmente em educação matemática e educação em ciência da computação no ensino superior, e no uso de gamificação na educação.
Doutorado em Educação, 2013
Universidad del Norte
Mestrado em Informática, 2001
Universidade Federal do Espírito Santo
Engenharia de Computação, 1995
Universidade Federal do Espírito Santo
Acompanhar o progresso profissional de ex-alunos de instituições de ensino superior, monitorando suas atividades nas redes sociais.
Aplicar técnicas de IA na mineração e agregação de informações técnicas de diversas fontes online.
Aplicação de métodos formais de engenharia de software para produzir uma plataforma de software confiável para o controle de voo de veículos aéreos não tripulados.
Desenvolvimento de um modelo de predição utilizando dados dos sensores e algoritmos de aprendizado de máquina para prever e evitar problemas de ruptura do aço no lingotamento contínuo.
Implementa um sistema de identificação biométrica em larga escala utilizando, primeiro, biometria leve para reduzir o espaço de pesquisa e biometria forte, em seguida, para identificação final.
Desenvolvimento de uma solução móvel para identificar e mapear as espécies de tartarugas marinhas que ocorrem na costa brasileira.
Desenvolvimento de um aplicativo móvel para auxiliar pessoas com disfemia a praticar o dicto de palavras selecionadas e melhorar a qualidade de vida e a autoconfiança.
Desenvolvimento de um monitor de preço ativo para lojas da web, ajudando os clientes a comparar produtos e preços.
Desenvolvimento de um modelo de referência para TIC e biometria para a polícia técnica e científica do Espírito Santo.
A lógica formal possui um papel fundamental na ciência da computação. Infelizmente, se observa que a eficácia do processo de ensino-aprendizagem da lógica formal tem se mostrado abaixo do ideal. Este trabalho apresenta o sistema ∃lementar, um sistema que incorpora um assistente de provas em um contexto de gamificação, i.e., que utiliza elementos de jogos para promover o engajamento e a motivação dos alunos. Após introduzir as caracterı́sticas gerais do sistema ∃lementar, este artigo apresenta dados preliminares que indicam melhoria nos indicadores de desempenho dos alunos.
A lógica formal desempenha um papel fundamental na ciência da computação. É necessário introduzir os fundamentos dessa disciplina para que esses alunos possam alcançar o domínio em todas as suas aplicações em ciência da computação. Infelizmente, observa-se que a eficiência do processo de aprendizagem do programa de Bacharelado em Sistemas de Informação se mostrou menos do que ideal. Neste trabalho, propomos que é possível aumentar a efetividade do processo de aprendizagem através do uso de assistentes de prova como ferramenta de ensino, mas com a introdução de elementos do tipo jogo. Essa abordagem é conhecida como gamificação. Apresentamos uma visão geral da base teórica que apóia o uso da gamificação. Em seguida, descrevemos a proposta de um sistema gamificado para o aprendizado da lógica formal, bem como a implementação de um protótipo desse sistema proposto. Concluímos este artigo apresentando alguns resultados de um experimento realizado adotando nosso protótipo como ferramenta de aprendizado durante um semestre acadêmico. Em seguida, comparamos esses resultados com o semestre anterior e analisamos as possibilidades do uso da gamificação em um ambiente educacional.
Multi-valued Model Checking extends classical, two-valued model checking to multi-valued logic such as Quasi-Boolean logic. The added expressivity is useful in dealing with such concepts as incompleteness and uncertainty in target systems, while it comes with the cost of time and space. Chechik and others proposed an efficient reduction from multi-valued model checking problems to two-valued ones, but to the authors' knowledge, no study was done for multi-valued bounded model checking. In this paper, we propose a novel, efficient algorithm for multi-valued bounded model checking. A notable feature of our algorithm is that it is not based on reduction of multi-values into two-values; instead, it generates a single formula which represents multi-valuedness by a suitable encoding, and asks a standard SAT solver to check its satisfiability. Our experimental results show a significant improvement in the number of variables and clauses and also in execution time compared with the reduction-based one.
Multi-valued Model Checking is an extension of classical, two-valued model checking with multi-valued logic. Multi-valuedness has been proved useful in expressing additional information such as incompleteness, uncertainty, and many others, but with the cost of time and space complexity. This paper addresses this problem, and proposes a new algorithm for Multi-valued Model Checking. While Chechik et al. have extended BDD-based Symbolic Model Checking algorithm to the multi-valued case, our algorithm extends Bounded Model Checking (BMC), which can generate a counterexample of minimum length efficiently (if any). A notable feature of our algorithm is that it directly generates conjunctive normal forms, and never reduces multi-valued formulas into many slices of two-valued formulas. To achieve this feature, we extend the BMC algorithm to the multi-valued case and also devise a new translation of multi-valued propositional formulas. Finally, we show experimental results and compare the performance of our algorithm with that of a reduction-based algorithm.