Análise de Algoritmos

Referências:
[KT05] Kleinberg, J., & Tardos, É. (2005). Algorithm Design (1st ed.). Boston: Addison-Wesley.
[CLRS09] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms (3rd ed.). Cambridge: MIT Press.
[HF04] Harel, D., & Feldman, Y. A. (2004). Algorithmics: The Spirit of Computing (3rd ed.). Harlow: Addison-Wesley.
[T98] Taylor, R. G. (1998). Models of Computation and Formal Languages. New York: Oxford University Press.

Algoritmo de Gale-Shapley
Exemplo de binary search
Big-O cheat sheat
Grafos
Algoritmos gulosos
Divisão e conquista
Programação dinâmica
NP e intratabilidade
Teoria da computação
Distâncias: algoritmos aproximativos
Distâncias: algoritmos randomizados
Extra: IA

Trabalho…

  1. (GABRIEL) Trabalho de análise de algoritmo, em Latex
    23/03 Trabalho 1
    Questao 1. Disserte sobre algoritmos aproximativos.
    Questao 2. Disserte sobre algoritmos randomizados.
    Comente sobre:
  2. A motivação por tras destes algoritmos
  3. Sua importância para a computação
  4. Suas principais características,
  5. Algumas das tecnicas para projetar estes tipos de algoritmos
  6. As diferenças deste tipo de algoritmo para outros tipos vistos em aula.
  7. Apresente um exemplo de algoritmo aproximativo e comente
  8. Em linhas gerais, sua analise de complexidade.

30/03 Trabalho 2 – algoritmo
Questao 1. Disserte sobre analise de algoritmos.
Sua resposta deve englobar os seguintes temas: tratabilidade, complexidade assintotica, notação Big O, e classes de função.
Para cada tema, explique: o conceito, comente sobre sua importancia, e apresente exemplos.

Questao 2. Disserte sobre tecnicas de projeto de algoritmos.
Sua resposta deve abordar as seguintes tecnicas: A) algoritmos gulosos, B) divisão e conquista, e C) programação dinâmica.
Diferenças entre as técnicas.
Situações de uso (em quais situações é mais indicada em relação aos demais).
Idéia geral de cada técnica.
Discuta a importância para a computação.
Características principais.
Forma de analisar algoritmos usando essas técnicas.
Cite exemplos de algoritmos que usam essas técnicas e que estejam alinhados com o tema se dua pesquisa.

Internet das Coisas e Aplicações Distribuídas

Programa de Pós-Graduação em Computação Aplicada
Disciplina: INTERNET DAS COISAS E APLICAÇÕES DISTRIBUÍDAS
Professor: Cristiano André da Costa e Rodrigo da Rosa Righi

EMENTA Aborda o paradigma da Internetdas Coisas (ou IoT, do termo em inglês Internet of Things)e suas aplicações. Inclui aspectos de middleware, sensores, arquitetura e protocolos empregados. Ainda, a disciplinatambém aborda questões como desempenho da solução, escalabilidade e interoperabilidade. Por fim, apresenta estudos de casos em diferentes áreas de aplicação, como saúde, comércio eletrônico, logística, transporte e energia.

CONTEÚDO PROGRAMÁTICO •Introdução a Internet das Coisas•Arquiteturas e Middlewares de IoT•Integração de IoT e Computação em Nuvem •Interoperabilidade, Elasticidade, Escalabilidade e Escalonamento•Computação Móvel e Ubíqua•Ciência de Contexto para IoT•Wearables e Sensores•Protocolos de Comunicaçãopara IoT•Áreas de Aplicação e Estudos de Caso

BIBLIOGRAFIA BÁSICA:
GUBBI, Jayavardhana et al. Internet of Things (IoT): A vision, architectural elements, and future directions.Future generation computer systems, v. 29, n. 7, p. 1645-1660, 2013.LI, S.; DA XU, L.; ZHAO, S. The internet of things: a survey. Information Systems Frontiers, v. 17, p. 243–259, 2015.XIA, Feng et al. Internet of things.International Journal of Communication Systems, v. 25, n. 9, p. 1101, 2012.

BIBLIOGRAFIA COMPLEMENTAR:
RIAZUL ISLAM, S. M. et al. The Internet of Things for Health Care: A Comprehensive Survey. IEEE Access, v. 3, p. 678–708, 3 jun. 2015.PERERA, C. et al. Context Aware Computing for The Internet of Things: A Survey. Communications Surveys & Tutorials, IEEE, v. 16, n. 1, p. 414–454, 2014.KELLY, Sean Dieter Tebje; SURYADEVARA, Nagender Kumar; MUKHOPADHYAY, Subhas Chandra. Towards the implementation of IoT for environmental condition monitoring in homes.IEEE Sensors Journal, v. 13, n. 10, p. 3846-3853, 2013.WANT, Roy. An introduction to RFID technology.IEEE pervasive computing, v. 5, n. 1, p. 25-33, 2006.

Trabalho 1…

IoT_Apresentacao1

Trabalho 2…

IoT_Apresentacao2

Trabalho 3…

IoT_Apresentacao3

Trabalho 4…

Trabalho de IoT/App distribuídas:
29/05 – Entrega de trabalho
Escolher middleware…. ThingSpeak ???

  1. Descrever o que faz… quais funcionalidades, como programa, prós e contras
    comparação com outros concorrentes
  2. Implementação, mostrar código, processos que se comunica na rede, como modelaram, explicar linhas do código
  3. Mostrar resultados, testes, telas do programa, tráfego de dados, dados de desempenho, tempo de comunciação, largura de banda, testes de resultados
  • Escolha um middleware IoT ou de Sistemas Distribuídos (exemplos de áreas: saúde, segurança, banco de dados, comunicação, Big Data, sistema de arquivos, sensores e atuadores, Indústria 4.0).
  • Faça um documento de aproximadamente 10 páginas utilizando o processador LATEX (recomendável usar a plataforma Overleaf) e om modelo de textos da SBC (já disponível no Overleaf) que tenha:
    1/ Análise descritiva do Middleware que você escolheu e uma comparação com os concorrentes.
    2/ Dados de Implementação, ou seja, código e algoritmos e suas descrições.
    3/ Uma seção de resultados e testes, mostrando que a sua implememntação de fato executou em um sistema distribuído: por exemplo, pensar em gráficos, latência, largura de banda, rtelas, dados numéricos, investigação de protocolos e cabeçalhos.

Prospecção de Dados e Extração do Conhecimento

Disciplina: Prospecção de Dados e Extração do Conhecimento

EMENTA:
Apresenta tópicos de prospecção de dados (data mining) e extração de conhecimentos em bancos de dados (knowledge data discovery), data warehouse, modelos descritivos, temporais e baseados em transações, métodos visuais, grafos, classificação, agrupamento e análise de dados multivariada. Aborda, também, métodos para extração de conhecimento de redes neurais e algoritmos genéticos.

CONTEÚDO PROGRAMÁTICO:
Introdução à descoberta do conhecimento em bases de dados (KDD) abordando questões relacionadas à Big Data;-Exploração de aspectos relacionados ao processo de pré-processamento de dados, tais como: seleção, limpeza e transformação de dados;-Seleção de características e redução da dimensionalidade;-Avaliação e interpretação dos modelos de prospecção de dados;-Exploração das principais tarefas de mineração de dados: classificação, clusterização e associação;-Aprendizado de máquina aplicado à extração do conhecimento;OBJETIVOSProporcionar aos alunos domínio sobre os conhecimentos e ferramentas necessários para prospecção de dados no contexto da Internet, especialmente envolvendo a computação em nuvem. Compreender os algoritmos, técnicas e ferramentas utilizadas para a extração do conhecimento sobre grandes volumes de dados. Entender como a inteligência artificial pode ser empregada para auxiliar no processo de mineração de dados.

METODOLOGIA
(I) aulas expositivas e dialogadas com utilização de quadro e data show;
(II) incentivo ao desenvolvimento de pesquisas através da escrita de artigos científicos relacionados aos temas abordadosem aula;
(III) incentivo à participação ativa dos alunos no processo de aprendizagem a partir de diversas apresentações durante o semestre, que podem envolver o andamento dos artigos que serão desenvolvidos, mas também outros trabalhos propostos.

BIBLIOGRAFIA BÁSICA
LESKOVEC, Jure; RAJARAMAN, Anand; ULLMAN, Jeffrey D. Mining of Massive Datasets. Cambridge University Press; 2 edition, 2014.
Christopher D. Manning,Prabhakar Raghavan,Hinrich Schütze. Introduction to Information Retrieval. Cambridge University Press, 2008.
HAN, Jiawei; KAMBER, Micheline; PEI, Jian.Data mining:concepts and techniques. 3rd ed. Waltham [Estados Unidos]: Elsevier: Morgan Kaufmann, 2012
BUYYA, Rajkumar; BROBERG, James; GOSCINSKI, Andrzej (Ed.).Cloud computing:principles and paradigms. Hoboken [Estados Unidos]: Wiley, 2011
GOODFELLOW, Ian; BENGIO, Yoshua; COURVILLE, Aaron.Deep learning.Cambridge [Estados Unidos]: MIT Press, 2016

BIBLIOGRAFIA COMPLEMENTAR
MURPHY, Kevin P.Machine learning:a probabilistic perspective. Cambridge [Estados Unidos]: MIT Press, 2012
MITCHEL, Tom. Machine Learning. McGraw-Hill, 2017.
SINGH, Chanchal; KUMAR, Manish. Mastering Hadoop 3: Big data processing at scale to unlock unique business insights. Packt Publishing, 2019.
RYZA, Sandy; LAERSON, Uri; OWEN, Sean; WILLS, Josh. Advanced Analytics with Spark: Patterns for Learning from Data at Scale. O’Reilly Media; 2 edition, 2017.
IEEE Transactions on Big Data.
IEEE Transactions on Knowledge and Data Engineering.
IEEE Big Data Mining and Analytics.
IEEE Surveys & TutorialsI
EEE Cloud Computing
ACM Computing Surveys
ACM Transactions on Knowledge Discovery from Data
ACM Transactions on Storage
ACM Transactions on the WebJournal of Data and Information Quality

Trabalho realizado…

Apresentacao_clustering_v2

Trabalho…
(RAFAEL )Trabalho de prospecção de dados e extração do conhecimento
Sobre que assunto: Data mining, big data, knowledge discovery, ML
02/03 – Vídeo de 5 minutos com a ideia do artigo e possíveis locais de publicação
23/03 – Entregar documento contendo a estrutura do texto, definição do artigo, estutura de tópicos, apresentação de como será feito o artigo, estrutura do IEEE
13/04 – Entrega parcial – texto e vídeo (ler descrição)
O documento deve conter, pelo menos:
1) Definição do problema, na seção de introdução
2) Descrição e análise de, pelo menos, 5 trabalhos relacionados
3) Overview da solução proposta
Além disso, o aluno deve postar um vídeo de 5 minutos, no máximo,
explicando a solução proposta.
8/6 – Entrega do artigo e da apresentação (15/20 minutos)