Slide 1

Slide 1 text

Introdução a Lógica de Programação com python Aula #1 - Conceitos básicos

Slide 2

Slide 2 text

matheusvictor.github.io ✘ Técnico em Informática (IFBA); ✘ Graduando em B.I. em C&T (UFBA); ✘ Ex-membro do Grupo Comunidades Virtuais (UFBA); ✘ Contribuidor do Habitica; ✘ Estagiário em desenvolvimento de software (CI&T). Quem sou eu

Slide 3

Slide 3 text

Agenda ✘ Definições: ○ Lógica ■ Exercícios ○ Algoritmo ■ Exercícios ○ Linguagens de programação ■ Python ○ Tipos de dados; ○ Variáveis.

Slide 4

Slide 4 text

Por que todos deveriam aprender a programar? Disponível em: https://www.youtube.com/watch?v=mHW1Hsqlp6A Para ampliar a visão…

Slide 5

Slide 5 text

0. Lógica O que é e pra que serve isso?!

Slide 6

Slide 6 text

Lógica: definições ✘ A lógica é uma área da filosofia que visa estudar a estrutura formal dos enunciados (proposições) e suas regras; ✘ Parte da filosofia que trata das formas do pensamento em geral (dedução, indução, hipótese, inferência etc.) e das operações intelectuais que visam à determinação do que é verdadeiro ou não; ✘ Forma de ordenar os pensamentos para solucionar um problema ou executar uma tarefa.

Slide 7

Slide 7 text

Lógica: aplicações ✘ No cotidiano, utilizamos a lógica para estruturar nossa forma de pensar, fundamentar e validar fatos e teses. ✘ Usamos a lógica em situações cotidianas, como por exemplo: ✘ Escrever uma redação; ✘ Sustentar um argumento; ✘ Formular hipóteses.

Slide 8

Slide 8 text

Lógica: aplicações ✘ Na programação, a lógica entra como uma ferramenta para entender e fazer com que ocorra melhores sequências de ações ○ Ou seja, utilizamos as formas de ordenar os pensamentos para solucionar problemas ou executar tarefas para atingir determinados objetivos. ✘ O pensamento lógico nos ajuda a construir algoritmos!

Slide 9

Slide 9 text

Exercício Mental João é pai de Maria. Pedro é pai de João, logo quem é o avô de Maria? João maria Pedro

Slide 10

Slide 10 text

Exercício Mental O pai do padre é filho do meu pai, o que eu sou do padre? ?

Slide 11

Slide 11 text

Exercício Mental Desafio “Travessia do Rio: o lobo e a ovelha”. Disponível em: https://rachacuca.com.br/jogos/o-lobo-e-a-ovelha/

Slide 12

Slide 12 text

Exercício Mental (Para treinar em casa) ✘ Neste problema, cinco amigas estão sentadas uma ao lado da outra na escola. Cada uma delas prefere tomar um suco, quer viajar para uma cidade e tem uma matéria favorita. Além disso, possuem uma mochila de cor diferente e gostam de um animal cada uma. A partir das dicas, qual é a menina que tem gatos como animal de estimação? Desafio “Amigas na Escola”. Disponível em: https://rachacuca.com.br/logica/problemas/amigas-na-escola/

Slide 13

Slide 13 text

1. Algoritmos O que é e pra que serve isso?!

Slide 14

Slide 14 text

✘ Podemos entender algoritmos como uma sequência de passos lógicos que são executados para alcançar um objetivo ou realizar uma tarefa: ○ “um conjunto finito de instruções simples e precisas, que são descritas com um número finito de símbolos.” (Alan Turing, 1936) Algoritmo: Definições

Slide 15

Slide 15 text

para ampliar a visão… “O Jogo da Imitação” (2014)

Slide 16

Slide 16 text

✘ Sempre que pensamos, a lógica nos acompanha. E pensar logicamente nos ajuda a solucionar problemas ✘ O pensamento computacional nos permite criar algoritmos ○ Trocar uma lâmpada; ○ Comprar um pão; ○ Organizar uma festa. algoritmo

Slide 17

Slide 17 text

A partir dessas definições você consegue me dar exemplos de situações onde algoritmos são utilizados?

Slide 18

Slide 18 text

1. Entenda o problema a. Interpretação sobre o problema é essencial, então… melhore sua capacidade de interpretação. 2. Tente desenhar o problema, principalmente se ele for complexo; 3. Resolva o problema; 4. Se possível, otimize a solução. Algumas dicas

Slide 19

Slide 19 text

E o que isso tem a ver com programação?

Slide 20

Slide 20 text

Abstração de um algoritmo Entrada de informações Processamento Saída

Slide 21

Slide 21 text

Número Início Fim Dobro Dobro = número * 2 # início do algoritmo # Entrada de informação # processamento (calcular o dobro do número) # Saída (apresentação do resultado) # fim do algoritmo

Slide 22

Slide 22 text

Tá, mas… e como o computador vai entender essas instruções? É aí que entram as linguagens!

Slide 23

Slide 23 text

✘ A linguagem se utiliza de símbolos e a usamos para nos comunicar, certo?! ✘ Toda linguagem também possui: ○ Gramática: Regras sobre a forma de escrever ○ “Palavras-chave”: algumas símbolos possuem “funções especiais” ○ Contexto: ajuda a atribuir sentido ✘ Para que o outro lado entenda, é preciso que: ○ Ambos falem a mesma língua ou ○ Haja algum “tradutor” no caminho Linguagem de programação

Slide 24

Slide 24 text

✘ Usamos alguma linguagem de programação para se “comunicar” com o computador e instruí-lo a fazer o que queremos; ✘ Assim como os idiomas, existem diversas linguagens de programação; ✘ Cada uma delas possui sua “gramática” (sintaxe) e palavras-chave; ✘ Importante: as linguagens podem ser diferentes, mas a lógica é a mesma! ○ Ex.: 2+2 = 4 em qualquer lugar. Linguagem de programação

Slide 25

Slide 25 text

Linguagem de programação: alto nível, baixo nível… qual a diferença? Idiomas naturais Python, Java, etc. Aproximação de linguagem natural Aproximação da linguagem de máquina C Assembly Binário

Slide 26

Slide 26 text

✘ Criado por Guido Van Rossum em meados dos anos 90; ✘ Multiplataforma e Open source; ✘ Sintaxe simples e intuitiva: ○ Pensada para pessoas “não-programadoras”; ✘ Linguagem interpretada*; ✘ Multiparadigma; ✘ Tipagem dinâmica. Linguagem de programação: Python *Explicação no próximo slide

Slide 27

Slide 27 text

✘ Linguagem compilada ○ Código-fonte -> Compilador -> Código binário -> Executável ✘ Linguagem interpretada ○ Código-fonte -> Interpretador -> Trecho executável -> Trecho executável Compilada x Interpretada Baseado em material cedido por Ícaro Jerry

Slide 28

Slide 28 text

✘ Baixa curva de aprendizagem; ✘ Comunidade ativa; ✘ Bem documentada; ✘ Vasto conteúdo disponível; ✘ Amplamente utilizada: ○ Ciência de Dados; ○ Inteligência artificial; ○ Automação de tarefas e processos. Linguagem de programação: Python

Slide 29

Slide 29 text

int Números inteiros float Números reais string Cadeia de caracteres boolean Valor lógico (verdadeiro ou falso) None (null) “Lugar nenhum”. Importante: None != 0 Tipos de dados built-it* *Existem muitos outros, mas vamos se atentar apenas a estes por enquanto

Slide 30

Slide 30 text

✘ As variáveis funcionam como um “gaveta” na memória; ✘ Possuem 3 características essenciais: ○ Nome; ○ Tipo; ○ Valor. ✘ Os nomes das variáveis são sensitive case; ✘ Existem “padrões” de nomenclatura das variáveis. Variáveis

Slide 31

Slide 31 text

✘ As variáveis podem: ○ Começar com letras minúsculas ou maiúsculas (não recomendado); ○ Iniciar com underscore (Ex.: _variavel); ○ Ser separadas por underscore caso tenham nome composto (Ex.: minha_variavel); ✘ As variáveis NÃO podem: ○ Começar com número (Ex..: 1variavel); ○ Iniciar com caracter especial (Ex..: $variavel); ○ Utilizar palavras reservadas da linguagem. Variáveis: Regras de nomenclatura

Slide 32

Slide 32 text

print() Usada para saída de dados input() Lida com entrada de dados Funções built-it* *Existem muitas outras, mas vamos se atentar apenas a estas por enquanto

Slide 33

Slide 33 text

Let’s code Explorando o que foi visto até aqui…

Slide 34

Slide 34 text

Dúvidas, críticas, sugestões?! Entre em contato. matheusvictor.github.io Até mais e obrigado pelos peixes!