Cursos e Palestras

Aprendendo SCRUM brincando

Pedro Prosdocimi, dti

Nessa oficina, iremos introduzir os conceitos básicos dos modelos de desenvolvimento utilizados no passado e como o agilismo transformou a forma de se produzir software com SCRUM.  Após essa introdução, iremos para a parte prática utilizando LEGO e a nossa imaginação.



Aprendizado de padrões para mapeamento de barragens de rejeitos de minérios em larga escala


Jefersson A. dos Santos

O rompimento da barragem da Mina do Córrego do Feijão em Brumadinho, menos de três anos depois do rompimento da barragem em Mariana, fez ressurgir e intensificar as discussões sobre os vários impactos que estas estruturas precárias podem causar.
Segundo relatório oficial disponibilizado pela Agência Nacional de Águas (ANA) existem no Brasil 780 barragens de rejeitos de mineração, que fazem parte das 24.092 analisadas pela agência. Segundo o relatório divulgado pela ANA, referente a 2017, apenas 780 das 24 mil barragens passaram pela vistoria de algum órgão de fiscalização naquele ano – ou seja, pouco mais de 3%. O documento da ANA também revela que 723 barragens são classificadas como “de alto risco”. Outras 45 estão com as estruturas comprometidas. O relatório não especifica se elas são barragens de irrigação ou se contêm rejeitos da exploração de minérios.
Ainda segundo o relatório, cerca de 55% dos órgãos fiscalizadores (federais e estaduais) não possui uma equipe com atribuição formal para atuar em segurança de barragens. E mesmo as que possuem atribuição formal acabam realizando outras atividades além da segurança de barragens. O estado de Minas Gerais, onde ocorreram as tragédias recentes, não possuia até a data do relatório uma equipe com atribuição formal para atuar em segurança de barragens.
Por fim, pelas informações enviadas pelos órgãos fiscalizadores à ANA, é possível dizer que 4.510 barragens (ou 18,7% do total cadastrado) submetem-se à Política de Nacional de Segurança de Barragens (PNSB), isto é, apresentam pelo menos uma das características estabelecidos no art. 1º da Lei nº 12.334/2010. Outras 1.258 (ou 5,2%) não apresentam nenhuma das características, portanto não são submetidas à PNSB.
As demais 18.324 (ou 76% das barragens cadastradas) não possuem informações suficientes para dizer se elas se submetem ou não à PNSB. Por exemplo, 18.446 barragens não possuem informação de altura, 9.584 não possuem informação de capacidade e 18.663 barragens não foram classificadas quanto ao DPA. Sem esta definição toda a implementação da PNSB é prejudicada, pois muitos empreendedores não começam a aplicar os dispositivos da PNSB em suas barragens por não saber se elas se submetem ou não à PNSB e, consequentemente, aos regulamentos existentes.
Nessa palestra, falarei das iniciativas conduzidas pelo Laboratório de Reconhecimento de Padrões para Observação da Terra (PATREO – http://www.patreo.dcc.ufmg.br) no desenvolvimento de abordagens baseadas em aprendizado de máquina (deep learning) para detecção e monitoramento de barragens de rejeitos de minério a partir de imagens de satélite.

Avanços nas Redes Ad Hoc

Luiz Filipe Menezes Vieira

As Redes Ad Hoc são formados por nós com enlace sem fio sem necessidade de infraestrutura prévia. Nessa palestra apresentaremos os avanços na área que possui diversas aplicações, como Redes Veiculares, Redes Aquáticas, Redes de Sensores, etc.


Big Data, Ciência de Dados, Inteligência Artificial e Transformação Digital: Shangri-La existe?

Wagner Meira

A busca por informações relevantes e significativas a partir de dados é um desafio desde o surgimento dos primeiros computadores. Num primeiro momento, as iniciativas eram limitadas pela dificuldade e pelo custo em obter, armazenar e processar informações, o que tem sido minimizado pela evolução da tecnologia. Mais recentemente, temos observado que a influência de algoritmos nas nossas vidas cresce diariamente, frequentemente determinando conteúdos, bens e serviços que consumimos, lugares que visitamos e mesmo ofertas de emprego. Genericamente isso tem sido denominado transformação digital, ou seja, o uso de tecnologia digital na solução de toda sorte de problemas. Entretanto, há uma percepção crescente que muitos desses problemas ainda estão longe de se resolvidos e novos problemas tem surgido a todo momento. Nesta palestra vamos discutir os esforços para uma efetiva transformação digital e tentar entender as razões pelas quais ainda não alcançamos as expectativas lançadas nas últimas décadas.


C4C – Coaching for Computing

Mirella Moura Moro

Como anda sua vida de estudante no DCC? complicada? simples? nem sabe? Venha discutir comigo algumas possibilidades interessantes para melhorar seu desempenho e se preparar melhor para a vida profissional.


Ciência dos (Dados + Materiais): Impulsionando os avanços em nanotecnologia

Omar Paranaiba Vilela Neto

Nesta palestra veremos como o poder computacional, através de técnicas de Ciência dos Dados, pode ser aplicado ao estudo das propriedades dos materiais e a relação entre a sua estrutura em escalas atômicas ou moleculares. Mostraremos exemplos onde a aplicação de sistemas computacionais é fundamental no desenvolvimento da nanotecnologia.


CSIndexbr: Informações Transparentes sobre a Produção Científica Brasileira em Computação

Marco Tulio Valente

Desenvolvido pelo Grupo de Pesquisa em Engenharia de Software Aplicada do DCC/UFMG, o CSIndexbr é um sistema aberto que provê diversas informações transparentes sobre a produção científica brasileira em periódicos e conferências de qualidade em Ciência da Computação. Nesta palestra, iremos apresentar o sistema, suas principais funcionalidades e arquitetura. Iremos também comentar como o CSIndexbr pode ser usado por atuais e futuros alunos de pós-graduação.


Deep Control

Daniel Fernandes Macedo

Nesta palestra iremos apresentar o controle de sistemas baseado em aprendizado profundo (deep control). Sistemas de controle estão à nossa volta em diversos equipamentos e softwares, e com a Internet das Coisas, Indústria 4.0 e as cidades inteligentes eles estarão serão cada vez mais numerosos. Além disso, estes sistemas de controle estão se tornando cada vez mais complexos, o que requer o uso de novas técnicas de modelagem, como por exemplo o aprendizado profundo. Na palestra iremos mostrar as limitações do controle tradicional, as aplicações atuais de controle profundo, bem como os desafios em implementar sistemas de controle profundo.


Estudo de casos sobre privacidade e transparência na publicação de dados

Gabriel Henrique Nunes

Os avanços tecnológicos das últimas décadas propiciaram o desenvolvimento de técnicas para a coleta e o processamento em massa de dados, inclusive de indivíduos. Esse acúmulo de informação permite que governos cumpram seus deveres ao distribuírem recursos a áreas e populações mais necessitadas, ou ainda que empresas privadas desenvolvam novos produtos. Para tanto, é necessário que a provisão de informação seja feita de forma clara e confiável, ou transparente.

Entretanto, é também responsabilidade dos detentores de dados, sejam eles governos ou empresas privadas, garantir que as informações estejam protegidas de usos indevidos, incluindo a reidentificação de indivíduos. Almejando transparência, publicações passadas de microdados foram desastrosas, apesar de tentativas de manter privadas as identidades dos indivíduos cujas informações se encontravam nas bases de dados. Hoje se sabe, por exemplo, que deidentificar os dados, isto é, remover informações como nome ou códigos únicos de identificação, não garante privacidade.

Dessa forma, diversas técnicas de anonimização foram propostas e aplicadas na tentativa de balancear o direito à privacidade e a manutenção da utilidade de bases de dados. Nessa palestra, abordaremos algumas dessas técnicas e suas vantagens e desvantagens, além de apresentar casos reais de indivíduos que foram reidentificados, tanto no Brasil quanto no mundo.


Inteligência Artificial no Mundo Real

Roberto Nalon, Big Data

Inteligência Artificial (IA) e Machine Learning (ML) são temas de pesquisa acadêmica há décadas, mas apenas nos últimos anos a área conquistou as manchetes e ganhou divulgação mais ampla. Muita gente ainda acredita que essas são aplicações que só fazem sentido para empresas como Google, Facebook e Amazon, que têm milhões de clientes e operam online. Será verdade? A Big Data, fundada em 2012, é pioneira na área de data science para performance de negócios no Brasil, e nossa experiência comprova que IA e ML podem ser usados por qualquer empresa, ONG ou governo. Se você é um apaixonado por dados e se você fica maravilhado como muitos dados e algumas linhas de código podem revelar verdades profundas sobre o comportamento humano, venha assistir essa palestra. Você vai descobrir como a cerveja que você bebe quando vai ao bar é determinada por nossos algoritmos e uma série de outras aplicações que já estão transformando a ficção científica de ontem na realidade de hoje. Na segunda metade da palestra faremos um hands on com parte do time da Big Data ensinando alguns passos sobre coleta de dados.


Jogo Pac-Man e Inteligência Artificial

Marcos Augusto Menezes Vieira e Renato Santos

Jogo de Evasão e Perseguição – Pursuit-Evasion Game (PEG) consiste de um time de perseguidores (pursuers) tentando capturar um ou mais evasores (evaders). PEGs são importantes devido à sua aplicação em segurança, busca e resgate, robótica de desastres, defesa de fronteira e a assim por diante. Em geral, PEG requer tempo exponencial para computar o número mínimo de perseguidores para capturar um evasor. Para mitigar isto, projetamos um algoritmo paralelo ótimo para minimizar o tempo de captura no PEG. Dado uma topologia discreta, o algoritmo dá como saída o número mínimo de perseguidores para capturar um evasor. O algoritmo paralelo permite computar topologias maiores. Um exemplo clássico de PEG é o popular jogo arcade Pac-Man. Embora a topologia do Pac-Man tenha quase 300 nós, nosso algoritmo pode lidar com isso. Mostramos que Pac-Man é um exagero, ou seja, Pac-Man contém mais perseguidores/fantasmas (quatro) que o necessário (dois). Além disso, o algoritmo foi estendido para considerar diferentes velocidades. O algoritmo foi avaliado para várias topologias diferentes.


Justiça no Aprendizado de Máquina

Flavio Vinicius Diniz de Figueiredo

Com a crescente demanda de soluções de aprendizado de máquina em áreas como o direito e a medicina, existe também uma crescente preocupação em questões de justiça no uso de tais algoritmos. Perguntas relevantes no cenário atual são: Algoritmos de aprendizados de máquinas podem refletir preconceitos sociais? Se sim, é possível mitigar tais preconceitos? Infelizmente, a resposta primeira pergunta é sim. Felizmente, a resposta da segunda pergunta também é sim! Portanto, nesta palestra vou descrever como modelar e abordar tais problemas. Nenhum conhecimento prévio é necessário.


Modelagem matemática e otimização para resolução de problemas

Cristiano Arbex

Modelagem matemática é a arte de converter problemas de uma área de aplicação em formulações matemáticas tratáveis, cuja análise teórica e numérica fornece insights, respostas e orientações úteis para a aplicação original. Grande parte dos modelos matemáticos se traduzem em problemas de otimização, que são indispensáveis na resolução de inúmeras aplicações em diversas áreas. Nesta palestra apresentaremos uma breve introdução a técnicas de modelagem matemática e otimização através de exemplos de problemas reais.


O papel da IA nos desafios globais

Nivio Ziviani

A inteligência artificial (IA) possibilita que máquinas aprendam com experiências, se ajustem a novas entradas de dados e desempenhem tarefas como seres humanos. A maioria dos exemplos de IA – de tradução em tempo real de uma língua para outra a veículos autônomos – dependem das redes neurais artificiais e processamento de linguagem natural. A partir dessas tecnologias conseguimos dar capacidade aos computadores de aprenderem sem serem explicitamente programados e cumprir tarefas específicas ao processar grandes quantidades de dados e reconhecer padrões nesses dados. Nesta palestra vamos discutir as principais tecnologias que têm permitido avanços recentes em IA e apresentar casos reais de seu uso em diversas áreas.


Processamento Rápido de Pacotes com eBPF e XDP

Marcos Augusto Menezes Vieira

O filtro de pacotes estendido (Extended Berkeley Packet Filter (eBPF)) foi rapidamente adotado em vários sistemas desde sua introdução no kernel do Linux em 2014. O eBPF é utilizado para processamento rápido de pacotes. Os usos do eBPF cresceram rapidamente para incluir monitoramento de rede, manipulação de tráfego de rede, balanceamento de carga, monitoramento do sistema, etc. Várias empresas já utilizam eBPF em projetos como o Facebook, Netronome, Cilium. Este minicurso tem como objetivo apresentar o eBPF. O eBPF permite a programação dos dispositivos de redes. O desenvolvedor pode escrever em linguagem P4 ou C e depois compilar para instruções eBPF. Depois, o código eBPF pode ser processado no kernel do Linux ou por dispositivos programáveis como NetFPGAs e smartNICs. O minicurso cobre os principais aspectos teóricos e fundamentais do eBPF, assim como introduzir o leitor a atividades práticas simples que possam dar uma visão sobre o funcionamento e uso geral do eBPF.


Programação de Aplicativos Android usando Kotlin

Fernando Magno Quintão Pereira

Kotlin é uma linguagem de programação criada em 2011, interoperável com Java, hoje usada tanto para o desenvolvimento de sistemas gerais, quanto de aplicações Android. Nesse minicurso serão vistos princípios básicos de desenvolvimento de software usando Kotlin, com ênfase em desenvolvimento de aplicativos para o sistema Android.


Programando com solucionadores SMT

Haniel Barbosa

Satisfatibilidade módulo teorias (SMT) é o problema de determinar a satisfatibilidade de uma fórmula lógica de primeira ordem em uma teoria lógica. Exemplos de teorias de interesse são diferentes formas de aritmética, como linear ou não-linear de inteiros ou de reais, e de vários tipos de dados, como arrays, listas, conjuntos, strings, etc.

Solucionadores SMT são sistemas versáteis e altamente eficientes dedicados à resolução deste problema. Eles são amplamente utilizados na indústria para a automação de aplicações de métodos formais em diversos domínios, tais como verificação de programas, verificação de hardware, análise estática, segurança, geração de testes, síntese de programas, etc.

Neste minicurso veremos como programar utilizando solucionadores SMT, enfatizando a modelagem de problemas de diferentes domínios através SMT e o uso de solucionadores SMT para a sua resolução. Para isso utilizaremos PySMT (https://github.com/pysmt/pysmt), uma interface Python para diferentes solucionadores SMT. Antes do minicurso estudantes devem instalar PySMT com suporte para diferentes solucionadores SMT. Instruções de instalação estão disponíveis em https://github.com/pysmt/pysmt#installation. Ao menos os solucionadores CVC4 (pysmt-install –cvc4) e Z3 (pysmt-install –z3) devem estar instalados.


Projeto Eleições sem Fake: Soluções Tecnológicas para o problema da Desinformação

Fabrício Benevenuto

O debate político e a disputa eleitoral no espaço online durante as eleições brasileiras de 2018 foram marcados por uma verdadeira guerra de informações. Visando mitigar o problema desinformação, nós criamos o projeto “Eleições Sem Fake” (www.eleicoes-sem-fake.dcc.ufmg.br) e desenvolvemos várias soluções tecnológicas capazes de monitorar e expor as atuações de diferentes campanhas políticas no espaço online. Nosso esforço consiste em identificar casos de tentativas de manipulação de opiniões através do uso de bots e perfis falsos, abusos de campanhas políticas através de anúncios ou mesmo disseminação de notícias falsas através de aplicativos de mensagens, como o WhatsApp. Nossos sistemas se mostraram ferramentas fundamentais para checagem de fatos e para o jornalismo investigativo, sendo utilizadas atualmente por mais de 150 jornalistas com linha editorial e por diversas agências de checagem de fatos.


Projetos de inovação em computação – a experiência da disciplina PIP


Daniel Fernandes Macedo e Eduardo Valadares

A inovação atual é fortemente impulsionada por software e hardware. Em um mundo onde tudo está se tornando digital, o aluno de graduação e de pós-graduação em Ciência da Computação se torna um potencial agente de disrupção. Todos os dias, vemos diversos negócios digitais serem lançados. Mas, como desenvolver um projeto inovador? Isso é uma coisa só para os iniciados? Quais são as dificuldades? Existe uma metodologia? Nesta palestra iremos mostrar que sim, existe uma metodologia para o desenvolvimento de projetos inovadores, e que hoje todos podem inovar sem muitas dificuldades. Além disso, hoje nunca foi tão rápido e barato criar um protótipo do zero e testar a sua aceitação no mercado. Vamos apresentar as etapas que empregamos para criar um projeto, desde como identificar uma ideia original até o produto mínimo viável. Também vamos falar das ferramentas que empregamos, e as facilidades atuais para se desenvolver um projeto de hardware ou de software.


Quem escondeu meu grafo? Inferência a partir de redes parcialmente observadas

Fabricio Murai

Redes ou grafos são abstrações matemáticas fundamentais que nos permitem estudar muitos sistemas reais, tais como a Internet, a Web, redes sociais, etc. É impossível entender completamente estes sistemas e responder questões relacionadas a eles sem considerar a maneira como seus componentes (nós) são conectados (sua topologia), assim como de informações tipicamente associadas a eles (rótulos dos nós). Nós podem representar agentes cujo comportamento depende dos nós a sua volta e do ambiente. Além de serem dados de alta dimensionalidade, a ausência de informação completa impõe um desafio significativo na compreensão dessas redes. Para lidar como redes parcialmente observadas, é preciso recorrer a técnicas de amostragem e estimação ou de modelagem. Nesta palestra, irei cobrir algumas das principais técnicas nessa área.



Unconditionally private, end-to-end integrity verification of any shuffle, with applications to mixing and voting

Jeroen van de Graaf

Consider a procedure in which users privately submit or deposit objects (physical or digital) such as documents, multiple choice forms, casino chips, election ballots, or text messages.
A Shuffler receives these objects, he shuffles  (i.e.\ randomly permutes) them and then displays (publishes) them.
Such a procedure is often used in Anonymous Message Broadcast, in which mix authorites accept a set of messages, and publish them in randomized order to provide anonymity to the senders.
It also arises naturally in voting protocols, in which paper ballots or digital ballots need to be shuffled to break the link between vote and voter.
We present a generic integrity verification method which proves the integrity of the set of objects (i.e. the correcness of the shuffle procedure) offering end-to-end verifiability and eternal privacy.