As JAI, tradicionalmente realizadas em conjunto com o CSBC, são formadas por um conjunto de minicursos de seis
horas de duração cada, enfocando temas avançados, mas ao mesmo tempo maduros, que não
fazem parte dos currículos regulares de cursos de Graduação.
JAI 1: Coleta e Análise de Grandes Bases de Dados de Redes Sociais Online
Fabrício Benevenuto (UFOP), Jussara Almeida (DCC-UFMG), Altigran Soares da Silva (UFAM)
Mostrar resumo...
Redes sociais online se tornaram extremamente populares e vêm causando uma nova onda de aplicações
na Web. Associado a esse crescimento, redes sociais estão se tornando um tema central em pesquisas de diversas
áreas da Ciência da Computação. Este minicurso oferece uma introdução
ao pesquisador que pretende explorar esse tema. Inicialmente, apresentamos as principais características das
redes sociais mais populares atualmente. Em seguida, discutimos as principais métricas e tipos de análises
utilizadas no estudo dos grafos que formam a topologia das redes sociais. Finalmente, sumarizamos as principais abordagens
utilizadas para se obter dados de redes sociais online e discutimos trabalhos recentes que utilizaram essas
técnicas.
JAI 2: Software Livre e Propriedade Intelectual: Aspectos Jurídicos, Licenças e Modelos de
Negócios
Fabio Kon, Nelson Lago, Paulo Meirelles, Vanessa Sabino (IME-USP)
Mostrar resumo...
O Software Livre tem se apresentado como uma alternativa viável para a produção,
distribuição e utilização de software de qualidade em uma grande gama de contextos
acadêmicos, científicos, empresariais, governamentais e comerciais. No entanto, os modelos de negócio
e de contratos tradicionalmente utilizados na sociedade contemporânea não são perfeitamente adequados
para a forma como o software livre e produzido, disseminado e utilizado. Este minicurso discutirá como as
especificidades do software livre se refletem sobre o seu uso por indivíduos, empresas e governos e, em particular,
nos modelos de negócio aplicados à indústria de software. Além de um breve histórico do
movimento e de uma descrição da sua dinâmica, serão descritas as principais licenças
de software livre e suas consequências, as oportunidades e dificuldades de interação com a comunidade
e os principais modelos de negócio relacionados ao software livre, com exemplos de casos de sucesso.
JAI 3: Introdução ao desenvolvimento de software embarcado
Alexandra Aguiar, Sergio Filho, Felipe Magalhaes, Fabiano Hessel (PUCRS)
Mostrar resumo...
Sistemas embarcados estão presentes na vida da maioria das pessoas e a tendência é que cada vez mais esses
dispositivos sejam essenciais para o nosso dia-a-dia. Ao longo dos anos, a alta convergência dos sistemas resultou
em um constante acréscimo de funcionalidades nos dispositivos embarcados, principalmente os da indústria
de comunicação e entretenimento. Nesse contexto, o desenvolvimento de sistemas embarcados, onde o software
era projetado especificamente para uma aplicação tem dado lugar ao desenvolvimento baseado em plataformas,
onde o software atrelado a um sistema operacional vem ganhando destaque. O principal problema em se aumentar a
relevância do software reside no atendimento aos requisitos típicos dos sistemas embarcados, que mesmo com um
acréscimo nas funcionalidades ainda possuem limitações quanto ao tamanho do código, consumo de
energia, além de restrições temporais para determinadas aplicações. Assim, ferramentas
de auxílio ao desenvolvimento de software embarcado têm sido cada vez mais objeto de estudo. Este minicurso
apresenta conceitos introdutórios sobre o desenvolvimento de software embarcado além de fundamentos,
definições e, em um caráter teórico-prático, exemplos práticos de
desenvolvimento embarcado utilizando a plataforma Hellfire, seguido pelos desafios e oportunidades na área.
JAI 4: Meta-Aprendizado para Recomendação de Algoritmos
Bruno de Souza (USP), André Ponce de Leon F de Carvalho (ICMC-USP São Carlos), Ricardo Prudêncio
(UFPE)
Mostrar resumo...
A quantidade de dados gerados por diferentes fontes tem crescido em escalas cada vez maiores. Um dos Grandes Desafios da
Computação definidos pela Sociedade Brasileira de Computação é a gestão
desses grandes volumes de dados. A necessidade de analisar tais dados de forma automática tem demandado o
desenvolvimento de novos métodos de Aprendizado de Máquina e Mineração de Dados que possam
lidar com os problemas associados a esse desafio. Uma das dificuldades nas aplicações de Aprendizado de
Máquina é a recomendação dos algoritmos mais promissores para adquirir conhecimento
útil a partir de um conjunto de dados. O problema de recomendação de algoritmos é
investigado na linha de pesquisa denominada Meta-Aprendizado. Diferentes técnicas de Meta-Aprendizado
foram propostas e adotadas com sucesso para recomendação de algoritmos em tarefas clássicas de
Aprendizado de Máquina (por exemplo, classificação de padrões). Recentemente,
Meta-Aprendizado tem sido estendido para recomendação de algoritmos em domínios diversos, como
otimização combinatória, previsão de séries temporais e bioinformática,
apontando assim para um crescimento do interesse no tema. Este curso apresentará os conceitos básicos e as
técnicas existentes para o uso de Meta-Aprendizado em problemas reais. Como resultado, espera-se a
formação de pesquisadores que possam atuar com competência e autonomia nesse tema.
JAI 5: Swarming: como BitTorrent revolucionou a Internet
Marinho Barcellos, Matheus Lehmann, Flávio Roberto Santos, Rodrigo Mansilha (UFRGS)
Mostrar resumo...
O compartilhamento de arquivos via Peer-to-Peer (P2P) provocou uma revolução na Internet. Dentre as
tecnologias causadoras dessa mudança, BitTorrent foi alegadamente a mais importante. Para chegar lá,
BitTorrent partiu de uma sólida contribuição científica, particularmente o uso do conceito de
swarming, aliada a uma implementação aberta, funcional e suficientemente robusta da solução.
Este minicurso coleta, organiza, e apresenta de forma estruturada os inúmeros avanços propiciados por essa
tecnologia desde sua introdução, em 2003. Os conteúdos são apresentados de forma abrangente,
generalizando as lições (sempre que possível) a outras aplicações da Internet.
O tratamento dado ao tema combina teoria e prática, analisando como as políticas propostas em âmbito
científico através de artigos foram implementadas e que grau de sucesso tiveram. Amparamos a proposta de
minicurso na vasta experiência dos autores sobre o assunto BitTorrent e P2P em geral; aliamos o conhecimento
científico sobre a teoria subjacente com aspectos de implementações populares, em particular a de
código aberto que serviu como precursora para a popularização de BitTorrent.
JAI 6: Técnicas de otimização de código para placas gráficas
Fernando Quintao Pereira (UFMG)
Mostrar resumo...
Livros sobre algoritmos paralelos frequentemente descrevem modelos de execução, tais como PRAM, baseados em
uma máquina utópica que forneça tantos processadores quanto necessário para uma determinada
tarefa. Computadores modernos, de propósito geral, provêem somente alguns núcleos de processamento;
quatro sendo hoje um número razoável. Tal limitação coloca o modelo de execução
PRAM muito distante das possibilidades do desenvolvedor de aplicações tradicional. Contudo o baixo custo,
aliado à crescente programabilidade de placas de processamento gráfico (GPUs), está contribuindo para
a diminuição de tal distância. Atualmente, programadores podem ter acesso a um hardware com milhares
de unidades de processamento por algumas centenas de reais. Este novo mundo abre possibilidades, mas traz também
desafios. Talvez, pela primeira vez desde a popularização dos computadores, faça sentido abrir os
livros de compiladores nos capítulos finais, que tratam de conceitos e técnicas pouco conhecidas, como
espaços de iterações, e transformações de Fourier-Motskin. A fim de disseminar este
conhecimento, o presente material cobre, de forma condensada algumas técnicas de geração e
otimização de código que um compilador, ou mesmo o próprio desenvolvedor, poderia aplicar
para melhorar o desempenho de aplicações de propósito geral que executam em GPUs. Discutiremos
tanto a história quanto a natureza deste novo hardware, e mostraremos como técnicas de
compilação são efetivas e úteis para proteger os desenvolvedores das
complicações e sutilizas do ambiente de processamento gráfico.
JAI 7: Introdução a Redes Complexas
Daniel Figueiredo (UFRJ)
Mostrar resumo...
De forma mais geral, uma rede é uma abstração que permite codificar algum tipo de relacionamento
entre pares de objetos. Por exemplo, em redes sociais objetos são geralmente indivíduos e relacionamentos
representam algum tipo de relação social, como amizade ou trabalho em conjunto. Redes estão presente
por todos os lados e durante a última década um grande número de estudos empíricos vem
identificando propriedades peculiares em redes muito distintas, tais como redes sociais, redes tecnológicas, redes
de informação e redes biológicas. A estrutura topológica dessas redes possui um papel
fundamental pois influenciam diretamente a funcionalidade e os processos que operam sobre a rede. Por exemplo, o
ranqueamento por relevância de páginas Web, ou a propagação de uma novidade tecnológica
pelo Twitter. Redes Complexas surgiu como uma área multidisciplinar da Ciência que visa estudar e compreender
este abrangente fenômeno: como as "coisas" se conectam e quais são as consequências dessa
estrutura. O objetivo deste curso é fazer uma introdução ao tema Redes Complexas. Iremos
primeiramente apresentar estudos empíricos da estrutura de diversas redes reais, ilustrando propriedades
peculiares comumente encontradas nestas redes, tais como distribuições em lei de potência, que
dão origem às redes livre de escala. Em seguida apresentaremos modelos matemáticos que sejam
capazes de representar redes reais capturando seus aspectos topológicos mais importantes. Por fim, iremos
apresentar como algumas funcionalidades e os processos que operam nesta rede dependem de maneira fundamental da
estrutura topológica da mesma.
JAI 8: Engenharia de Computação Invisível
Linnyer Ruiz (UEM), Antonio Alfredo Ferreira Loureiro (UFMG), José Camargo da Costa (UnB), Rogerio Pozza (PPGEE-UFMG),
Paulo Cesar Goncalves (IFMS)
Mostrar resumo...
O minicurso irá apresentar o estado da arte da computação invisível, também conhecida
como computação em spray, computação escondida ou computação de poeira. Uma nova
perspectiva para a conhecida Computação Ubíqua que agora encontrou na área de nanotecnologia,
gerenciamento de grande volume de dados (em especial multimídia) e nos avanços da comunicação
sem fio, as bases para o seu avanço tecnológico. A expectativa é que em bem pouco tempo, uma
questão de poucos anos, o hardware computacional disponível para as mais diferentes aplicações
terá a dimensão nano e este hardware estará espalhado como spray, disponível como os telefones
e conectado a um mundo totalmente digital e sem fronteiras. A abordagem dada ao tema envolve as tecnologias existentes e
incipientes bem como as oportunidades de pesquisa tanto em hardware (plataformas como arduíno, rede de sensores sem
fio, xbee, nanosensores de parâmetros tangíveis) quanto em software (sistemas operacionais, compiladores,
sistemas baseados em transações, protocolos de comunicação, máquinas de contexto,
robôs para parâmetros intangíveis, protocolos de auto-configuração e auto-x). É
objetivo do minicurso introduzir os principais conceitos envolvidos com a computação que estará
disponível a todo momento e em qualquer lugar e que não será visível a olho nu. Trata-se da
computação emergente dos paradigmas nanotecnológicos e dos resultados de pesquisa em materiais
orgânicos e outros novos materiais. Um exemplo destes novos materiais é o LED (diodo emissor de
luz) fabricado a partir do óleo de buriti. Será dado ao tema um tratamento teórico e prático,
mostrando aspectos específicos das plataformas de hardware disponíveis. Está prevista uma
demonstração de vários protótipos de computação invisível, tais como a
computação invisível vestível (exemplos: a camiseta bafômetro, a camiseta de
CO2), o computador sombra que monitora e reproduz os movimentos de idosos e pacientes e que pode ser
aplicado aos esportista e a computação invisível doméstica, onde uma i-casa
(uma casa inteligente e ecológica) coleta parâmetros tangíveis (temperatura, pressão,
luminosidade, etc.) e intangíveis (fome, medo, nervoso, raiva, empolgação dos moradores) e se
configura de acordo com o perfil propondo, inclusive solução para os conflitos.