Acho que é improvável que seja uma pergunta comum, mas me pergunto se alguém viu material que foi claramente feito para abordar esse público de maneira significativa.
Acho que é improvável que seja uma pergunta comum, mas me pergunto se alguém viu material que foi claramente feito para abordar esse público de maneira significativa.
Respostas:
O Computer Science Unplugged aborda crianças (e professores) na escola primária.
Maneira divertida de aprender cálculo:
... Este jogo representa o cálculo lambda sem tipo. Um jacaré faminto é uma abstração lambda, um jacaré antigo é parênteses e ovos são variáveis. A regra de comer corresponde à redução beta. A regra de cores corresponde à conversão alfa (muito cautelosa). A regra da velhice diz que, se um par de parênteses contiver um único termo, os parênteses poderão ser removidos.
Na minha experiência, não é difícil ensinar tópicos básicos em combinatória, teoria de grafos, programação, algoritmos e tópicos semelhantes.
Você pode procurar os tópicos abordados nas competições IOI e nas competições nacionais. Existem escolas e oficinas de verão relacionadas às competições de IOI, começando muito cedo.
Meu tópico favorito pessoal para essas oficinas é a teoria combinatória dos jogos, já que é fácil motivar jogando jogos com o público.
Verifique também os Recursos de currículo K-12 CS da ACM , particularmente as páginas 11 e 12 de Um modelo de currículo para K-12 .
algumas ideias. Parece-me que houve uma explosão de opções de alta qualidade e baixo custo para crianças com interesse em ciência da computação. observe o forte vínculo com o STEM, o chamado ensino de Ciências da Engenharia de Tecnologia da Ciência. (Eu estava pensando que talvez o lado do CS pudesse ser enfatizado / defendido com uma nova palavra-chave STEAM, onde o A representa Algoritmia.)
tente o conceito de lógica booleana para representar operações matemáticas. coisas como a conversão de binários em decimais, decimais em binários e de vários estágios com carry from EE. construção de funções arbitrárias fora da CNF ou DNF. até uma criança pode entender o conceito de completude funcional com AND, OR, NOT. alguns kits de radioshack para coisas como esta, incluindo microcontroladores baratos. veja, por exemplo , kit básico de carimbos. existem alguns simuladores de circuito livre / de código aberto para esse fim. infelizmente não consegui encontrar nenhum distribuído com bibliotecas de componentes até agora. logisim é um popular.
existe esse jogo legal que roda em diferentes sistemas, incluindo PC / ps3 / etc, chamado Crazy Machines. isso pode ser usado para entender a simulação física em software e fazer o garoto pensar em sistemas de componentes em interação e reações em cadeia. a nova versão do ps3 possui vários componentes elétricos e lógicos, incluindo interruptores e portões.
robótica. tente a robótica mindstorms em particular. software sofisticado que permite coisas como loops, condicionais, sub-rotinas. as sub-rotinas estão contidas em blocos gráficos, ou seja, é um sistema de programação visual que anos atrás era muito avançado (agora é um brinquedo). para inspiração, existem muitos vídeos de solucionadores robóticos de cubos de rubiks no youtube, como este cubestormer II de última geração . os projetos para pelo menos um estão em um livro amplamente disponível, por exemplo, lego mindstorms nxt thinking robots, de Daniele Benedettelli. também recentemente vi essa mão robótica pneumática com muitos graus de liberdade . veja também a Primeira liga de competição de robótica .
escrevendo código básico para algumas coisas simples. por exemplo, classificação. fazendo estudos empíricos de diferentes algoritmos de classificação e observando / representando graficamente os resultados (por exemplo, represente graficamente o desempenho de uma classificação por bolhas versus qsort para aumentar o tamanho das entradas - veja, por exemplo, a animação nesta página da Wikipedia para classificação por inserção). classificar animações. um analógico gráfico puro é classificar um baralho de cartas em vez de números inteiros ou seqüências de caracteres. também muitos gráficos ou operações geométricas, como desenhar figuras no código, são excelentes exercícios.
programação de jogos. isso pode ser feito em alguns jogos excelentes. por exemplo, Little Big Planet possui alguns subsistemas sofisticados, onde as crianças podem criar seus próprios jogos com o complexo sistema e componentes de construção integrados. pode até estudar fenômenos interativos / emergentes dessa maneira. eles podem ser carregados na internet e compartilhados. outro idioma para esse fim é chamado de scratch . o clássico de Papert com muito estudo acadêmico sobre sua eficácia é Logo
usando simuladores de máquinas de turing e programas de construção neles. existem alguns eles vêm com alguns programas. quanto mais gráfico, melhor. alguns escritos por professores para aulas. aqui está um escrito em javascript . na verdade, gostaria de saber quais são os melhores nessa área [talvez outra pergunta para isso]
Depende da pessoa que você está ensinando e da área desse intervalo.
Um garoto de 12 a 14 anos que QUER deve poder lidar com praticamente qualquer coisa, mas ele precisa fazer isso no seu próprio tempo, você não pode realmente levar conceitos complicados para jovens (ou na maioria das vezes para qualquer um).
Estou ouvindo o iWoz neste momento (que parece ser direcionado para essa faixa etária e seria bastante inspirador); nessa idade, ele estava montando alguns circuitos bastante avançados - mas seu pai só respondeu perguntas, nunca o entregou. novos conceitos para os quais ele não estava pronto)
Ou ele pode estar completamente desinteressado e não há nada que você possa fazer sobre isso.
As crianças podem ficar realmente impressionadas com algo simples. Se você encontrou algum jogo que ele gostou e o ajudou a recriá-lo (mesmo em um nível muito superficial, mas ainda graficamente semelhante), você pode realmente fazê-lo ir.
Ou, melhor ainda, se você encontrou um jogo de código aberto existente que ele possa gostar, deixe-o jogar e mostre a ele como fazer pequenas modificações para que ele possa ficar animado. (As modificações sempre parecem ser a melhor maneira de começar)
Na verdade, eu ensinei um acampamento de verão que continha principalmente alunos da 4ª e 5ª séries, embora eu tivesse uma segunda e uma terceira série (sua faixa etária alvo). Os acampamentos duraram uma semana e eu ensinei a XNA mostrando-lhes noções básicas de if, else if e um simples para declaração junto com o photoshop. O problema com o XNA era que eu tinha que ajudá-los a programar um pouco até o final da semana, os outros campos que tínhamos participado incluíam robótica lego e GameMaker, ambos ainda com a teoria básica do CS e as crianças adoram.
Existe um videogame chamado SpaceChem, baseado em princípios de programação. Você pode ler mais sobre isso aqui: http://gangles.ca/2011/06/19/programming-in-spacechem/
É surpreendente que ninguém tenha mencionado o uso da multiplicação para explicar o conceito de intratabilidade computacional. Afirmamos que a multiplicação é fácil, pois temos o algoritmo rápido padrão para multiplicação, enquanto a função inversa de encontrar fatores primos é difícil, pois não existem algoritmos rápidos conhecidos e o algoritmo mais conhecido não é significativamente mais rápido que a pesquisa exaustiva.
Uma boa fonte de problemas para fazer com que os jovens pensem sobre teoria em CS e resolvam os problemas em si é a série "Computer Science Unplugged" http://csunplugged.org/ . Nós vamos às escolas e fazemos as atividades com crianças, ou elas vêm à Uni para fazer conosco.
Isso já dura anos e anos, foi traduzido para vários idiomas - e os artigos fornecem informações sobre como executar as sessões, quais materiais são necessários e dicas sobre as pessoas que os executaram antes.
Altamente recomendado!