MC59 - Aprendendo a Programar de Forma Divertida e Eficiente
Short Description
Download MC59 - Aprendendo a Programar de Forma Divertida e Eficiente...
Description
Agenda
Agenda Objetivos e introdução Fundamentos da eletrônica e computação Introdução à programação Lógica de programação Carreira e áreas de atuação Perguntas e respostas
Objetivos o
o
o
o
o
Apresentar tecnicamente eletrônica, computação e programação de forma descontraída e motivadora; Ensinar as primeiras noções de lógica de programação; Demonstrar exemplos de eletrônica e trechos de código C / Java; Apresentar ferramentas open-source e oportunidades profissionais; Apresentar um plano de estudos para uma
Filosofias de ensino o o
o
o
o o
Aprender conceitos “sob-demanda”; Visualizar sempre uma aplicação prática e do mundo real; Usar um dispositivo que aumente a interação do aluno com o computador; Se divertir com o processo de aprendizado; Valorizar o experimentalis experimentalismo; mo; Vivência em comunidade;
Sobre o instrutor o o
Como comecei a programar? O que faço hoje?
Dicas o
o o
o
Serão MUITOS novos termos que não precisam ser decorados agora; O material está disponível para download; Estudar informática / computação significa estudar um conjunto de conceitos e técnicas; Não se espante: como a informática, outras áreas também tem um conjunto enorme de terminologias: médica, náutica, administração de empresas, música;
O que vamos usar? Java: popular plataforma e linguagem de desenvolvimento o Arduino: plataforma para criação de dispositivos eletrônicos digitais e analógicos; o C / C++: linguagem de programação mais tradicional do mundo. o Processing + SoundCipher: ferramenta baseada em Java para computação gráfica e musical; o Program-ME: dispositivo criado pela Globalcode para ensino de eletrônica e programação; o
O que posso fazer com o
o
o
o
o
Java: softwares para Web, desktop, telefone celular, palmtops, robôs, mainframe e smartcard Arduino: criar seus próprios dispositivos eletrônicos conectando componentes e comunicando com diversos softwares; C / C++: qualquer tipo de software; nesta ocasião vamos usar para programar o Arduino; Processing + SoundCipher: interfacear com Arduino representando gráficos e soms Program-ME: tudo que faz um Arduino além de conter nativamente controle de motores/relês, leds, buzzer (som), botão e sensor de luz;
Onde faço o download? o o o o o o o
Java: java.sun.com Arduino: www.arduino.cc C / C++: vem com arduino Processing + : www.processing.org SoundCipher : www.soundcipher.org Program-ME: www.arduino.cc São todos open-source e gratuitos.
Terminologia o
o
o
o
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 em um novo arquivo com o código de máquina; Interpretação: processo onde o códigofonte é interpretado e imediatamente executado em código de máquina, sem erar novo ar uivo
Terminologia o
o
o
o o
Open-source: software cujo código-fonte é disponibilizado e aberto; Debug: processo utilizado para analisar erros em código-fonte; Plataforma de desenvolvimento: conjunto de tecnologia + ferramentas para desenvolvimento, execução e Informática: informação + automática; Portabilidade: capacidade de executar um mesmo aplicativo em diferentes sistemas;
Agenda Objetivos e introdução Fundamentos da eletrônica e computação Introdução à programação Lógica de programação Carreira e áreas de atuação Perguntas e respostas
Eletrônica o o
o
o
o
Eletrônica é a raiz da computação; Eletrônica é uma ciência que estuda o controle de energia elétrica; Podemos dividir a eletrônica em duas: – Analógica; – Digital; Curiosidade é bem-vinda: é importante conhecer o que esta por traz de um computador; Mas calma: você não vai precisar soldar nada (pelo menos por enquanto).
Eletrônica Analógica o o
o
o
Sinal elétrico com tensão variável; Sinais lidos de forma direta sem passar por qualquer decodificação complexa; Circuitos analógicos podem ser criados sem nenhum tipo de chip; Componentes analógicos clássicos: potenciômetros, sensor de luz, temperatura;
Eletrônica Analógica o
DEMO – Exemplo potenciômetro configurando intensidade de um LED – Vamos colocar um pouco de música? Um piano com potenciômetro...
Eletrônica Digital o o
o
o o
o
Sinal codificado de apenas dois estados; Um circuito codifica o sinal analógico para digital; Informações são tratadas como 0 e 1 ou LOW e HIGH; Utiliza sistema binário da matemática; Transistores são circuitos digitais capazes de armazenar e comutar zeros e uns; 400 milhões de transistores em um Dual Core, o dobro no Quad;
Eletrônica Digital o
o
Um led pode ser acionado digitalmente: – Quando 0 = desligado (0 volts); – Quando 1 = ligado (5 volts – conforme equipo); DEMO: – Ligando ou desligando um LED por digital; – Mostrando o valor de um botão;
Eletrônica Digital o
o
o
o
A conversão de 0 e 1 (base binária) para números decimais (base 10) fica por nossa conta; O espaço onde armazenamos 0 ou 1 é chamado bit; Um bit representa dois estados, e um conjunto de bits? 8 bits podem representar 256 diferentes estados
Bits, bytes, kilobytes... o o o o o o o
1 bit 8 bits = 1 byte 1024 bytes = 1 kilobyte 1024 kilobytes = 1 megabyte 1024 megabytes = 1 gigabyte 1024 gigabytes = 1 terabyte 1024 terabytes = 1 petabyte
Sistema binário o
o
O número 145 é representado por “1001 0001”, como? A conversão de bits para decimais acontece através de uma regra de potência: Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6 Bit 7
Bit 8
Valor
27=128
26=64
25=32
24=16 23=8
22=4 21=2
20=1
Estado
1
0
0
1
0
1
TOTAL
128
o
16
128 + 16 + 1 = 145
0
0
1
Sistema binário o
Um exemplo mais simples é número um. Para representá-lo precisamos apenas ligar o bit da ponta direita: Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6 Bit 7
Bit 8
27=128
26=64
25=32
24=16 23=8
22=4 21=2
20=1
'Estado 0
0
0
0
0
0
0
1
TOTAL
0
0
0
0
0
0
1
Valor
o
0
Podemos com 8 bits representar um número de 0 a 255 ou -128 a +127 totalizando sempre 256 possíveis estados
Sistema binário o
o
Podemos usar a calculadora do sistema operacional para conversão; Outros exemplos:
128|64 |32 |16 |8 |4 |2 |1 | 0
0
0
0
1
0
1
0
= 10
0
0
0
1
1
0
0
0
= 24 (8+16=24)
1
1
0
0
0
0
0
0
= 192 (64+128=192)
1
0
= 186
1 0 1 1 1 0 (2+8+16+32+128=186)
(2+8=10)
Sistema binário o
o
Percebemos que com oito bits, o maior número que podemos representar é 255; Para representar números maiores que 255 precisamos usar mais bits: – 1 bit = 2 estados – 8 bits = 256 – 16 bits = 65.536 – 32 bits = 4.294.967.296 – 64 bits = 18.446.744.073.709.551.616
Do bit para n mero, do n mero para letra Agora sabemos como converter bits para números, mas como representar letras? o Existe uma tabela mundial chamada ASCII que estabelece uma letra para cada número; o Para português, inglês e vários outros idiomas uma letra pode ser representada em 8 bits; o Exemplo: – a = 65, b= 66, c= 67 o Teclas como ENTER, TAB também tem número; o
Tabela ASCII Binário Decimal 0010 0000 32
Hexa 20
Glifo
0010 0001 0010 0010 0010 0011 0010 0100 0010 0101 0010 0110 0010 0111 0010 1000 0010 1001 0010 1010
33 34 35 36 37 38 39 40 41 42
21 22 23 24 25 26 27 28 29 2A
! " # $ % & ' ( )
0010 1011 0010 1100 0010 1101 0010 1110 0010 1111 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 0011 1010 0011 1011 0011 1100 0011 1101
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D
+ , . / 0 1 2 3 4 5 6 7 8 9 : ; < =
Binário Decimal 0100 0000 64 0100 0001 65 0100 0010 66 0100 0011 67 0100 0100 68 0100 0101 69 0100 0110 70 0100 0111 71 0100 1000 72 0100 1001 73 0100 1010 74 0100 1011 75 0100 1100 76 0100 1101 77 0100 1110 78 0100 1111 79 0101 0000 80 0101 0001 81 0101 0010 82 0101 0011 83 0101 0100 84 0101 0101 85 0101 0110 86 0101 0111 87 0101 1000 88 0101 1001 89 0101 1010 90 0101 1011 91 0101 1100 92 0101 1101 93
Hexa 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D
Glifo @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]
Binário Decimal 0110 0000 96 0110 0001 97 0110 0010 98 0110 0011 99 0110 0100 100 0110 0101 101 0110 0110 102 0110 0111 103 0110 1000 104 0110 1001 105 0110 1010 106 0110 1011 107 0110 1100 108 0110 1101 109 0110 1110 110 0110 1111 111 0111 0000 112 0111 0001 113 0111 0010 114 0111 0011 115 0111 0100 116 0111 0101 117 0111 0110 118 0111 0111 119 0111 1000 120 0111 1001 121 0111 1010 122 0111 1011 123 0111 1100 124 0111 1101 125
Hexa 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D
Glifo ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | }
Idiomas complexos o
o
o
Apesar de podermos representar todos os caracteres necessários para português, inglês, espanhol, etc., alguns idiomas podem ter mais de 20.000 letras tornando a representação em 8 bits insuficiente; Atualmente com a globalização e internet letras podem ser representadas por 2 bytes, 16 bits; A tabela UNICODE é utilizada na Internet no lugar da ASCII;
Informações entram e saem o
o
o
o
Um computador pode receber ou escrever informações; Entrada de informações = teclado, mouse, dispositivo USB, scanner, máquina digital, microfone; Saída de informações = monitor, impressora, som; Entrada e Saída (obrigatoriamente) = hard-disk, pen-drive, memória, DVD-RW, rede
Resumo Eletrônica digital é a base da computação; o Transistor é um dos componentes mais importantes; o Computadores trabalham basicamente com manipulação e armazenamento de 0 e 1; o O sistema binário permite a conversão de seqüência de bits em decimais, hexadecimais e grifo; o
Resumo: o ciclo vicioso Eletrônica -> Analógica -> Digital -> Transistor -> 0 e 1 -> Decimal -> Caractere -> Códigofonte -> Código de máquina -> 0 e 1 -> Transistor -> Digital -> Analógica -> Eletrônica -> Analógica -> Digital -> Transistor -> 0 e 1 -> Decimal -> Caractere > Código-fonte -> Código de máquina -> 0 e 1 -> Transistor -> Digital -> Analógica -> Eletrônica -> Analógica -> Digital -> Transistor -> 0 e 1 -> Decimal -> Caractere > Código-fonte -> Código de máquina -> 0 e 1 -> Transistor -> Digital -> Analógica -> Eletrônica
Agenda Objetivos e introdução Fundamentos da eletrônica e computação Introdução à programação Lógica de programação Carreira e áreas de atuação Perguntas e respostas
Introdução à programação o
Processo de desenvolvimento de software: 1. Escrevemos instruções em uma determinada linguagem. Este conjunto de instruções é chamado de código-fonte;
2. Utilizamos um compilador que vai traduzir o código-fonte para código de máquina gerando o software;
3. Executamos o software;
Introdução à programação o
Para desenvolver softwares precisamos: – Escolher uma linguagem de programação – Compilador / ferramenta da linguagem escolhida – Editor de código
o
Mas também utilizamos: – Ferramentas para depuração de erros, testes, tuning; – Diagramas para prototipagem / modelagem; – Emuladores; – Criatividade...
Introdução à programação o
Inúmeras linguagens de programação: – Tradicionais: Basic, Pascal, C / C++, LISP, Cobol, Fortran, ABAP; – Modernas: Java, Microsoft .NET C#, VB.NET, Ruby, Python, Groovy; – Mais recentes: ERLANG, Scala, F#
o
o
Alguns conceitos são os mesmos em várias linguagens: lógica, orientação a objetos, funções; Outros conceitos podem variar radicalmente: paralelismo, comunicação com hardware, gerenciamento de memória;
Introdução à programação o
o
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); CALMA: uma coisa por vez. Hoje lógica de programação.
Introdução à programação o
o
Para desenvolver em Java deve-ser fazer o download de: – Java Development Kit 1.6 – NetBeans 6.7 (opcional) – URL: java.sun.com (vídeos de instalação no nosso site) DEMO: – Ola Mundo com JDK – Ola Mundo com NetBeans – Ola Mundo Móvel com NetBeans e Java ME
Introdução à programação o
Toda linguagem de programação disponibiliza um conjunto de instruções, exemplo Java:
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchonized
this
throw
throws
transient
try
void
volatile
while
Introdução à programação o
Vamos apresentar duas linguagens em paralelo: – C++: linguagem poderosa utilizada para escrever sistemas operacionais e outras linguagens, incluindo o Java; – Java: linguagem mais simples que C++ com amplo mercado mundial e adotada para desenvolvimento corporativo de aplicativos de todos os portes;
o
No nosso contexto usamos: – C++: para codificar o Program-ME que facilita o entendimento de conceitos básicos; – Java: para apresentar exemplos tradicionais de lógica de programação;
O que faz um programa? 1. Recebe dados através de dispositivos de entrada como: teclado, hard-disk, mouse, cameras, etc. 2. Armazena o dado na memória RAM; 3. Efetua algum processamento; 4. Apresenta algum resultado em um dispositivo de saída como: vídeo, áudio, hard-disk, etc.
O que 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!
Agenda Objetivos e introdução Fundamentos da eletrônica e computação Introdução à programação Lógica de programação Carreira e áreas de atuação Perguntas e respostas
Lógica de Programação 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, seu endereço de e-mail
– 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 houver conexão com a Internet.
– Programar funções específica; • Ex. Calcular seno, coseno, gravar no banco de dados;
Variáveis e memória Um programa pode armazenar dados na memória usando variáveis; o 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; o
o
Devemos indicar o tipo da variável, devemos atribuir um nome para ela e opcionalmente indicar um valor inicial: – int x = 10; – int = tipo, x = nome, 10 = valor inicial “Reserve 4 bytes na memória, chame este espaço de memória de x e coloque 10 nele”
Lógica de Programação o
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 de 32 bits; – double = números com ponto flutuante de 64 bits; – char = armazenar letras, 8 a 32 bits – String = seqüência de caracteres “Globalcode”; – Date = armazena uma data;
Código básico para 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); }
Código básico para 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); } }
If / Condições com Program-ME int luminosidade; void setup() { Serial.begin(9600); } void loop() { // entrada de informação na variável // analogRead(0) representa o sensor de luz do Program-ME luminosidade = analogRead(0); if(luminosidade
View more...
Comments