MC59 - Aprendendo a Programar de Forma Divertida e Eficiente

April 30, 2019 | Author: Michele Silva | Category: Bit, Electronics, Programming Language, Software, Computer Program
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF