Este documento apresenta um resumo da primeira aula de um curso de programação em Python. O curso abordará lógica de programação, banco de dados, programação orientada a objetos e outras tecnologias. Na primeira aula, são introduzidos conceitos básicos como algoritmos, linguagens de programação e a linguagem Python.
4. Sobre o curso
Público alvo: iniciantes em programação e programadores
iniciantes em Python
Duração: de dia 7/10 (hoje) até dia 11/11
Hórarios de aula:
▶ Aulas presenciais aos sábados, das 8:00 até 12:00 de manhã,
e das 13:00 até 17:00 de tarde
▶ Aulas gravadas e atividades complementares no Classroom
Conteúdos:
▶ “Lógica de programação”
▶ Banco de dados – MongoDB
▶ Programação Orientada a Objetos
▶ Interface Gráfica – Qt
▶ Web
▶ Processamento de dados e gráficos
▶ Machine Learning
2 44
7. O que é um algoritmo?
Um algoritmo é uma sequência de instruções bem definidas que,
quando executadas, realizam uma tarefa
3 44
8. Representação de um Algoritmo - Fluxograma
Figura: Algoritmo de um aquecedor de liquido com controle de
temperatura, para manter a temperatura em torno de 50ºC
4 44
9. Representação de um Algoritmo - Texto
Um algoritmo pode ser descrito textualmente como uma
sequência de passos com possíveis “saltos” condicionais entre
passos.
Algoritmo do aquecedor de líquido
1. Obtenha a temperatura t do líquido em ºC;
2. verifique se t ≤ 50:
2.1 caso sim, ligue o ebulidor;
2.2 caso não, desligue o ebulidor;
3. aguarde 1 segundo;
4. retorne ao passo 1.
5 44
10. Representação de um Algoritmo - Texto
Um algoritmo pode ser descrito textualmente como uma
sequência de passos com possíveis “saltos” condicionais entre
passos.
Algoritmo do aquecedor de líquido
1. Obtenha a temperatura t do líquido em ºC;
2. verifique se t ≤ 50:
2.1 caso sim, ligue o ebulidor;
2.2 caso não, desligue o ebulidor;
3. aguarde 1 segundo;
4. retorne ao passo 1.
Porém, este tipo de representação não conta com um conjunto
bem definido de instruções.
5 44
11. Representação de um Algoritmo - Cálculo
Lambda
Cálculo Lambda é um modelo matemático de computação
proposto por Alonzo Church em 1932
Neste modelo, os algoritmos são descritos como cadeias de
Funções Lambda
Cálculo Lambda inspirou a linguagem de programação LISP
Fatorial de 5 em Cálculo Lambda
(λn.(λf.(λx.n(λg.(λa.(g(fga))))(λa.x))(λx.x))(λf.(λx.f(fx))))5
6 44
12. Representação de um Algoritmo - Máquina de
Turing
A Máquina de Turing, proposta por Alan Turing em 1936, é o
principal modelo matemático de computação
Neste modelo, os algoritmos são descritos como cadeias de
símbolos que induzem mudanças de estado em um
autômato
Este modelo deu origem às CPUs (Central Processing Unit)
Figura: Esboço dos elementos de uma Máquina de Turing
7 44
13. Unidades de Processamento Central (CPUs)
A CPU é o “coração” de um computador. Ela é responsável
por executar as sequências de instruções que constituem os
algoritmos.
Uma CPU tem um conjunto bem definido de instruções que
pode executar.
8 44
14. Instruções de uma CPU
Figura: Conjunto de instruções de um processador ARM
9 44
15. Linguagem de Montagem (Assembly)
Linguagens de Montagem
(Assembly) são linguagens
de programação primitivas
que funcionam como
notações legíveis do código
binário
Desenvolver um programa
em Assembly é
extremamente trabalhoso e
requer conhecimentos
avançados sobre o
hardware do computador
As intruções variam de
computador para
computador
Figura: Exemplo de código em
linguagem de montagem
(Assembly) para processadores
ARM
10 44
16. Programação nos velhos tempos
Nos anos 70, os códigos em Assembly eram convertidos em
código de máquina manualmente
Os programadores transferiam os programas em código de
máquina para o computador através de um painel
Figura: Painel de programação de um computador PDP-11
https://youtu.be/XV-7J5y1TQc?si=gy9aS6kd3qcXwtuB
11 44
17. Linguagens de Programação de Alto Nível
Linguagens de Programação de Alto Nível de Abstração
existem para facilitar o processo de programação
Exemplos de linguagens de alto nível ancestrais são: COBOL,
FORTRAN, ALGOL, BASIC, etc
Exemplos de linguagens de alto nível modernas são: Python,
JavaScript, Java, C#, C++, etc
12 44
18. O que é uma linguagem de programação?
Linguagens de
Programação são idiomas
formais pelos quais os
programas de computador
são descritos
Idiomas formais têm regras
gramaticais rigorosamente
definidas que devem ser
seguidas à risca
A maioria das linguagens de
programação modernas são
compostas por termos em
inglês, como if, else, for,
while, etc
Figura: Código em Python
13 44
19. Características de linguagens de programação
Linguagens de programação são classificadas por:
Nível de abstração:
▶ baixo nível (ex: Assembly),
▶ alto nível (ex: Python, JavaScript, C++, Java, etc).
Tipo de processamento:
▶ interpretadas (ex: Python, JavaScript, etc),
▶ compiladas (ex: C, C++, Java, etc),
▶ transpiladas (ex: TypeScript, CoffeScript, etc).
Paradigma: Imperativo, Estruturado, Orientado a Objetos,
Funcional, Lógico, etc.
Tipagem: dinâmica, estática, forte ou fraca.
14 44
20. Características da linguagem Python
Python é uma linguagem interpretada, de alto nível de
abstração, e de uso geral.
Python é preferida em aplicações que envolvem mais
matemática, como ciência de dados, inteligência artificial e
computação científica.
Python combina os paradigmas estruturado, orientado a
objetos e funcional.
Python é dinamicamente e fortemente tipada.
▶ Tipagem dinâmica: variáveis não possuem tipo de dado fixo.
▶ Tipagem forte: um tipo de dado não pode ser tratado como
se fosse outro.
15 44
21. Python - prós e contras
Prós:
Amplamente difundida
Ecossistema de bibliotecas poderoso e homogêneo
Sintaxe simples e fácil de aprender
Contras:
Lentidão (se usada de maneira inapropriada)
Alto consumo de memória
A tipagem dinâmica pode causar desorganização
16 44
23. Área de Dados
A área de dados lida com a coleta, manipulação e análise de
dados de usuários.
Engenheiro de Dados - profissional que
desenvolve e mantém os sistemas de
coleta e processamento de grandes
volumes de dados.
Cientista de Dados - profissional que
modela os dados com técnicas de
predição estatística e de machine
learning.
Analista de Dados - profissional que
analisa dados a fim de tirar
interpretações, conclusões e auxiliar em
tomadas de decisões.
17 44
24. Área de Dados – O que estudar
Engenharia de
Dados
Banco de
dados
Infraestrutura
de Nuvem
Computação
Distribuída
Ciência de Dados
Estatística
Machine
Learning
Análise de Dados
Representação
de dados
Storytelling
Inteligência de
Negócios
18 44
25. Inteligência Artificial
Inteligência Artificial é a área da computação que se concentra
em criar sistemas e algoritmos capazes de realizar tarefas que,
normalmente, exigiriam inteligência humana.
Alguns tópicos importantes em IA:
Machine Learning
Visão Computacional
Processamento de Linguagem Natural
Processamento Inteligente de Sinais
Pesquisa Operacional e Otimização
IAs Generativas
19 44
26. Inteligência Artificial - Visão Computacional
A Visão Computacional se concentra no desenvolvimento de
sistemas de identificação de padrões e extração de informações
em imagens digitais
Figura: Exemplo de aplicação de Visão Computacional – detecção de
objetos
20 44
27. Inteligência Artificial - Processamento de Lin-
guagem Natural
O Processamento de Linguagem Natural se concentra no
desenvolvimento de sistemas que extraem informações (como
intensões, conclusões, etc) da comunicação humana
21 44
28. Inteligência Artificial - Processamento Inteli-
gente de Sinais
O Processamento Inteligente de Sinais se concentra no
desenvolvimento de sistemas que reconhecem padrões e
extraem informações de sinais digitais, como áudio, vibração
mecânica, ondas eletromagnéticas, etc
22 44
29. Inteligência Artificial - Pesquisa Operacional e
Otimização
Pesquisa Operacional e Otimização são áreas que utilizam
técnicas matemáticas e computacionais para resolver problemas
complexos de tomada de decisão em uma ampla variedade de
áreas, como logística, finanças, produção, transporte e muito
mais.
Figura: Pathfindig, que consiste em encontrar o caminho mais curto
entre dois pontos em meio a obstaculos, é um problema de Pesquisa
Operacional
23 44
30. Inteligência Artificial Generativa
IAs Generativas são sistemas inteligentes capazes de gerar
dados artificialmente, como fotos, textos, obras de arte e áudios
de fala.
Figura: Sistemas de Deep Fake são
exemplos de IAs Generativas Figura: IAs Generativas podem ser
utilizadas para gerar obras de arte
24 44
31. Desenvolvimento Web
Desenvolvedores Web são proficionais que desenvolvem
sistemas para a internet, como websites e APIs.
Front-End - frente que lida
com o desenvolvimento da
parte visual dos sistemas,
que é executada no
computador do usuário.
Back-End - frente que lida
com o desenvolvimento da
parte sistêmica que é
executada no servidor.
Python pode ser utilizada no Back-End.
25 44
33. Inglês é fundamental – Inglês é o idioma da tecnologia.
Além de linguagens de programação terem palavras em
Inglês, a esmagadora maioria dos materiais de tecnologia,
como livros, artigos, tutoriais e documentações, são escritos
em inglês.
26 44
34. Inglês é fundamental – Inglês é o idioma da tecnologia.
Além de linguagens de programação terem palavras em
Inglês, a esmagadora maioria dos materiais de tecnologia,
como livros, artigos, tutoriais e documentações, são escritos
em inglês.
Procure se atualizar constantemente – Prepare-se para
passar o resto da vida estudando, pois a área da tecnologia
está sempre passando por mudanças radicais. Quem para de
estudar, fica para trás!
26 44
37. Hello World
Digite a seguinte linha de código no editor e execute:
Código
print("Hello World!") #escreve hello world
print(...) - função que escreve no terminal.
"Hello World!" - string contendo a frase “hello world!”.
#... - comentário, ignorado pelo interpretador.
28 44
38. Variáveis
Variáveis são pequenos espaços de memória reservados para
armazenar dados.
Para criar uma variável em Python, basta digitar um nome
seguido por um valor.
Exemplo de código
name = " F i l i p e Chagas " #meu nome
height = 1 . 7 1 #minha altura
age = 24 #minha idade
print ( f "Meu nome e {name} " )
print ( f "Minha altura e {name} " )
print ( f "Minha idade e { age } " )
29 44
39. Tipos de dados
Em Python, todos os dados são objetos. Cada objeto tem um
tipo.
Exemplos de tipos de dados:
str - texto
int - número inteiro
float - número real
bool - tipo lógico (True ou False)
Escreva no editor e execute
print ( type ( " F i l i p e Chagas " ) )
print ( type ( 1 . 7 1 ) )
print ( type ( 2 4 ) )
print ( type ( True ) )
30 44
40. Conversões
É possível converter tipos de dados.
Escreva no editor e execute
height = float ( " 1 . 7 1 " ) #converte s tr em float
age = int ( " 24 " ) #converte s tr em int
height_text = str ( 1 . 7 2 ) #converte float em s tr
age_text = str ( 2 4 ) #converte int em s tr
print ( f " { height } { type ( height ) } " )
print ( f " { age } { type ( age ) } " )
print ( f " { height_text } { type ( age ) } " )
print ( f " { age_text } { type ( age_text ) } " )
31 44
41. Entrada
É possível pedir para o usuário digitar um valor no terminal
utilizando a função input.
Escreva no editor e execute
name = input ( " Digite um nome: " )
age = int ( input ( " Digite uma idade : " ) )
height = float ( input ( " Digite uma altura (m) : " ) )
print ( f " {name} tem { age } anos e { height }m de altura "
input(...) escreve uma mensagem no terminal e retorna o
que o usuário digitou como str.
32 44
42. Aritmética
Python possui os operadores aritméticos “+” (soma), “-”
(subtração), “*” (multiplicação), “/” (divisão), “//” (divisão
inteira), “%” (resto) e “**” (potenciação).
Escreva no editor e execute
a = float ( input ( " Digite a : " ) )
b = float ( input ( " Digite b : " ) )
print ( f "Soma : { a + b} " )
print ( f " Subtracaoo : { a − b} " )
print ( f " Multiplicacao : { a * b} " )
print ( f " Divisao : { a / b} " )
print ( f " Divisao i n t e i r a : { a // b} " )
print ( f " Resto : { a % b} " )
print ( f " Potenciacaoo : { a ** b} " )
33 44
43. Comparações
Python possui os operadores relacionais “==” (igualdade), “!=”
(não-igualdade), “<” (menor-que), “<=” (menor-ou-igual), “>”
(maior-que) e “>=” (maior-ou-igual).
Escreva no editor e execute
a = float ( input ( " Digite A : " ) )
b = float ( input ( " Digite B : " ) )
print ( f "A igual B ? : { a == b} " )
print ( f "A diferente de B ? : { a ! = b} " )
print ( f "A maior que B ? : { a > b} " )
print ( f "A maior ou igual B ? : { a >= b} " )
print ( f "A menor que B? : { a < b} " )
print ( f "A menor ou igual B ? : { a <= b} " )
34 44
44. Operações matemáticas especiais
Python possui os operadores matemáticos especiais, como raiz
quadrada, logaritmo, seno, cosseno, piso e teto, na biblioteca
math.
Escreva no editor e execute
import math
a = float ( input ( " Digite A : " ) )
print ( f " Raiz quadrada de a : { math . sqrt ( a ) } " )
print ( f " Log de a na base 10: { math . log ( a , 10)} " )
print ( f "Seno de a : { math . sin ( a ) } " )
print ( f " Cosseno de a : { math . cos ( a ) } " )
print ( f " Piso de a : { math . floor ( a ) } " )
print ( f " Piso de b : { math . c e i l ( a ) } " )
35 44
45. Estruturas de controle - if
Um bloco if determina que o código em seu escopo só deve ser
executado caso uma determinada condição seja satisfeita.
Escreva no editor e execute
age = int ( input ( " Digite uma idade : " ) )
i f age >= 18:
print ( " Maior de idade " )
print ( f "A idade e { age } " )
36 44
46. Estruturas de controle - else
Escreva no editor e execute
age = int ( input ( " Digite uma idade : " ) )
i f age >= 18:
print ( " Maior de idade " )
else :
print ( "Nao e maior de idade " )
O código no escopo do bloco else só é executado caso a
condição do if não seja satisfeita.
37 44
47. Estruturas de controle - elif
Para adicionar mais uma condição, podemos acrescentar um
bloco elif, que significa “else if”.
Escreva no editor e execute
age = int ( input ( " Digite uma idade : " ) )
i f age >= 60:
print ( " Idoso " )
e l i f age >= 18:
print ( " Adulto " )
else :
print ( "Menor" )
38 44
48. Estruturas de controle - while
O código dentro do escopo do while é repetido enquanto a
condição é satisfeita.
Escreva no editor e execute
age = int ( input ( " Digite uma idade : " ) )
while age > 0:
print ( f " Idade : { age } " )
age = age − 1 #decrementa a idade em 1
39 44
49. Estruturas de controle - for
O código dentro do escopo do for é repetido por uma
quantidade predeterminada de vezes.
Escreva no editor e execute
for age in range (0 , 100):
i f age >= 60:
print ( f " { age } anos − idoso " )
e l i f age >= 18:
print ( f " { age } anos − adulto " )
e l i f age >= 1 3 :
print ( f " { age } anos − adolescente " )
else :
print ( f " { age } anos − crianca " )
No exemplo acima, age é incrementada de 0 até 99.
40 44
50. Desafio – Teste de Paridade
Faça um programa que diga se um número
digitado pelo usuário é par ou ímpar.
Tempo: 5 minutos
41 44
51. Desafio – Fatoração
Faça um programa que, para um número inteiro x
digitado pelo usuário, mostre todas as fatorações
inteiras possíveis.
Exemplo: para x = 40, as fatorações são 2 × 20, 4 × 10 e 5 × 8.
Tempo: 15 minutos
42 44
52. Desafio – Teste de Primalidade
Faça um programa que diga se um número
digitado pelo usuário é primo ou não.
Tempo: 15 minutos
43 44
53. Desafio – Calculadora
Faça uma programa onde o usuário digita um
número a, um número b, e uma operação, que
pode ser adição, subtração, multiplicação,
divisão, resto da divisão e potenciação. A saída
do programa deve ser a aplicação da operação
escolhida aos operandos a e b.
44 / 44