Plano de curso
Introdução à Computação
Acesse ctec.ufal.br/professor/cfs/
Em aula, acesse rede wi-fi CTEC, senha #arca&30# para acessar Discord
1
Profissões de mais rápido crescimento de 2025 a 2030
Importância de habilidades de 2025 a 2030
2
Trilha de formação em ciência de dados ambientais (que eu oferto)
3
Disciplinas relacionadas à trilha
1º Semestre
Introdução à Computacção
2º Semestre
Introdução à ciência de dados
3º Semestre
Inferência Bayesiana
4º Semestre
5º Semestre
6º Semestre
7º Semestre
8º Semestre
9º Semestre
Introdução às vazões ambientais
10º Semestre
Objetivo: Ser capaz de desenvolver soluções a problemas e de as aplicar via programação de computador
Ementa:
Condições:
O estudante terá indicação de fonte de material para estudo, bem como, acompanhamento e orientação de melhores práticas em sala e oportunidade de usar o laboratório de informática em horários alternativos
4
Conteúdos
A jornada do programa; Variáveis, expressões e instruções
Funções; Estudo de caso: projeto de interface
Condicionais e recursividade; Funções com resultado
Iteração
Strings; Estudo de caso: jogos de palavras
Listas
Dicionários; Estudo de caso: seleção de estrutura de dados; Tuplas
Extra
Matrizes
5
Ensino Explícito
6
Gestão de aprendizado e comunicação
Para professor
Para discente
7
8
2024.2
2024.1
2023.2
2022.1
2020.1
2021.1
2021.2
2016.2
2014.2
IC é um jogo?
Objetivo: Promover projeto de ensino-aprendizagem para que estudantes (desenvolvam plenamente projeto interativo com base em dados) resolvam problemas com programação em quatro meses.
2009.2
2018.1
2018.2
2025.1
2022.2
9
2022.2
- Práticas�- Jogo (Ic A Game)
- Aulas-Resumo
+ Problemas De Engenharia
IC é um jogo?
Objetivo: Promover projeto de ensino-aprendizagem para que estudantes (desenvolvam plenamente projeto interativo com base em dados) resolvam problemas com programação em quatro meses.
2009.2
Provas + Listas + Mini-Testes
2016.2
+ Práticas
- Provas
- Mini-Testes
+ Projeto Em Time
2014.2
+ Huxley (Tarefas)
- Listas
2018.1
+ Projeto Individual
2018.2
+ Aulas - Resumo
2020.1
- Huxley (Tarefas)
+ Jogo (Ic A Game)
2021.1
- Práticas
- Jogo (Ic A Game)
- Projeto Individual
- Aulas-Resumo
+ Scratch
2023.2
+ Listas Habilitadoras
+ Reavaliação Prévia
2024.2
- Problemas De Engenharia *1/10
- Jogo (Ic A Game)
- Listas Habilitadoras
+ Huxley (Tarefas)
+ Prova Estendida
2024.1
+ Práticas�+ Jogo (Ic A Game)
+ Aulas-Resumo
- Problemas De Engenharia *9/10
2025.1
- Aulas - Resumo
2022.1
+ Práticas/2
+ Jogo (Ic A Game)
+ Aulas-Resumo
- Projeto Em Time/2
- Scratch
2021.2
- Projeto Em Time/2
+ Práticas/2
2009.2
10
Legenda | |
P | Provas |
L | Listas |
t | Mini-testes |
P
P
P
P
L
L
L
L
L
L
L
L
L
t?
Relógio exemplificando o decorrer da carga horária da disciplina.
2014.2
11
Legenda | |
P | Provas |
T | Tarefas (via The Huxley) |
t | Mini-testes |
P
P
P
P
T
T
T
T
T
T
T
T
T
t?
2025.1
12
Legenda | |
P | Provas |
T | Tarefas (via The Huxley) |
P | Práticas (via The Huxley) |
P
P
P
P
T
T
T
T
T
T
T
T
T
P?
P?
Instrumentos de avaliação: práticas + tarefas + provas
Bimestre 1:
Bimestre 2:
Não envie solução de questão que não seja sua. Você garantirá zero no bimestre se o fizer. Não aceitaremos uma segunda submissão de solução de questão que não seja sua. Se o fizer uma segunda vez, você garantirá zero na média final
13
Exemplo de Tarefa no Huxley, para resolução em dias.
Prática no Huxley é a definição de uma questão para resolução em sala no momento
14
Instrutor Master
15
Materiais de apoio
16
Recomendação para cada desafio de programação
Aplique Pensamento computacional:
Para melhor entender os procedimentos, utilize um conjunto menor de dados e desenvolva as contas à mão. Por exemplo, na primeira tarefa, em vez de pegar todos os dados de todas as linhas, utilize apenas os cinco últimos dos dois primeiros meses (linhas) e verifique com o professor/monitor/colega se conseguiu resolver a questão devidamente.
Não se limite por paralisação (comece por alguma parte), por distração (identifique o propósito / valor da tarefa em relação às suas aspirações profissionais) ou por vitimização (sê grato/a em vez de se perceber limitado).
17
Pensamento computacional
Elementos: Decomposição, Reconhecimento de padrões, Abstração (do que é irrelevante) e Algoritmização.
Exemplo: estratégia para somar 200 primeiros inteiros positivos (1, 2, 3, …, 198, 199, 200).
“Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer -human or machine - can effectively carry out.” (Wing, J. 2014)
18
19
Comando de atribuição (“=”) à variável “resultado” do resultado da expressão anterior não salva, acessível a partir de “_”
Comando para resolver expressão. Atente à similaridade de prioridade de operação à matemática
Linha de definição da função “estudo”
Janela do editor de scripts
Janela com variáveis e seus dados atuais
Janela de comandos para o computador, repasse de dados e obtenção de mensagens do computador
Botões facilitadores da depuração de código
Recuos denotam bloco de comandos, os quais foram iniciados por “:”
Iniciação da estrutura de repetição indefinida do bloco de comandos
Chamada da função “menu”, criada anteriormente neste script, para imprimir mensagens na Janela de comandos
Chamada da função “input”, para receber dado do usuário na Janela de comandos
Comando para sair da estrutura de repetição
Comando para não imprimir nada (não houve repasse de argumento ao”print”) e pular linha (comando padrão do “print”)
1
4
2
3
Iniciação da estrutura de condição, para limitar quando executar o bloco de comandos
20
21
Variável que carrega dado é como um copo
Variável que carrega uma função é como um garçom
Estrutura de dados [string, list, dict, tuple] é como uma mesa, onde se consegue depositar / pegar produtos. Cheque métodos disponíveis por tipo de estrutura de dados
Dados básicos de um programa são como produtos. Opções de dado são texto [string], número [integer ou float] e lógicos [True ou False]
Variável é como uma entidade com nome que pode receber / carregar conteúdo
22
Parêntese seguindo uma variável é como um pedido do cliente
O rascunho do programa é como a anotação do pedido
Repetição definida [for] de um bloco de comandos é como separar a quantidade de um ingrediente (ex. 2 ovos)
Variável que carrega dados de acesso ao arquivo são como uma comanda
Valor de retorno [return] é como a descrição do que será entregue
Script / algoritmo é como a informação para lançamento do pedido
[print] serve ao desenvolvimento de código como a checagem do pedido pela garçonete
Pensamento Computacional resulta em algoritmo/script que é como o modo de preparo
Argumentos de função são como ingredientes em uso numa receita (exemplo, aveia da marca xyz).
Parâmetros da função são como estes estão descritos na receita (aveia)
Condicional [if] é como um inibidor de criação de múltiplas receitas para bolos parecidos, permitindo acessar apenas o bloco de comandos pertinente à receita de interesse especificada
Repetição indefinida (repetição de condicional; [while]) de um bloco de comandos é como em “até obter uma massa homogênea”. Tem como parar [break] a execução repetitiva de um bloco de comandos
Pensamento Computacional a partir da contagem regressiva
Decomposição, identificação de padrões, abstração e algoritmização
Considere que precisamos comunicar à máquina na linguagem que ela acessa
23
3
2
1
Acabou
5
4
3
2
1
Acabou
início
-1
-1
-1
-1
-1
-1
-1
-1
Conseguimos quebrar o procedimento em componentes?
Sim. Geração de novo número a cada vez.
Há um padrão em repetição? Algo a fazer antes de começar a repetir?
Conhecer o número de partida e o definir como atual
Quais operações são repetidas?
informar número
subtrair 1 de atual
Qual o limite para repetições?
atual alcançar 0
Algo a fazer quando terminar de repetir?
informar que acabou
Exemplos de contagem:
atual
atual
O que mudaria na contagem progressiva?
24
0
1
2
3
Acabou
0
1
2
3
4
5
Acabou
início
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
Exemplos de contagem:
Conseguimos quebrar o procedimento em componentes?
Sim. Geração de novo número a cada vez.
Há um padrão em repetição? Algo a fazer antes de começar a repetir?
Conhecer o número de fim, definir número atual = 0
Quais operações são repetidas?
informar número
acrescentar 1 a atual
Qual o limite para repetições?
variável atual alcançar número de fim
Algo a fazer quando terminar de repetir?
informar que acabou
atual
atual
25
Nova chamada (abre novo escopo de variáveis) à função recursiva “repete”
Condição para executar bloco que inicia na linha 3.
Reatribuição à variável “atual”, incrementando-a por “1”
Se a avaliação da condição (i < n) resultar “True”, executa bloco que inicia na linha 12
Senão, pula para a linha 13
Se “i” estiver no intervalo definido com “n” como limite (por padrão, início é “0” e atualização por incremento de “1”), executa bloco que inicia na linha 15
Senão, pula para a linha 16
Incremento do valor de “i” em 1, para garantir que em algum momento a condição (i < n) dê “False”
1
2
3
Pensamento computacional a partir da multiplicação
26
r 0 2 4 6 8 10
5 x 2 = 0 + 2 + 2 + 2 + 2 + 2
i 0 1 2 3 4 5
r 0 4 8 12
3 x 4 = 0 + 4 + 4 + 4
i 0 1 2 3
r = ∑i=0:n 2
r = ∑i=0:n 4
r = ∑i=0:n x
i: variável que conta (controla) as repetições
r: variável que acumula a soma
ambas iniciam do elemento-neutro e se atualizam por termos diferentes
The Huxley
O assistente virtual de aprendizagem adotado é o theHuxley (www.thehuxley.com), concebido no Instituto de Computação da Ufal, sob orientação do professor Rodrigo Paes. O assistente tem uma base de mais de 3000 questões. Permite programar diretamente nele, tirar-dúvidas e trocar mensagens, aplicar exercícios e gerenciar listas e turmas, identificar similaridades de resoluções de questões, rankings e estatísticas.
- Instruções para vinculação à turma no Huxley (realizada apenas no primeiro acesso): Acesse thehuxley.com, Realize o cadastro e anote suas definições de acesso (login) para uso futuro, Clique na aba "Turmas", Clique no ícone com imagem de chaves (fundo azul, cor branca no canto superior direito) e Insira a chave disponibilizada no Discord da turma.
- Há, no youtube, tutoriais para aprender a usar o theHuxley, por exemplo, como ele funciona (https://www.youtube.com/watch?v=vHVngNKTR80), como submeter um código para uma questão (https://www.youtube.com/watch?v=VWZjD_OekzE) dentre as mais de 3000 (https://www.youtube.com/watch?v=3DAVPyIauvA).
- Atenção à linguagem! Usaremos Python 3.
- Vou ajudar um pouquinho, passando uma dica de site que interpreta mensagens de erro que o Huxley pode devolver (https://www.thehuxley.com/help/doubt-of-students).
- Utilize sempre que possível a função de tirar dúvidas disponível na própria plataforma.
- Não copie questões da internet nem dos colegas de turma. O theHuxley acusa similaridades a serem verificadas pelo professor.
27
Os tópicos do Huxley específicos de cada capítulo do Pense em Python estão disponibilizados na tabela. À medida que os capítulos são lecionados, alguns tópicos do Huxley são liberados. Por exemplo, no assunto “Variáveis, expressões e instruções”, questões do Huxley sobre o tópico `formatação` podem ser selecionadas, contato que não tenham tópico de capítulo posterior do livro, como `decisão`. Evite a questão que tiver qualquer tópico fora os da tabela.
28
Capítulo | Pense em Python | The Huxley |
2 | Variáveis, expressões e instruções | formatação, lógica matemática, ponto flutuante, entrada formatada |
3 | Funções | caractere, função |
4 | Estudo de caso: projeto de interface | |
5 | Condicionais e recursividade | árvore, decisão, recursão, acumulador |
6 | Funções com resultado | números primos |
7 | Iteração | ordenação, repetição, múltiplas entradas, eof |
8 | Strings | string, substring, palíndromos |
9 | Estudo de caso: jogos de palavras | |
10 | Listas | alocação dinâmica, array, busca, programação dinâmica |
| Matrizes | array bidimensional |
11 | Dicionários | dicionário, simulação de jogos, estruturas, estrutura de dados, números romanos |
12 | Tuplas | dicionário com ordenação com 2 ou mais fatores, intercalação |
A dedicação a aprender a programar tem como benefício a auto-transformação.
29
Habilidades e competências elevam a auto-estima
Auto-conhecimento pode direcionar ao esforço ou à fuga (desvio ético ou moral)
Compensações por esforço são duradouros (em detrimento a soluções fáceis por IA ou por outros) e múltiplos
Para desenvolver habilidades (do TEDx do Ernesto Burden):
O processo de estudo e de se submeter a avaliações demanda organização e ação com foco no agora
Avaliações por humanos são mais ricas, eficientes e geram mais habilidades e benefícios
Agir sobre a vulnerabilidade (fora da zona de conforto) transforma e cativa
Auto-conhecimento quanto ao que emociona e a condução da aprendizagem no sentido do que emociona (auto-formação) geram a auto-realização
30