O documento descreve um curso para meninas sobre programação com Python. O curso tem como objetivos principais desenvolver habilidades de programação e resolver problemas, e como objetivo secundário motivar as alunas a ingressarem em carreiras de computação. O curso acontecerá aos sábados e seguirá um protocolo com aulas, exercícios e avaliações.
6. Objetivos
O principal objetivo é fornecer às discentes oportunidade de desenvolver
habilidades de programação e de resolução de problemas por meio de aulas
que combinam teoria e prática.
O objetivo secundário é motivar as alunas a ingressarem em carreiras de
computação.
Python & práticas baseadas em problemas da OBI júnior
7. Nosso curso
Protocolo
● Qualquer plágio implica desligamento do curso
● Quatro aulas aos sábados 14h-17h…. início às 14:00 quase em ponto!
● Avaliação no quinto sábado, prova de recuperação no sexto sábado
● Duas horas semanais de exercícios com monitores (mínimo 4x 30min)
● Quatro listas de exercícios (mínimo de 75% accept no beecrowd)
● Justificativa de falta
○ email: meninasprogramadoras@icmc.usp.br
○ assunto: MPT14 Justificativa de Falta
Plataformas
● Google Classroom: aulas, atividades/material, mural
● Replit, Colab, Beecrowd
● Whatsapp (opcional)
14. O tempo todo:
aspira
varre
ande para frente
em caso de batida ou abismo:
dá marcha-ré
vira para a direita
Joaninha: ações do robô
enquanto houver bateria:
aspire
varre
ande para frente
em caso de batida ou abismo:
dê marcha-ré
vire para a direita
Um Algoritmo
Um algoritmo é uma sequência de instruções não
ambíguas para resolver um problema de forma a produzir,
em um período de tempo finito, a saída correspondente
para qualquer entrada legítima (Levitin 2003)
A. Levitin, Introduction to The Design &
Analysis of Algorithms, Addison-Wesley, 2003
obedece
15. O pensamento computacional é o processo de pensamento
envolvido na formulação de um problema e na expressão de sua
solução de tal forma que um agente, humano ou computacional,
possam efetivamente resolvê-lo (adaptado de Wing, 2014)
● processo de pensamento: conjunto de atividades mentais
● expressão da solução: representação linguística que
possibilite a comunicação de uma solução a outros agentes
● efetivo: eficiente e eficaz
○ eficiente: executa tarefa com qualidade e sem erros
○ eficaz: atinge objetivo
Pensamento Computacional: uma definição
16. 1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
Pensamento Computacional: pilares
17. 1. Decompor o problema
● Dividir o problema em problemas menores
● A solução do problema combina as soluções dos problemas menores
2. Reconhecer padrões recorrentes
● Identificar padrões encontrados em mais que uma parte do problema
● Identificar padrões encontrados em outros problemas que se sabe resolver
3. Abstrair tarefas e seus dados de entrada e saída
● Listar as tarefas necessárias para resolver o problema, os dados de entrada
necessários para cada tarefa, e os resultados produzidos por cada tarefa
4. Explicitar algoritmo que resolve o problema
● Explicitar o algoritmo que resolve o problema.
Pensamento Computacional: um conjunto de pilares
22. 1. Desenhar a parede
Desenhar uma casa
2. Desenhar o telhado
3. Desenhar a porta
4. Desenhar a janela
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
a. Desenhar o retângulo externo
b. Desenhar uma linha vertical
no meio da largura
c. Desenhar uma linha horizontal
no meio da altura
23. Desenhar uma casa
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
https://scratch.mit.edu/projects/716321918
24. Redigir um email
1. preencher campo destinatário
2. preencher campo assunto
3. redigir o conteúdo
https://commons.wikimedia.org/wiki/File:Android_Email_8.1_Icon.png
25. Redigir um email
1. preencher campo destinatário
2. preencher campo assunto
3. redigir o conteúdo
a. escrever saudação
b. redigir conteúdo
c. finalizar
26. Redigir um email
1. preencher campo destinatário
2. preencher campo assunto
3. redigir o conteúdo
a. escrever saudação
b. elaborar conteúdo
i. redigir início
ii. redigir meio
iii. redigir final
c. finalizar
i. escrever despedida
ii. escrever assinatura
redigir conteúdo
repita até conteúdo acabar
● redigir parágrafo
redigir parágrafo
repita até parágrafo acabar
● redigir período
redigir período
repita até período acabar
● redigir oração
redigir oração
repita até a oração acabar
● redigir sujeito
● redigir predicado
27. Redigir um email
1. preencher campo destinatário
2. preencher campo assunto
3. redigir o conteúdo
https://scratch.mit.edu/projects/715025468
https://commons.wikimedia.org/wiki/File:Android_Email_8.1_Icon.png
28. Fazer um pudim de leite condensado
1. Pegar os ingredientes
2. Colocar os ingredientes no liquidificador
3. Ligar o liquidificador
4. Colocar na forma de pudim
5. Assar no forno de micro-ondas
29. Fazer um pudim
1. Pegar
a. ingredientes
b. utensílios
2. Colocar os ingredientes no liquidificador
a. o conteúdo de uma lata de leite condensado
b. duas lata-medida de leite
c. três ovos
3. Ligar o liquidificador
a. tampar o liquidificador
b. ligar
c. aguardar estar misturado
4. Colocar na forma
a. untar a forma
b. colocar o conteúdo do liquidificador na forma
c. fechar a forma com filme plástico
5. Assar no forno de micro-ondas
a. colocar a forma no micro-ondas
b. configurar timer
c. ligar o micro-ondas
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
30. Fazer um pudim
1. Pegar
2. Colocar os ingredientes no liquidificador
a. o conteúdo de uma lata de leite condensado
b. repita duas vezes
■ encher a lata com um leite e colocar no liquidificador
c. repita três vezes
■ quebrar um ovo com cuidado e colocar seu conteúdo no liquidificador
3. Ligar o liquidificador
4. Colocar na forma
5. Assar no forno de micro-ondas
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
31. Fazer um pudim
1. Pegar
2. Colocar os ingredientes no liquidificador
3. Ligar o liquidificador
4. Colocar na forma
5. Assar no forno de micro-ondas
a. colocar a forma no micro-ondas
b. configurar o timer para 12 minutos
c. ligar o micro-ondas
d. esperar micro-ondas desligar sozinho
e. esperar 5 minutos para diminuir a temperatura
f. retirar do forno
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
Outros sabores
Café
Cacau
Canela
33. ● boa tarde!
● escrevam SIM na janela de chat
● escrevam OI na janela de chat
● ugabudagitauiadohaskd
● Penso, logo existo.
● Eu, queria muito comer pudim.
● Penso logo, existo.
while True:
print(‘yes’)
34. 1. Obter dividendo
2. Obter divisor
3. Obter maior valor inteiro que, multiplicado pelo divisor, seja
menor ou igual ao dividendo e atribuir ao quociente
4. Subtrair do dividendo a multiplicação do divisor pelo
quociente e atribuir o resultado ao resto
Realizar operação matemática
divisão inteira
dividendo
divisor
quociente
resto
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema
36. 1. Obter dividendo
2. Obter divisor
3. Extrair menor prefixo que seja maior que o divisor
4. Obter número maior inteiro que, multiplicado pelo divisor, seja
menor ou igual ao dividendo e atribuir ao quociente
5. Subtrair do dividendo a multiplicação do divisor pelo quociente e
atribuir o resultado ao resto
Realizar operação matemática
divisão inteira
dividendo
divisor
quociente
resto
1. Decompor o problema
2. Reconhecer padrões recorrentes
3. Abstrair tarefas e seus dados de entrada e saída
4. Explicitar algoritmo que resolve o problema