Zusammenfassung der Ressource
FPC - Formação Profissional em
Computação COM200
- 1. PC
Anmerkungen:
- “Capacidade de sistematizar, representar, analisar e resolver problemas”, Seymour Papert.
- sdadad
- dxzccxz
- 4 ?️
- 1. Decomposição
Anmerkungen:
- processo que divide os problemas em partes menores para facilitar a resolução, desenvolvimento e gerenciamento.
- 2. Reconhecimento
de Padrões
Anmerkungen:
- os padrões são similaridades ou características
que alguns problemas compartilham. Quanto mais padrões encontrarmos, mais fácil e rápida será a nossa tarefa geral de solução de problemas.
- 3. Abstração
(FOCO)
Anmerkungen:
- filtragem e classificação dos dados, criando mecanismos que permitam separar apenas os elementos essenciais em determinado problema,
ignorando detalhes irrelevantes. Permite criar uma representação (ideia) do que está se tentando resolver.
- 4. Algoritimo
- Lógica - Aristóteles
- Regra do Pensar
Anmerkungen:
- A lógica guia o raciocínio humano através de argumentos para chegar a conclusões de verdade.
- Internet - 1969
- Dec. 70 - TCP/IP
- Dec.80 - Redes base TCP/IP
- 1988 - Redes Comerciais USA
- 1989/1990 - Tim Bernes-Lee => WWW
- Dec. 90 - 1ªs Empresas web - ex.: Amzon
- Dec. 2000 - ⬇?? e WWW
- Conceitos Básicos em Computação
- 1. Linguagens de Programação
Anmerkungen:
- São linguagens usadas para a comunicação com o
computador.
- Projeto e Avaliação = f(variávei
de proj. e domínio)
Anmerkungen:
- O projeto e a avaliação de uma linguagem de programação são altamente dependentes das variáveis do projeto e do domínio
- Importante na avaliação de linguagens:
i) legibilidade, ii) a facilidade de escrita,
iii) a confiabilidade e iv) o custo.
- 2. Desenvolvimento de Software
Anmerkungen:
- É o ato de elaborar e implementar um sistema
computacional
- 3. Ciência de Dados
Anmerkungen:
- É uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a
extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão.
- 4. POO
Anmerkungen:
- É um modelo de análise, projeto e programação de software. baseado na composição e interação entre diversas unidades chamadas de 'objetos'.
- 2. Colab -> Python
-> Ciência de Dados
Anmerkungen:
- Introdução ao Google Colab para implementação em Python e Ciência de Dados
- Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte.
- IDE é um pacote de software que consolida as ferramentas básicas necessárias para escrever e testar softwares.
- Des. em Python
- IPython
Anmerkungen:
- Em 2001, é disponibilizado o interpretador interativo
IPython com o qual é possível administrar computação paralela usando comunicação
assíncrona e/ou MPI e permite customização e flexibilidade para executar diretamente
códigos Python.
- Des. Jupyter
Anmerkungen:
- P/ desenvolver software de código aberto e padrões abertos e serviços para computação
interativa.
- 3 principais lingaguens suportadas pelo Jupyter:
- Julia
- Python
- R
- Google Colab
Anmerkungen:
- baseado nos conceitos do IPython
- O Colab é um serviço de armazenamento em nuvem de notebooks voltados à criação e execução de códigos em Python, diretamente em um navegador, sem a
necessidade de nenhum tipo de instalação de software em uma máquina. O Google Colab é
hospedado pelo Jupyter Notebook, e possibilita o comportamento de código + anotações
e markdown do Colab.
- Notebook (NB).
- 1. JSON
Anmerkungen:
- Para compartilhar códigos em Python.
- 2. RTF (Rich Text Format)
Anmerkungen:
- Para publicar códigos online.
- Jupyter NB ≠ Google Colab
- Jupyter NB
- Instalado ?
- Google colab
- Diteto => WWW
- + Vantagens
- 0 Configuração
Anmerkungen:
- Google Colab não exige absolutamente nenhuma configuração externa para o seu uso.
- Acesso gratuito a GPUs
Anmerkungen:
- O hardware padrão da máquina criada pelo Colab para um notebook é o CPU, mas é possível acessar gratuitamente um GPU com uma simples
configuração interna. A GPU, para alguns processamentos, é muito mais eficiente
que a CPU, principalmente em cálculos avançados de deep learning, entretanto, é sempre bom conhecermos estas opções e possibilidades.
- Bibliotecas Pré-Instaladas
- 3. Desenvolvimento
de Software
- Projeto - Definição PMBOK
Anmerkungen:
- É um esforço temporário que tem como finalidade
um resultado único e possui recursos delimitados.
- Sempre algo NOVO.
- Projeto -> Temporário:
Início, Meio e Fim.
- Projeto ≠ Processo
Anmerkungen:
- - Projeto: Atividade Temporário (com Início, Meio e Fim).
- Processo: Atividade Repetitiva
- 1° Entender o SISTEMA
Anmerkungen:
- Deve-se determinar o objetivo geral do sistema e
os papéis do hardware, software, pessoal, bases de dados e outros elementos. Requisitos
operacionais precisam ser obtidos, analisados, especificados, modelados, validados e
gerenciados.
- ⇧ Softwares -> Sobmedida
- </> Software => É Desenvolvido,
não fabricado (físico)
Anmerkungen:
- - Não é fabricado;
- É desevolvido => Sistema de Engenharia
- ? Manuteção de Software </> +
Complexa do que hardware ??
Anmerkungen:
- Manutenção, desgastes e falhas:
?? => Troca
? Software => Erros no Projeto ou no Código.
- Texto sobre o resumo da página anterior:
Quando um componente de hardware se desgasta, é substituído por uma peça sobressalente; em contrapartida, no software, não há peças sobressalentes. Falhas de software indicam erros no projeto ou na codificação; por isso, a manutenção de software é muito mais complexa que a manutenção de hardware.
- </> Eng. de Software deve ser:
- sistemática, disciplinada e capaz de ser medida Δt
Anmerkungen:
- Importante na construção de </>:
• Tipo e a ordem de execução de atividades na construção do software;
• Modelos gráficos descritivos do software;
• Diretrizes com base em boas práticas de projeto.
- </> Desenvolvimento e Manutenção de Software:
- Contempla: i) recursos, ii) ferramentas,
iii) atividades, iv) artefatos e v) organização.
- ? </>
Processo de
Software
- É um conjunto de atividades para
especificação, projeto, implementação e
teste de software (Sommerville)
- Modelo ? </>
- É uma representação abstrata de um processo. É a descrição de
um processo, a partir de uma perspectiva particular.
- Cliclo de Vida ?</>
Anmerkungen:
- A situação do projeto => Determina o ciclo de vida do projeto.
- 1. Preditivo:
Anmerkungen:
- Neste modelo, o escopo, o prazo e o custo do projeto são determinados
nas fases iniciais e qualquer mudança necessária deve ser cuidadosamente avaliada
para que não se distancie do previsto inicialmente.
Exemplo: construção civil.
- 2. Interativo:
Anmerkungen:
- Recomendável para projetos que já possuam a definição do que será
entregue de maneira clara, porém, com prazo e custos ainda desconhecidos. Cada
volta no ciclo de vida chamamos de iteração. A cada iteração, a equipe compreende
melhor o problema, e as estimativas de prazo e custos são atualizadas.
- 3. Incremental
Anmerkungen:
- A entrega é realizada por partes e pouco a pouco o produto final vai sendo formado. A cada novo conjunto de funcionalidades que é criado, um incremento é entregue. O ciclo de vida incremental também utiliza iterações para marcar cada entrega de um incremento. O produto, serviço ou resultado só pode ser
considerado completo após a última iteração.
- 4. Adaptativos (ágeis):
Anmerkungen:
- Este modelo de ciclo de vida utiliza características dos Iterativos e Incrementais somados a conceitos de metodologias ágeis, obtendo, assim, resultados melhores em ambientes com muitas incertezas. O detalhamento do escopo é definido e aprovado antes do início de cada iteração.
- 5. Híbrido:
Anmerkungen:
- É a combinação do ciclo de vida preditivo com o adaptativo. Enquanto o preditivo espera um ambiente completamente conhecido e o adaptativo um ambiente
totalmente incerto, o modelo híbrido busca encontrar um equilíbrio entre os dois.
- ?</>
- Gerencia Projetos
- ?????????
Pessoas
- Soft e Hardskills
Anmerkungen:
- Habilidades:
• Deve estimular as habilidades dos integrantes da equipe, para assim desenvolver
confiança e aperfeiçoar as formas de comunicação;
• É responsável por intermediar a comunicação, buscando sempre proteger a equipe e
mantê-la unida com um verdadeiro time;
• Capacidade de Liderança;
• Eficiência na comunicação;
• Poder de negociação;
• Disciplina e organização;
• Persistência;
• Visão a logo prazo;
• Tomada de decisão;
• Desenvolver a equipe;
• Proatividade;
• Motivação e otimismo.
- 4. Padrões da Web,
HTML, JSON e Python
Anmerkungen:
- As especificações
e guias técnicos são desenvolvidos e propostos pelo W3C (World Wide Web Consortium).
- Tecnologias WEB
- - HTML - CSS -
JS -Ajax - XML
- JSON
Anmerkungen:
- Ajax é o uso metodológico de tecnologias como Javascript e XML, providas por navegadores, para tornar páginas Web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações.
- XML é uma recomendação da W3C para gerar linguagens de marcação para
necessidades especiais. Seu propósito principal é a facilidade de compartilhamento
de informações por intermédio da internet.
- JSON => BOM para Troca de Dados.
JSON (JavaScript Object Notation - Notação de Objetos JavaScript) é uma formatação leve de troca de dados. Para seres humanos, é fácil de ler e escrever. Para
máquinas, é fácil de interpretar e gerar.
JSON é em formato texto e completamente independente de
linguagem, pois usa convenções que são familiares às linguagens C e familiares,
incluindo C++, C#, Java, JavaScript, Perl, Python e muitas outras.
- Biblioteca JavaScript é um
“pedaço de código” reutilizável
- Framework JavaScript é uma abstração que combina códigos comuns para serem
reutilizados.
Objetivo resolver problemas recorrentes com uma
abordagem genérica
- jQuery - 2006
- Principal ???? JC
- Bootstrap - 2010
- Principal frameworks JS WWW
e open-source
- => Padrões para o
desenvolvimento
HTML, CSS e JavaScript.
- React -
Anmerkungen:
- React -> Biblioteca ????
- Criação Instagram
- Insterfaces Eficientes
- AngularJS
- Frameworks JS + Importantes p/
Desv. WWW mantido Google
- Angular(s/JS)
- Multiplataformas
Anmerkungen:
- O estilo da arquitetura mudou para ser baseado em componentes e, devido ao TypeScript, o Angular 2 recebeu um novo compilador incorporado.
- Node.js
- Escalável ??
- Vantagens e Desvantagens de
Frameworks
Anmerkungen:
- https://prnt.sc/Zbsi87UcK-Rg
- 10 Frameworks para
Des. Software
Anmerkungen:
- https://prnt.sc/nqQRnd54nBqT
- 5. Framework Python,
APIs e Web Services
- Frameworks Python
- n° 1 - Django (www)
Anmerkungen:
- Quem usa: Pinterest, Instagram,
Bitbucket, Mozilla, Disqus e The Washington Times.
- Vantagens Djando:
•Contínua evolução
•Estrutura de alto nível escalável
•Variedade de bibliotecas
•Projetos de médio e grande porte
•Mecanismos de autenticação
•Conectividade com BDs
•Web Service REST
- Open Source
- ⬆???
- ? Acesso Dados no BD
- Django Admin
(interface usuário)
- Recursos:
- Mecanismo de autenticação e autorização, interface
administrativa, URLs amigáveis, sistema de templates, cache
integrado ao memcached, o roteamento de URLs, suporte
para aplicações multi-idioma (internacionalização).
- Arquitetura Django
Anmerkungen:
- https://prnt.sc/UK0ZG6C4vA9x
- MTV (Model, Template, View)
- Model: Mapeamento do banco de dados para o projeto;
- Template: Páginas para visualização de dados. (HTML)
- View: Lógica de negócio. (Projeto acontecendo)
- BD
- PostgreSQL, MySQL e Oracle e NoSQL
- extensão -> criação de web services
RESTful
- Django REST
- Flask (www)
Microframe-Work
Anmerkungen:
- micro-framework núcleo simples, mas estendível.
- ????
- WSGI Werkzeug e Jinja2
- web2py 2007
- Open Source
- Inspirado nos frameworks
Ruby on Rails e Django
- Foco: Usabilidade
- CherryPy 2002
- Open Source
- Apps Complexos
- => desenvolvimento ágil Apps www, POO. P/ qq
tecnologia acesso a dados, modelos etc.
- licença BSD
- Bottle 2009
Microframe-Work
- licença MIT
- WSGI rápido, simples e leve
- Única dependência
Padrão Python
- APIs
- Normalmente
www
Anmerkungen:
- Ou arquivos locais (como um arquivo JAR em um programa Java, arquivo .h em programas C / C ++, etc.)
- Serviço da Web
- ?----------?
- “Todo Web Service pode ser considerado
API, MAS não toda API é um Web Service.”
- 6. IoT (protocolos
MQTT e REST)
Anmerkungen:
- Conectar objetos físicos que possuam tecnologia embarcada com sensores e conexão para coletar dados, transmiti-los, receber dados e enfim fornecer serviços.
- IoT no início: RFID, Wireless.
Agora: bluetooth, sigbi, 3G, 5G
- IoT e a Indústria 4.0 “andam de mãos dadas”
- Aquisição de dados, análise destes dados em tempo real
⏳ e offline, aprendizado de máquina, visualização de
dados e outros tópicos importantes para big data
- Coisa: é um objeto do
nosso dia a dia
- Dispositivo: um sensor, atuador ou tag.
Geralmente o dispositivo é parte de uma coisa
Anmerkungen:
- Dispositivos são sensores ou atuadores.
Exemplo:
temperatura, umidade, pressão, luminosidade, nível de som, fluxo de fluido, vibração e abrasão.
- Os sensores fornecem informações sobre a entidade física que monitoram.
- Tags - Foco: Facilitar
a identificação
- gateways (ou hubs)
Anmerkungen:
- Fornecem tradução segura de protocolo entre dispositivos e a nuvem, e podem suportar tarefas como armazenamento e pré-processamento de dados, descoberta de serviços, geolocalização,
verificação e cobrança. Eles tb entregam os pedidos de atuação da nuvem para os dispositivos.
- coletam, pré-processam e transferem dados de
dispositivos IoT e seus sensores, empregando diferentes
protocolos de comunicação (geralmente sem fio)
- 3 Papeis Cloud
- 1° aquisição de dados,
armazenamento e acesso. | 2° análise
de dados. | 3° suporte de atuação.
Anmerkungen:
- https://prnt.sc/3fsG1sT3XNe1
- 3 Partes Principais:
- Pontos de extremidade que incluem um ou mais sensores;
- Gateways que agregam dados de vários pontos
de extremidade do sensor e os encaminham
para os serviços de back-end;
- Serviços de back-end em que os dados do sensor
são analisados, armazenados, roteados e exibidos.
- Protocolos de Comunicação
MQTT e REST
- ? MQTT (Message Queue Telemetry Transport) |
protocolo lightweight
Anmerkungen:
- A arquitetura MQTT permite que o cliente seja conectado sempre fornecendo uma comunicação bidirecional entre o cliente e o servidor. Isso permite que o servidor envie a mensagem para o dispositivo, fazendo com que este responda ao seu comando
instantaneamente, conforme esperado pelos clientes.
- M2M
Anmerkungen:
- IoT M2M - Machine to Machine.
- Leveza no projeto de transporte de mensagens
por meio da publicação e assinatura de tópicos
- ? Sistemas de comunicação que possuem restrições de largura
de banda e alta latência na transmissão dos dados
- Assinatura: 2 tipos básicos
- Broker de mensagens
- ??? e ? | É um grande servidor que recebe todas
as mensagens dos seus clientes e envia essas
mensagens aos clientes de destino
- Clientes
- REST (ou Representational State Transfer)
Anmerkungen:
- Transferência de Estado Representacional
- A maioria dos provedores de soluções permite que seu servidor de borda ou seus gateways se conectem a cada 1 minuto ou mais para que o servidor não seja carregado.
- ? Arq. www |
Abstração arquitetura
Web
- Criação do projeto com interfaces de
transmissão de dados de bem definida.
- Operacionais: POST, GET, PUT e DELETE
- Base HTTP
- Formatos: JSON (um dos mais
utilizados), XML, RSS etc.
- Comunicação:
Cliente - Servidor
- REST é uma abstração da arquitetura da Web. Resumidamente, o REST
consiste em princípios/regras/constraints que, quando seguidas,
permitem a criação de um projeto com interfaces bem definidas.
- 7. Ciência de dados e
Python
Anmerkungen:
- É o estudo disciplinado dos dados e das informações inerentes ao negócio.
- Estuda: i) informações, ii) processo de captura, iii)
transformação, iv) geração e v) análise de dados.
- Disciplinas envolvidas: • Computação; •
Estatística; • Matemática; • Conhecimento do
Negócio. | ?? ∬ ?
- Profissionais
- cientista de dados
- é quem define o algoritmo que entregará a resposta da sua
pesquisa no Google em uma fração de segundos e o alcance de
anúncios em sites e redes sociais
- examinar dados brutos para poder extrair conclusões e
informações de valores a respeito daquele dado
- Ferramentas: Python, R, SAS, Java, Perl, C/C++ e
plataformas: Hadoop e SQL
- analista de dados
- Seu trabalho envolve responder questões de
rotina, geralmente, determinadas pela empresa
- a habilidade de conseguir transformar os dados em algo que
possa ser facilmente visualizado ou comunicar
adequadamente as informações importantes
- Ferramentas: SAS e R
- habilidade com estatísticas descritivas e inferenciais,
- Big Data
- "crunching numérico"
-> saber processar
dados numéricos em
larga escala