Ciência de Dados

Ciência de Dados (Data Science) é uma área interdisciplinar que investiga modelos, métodos, processos, algoritmos e ferramentas que permitam extrair conhecimento e descobertas de dados heterogêneos (estruturados ou não), geralmente em grande volume e advindos de diferentes fontes.

Atualmente, esta área compreende as seguintes linhas de pesquisa:

 

Algoritmos e estruturas de dados para Ciência de Dados

Os conjuntos de dados com os quais precisamos lidar atualmente são caracterizados pelo seu grande volume, variedade e velocidade de produção e aquisição. Essas características  trazem novos desafios para modelagem, processamento e análise de dados. Nesta linha investigam-se algoritmos e estruturas de dados eficientes para enfrentar esses desafios.

 

Análise visual e exploratória de dados

Análise visual e exploratória de dados busca combinar os pontos fortes de percepção e cognição humana com os pontos fortes de capacidade de processamento de sistemas computacionais. Nesta linha investigam-se formas de visualização e de interação com dados, bem como ambientes que deem suporte à atividade de análise visual.

 

Frameworks e ferramentas para Ciência de Dados

Trabalhar com dados envolve capturar dados heterogêneos de diferentes fontes, armazená-los, ajustá-los, visualizá-los, criar modelos e aplicar métodos para análise. Há uma grande demanda por ferramentas flexíveis, configuráveis e integradas para apoiar as diversas atividades envolvidas. Nesta linha investigam-se tais ferramentas, desde sua concepção até o seu desenvolvimento.

 

Métodos e modelos para Ciência de Dados

Com a crescente disponibilidade de dados heterogêneos, massivos e de aquisição contínua (“streaming”), abordagens existentes para modelagem e análise de dados podem se tornar inadequadas. Nesta linha de pesquisa investigam-se novos métodos e modelos para superar as limitações das abordagens atuais e lidar de forma mais eficaz com esses grandes volumes dados.

Redes de Computadores e Sistemas Distribuídos

A pesquisa na área de sistemas distribuídos e redes de longa distância trata de problemas relacionados a protocolos e serviços interredes. São estudados problemas relacionados com projeto e gerenciamento de redes com grande número de nós, como a Internet. A existência de tais redes abre uma nova gama de possibilidades em termos de uso remoto de recursos. Este uso só pode se tornar realidade na medida em que forem oferecidas ferramentas eficientes para busca e acesso a informação. Este é outro tema de trabalho na área de sistemas distribuídos.

Na área de redes locais e de alta velocidade, a pesquisa com aplicações como teleconferência e correio eletrônico conduziu ao trabalho com sistemas hipermídia. Atualmente existe no departamento um projeto em andamento nesta área, com o objetivo de produzir uma ferramenta para construção de aplicações hipermídia. Esta ferramenta deve dar suporte a aplicações com arquitetura distribuída, o que implica, entre outras coisas, na necessidade de garantir banda passante para as diferentes mídias (por exemplo, voz e vídeo) através de uma rede de alta velocidade. Uma outra linha de trabalho nesta área estuda problemas relacionados ao uso de sistemas hipermídia, com ênfase no desenvolvimento de metodologias para autoria de hiperdocumentos.

Ainda dentro da área de Sistemas Distribuídos, são desenvolvidas pesquisas sobre arquiteturas e algoritmos para máquinas paralelas e distribuídas, voltados para a computação científica de alto desempenho, além do estudo de questões básicas em paralelismo tais como problemas de alocação de processadores e escalonamento de tarefas. Algumas das disciplinas básicas nesta área são Redes de Computadores, Redes Locais de Computadores, Modelagem e Simulação Discreta de Sistemas e Fundamentos de Sistemas Multimídia. Também são oferecidas disciplinas de Sistemas Hipermídia e Aplicações, Engenharia de Redes, Redes de Alta Velocidade, Gerência de Redes, Sistemas Distribuídos e Algoritmos e Arquiteturas Paralelas.

Otimização e Raciocínio Automatico

As pesquisas na área de raciocínio automático têm como objetivo o projeto e a análise de programas que aprendem modelos de classificação/predição a partir de bases de conhecimento e, também, de programas que aprendem políticas/estratégias de ação a partir de tentativa e erro.

As pesquisas na área de otimização combinatória têm como objetivo desenvolver métodos que permitem resolver eficientemente problemas cujo objetivo é encontrar soluções boas/ótimas, segundo algum critério de qualidade, a partir de um universo grande, porém finito, de soluções.

Linguagens de Programação

Linguagens de programação constituem uma linha básica da computação, separada da Engenharia de Software em várias classificações, por exemplo nos códigos de linha do CNPq. Nesta linha estão incluídas as pesquisas referentes a compiladores, autômatos e ambientes de programação. Em especial, dirigem-se esforcos para o desenvolvimento de compiladores e interpretadores para linguagens extensíveis e linguagens orientadas a objetos. Vale ressaltar que esta área já conta com um simpósio nacional organizado pela Sociedade Brasileira de Computação.

Interação Humano-Computador

A área de Interação Humano-Computador (IHC) se dedica a investigar a interação entre pessoas e artefatos de base computacional. Tem por objetivos principais: alavancar o desenvolvimento de novas tecnologias; aumentar a qualidade dos produtos tecnológicos existentes; e subsidiar a pesquisa científica em várias áreas envolvidas com Computação, Ciências Sociais e Humanas.

Hoje esta área se destaca da Engenharia de Software, constituindo um campo fortemente interdisciplinar. Dentre as disciplinas envolvidas em IHC, destacam-se a Psicologia, a Ergonomia, o Design Gráfico, a Semiótica e, sobretudo em interfaces inteligentes, a Lingüística Computacional e Análise do Discurso.

Na pós-graduação em Informática da PUC-Rio, as pesquisas estão mais concentradas em Engenharia Semiótica, uma nova abordagem para o projeto e a avaliação de ambientes de interação entre usuários e sistemas. Este trabalho é desenvolvido no SERG (laboratório do Grupo de Pesquisa em Engenharia Semiótica).

Também se destacam os trabalhos envolvendo IHC realizados em Engenharia de Software, Hipertexto e Multimídia, e Computação Gráfica.

Hipertexto e Multimídia

A área de Hipertextos e Multimídia estuda os diversos aspectos envolvidos no uso de informações e conhecimento representados em múltiplas mídias. As pesquisas desenvolvidas abrangem desde os fundamentos até a utilização destas tecnologias e conceitos na solucão de problemas do mundo real.

Na parte de fundamentos, são investigados os métodos e princípios de representação, armazenagem, transmissão e apresentação de dados multimídia (mídias contínuas), tanto em ambientes centralizados quanto em ambientes distribuídos. Dentre os temas estudados incluem-se, entre outros, modelos de representação eficientes, modelos de dados hipermídia, modelos conceituais de documentos hipermídia, modelos para a orquestração na apresentação de objetos multimídia, sistemas de armazenagem em memória principal e secundária, e protocolos de transmissão de alto desempenho.

Na parte de aplicações, são investigados métodos de desenvolvimento de aplicações hipermídia, sobretudo aplicações concebidas para formarem parte de um time homem-máquina que atua na solução de problemas reais, tais como os sistemas de informações baseados na WWW. Entre outros temas, são investigados modelos centrados no usuário, modelagem orientada a objetos, modelagem de navegação, modelagem de interfaces, “design patterns” para hipermídia, “frameworks” para aplicações hipermídia, ambientes e “frameworks” para a implementação destas aplicações em várias plataformas de hardware e software, incluindo a WWW.

As pesquisas na área de hipertexto e multimídia são fortemente relacionadas com pesquisas em outras áreas do departamento, como por exemplo Redes de Computadores, Bancos de Dados e Engenharia de Software.

Engenharia de Software

A área de Engenharia de Software engloba várias disciplinas e visa trazer para a construção de software os métodos de trabalho das engenharias tradicionais. Uma das principais metas da engenharia de software é construir software podendo-se falar em qualidade do produto e respeito a custo/cronograma predefinidos. No atual estágio de seu desenvolvimento, atua-se no sentido de oferecer as facilidades já disponíveis nas demais engenharias. Dentro desse contexto, o Departamento de Informática desenvolve atividades de ensino e pesquisa direcionadas para a criação de métodos, técnicas e ferramentas para aprimorar a prática da engenharia de software e aprofundar os conhecimentos teóricos para que o processo de construção de software tenha uma base sólida. Como o produto software é diferenciado dos produtos padrões das engenharias clássicas, é necessário também desenvolver pesquisas que incorporem experimentação controlada visando não só validar teorias como também formulá-las. O Departamento de Informática vem atuando com grande destaque nas seguintes áreas: fundamentos teóricos, ambientes automatizados para apoio à produção de software, especificação e desenho de software, re-engenharia, modularidade de software, engenharia de requisitos, construção de compiladores orientados a objetos e gerência do processo de desenvolvimento de software.

Computação Gráfica

O programa acadêmico cooperativo de Computação Gráfica envolve os departamentos de Informática, Engenharia Mecânica, Engenharia Civil e Matemática, e conta com a colaboração do IMPA. O laboratório mais abrangente do programa é o Laboratório de CAD Inteligente (ICAD), tanto do ponto de vista do número de pesquisadores quanto do grau de integração com a indústria.

O ICAD mantém programas de cooperação a nível nacional (UNICAMP) e internacional (Imperial College, IST- Lisboa, Cornell). A indústria participa do programa através do Grupo de Tecnologia em Computação Gráfica (TeCGraf) do ITS. O programa tem linhas de pesquisa nas seguintes áreas: síntese de imagens, animação (animação tradicional, animação baseada em modelos físicos, animação comportamental), processamento de imagens, modelagem geométrica, CAD, design e interfaces.

Banco de Dados

Os Sistemas de Gerenciamento de Bancos de Dados (SGBDs) são fundamentais para suporte a várias áreas de aplicações. No passado, as pesquisas voltaram-se para SGBDs para suporte a aplicações típicas, tais como gestão de pessoal e financeira. O advento de novas aplicações não-convencionais, tais como multimídia, CAD, CASE e cartográficas, tem impulsionado a pesquisa em Banco de Dados no sentido de adequar os SGBDs e as metodologias de projeto de aplicações aos seus requisitos. Exemplos de novas tendências de pesquisa na área de Bancos de Dados, nas quais concentram-se algumas das pesquisas em andamento do Departamento, são a orientação a objetos, bancos de dados dedutivos, interfaces cooperativas, e SGBDs para ambiente de software, entre outras.

Teoria da Computação

A área de Teoria da Computação visa fornecer fundamentos matemáticos rigorosos para as diversas áreas da Informática. O grupo de pesquisadores que a compõem no Departamento está envolvido em projetos que vão desde a lógica formal até a semântica denotacional, os cálculos de construção de programas e o projeto e análise de algoritmos sequenciais e paralelos. Na área da lógica formal tem-se obtido resultados significativos sobre generalizações dos conceitos de extensão, interpretação e implementação entre teorias para lógicas quaisquer. Na área de lógica algébrica desenvolveu-se uma álgebra relacional estendida, conhecida como Fork-Álgebra – a primeira álgebra finitamente axiomatizável da lógica de primeira ordem com igualdade. Na área da semântica de linguagens tem-se desenvolvido diferentes lambda-calculi baseados em lógicas subestruturais com modelos topológico-categóricos, tendo como principal objetivo uma caracterização estrutural de concorrência/paralelismo. Já na área de construção formal de programas foram desenvolvidos tanto um cálculo de programação não determinístico como diversos modelos formais do processo de desenvolvimento de software e ferramentas para apoiá-los. Na área de projeto e análise de algoritmos dedica-se especial atenção ao desenvolvimento de algoritmos seqüenciais e paralelos para problemas de otimização combinatória, teoria dos grafos e programação linear/inteira/dinâmica, envolvendo freqüentemente aplicações em problemas práticos em computação, automação e engenharia.