O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Aprendendo a
Programar
Globalcode
Agenda
● Objetivos e Introdução
● Fundamentos da Eletrônica e Computação
● Introdução a Programação
● Lógica de Programaçã...
Objetivos
● Apresentar tecnicamente eletrônica,
computação e programação de forma
descontraída e motivadora;
● Primeiras n...
Filosofia de Ensino
● Aprender conceitos “sob-demanda”;
● Visualizar aplicações práticas e do mundo
real;
● Se divertir co...
Sobre o instrutor:
● Como começei a programar;
● O que faço hoje;
Terminologia
● Código-fonte: código que contém instruções de um
programa. Legível para humanos e ilegível para
computadore...
Fundamento Eletrônica e
Computação
● Eletrônica é a raiz da computação;
● Ciência que estuda o controle da energia
elétric...
Eletrônica Analógica
● Exemplo com sensor
de luz;
● Exemplo com
potenciômetro;
Eletrônica Digital
● Exemplo com LEDs;
Eletronica Digital
● Dois estados possíveis: 0 e 1;
● Conversão de base binária para base
decimal é por conta do desenvolv...
Bit, Byte, kBytes, mBytes
● 1 bit;
● 8 bits = 1 byte;
● 1024 bytes = 1 kilobyte;
● 1024 kilobytes = 1 megabyte;
● 1024 meg...
Número de estados possíveis
● 1 bit = 2 estados;
● 2 bits = 4 estados;
● 3 bits = 8 estados;
● 8 bits = 256 estados;
● 16 ...
Fundamento da Computação
● Informações entram e saem
Entrada Processamento Saída
Resumo
● Eletrônica digital é a base da computação;
● Computadores trabalham basicamente com
manipulação e armazenamento d...
Introdução a Programação
● Processo de desenvolvimento de software:
● Primeiro passo:
○ Escrevemos instruçoes em uma
deter...
Introdução a Programação
● Processo de desenvolvimento de software:
● Segundo passo:
○ Utilizamos um compilador que vai
tr...
Introdução a Programação
● Processo de desenvolvimento de software:
● Terceiro passo:
○ Executamos o software;
○ Diferente...
Introdução a Programação
● Para desenvolver software precisamos:
○ Escolher uma linguagem de programação;
○ Compilador / f...
Introdução a Programação
● Inúmeras linguagens de programação:
○ Tradicionais: Basic, Pascal, C/C++, LISP, Cobol,
Fortran,...
Introdução a Programação
● Conclusão: devemos aprender bem conceitos
fundamentais da computação e programação;
● São eles:...
Introdução a Programação
● Vamos apresentar duas linguagens em paralelo:
○ C/C++: linguagem poderosa utilizada para
escrev...
Introdução a Programação
● No nosso contexto utilizamos:
○ C/C++: para codificar o Program-ME, facilitando o
entendimento ...
Oque Faz um Programa?
● Recebe dados através de dispositivos de entrada
como: teclado, HD, mouse, câmeras, sensores,
etc;
...
Oque Faz um Programa?
● CONCLUSÃO:
○ Um programa de computador utiliza
dispositivos de entrada e saída para
automatizar um...
Lógica de Programação
● Conjunto básico de instruções de uma linguagem
para:
○ Manipular informações na memória:
■ Ex: sua...
Variáveis de memória
● Um programa pode armazenar dados na
memória usando variáveis;
● Temos diferentes tipos de variáveis...
Variáveis de memória
● Nas tipadas, é necessário indicar o tipo da variável,
atribuir um nome a ela e, opcionalmente, indi...
Exemplo prático
● Cálculo de média;
● Quais os dados serão necessários?
● O valor inicial de uma variável pode ser o resul...
Exemplo prático
byte nota1 = 9;
byte nota2 = 7;
byte nota3 = 10;
float media = (nota1 + nota2 + nota3) / 3;
Qual tipo usar?
● Java:
○ boolean: 1 bit, verdadeiro ou falso, sim ou não;
○ byte: números inteiros com 8 bits;
○ short: n...
Código Básico Program-ME
//variável na memória
int luminosidade;
//Configuração inicial void setup() {
Serial.begin(9600);...
Código Básico Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int idade =0;
in...
Condição If com Program-ME
void setup() {
Serial.begin(9600);
}
void loop() {
// entrada de informação na variável
int lum...
Ligando Lâmpadas com ADK
● ADK: Arduino do Google
● Relé: interruptor eletromecânico;
Condição If com Java
public class Main {
public static void main(String[] args) {
int idade =0;
int novaIdade = 0;
Scanner...
Banco de Dados
● Persiste informações importantes;
● Banco, Perfis em Redes Sociais, Compras Online, etc;
● SGBD - Sistema...
Banco de Dados Relacional
● Relacionamento entre entidadas;
● MER - Modelo Entidade Relacionamento;
● Conceito de tabelas,...
Banco de Dados Relacional
Linguagem SQL
● SQL - Structured Query Language;
● Manipulação de Dados;
○ Insert, Update, Delete;
● Definição de Dados;
○...
Banco de Dados NoSQL
● Inicialmente o nome era NoREL;
● Não usa a idéia de entidade
relacionamento;
● Utilizado em cases c...
Web
● A Internet permeia todo o cotidiano;
● Redes Sociais;
● Mensageiros eletrônicos;
● E-commerce;
● Padrões;
● Barreira...
Web
● Desenvolvimento separado em camadas;
● Estrutura de Dados
○ HTML
● Apresentação
○ CSS
● Comportamento
Web
● Camadas na prática...
Mobile
● Telefones celulares foram os precursores;
● Java ME, BREW, SuperWaba;
● Java ME - Java EE - Java SE;
● Aplicativo...
Mobile
● Hoje: cerca de 3 milhões de aplicativos na Apple Store
e Google Play;
● Android, iOS, Windows Phone;
● Android:
○...
Mobile
● Ambientes de desenvolvimento extremamente
profissionais;
● Lojas online;
● Participação no resultado das vendas:
...
Mobile - Demonstração
● Criando aplicativo de rotas em Android;
● Temas relacionados;
● Open-source e reaproveitamento de ...
Internet das Coisas
● Criado inicialmente pelo MIT e focado no uso de
tags RFID;
● Hoje, colocar objetos na rede;
● Quanto...
Internet das Coisas
● Vídeos…
● Demos...
Carreira de Programador
● Independente de idade, formação, sexo, localização e
idioma;
● Remunera de R$1.200,00 (júnior, t...
Quanto tempo demora?
● No primeiro mês você já deve estar se divertindo com coisas
básicas;
● Em seis meses poderá começar...
Programador por Hobbie
● Programar é desafiador e os conhecimentos de
programação podem ser aplicados em diferentes contex...
Áreas de Atuação
● Um mercado incrível e crescente nas últimas décadas:
○ Desenvolvimento Web / Mobile;
○ Arquiteturas Ent...
Áreas de Atuação
● Em 2022 teremos um déficit de 408 mil profissionais de TI;
● http://g1.globo.com/bom-dia-brasil/noticia...
Próximos SlideShares
Carregando em…5
×

Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

22.192 visualizações

Publicada em

Slides para apresentação no Minicurso Grauito da campanha Open4Education

Publicada em: Educação
  • Seja o primeiro a comentar

Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

  1. 1. Aprendendo a Programar Globalcode
  2. 2. Agenda ● Objetivos e Introdução ● Fundamentos da Eletrônica e Computação ● Introdução a Programação ● Lógica de Programação ● Banco de Dados ● Mobile ● Web ● Internet das Coisas ● Carreiras
  3. 3. Objetivos ● Apresentar tecnicamente eletrônica, computação e programação de forma descontraída e motivadora; ● Primeiras noções de lógica de programação; ● Demonstrar exemplos de eletrônica e trechos de código Java e C de forma prática e lúdica;
  4. 4. Filosofia de Ensino ● Aprender conceitos “sob-demanda”; ● Visualizar aplicações práticas e do mundo real; ● Se divertir com o processo de aprendizado; ● Valorizar o experimentalismo; ● Vivência em comunidade;
  5. 5. Sobre o instrutor: ● Como começei a programar; ● O que faço hoje;
  6. 6. Terminologia ● Código-fonte: código que contém instruções de um programa. Legível para humanos e ilegível para computadores; ● Código de Máquina: código ilegível para humanos e legível para computadores; ● Compilação: processo de conversão do código-fonte para código de máquina; ● Interpretação: processo onde o código fonte é interpretado e executado imediatamente na máquina do usuário;
  7. 7. Fundamento Eletrônica e Computação ● Eletrônica é a raiz da computação; ● Ciência que estuda o controle da energia elétrica; ● Podemos dividir a eltrônica em duas: ○ Analógica; ○ Digital; ● Devo conhecer o hardware?
  8. 8. Eletrônica Analógica ● Exemplo com sensor de luz; ● Exemplo com potenciômetro;
  9. 9. Eletrônica Digital ● Exemplo com LEDs;
  10. 10. Eletronica Digital ● Dois estados possíveis: 0 e 1; ● Conversão de base binária para base decimal é por conta do desenvolvedor; ● O espaço que armazena o 0 ou 1 é o bit; ● 8 bits são chamados de byte e conseguem representar 256 estados diferentes;
  11. 11. Bit, Byte, kBytes, mBytes ● 1 bit; ● 8 bits = 1 byte; ● 1024 bytes = 1 kilobyte; ● 1024 kilobytes = 1 megabyte; ● 1024 megabytes = 1 gigabyte; ● 1024 gigabytes = 1 terabyte;
  12. 12. Número de estados possíveis ● 1 bit = 2 estados; ● 2 bits = 4 estados; ● 3 bits = 8 estados; ● 8 bits = 256 estados; ● 16 bits = 65.536 estados; ● 2 elevado a quantidade de bits é igual ao número de estados possíveis;
  13. 13. Fundamento da Computação ● Informações entram e saem Entrada Processamento Saída
  14. 14. Resumo ● Eletrônica digital é a base da computação; ● Computadores trabalham basicamente com manipulação e armazenamento de 0 e 1; ● Sim, tudo é 0 e 1. Vídeos, fotos, documentos, e-books e aplicativos para smartphones;
  15. 15. Introdução a Programação ● Processo de desenvolvimento de software: ● Primeiro passo: ○ Escrevemos instruçoes em uma determinada linguagem de programação. Este conjunto de instruções é chamado de código fonte. ○ Java, C, Python, JavaScript;
  16. 16. Introdução a Programação ● Processo de desenvolvimento de software: ● Segundo passo: ○ Utilizamos um compilador que vai traduzir o código fonte para código de máquina gerando o software;
  17. 17. Introdução a Programação ● Processo de desenvolvimento de software: ● Terceiro passo: ○ Executamos o software; ○ Diferentes plataformas oferecem diferentes maneiras para executar o software;
  18. 18. Introdução a Programação ● Para desenvolver software precisamos: ○ Escolher uma linguagem de programação; ○ Compilador / ferramenta da linguagem escolhida; ○ Editor de código; ● Mas também utilizamos: ○ Ferramentas para depuração de erros; ○ Diagramas para prototipagem/modelagem; ○ Emuladores; ○ Criatividade;
  19. 19. Introdução a Programação ● Inúmeras linguagens de programação: ○ Tradicionais: Basic, Pascal, C/C++, LISP, Cobol, Fortran, ABAP; ○ Modernas: Java, .NET, C#, VB.NET, Ruby, Python, Groovy; ○ Mais recentes: ERLANG, Scala, F#, Swift; ● Alguns conceitos são os mesmos em várias linguagens; ● Outros conceitos podem variar radicalmente: paralelismo, comunicação com hardware, gerenciamento de memória;
  20. 20. Introdução a Programação ● Conclusão: devemos aprender bem conceitos fundamentais da computação e programação; ● São eles: ○ Princípios da computação e lógica binária; ○ Lógica e sintaxe básica de programação; ○ Orientação a objetos; ○ Sistemas de entrada e saída; ○ Armazenamento de dados e banco de dados; ○ Sistema operacional; ○ Rede TCP/IP (internet);
  21. 21. Introdução a Programação ● Vamos apresentar duas linguagens em paralelo: ○ C/C++: linguagem poderosa utilizada para escrever sistemas operacionais e outras linguagens, incluindo o Java; ○ Java: linguagem mais simples que C/C++ com amplo mercado mundial e adota para desenvolvimento corporativo de aplicativos de todos os portes;
  22. 22. Introdução a Programação ● No nosso contexto utilizamos: ○ C/C++: para codificar o Program-ME, facilitando o entendimento de conceitos básicos; ○ Java: para apresentar exemplos tradicionais de lógica de programação;
  23. 23. Oque Faz um Programa? ● Recebe dados através de dispositivos de entrada como: teclado, HD, mouse, câmeras, sensores, etc; ● Armazena os dados na memória RAM; ● Efetua algum processamento; ● Apresenta algum resultado em um dispositiov de saída como: áudio, vídeo, HD, atuadores, etc.
  24. 24. Oque Faz um Programa? ● CONCLUSÃO: ○ Um programa de computador utiliza dispositivos de entrada e saída para automatizar um processo com tais informações. ● INFORMÁTICA!
  25. 25. Lógica de Programação ● Conjunto básico de instruções de uma linguagem para: ○ Manipular informações na memória: ■ Ex: sua data de nascimento, os produtos da sua compra on-line, etc; ○ Programar condições: ■ Ex: se o saldo for maior que o valor solicitado para saque, efetuar o saque, do contrário mostre uma mensagem; ○ Programar repetições de código: ■ Ex: execute este código enquanto houve conexão de rede;
  26. 26. Variáveis de memória ● Um programa pode armazenar dados na memória usando variáveis; ● Temos diferentes tipos de variáveis para diferentes tipos de dados: sim/não, número pequeno, número grande, com ponto flutuante ou sem, data, hora, nome; ● Existem linguagem tipadas e não tipadas.
  27. 27. Variáveis de memória ● Nas tipadas, é necessário indicar o tipo da variável, atribuir um nome a ela e, opcionalmente, indicar um valor inicial; ○ int x = 10; ○ int = tipo ○ x = nome/identificador ○ 10 = valor inicial ● Reserve 4 bytes na memória, chame este espaço de X e coloque o valor 10 nele;
  28. 28. Exemplo prático ● Cálculo de média; ● Quais os dados serão necessários? ● O valor inicial de uma variável pode ser o resultado de uma expressão; ● Vamos trabalhar!
  29. 29. Exemplo prático byte nota1 = 9; byte nota2 = 7; byte nota3 = 10; float media = (nota1 + nota2 + nota3) / 3;
  30. 30. Qual tipo usar? ● Java: ○ boolean: 1 bit, verdadeiro ou falso, sim ou não; ○ byte: números inteiros com 8 bits; ○ short: números inteiros com 16 bits; ○ int: números inteiros com 32 bits; ○ long: números inteiros com 64 bits; ○ float: números com ponto flutuante com 32 bits; ○ double: números com ponto flutuante com 64 bits;
  31. 31. Código Básico Program-ME //variável na memória int luminosidade; //Configuração inicial void setup() { Serial.begin(9600); } //Inicialização do programa void loop() { luminosidade = analogRead(0); Serial.println(luminosidade); }
  32. 32. Código Básico Java import java.util.Scanner; public class Main { public static void main(String[] args) { int idade =0; int novaIdade = 0; Scanner teclado = new Scanner(System.in); System.out.println("Entre com a sua idade:"); idade = teclado.nextInt(); novaIdade = idade / 2; System.out.printf("Mas voce tem cara de %s n", novaIdade); } }
  33. 33. Condição If com Program-ME void setup() { Serial.begin(9600); } void loop() { // entrada de informação na variável int luminosidade = analogRead(0); if(luminosidade<500) { Serial.println("Esta claro!"); } else { Serial.println("Esta escuro!"); } }
  34. 34. Ligando Lâmpadas com ADK ● ADK: Arduino do Google ● Relé: interruptor eletromecânico;
  35. 35. Condição If com Java public class Main { public static void main(String[] args) { int idade =0; int novaIdade = 0; Scanner teclado = new Scanner(System.in); System.out.println("Entre com a sua idade:"); idade = teclado.nextInt(); if(idade<25) System.out.println("Tem muito chão!"); if(idade>25 && idade<60) System.out.println("Fase boa!"); if(idade>60) System.out.println("Melhor ainda, ta aprendendo ate a programar?"); } }
  36. 36. Banco de Dados ● Persiste informações importantes; ● Banco, Perfis em Redes Sociais, Compras Online, etc; ● SGBD - Sistema Gerenciadores de Banco de Dados; ● Tipos de Banco de Dados: ○ Bando de Dados Relacional; ○ Banco de Dados Orientado a Objetos; ○ Banco de Dados Hierárquico;
  37. 37. Banco de Dados Relacional ● Relacionamento entre entidadas; ● MER - Modelo Entidade Relacionamento; ● Conceito de tabelas, registros e chaves; ● Softwares gratuitos e pagos para criação de MER;
  38. 38. Banco de Dados Relacional
  39. 39. Linguagem SQL ● SQL - Structured Query Language; ● Manipulação de Dados; ○ Insert, Update, Delete; ● Definição de Dados; ○ create table, alter table, drop; ● Consulta de Dados;
  40. 40. Banco de Dados NoSQL ● Inicialmente o nome era NoREL; ● Não usa a idéia de entidade relacionamento; ● Utilizado em cases como Google, Twitter e Facebook; ● Ideal na escalabilidade;
  41. 41. Web ● A Internet permeia todo o cotidiano; ● Redes Sociais; ● Mensageiros eletrônicos; ● E-commerce; ● Padrões; ● Barreira mobile/web diminuindo;
  42. 42. Web ● Desenvolvimento separado em camadas; ● Estrutura de Dados ○ HTML ● Apresentação ○ CSS ● Comportamento
  43. 43. Web ● Camadas na prática...
  44. 44. Mobile ● Telefones celulares foram os precursores; ● Java ME, BREW, SuperWaba; ● Java ME - Java EE - Java SE; ● Aplicativos ainda não eram levados a sério; ● Lançamento do iOS em 2008 e a Apple Store revolucionou;
  45. 45. Mobile ● Hoje: cerca de 3 milhões de aplicativos na Apple Store e Google Play; ● Android, iOS, Windows Phone; ● Android: ○ Java e C; ● iOS: ○ Objetive-C e Swift; ● Windows Phone:
  46. 46. Mobile ● Ambientes de desenvolvimento extremamente profissionais; ● Lojas online; ● Participação no resultado das vendas: ○ 70-30% ● Android: 25 dólares; ● iOS: 99 dólares por ano;
  47. 47. Mobile - Demonstração ● Criando aplicativo de rotas em Android; ● Temas relacionados; ● Open-source e reaproveitamento de código;
  48. 48. Internet das Coisas ● Criado inicialmente pelo MIT e focado no uso de tags RFID; ● Hoje, colocar objetos na rede; ● Quantos? Pesquisas apontam para 50 bilhões de coisas em rede para 2020; ● Principais empresas adotaram o conceito; ● Programação para diferentes plataformas;
  49. 49. Internet das Coisas ● Vídeos… ● Demos...
  50. 50. Carreira de Programador ● Independente de idade, formação, sexo, localização e idioma; ● Remunera de R$1.200,00 (júnior, trainee) a R$15.000,00 (ou mais) (sênior, líderes, arquitetos, engenheiros); ● Inúmeras oportunidades no exterior; ● Requer profissionais poliglota (no mínimo inglês); ● Estudo e interesse contínuo; ● As coisas se atualizam rápido, mas os velhos conceitos
  51. 51. Quanto tempo demora? ● No primeiro mês você já deve estar se divertindo com coisas básicas; ● Em seis meses poderá começar a estudar coisas mais avançadas; ● Em dois anos estará conhecendo e usando orientação a objetos com fortes possibilidades de emprego; ● Em quatro anos poderá começar a se especializar, certificar e dominará desenvolvimento de média complexidade; ● Em oito anos emprego onde quiser, bom salário e alta complexidade;
  52. 52. Programador por Hobbie ● Programar é desafiador e os conhecimentos de programação podem ser aplicados em diferentes contextos; ● Até músicos estão virando programadores; ● Programar: ter controle e efetivamente comandar o seu computador; ● Projetos incríveis podem ser desenvolvidos por hobbie: segway caseiro, máquinas CNC, robôs, aplicativos mobile, sites, embarcados, hacker o mundo, baixa eletrônica, etc; ● Vídeo com Barack Obama;
  53. 53. Áreas de Atuação ● Um mercado incrível e crescente nas últimas décadas: ○ Desenvolvimento Web / Mobile; ○ Arquiteturas Enterprise / Serice Oriented Architecture; ○ Testes e qualidade / processos e metodologias; ○ Games / TV Digital; ○ Projetos de pesquisa / Armazenamento de dados; ○ Imagem / Redes sociais / Venda na internet; ○ Robótica / Redes / Segurança
  54. 54. Áreas de Atuação ● Em 2022 teremos um déficit de 408 mil profissionais de TI; ● http://g1.globo.com/bom-dia-brasil/noticia/2014/11/sobram- vagas-com-salarios-de-ate-r-10-mil-na-area-de-ti.html ● Brasil pode deixar de arrecadar R$115 bilhões por falta de profissionais em TI no ano de 2020; ● http://trainingtecnologia.com.br/faltam-profissionais-de-ti/

×