Você está na página 1de 90

PLAY ​Programação

Lúdica de Aplicações

em Python

Aula no 1: Introdução a Programação


Júlia Potratz jupotratz@gmail.com
1

Objetivo do curso

• Apresentar conceitos básicos da ciência


da computação

• Introdução a programação de forma lúdica

• Introdução ao Python

• Apresentação de bibliotecas e comandos


fundamentais do Python para AI
2

Objetivo da aula

• Apresentar conceitos básicos da ciência


da computação

• Introdução a programação de forma lúdica

• Apresentação de comandos e conceitos


clássicos da programação

• Exercícios tutorados
3

Introdução a Ciência
da Computação

• É a ciência que estuda as técnicas,


metodologias e instrumentos
computacionais, que automatiza processos
e desenvolve ​soluções baseadas no uso do

processamento de dados.

• Estuda, desenvolve e promove melhorias


em quesitos construtivos e funcionais de
computadores e redes.

• Principais áreas de atuação de um


Cientista da Computação:
• Desenvolvimento de programas
• Desenvolvimento de Sistemas de informática
• Implementação e gerenciamento de softwares
• Sistemas de processamento de informações
• Sistemas de redes corporativas

História da
Computação
• Computador vem da palavra“​computare​”
→Calcular

• Necessidade de realizer operações cada


vez mais complexas

• Necessidade de simplificar essas


operações

• Primeiros computadores:
• Ábaco
• Régua de cálculo
• Anos 40 –primeiro computador (± 30 toneladas, ±
25 metros de comprimento)

•A evolução da tecnologia,
principalmente após o surgimento
dos transistores, permitiu grandes

avanços ​na área da computação,

dessa forma tem sido possível

desenvolver máquinas cada vez

mais, potentes.

• + Rápidos
• + Leves
• + Versáteis
• + Funções
• + Facilidade na utilização
• ...
6

Importância dos
Computadores
•Estão presents em nosso dia a dia

• Acesso a informações em tempo real


• Facilidade na comunicação
• Resolução de problemas complexos
• Cálculos longos e demorados
• Automatização de processos
• Diagnósticos de doenças
• Entre outros
• Execução de atividades repetitivas
• ...

Componentes de um
Computador
• Um computador possui 3 componentes
básicos:
Dispositivo de ​
8 ​ Entrada e Saída
Memória Processador

Funcionamento dos
Computadores
• Qualquer computador, por mais avançado
que seja, é burro.

• Um computador não é capaz de raciocinar


ou fazer nada sozinho, ele precisa ser
orientado de ​forma clara e objetiva.

• Ações bem definidas


• Sequênciamento lógico das ações (respeitando a
dependência entre elas)
• Maior nível de generalização possível
• Identificação de padrões

• Necessidade de programas e softwares,


para facilitar a vida dos usuários.
9

Introdução a
programação

• Aprender a programar de forma lúdica e


intuitiva
• Principais conceitos da programação
• Sequenciamento de ações
• Variáveis
• Estruturas condicionais
• Estruturas de repetição
• Funções
• Organização de Código
• Depuração de Código
Code.org

10

Introdução a
programação
Jupyter notebook

• Guia de instalação
• Guia para utilização
• Semântica e Sintaxe
• Comandos mais importantes
• Carregamento e separação de dados
• Bibliotecas importantes para AI

Assuntos para as próximas aulas...

11

Conceitos
Importantes
• Lógica de programação

• Entrada e saída de dados (informações)


• Organização dos dados
• Variáveis
• Tipos de dados
• Estruturas condicionais
• Estruturas de repetição
• Funções e Procedimentos/Métodos
• Organização de códigos
• Depuração/ Debug de códigos

12
Conceitos
Importantes
• Lógica de programação

• É uma técnica de encadear pensamentos para


atingir determinados objetivos

• Utilizada para desenvolver programas e sistemas


pois permite definer a sequência lógica para a

resolução de ​um problema, bem como possíveis

problemas que podem surgir ao longo do caminho.

• Se seguida criteriosamente, permite um auto nível


de generalização para seus programas.
13

Conceitos
Importantes

Entrada e saída de dados (informações)


Organização dos dados

• Coleta e/ou
• Principais formas de
armazenamento de
interação do
dados que serão
usuário/desenvolverd
necessários ​para os
or com ​o programa.
processos propostos.
desenvolvimento de
• Distribuição de
resultados. softwares e

programas.

• Um dos principais
14

• Uma das etapas problemas no meio


mais importantes em digital na atualidade.
se tratando de

Conceitos
Importantes

Variáveis Tipos de dados

• Armazenamento de
• Conceito e
dados na memória
utilidades de
variáveis • Dados numéricos
• Inteiros
• Definição de • Pontos flutuantes (Reais)
variáveis em
algoritmos • Dados literais
(strings)
• Mapeamento de • Palavras
variáveis na memória • Frases
• Letras

15

• Dados lógicos (booleanos)


• Verdadeiro (True) / Falso (False)

Variáveis
16

Conceitos
Importantes
• Utilizadas em situações de tomadas de
decisões com base em ​valores ou resultados

gerados. Executa um conjunto de commandos

caso retorne um valor Verdadeiro (True).


• São muito utilizados em conjunto com as

estruturas de ​repetições para definer se um

bloco de comandos será ​repetido ou não.


Estruturas Condicionais
17

Lógica condicional
18

Lógica condicional
João quer comprar um pastel na feira que
custa 4 reais.
19

Lógica condicional
Situação: ​João quer comprar um pastel.
Condição: ​João deve ter mais de 4 reais.

Se João tiver mais de 4 reais


João pode comprar o pastel

Devemos lembrar que existe a


possibilidade de João não ter mais de 4
reais.

Se João tiver mais de 4 reais


João pode comprar o pastel ​Se João não tiver mais de 4
reais
João não pode comprar o pastel

20

Conceitos
Importantes
• Utilizadas em situações de tomadas de

decisões com base em ​valores ou resultados


gerados. Executa um conjunto de commandos

caso retorne um valor Verdadeiro (True).


• São muito utilizados em conjunto com as

estruturas de ​repetições para definer se um

bloco de comandos será ​repetido ou não.


Estruturas Condicionais
21

Conceitos
Importantes

Estruturas de Repetição

• Uma forma de executar blocos de comandos

somente sob ​determinadas condições, mas


com a opção de repetir o mesmo ​bloco quantas

vezes for necessário.

• As estruturas de repetição são úteis, por

exemplo, para ​repetir uma série de operações

semelhantes que são executadas para todos os

elementos de uma lista ou de uma tabela de

dados, ou simplesmente para repetir um

mesmo processamento até que uma certa

condição seja satisfeita.

• Utilizadas em conjunto com as estruturas


condicionais.

22
Lógica de repetição

23

Lógica de repetição
• Utilizada para facilitar a vida das
pessoas...

• Evita esforços repetitivosm, que podem


ter consequências graves:
• Falta de atenção
• Falta de cuidado
• Omissão de partes importantes
• Negligência
• Entre outras consequências...

24

Lógica de repetição
e quer saber a
média de idade
Situação: ​José tem
dessas pessoas.
uma lista com a
Condição: ​José tem
idade de todos os
um número
alunos que
determinado de
ingressaram em
pessoas (uma lista)
2019.1 na sua
unidade acadêmica

José sabe o número total de alunos ​José vai pegar


a idade do primeiro aluno da lista ​José vai
VERIFICAR a lista de alunos, enquanto a lista de
alunos não ​acabar
José vai somar a idade do próximo aluno com a
soma acumulada dos anteriores ​Quando a lista
acabar
José vai dividir a soma acumulada pelo total de
alunos
25

um número
Lógica de determinado de
pessoas (uma lista)
repetição
Situação: José tem
uma lista com a Para que a
idade de todos os repetição do
alunos que procedimento de
ingressaram em somar ​a nova idade
2019.1 na sua ocorra a ​condição
unidade acadêmica posta deve ser
e quer saber a satisfeita!
José sabe o número
média de idade
total de alunos ​José vai
dessas pessoas. pegar a idade do
Condição: José tem primeiro aluno da lista
José vai ​VERIFICAR ​a soma acumulada dos
lista de alunos, anteriores ​Quando a
enquanto a lista de lista acabar
alunos não ​acabar José vai dividir a soma
José vai somar a idade acumulada pelo total de
do próximo aluno com a alunos

26

Lógica de repetição

A Lógica de repetição ​PRECISA


da lógica condicional!
27

Conceitos
Importantes

Funções e Procedimentos/Métodos

• Utilizados quando temos blocos de comandos

que são ​executados repetidamente dentro de

uma aplicação.
• Funções normalmente retornam um valor ao

programa ​enquanto os procedimentos

executam processos determinados ​e não

retornam um valor único propriamente dito.

• Podem ser definidos dentro do programa ou

foram e são ​chamados sempre que são

necessários.

28

Funções e
Procedimentos/Métod
os

São também conhecidas como


sub-rotinas​!

29

Funções e
Procedimentos/Métod
os

Exemplo: ​função atravessar a rua


carro:
• Acordar permaneça ​parado
• Escovar os dentes senão ​estiver vindo
• Comer nenhum carro
• Trabalhar atravesse ​a rua
• ...
Atravessar_rua( )
ande ​até ​chegar a
calçada ​olhe ​para a
direita e verifique 30

se ​está vindo algum


Funções e
Procedimentos/Métod
os
Exemplo: função atravessar a rua
• Acordar
• Escovar os dentes
• Comer
• Trabalhar
• ...
Repetição ​Atravessar_rua( )
ande até chegar a calçada
Condição ​olhe para a direita e verifique se
está vindo algum carro: ​Condição
permaneça parado ​senão estiver vindo
nenhum carro
atravesse a rua
31
Funções e
Procedimentos/Métod
os

Exemplo: ​somar dois numeros

soma(num_1, num_2)
soma = num_1 + num_2 ​mostrar ​soma

32
Funções
e
Exemplo: somar
Procedim dois numeros

entos/Mét soma(num_1,
num_2)
odos Operação

soma = num_1 + num_2 ​mostrar soma

33

Conceitos
Importantes

Organização de códigos

• Esta relacionado com boas práticas na

programação, para que ​as informações não

sejam perdidas e possam ser compartilhadas e

utilizadas por outras pessoas futuramente.

• O uso de regras e boas práticas geram

melhor legibilidade do ​código, contribuindo

significativamente para que o ciclo de

desenvolvimento de sistemas ocorra de

maneira mais ágil, prática e de fácil


manutenção.

34

Conceitos
Importantes

Depuração/ Debug de códigos

• ​Depurar​é a atividade de limpeza ou exclusão

de substâncias ​indesejáveis.

• Depuração de código ou Debug (termo muito

utilizado pelos ​programadores) é o


procedimento de identificação de erros ​nos

programas. Além disso, correção e/ou exclusão

dos ​mesmos para otimização do programa.

35

Organização de
código
36

Depuração de código
37

Introdução a
programação de
forma lúdica

• Plataforma a ser utilizada ​Code.org

• Primeiros passos:
• Criar uma conta no Code.org do tipo ​Estudante

• No painel de controle no final da pagina, há uma


parte de seções de sala de aula, para acessar a

sala de aula ​do PLAY vocês utilizarão o seguinte

código: ​PTPZZW

• Uma vez entrado na sala de aula do PLAY terão


todas as atividades a serem desenvolvidas para o

entendimento dos conceitos que serão

apresentados.
38

Como uma máquina


funciona?

• Ela responde a comandos (​mover​, ​imprimir​,


entrar​, ​sair​).

• Comandos são encadeados de forma


sequêncial para formar um programa.

• Esse encadeamento de comandos é feito


através da ​Lógica de Programação​.
• Vamos pensar em comando como blocos
(“caixinhas”)

39

coisas ​1. Pode


Programa representar um comando
ou uma ferramenta lógica.

ndo com 2. No exemplo abaixo os


blocos ​avance ​são
comandos.
blocos no • O bloco ​quando executar
é uma ferramenta lógica,

code.org ou seja, só será


executado após inicio do
programa

• Um bloco pode
representar duas
blocos de ​comando

avance ​só serão

executados apos a

execução do bloco

quando ​executar​.

• A programação em
40

quando o programa blocos é ​totalmente


iniciar
visual, o que facilita o
avançar ​avançar aprendizado.
• Observem que os

Programando com
blocos no code.org
• Outros exemplos de comandos como blocos estão
representados abaixo

41

• Observação: ​No code.org os ​comandos não

podem ser e
​ xecutados sem estarem atrelados a um

bloco lógico ​de execução


Programando com
blocos no code.org

42
• Todos os comandos no programa estão de alguma
forma (​direta ou indiretamente​) linkados com o bloco
quando executar​. Se não estiverem, serão
ignorados.
esquerda ​e ​avance​,
embora linkados
O comando ​vire à
um ao outro, serão
direita ​será
ignorados
executado, ​pois
• Observação: ​Atenção
está linkado ao
com a ​declaração do
bloco ​quando
executar escopo do ​seu

programa.

Os comandos ​vire à

Programando com
blocos no code.org
Agora vamos fazer os exercícios ​1 -
5 ​da ​seção 2 ​na nossa ​sala de aula
do PLAY no code.org​.

43

Programa ndo com


blocos no
code.org
• Vamos introduzir
nossa primeira
ferramenta lógica com
um exemplo
• Queremos fazer 44

nosso Angry Bird andar Colocamos ​5


5 ​espaços. blocos ​avance
• Fazendo da maneira • Observação: ​Utilizar
convencional
escreveríamos... varios ​blocos iguais em

sequência ​torna a

criação do código bem

improdutiva...
Programa
ndo com
blocos no
code.org

• Introduzindo o bloco 45

repita ​X ​vezes​... Colocamos ​1 ​bloco


• Com esse bloco avance ​dentro de 1
podemos reduzir a bloco ​repita ​5 ​vezes
repetição • Observação: ​Utilizar
desnecessária de
blocos, mantendo o varios ​blocos iguais em
funcionamento do
programa. sequência torna a

criação do código ​bem


para o número.
improdutiva...

Programa
Nesse código o
ndo com passarinho vai ​virar
à esquerda​, ​virar à
blocos no direita​, ​e ​avançar​,
um total de ​5 ​vezes
code.org
• Podemos colocar o
46
que quisermos dentro
• Observação: ​o bloco
de um bloco de
repetição quando executar
• O que estiver dentro
sempre ​deverá
do bloco de repetição
será repetido o número aparecer no escopo do
de vezes solicitado na
caixinha com espaço seu programa.
Programando com
blocos no code.org

47

• Observação: ​quando ​aparecerem blocos cinzas,


ele ​não poderá ​ser excluido do seu programa

principal.

Programando com
blocos no code.org

Agora vamos fazer os exercícios ​6 -


9 ​da ​seção 2 ​na nossa ​sala de aula
do PLAY no code.org​.
48

Programando com
blocos no code.org
Uma pequena variação ao bloco ​repita

• Introduzindo o bloco ​repetir até ​{Elemento}​.


• Este bloco executa o código até o passarinho
atingir o Elemento descrito no cabeçalho do bloco.
49

Nesse código o passarinho vai ​avançar ​até


atingir o porquinho verde

Programando com
blocos no code.org
Agora vamos fazer os exercícios ​10 -
13 ​da ​seção 2 ​na nossa ​sala de aula
do PLAY no code.org​.

50

Programa ndo com


blocos no
code.org
51
• Se quisermos • Observação: ​neste
introduzir uma condição
caso as ​ações dentro
para o nosso boneco
realizar uma ação
do bloco ​se ​só ​serão
utilizaremos um bloco
lógico novo. executadas se a
• Introduzindo o bloco
afirmativa testada for
lógico ​se​.
verdadeira

faça ​essas ações

Programando com
blocos no code.org

52

se ​essa condição for satisfeita


faça ​essas ações

Programando com
blocos no code.org
• Se quisermos introduzir uma condição para o
nosso boneco realizar uma ação utilizaremos um
bloco lógico novo.
• Introduzindo o bloco lógico ​se​.
• Tudo que estiver no cabeçalho do bloco ​se ​será a
condição para executar o código dentro do bloco.
53

Programando com
blocos no code.org
• No caso da condição não ser satisfeita, o código
dentro do bloco ​se ​será ignorado.
Se ​essa condição ​não ​for satisfeita

54
ignore ​esses comandos e siga adiante com o
programa

Programando com
blocos no code.org
• Blocos lógicos podem se juntar a outros blocos
lógicos de forma a criar um programa mais
complexo.

55
repetir até ​Florzinha

se ​houver caminho à frente


avançe

se não
vire à esquerda

Programando com
blocos no code.org

Agora vamos fazer os exercícios ​14 -


17 ​da ​seção 2 ​na nossa ​sala de aula
do PLAY no code.org​.
56

Programando com
blocos no code.org
• Parecido com o bloco ​se​, o bloco ​se / se não​, nos
possibilita executar um determinado código caso a
condição não seja satisfeita.
57

se ​essa condição ​não ​for satisfeita

ignore ​essa ação

faça ​essa ação

Programando com
blocos no code.org
Agora vamos fazer os exercícios ​18 -
20 ​da ​seção 2 ​na nossa ​sala de aula
do PLAY no code.org​.

58

Introdução a
programação de
forma lúdica

• Introduzindo o bloco ​função​...


• Com esse bloco podemos criar funções. Sempre
que esta função for chamada na execução do seu
programa, o bloco de comando será executado.

Nome da função

Bloco de comandos da função “preencher 5”

59
Introdução a
programação de
forma lúdica

• Introduzindo o bloco ​função ​com parâmetros...


• Parâmetros são informações que serão passadas
ao chamar a função que serão utilizadas na
execução dos comandos
60
É possível passa um parâmetro na função ao criá-la.

Introdução a
programação de
forma lúdica
• Introduzindo o bloco ​função ​com parâmetros...
• Parâmetros são informações que serão passadas
ao chamar a função que serão utilizadas na
execução dos comandos

61
Parâmetro

Programação
Problema Programa

Algoritmo
Coleta de Dados

Decomposição de
Análise de Dados problemas
Automação

Representação de
Dados Abstração
Simulação
Paralelismo
Programação
Programação Funções e
Algoritmos Procedimentos

Coleta de dados

• Internet
• Banco de dados
• Pesquisas
• Dados históricos
• DataSets (arquivo com dados preparados)
prontos para fins de estudo
• ...
64

Coleta de Dados Automação

Análise de Dados Abstração

Paralelismo

Representação de
Programação
Dados Programação
Simulação Algoritmos

Decomposição de Funções e
problemas Procedimentos
Análise de dados

• Transfomação de dados em informações


• Auxilia na tomada de decisões
estratégicas
• Utilização dos dados coletados para
encontrar padrões, tendências e outras
diferenças que podem sugerir, suportar ​ou
rejeitar teorias sobre as causas ou os
defeitos.

1. Exploração dos dados –identificação dos


problemas ​2. Geração de hipóteses sobre
causas dos problemas –por meio da
exploração dos dados 3. Busca testar
hipóteses ou encontrar soluções para
eliminar a causa dos problemas

66

Coleta de Dados Automação

Análise de Dados Abstração

Paralelismo

Representação de
Programação
Dados Programação
Simulação Algoritmos

Decomposição de Funções e
problemas Procedimentos
Representação dos
dados

• Representação visual da análise dos


dados
• Gráficos
• Tabelas
• Relatórios
• Papers
• Entre outros

• Deve-se escolher uma forma intuitiva e de


fácil compreenção, adicionando tantos
elementos quanto forem ​necessários para
total compreenção (títulos, escalas,
legendas, etc)

68

Coleta de Dados

Abstração
Análise de Dados
Paralelismo
Programação
Representação de Programação
Dados Algoritmos
Simulação

Funções e
Decomposição de Procedimentos
problemas Coleta de Dados
Automação
Análise de Dados Abstração
Paralelismo
Programação
Representação de Programação
Dados Algoritmos
Simulação

Funções e
Decomposição de Procedimentos
problemas
Automação

Abstração

• Abstrair é observar (um ou mais elementos de


um todo), avaliando características e

propriedades em ​separado.

• Na programação a abstração é muito utilizada


para conseguir reutilizar comandos, funções,

até ​mesmo programas inteiros mudando

poucos aspectos, masi conhecidos como

parêmetros​.

• A abstração permite um maior nível de


generalização.

71

Coleta de Dados
Análise de Dados Abstração

Paralelismo

Representação de
Programação
Dados Programação
Simulação Algoritmos

Decomposição de Funções e
problemas Procedimentos
Automação

Algoritmos
• Conjunto de passos para realizar uma
determinada tarefa
Fazer um sanduiche

1. Pegar os ingredientes (pão, presunto, alface,


tomate, etc)

2. Cortar os ingredientes

3. Juntar os ingredientes entre as duas fatias de pão

4. Servir o sanduiche

73

Coleta de Dados

Representação de
Análise de Dados Dados
Simulação
Decomposição de Representação de
problemas Dados
Automação

Decomposição de
Abstração problemas
Coleta de Dados
Paralelismo
Programação
Programação
Funções e
Procedimentos
Algoritmos Simulação

Análise de Dados Automação


Programação
Programação Procedimentos
Algoritmos

Funções e

Abstração
Paralelismo ​

Simulação
• A Simulação é o terceiro pilar da ciência
• Método tradicional de ciência e de engenharia
1. Desenvolver uma teoria ou um projeto ​2.
Conduzir experimentos ou construir o projetado

76

Simulação
• Exemplo –Túnel de vento
77

Simulação
• Exemplo –Túnel de vento

• Construído na décadade 1980


• Velocidademáxima: 185km/h
• 6 motores de 23.500hp
• Lâminas de 12m
• Pode testar um737
• Custo:US$169M
• Alto custo de manutenção

78

Simulação

•Limitações:

• Muito difícil - construir grandes túneis de


vento
• Muito caro –construir aviões de
passageiros descartáveis
• Muito lento/inviável –esperar evolução
climática ou galáctica
• Muito perigoso –armamentos,
desenvolvimento de fármacos

79

Simulação

•Ciência e Engenharia
Computacionais:
◦ ​Usar sistemas de computação de
altodesempenho para simular e analisar
fenômenos.

 ​Baseado nas leis da física conhecidas e


em métodos numéricoseficientes ​
Analisar resultados da simulação com
ferramentas e métodos computacionais que
vão além do
que é tradicionalmente utilizado em
análises de dados experimentais

80

Você também pode gostar