Este repositório se destina a consolidar as aulas ministradas no Colégio Elite para o intinerário formativo de Computação.
Este curso é pensado para alunas de com conhecimentos sólidos de álgebra a nível de Ensino Fundamental. Não é necessário nenhum conhecimento formal prévio em computação.
Este curso tem como o objetivo a aprofundar o conhecimento da aluna como cidadã de uma sociedade permeada por tecnologias computacionais. Entendemos que o impacto da área na vida social é tamanho e torna-se então necessário entendermos melhor a forma como esse inpacto é desenvolvido, aplicado e se perpetua.
Para isso, similar como descrito por College Board
, focaremos em desenvolver as seguintes habilidades e competências:
- Design de soluções computacionais
- Invertigar a situação e contexto
- Determinar e desenvolver um método ou abordagem para atingir o objetivo
- Avaliar as opções de soluções
- Desenvolvimento de algoritmos e programas
- Representar o processo do algoritmo sem depender de uma linguagem de programação
- Inplementar e aplicar algoritmos
- Abstração no desenvolvimento de programas
- Generalizar fontes de dados por meio de variáveis
- Controlar a complexidade do programa por meio de abstrações
- Análise de código
- Explicar como um segmento de código funciona
- Determinar o resultado de um segmento de código
- Identificar e corrigir erros
- Inovações computacionais
- Explicar como a internet funciona
- Representar informações a serem apresentadas na internet
- Computação ética e responsável
- Descrever o impacto da computação na sociedade
- Avaliar o impacto da coleta de dados e seus fatores éticos
- Reconhecer direitos autorais e propriedades intelectuais de outros
O code.org propõe o curso CS Principles com o seguinte currículo. Além disso, ele lista outros recursos.
O Google for Education disponibiliza algumas ferramentas interessantes, com currículos, planos de aula e ferramentar. Dentre estes, destaco CS First e Seja Incrível Na Internet.
Artigos no assunto: - Teaching High School Students Computational Thinking with Hands-on Activities
Outro recurso importante para instrutores é o site Computer Science Teachers Association.
A ACM faz sua recomendação de currículo a nível de graduação no relatório enquanto que a SBC descreve as diretrizes para ensino de Computação na Educação Básica.
Este curso é fortemente inspirado no curso de CS50 AP e pelo CS50x 2022. Para educadores, CS50 Educator Workshop 2021 - CS50x 2022 é uma boa fonte de conhecimento.
A “College Board” traça um bom currículo para a disciplina pré-universitário em AP Computer Science Principles e para o curso mais avançado AP Computer Science A.
Essa página cita diversos recursos úteis para professores como planos de aulas e currículos. Mais notavelmente, CodeTrain segue o currículo proposto pelo College Board e oferece planos de um ou dois anos de curso.
Além disso, há workshops regularmente disponibilizados.
Este curso possui forte inspiração no plano de dois anos disponibilizado em CodeTrain Resources - Sumary Doc.
Curso da Khan Academy: https://pt.khanacademy.org/computing/computer-programming/programming/intro-to-programming/a/learning-programming-on-khan-academy
Programa do COTUCA: https://cotuca.unicamp.br/cotuca/wp-content/uploads/2020/02/Catalogo-COTUCA-2020.pdf (página 92)
Resumo do programa do COTUCA: https://cotuca.unicamp.br/cotuca/cursos-tecnicos/desenvolvimento-de-sistemas/
Scratch no Ensino de programação para o Ensino Médio: https://www.br-ie.org/pub/index.php/rbie/article/view/2364
Trabalho sobre a preparação de estudantes de Ensino Médio para a OBI: http://www.prac.ufpb.br/enex/trabalhos/4CIDIPROBEX2013548.pdf
Informações sobre a OBI: https://olimpiada.ic.unicamp.br/info/ementa/
O curso é planejado para dois anos. No primeiro ano, será apresentado introdução a linguagem de programação (como Python) e às suas estruturas mais comúns. O segundo ano será dedicado a aprofundar em conceitos de algoritmos e estruturas de dados, bem como POO.
O curso será divido em bimestres, cada bimestre com aproximadamente 10 aulas de 50 minutos.
CB:Big Idea 2 - Dados
- Números binários
- Extraindo informção de dados
- Usando programas com dados
CB:Big Idea 3 - Algorítmos e programação
- Variáveis e atribuições
- Expressões aritméticas
- Strings
CB: Big Idea 3 - Algoritmos e programação
- Expressões booleanas
- Condicionais
- Iteração
- Listas
- Chamando funções
- Desenvolvendo funções
Year 1 - Unit 3 - HTML, CSS e terminologia de rede.
CB : Big Idea 4 - Sistemas de computação e rede
- A internet
- História e conceitos básicos
- Domínio e DNS
- Roteamento
- Tolerância a falha
- Criptografia e chaves públicas
Sobre HTML e CSS:
- Estrutura de arquivos e diretórios
- Conteiners
- Header styles
- Links e imagens
Year 1 - Unit 0 Year 1 - Unit 1 (parte final)
CB : Big Idea 5 - Impacto da computação
- Efeitos benéficos e maléficos
- Analfabetismo digital
- Crowdsourcing
- Problemas éticos e legais
CB: Big Idea 3 - Algoritmos e programação
- Desenvolvendo algorítmos
- Busca binária
- Bibliotecas
- Eficiência de algorítmos
- Valores aleatórios
- Simulações
- Problemas não decidíveis
Estruturas de dados:
- Filas
- Pilhas
Programação orientada a objetos.
Os alunos serão avaliados de duas formas:
Para conteúdos práticos de programação, será esperado que o aluno faça a submissão de alguns projetos pertinentes ao assunto visto em sala de aula na plataforma repl.it. Tais exercícios são compostos de um enúnciado explicando o problema, alguns casos testes com suas entradas e repectivas saídas esperadas. Grande parte destes será inspirado na plataforma beecrowd.
Após correção automática na plataforma, o professor irá fazer a correção manual da qualidade do código. Cada exercício terá nota definida da seguinte forma:
- A nota inicial do aluno será proporcional a quantidade de testes automáticos que ele passou.
- Será deduzido da nota, após avaliação manual pelo professor, pontos por más práticas de programação:
- (-10%) nomes de variáveis irrelevantes ou ambíguos (“var1”, “auxaux1”, etc).
- (-20%) falta de documentação do código.
- (-10%) repetição desnecessária de código.
- (-50%) forjar a resposta correta com objetivo de fraudar os testes automáticos.
O aluno possui o prazo de 7 dias a partir da divulgação das notas para entrar em contato com o professor para questionar as deduções manuais.
O prazo de realização das atividades será de uma semana e é esperado que o aluno dedique em média uma hora para sua realização em casa.
Tendo em vista a natureza semanal do nosso curso, o professor se coloca disponível para tirar dúvidas referentes aos exercícios ou testes antes do horário de aula (14:00 - 14:30) e após (17:10 - 17:40) ás segundas-feiras ou por email ([email protected]), este com o prazo de resposta de um dia útil.
Além disso, para os projetos na plataforma repl.it, há a possibilidade do aluno criar uma “Thread” selecionando a parte relevante do código e marcando “@IeremiesVieira”.
É esperado que o aluno pesquise em outras fontes e discuta com seus colegas sobre a disciplina e atividades. Contudo, as atividades são individuais e não será permitido colaboração entre os alunos na resulução destas.
Para ficar mais clara a distinção, abaixo há uma lista, não extensiva, do que é ou não esperado dos alunos. Cada caso será discutido com a Cordenação.
- Discutir diferentes formas de resolução de laboratórios.
- Discutir o assunto da disciplina com colegas.
- Ajudar colegas a acharem bugs.
- Encorporar fragmentos de códigos disponíveis online, desde que não constituam parte significativa da atividade e a fonte seja creditada por meio de comentários no código.
- Discussão e compatilhamento de pseudo-código ou diagramas sobre as atividades com colegas.
- Compartilhar seu código ou resolução de questões na íntegra com colegas.
- Usar código disponível em outros meios sem citar fontes.
- Solicitar diretamente a solução de problemas ou perguntas online ou para terceiros.
- Utilizar segmentos de códigos de terceiros que resolvam o objetivo central da atividade ou que seja parte significativa.