Conceitos em CS teórico que seriam acessíveis entre 8 e 14 anos


34

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.




Costumo dizer às crianças dessa idade o clássico quebra-cabeça de von Neumann: dada uma moeda tendenciosa que aparece cara 70% das vezes, como encontrar um pedaço imparcial?
arnab

Respostas:



21

cálculo lambda

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.

link de vídeo


7
+1 @Pratik Deoghare: resposta interessante, no entanto, seria possível, pelo menos em um comentário, explicar por que sua resposta é relevante sem ter que clicar no link e pesquisar no conteúdo dessa página para encontrar a resposta.
Erro #

6
Quão difícil é clicar e ler um pouco? Nós realmente precisamos de tudo em pedaços pequenos?
Andrej Bauer

7
Este parece terrivelmente complicado ..
Izkata

15
@Andrej Bauer: Sim, de fato, as solicitações da SE que resumem sua relevância e não se vinculam apenas ao material com base em resposta a uma pergunta.
Erro #

11
Fiquei terrivelmente confuso no meio do caminho e tive que reler as regras várias vezes. Não há como uma criança de 8 anos ter atenção para isso.
BlueRaja - Danny Pflughoeft 24/02

8

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 .


6

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]


6

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)


+1 @ Bill K: Quando você diz "[você está ouvindo o iWoz neste momento", você quer dizer uma versão em áudio do livro dele ou algo mais; um link seria bom, mesmo que seja para pagar conteúdo, apenas para dar referência ao que você quer dizer.
Falha

1
Desculpe, a iWoz é sua autobiografia - está no Audible e parece perfeita para um adolescente curioso sobre tecnologia - ele fica lento, mas entra em detalhes sobre as diferentes coisas que criou e o processo de aprendizado. Estranhamente, embora eu sempre tenha me sentido muito mais próximo de Wozniak nos ideais e realmente detestado pela personalidade de Jobs, achei a biografia de Jobs incrivelmente atraente e perspicaz, estou ouvindo o iWoz como um contraponto.
Bill K

5

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.


+1 @ Suiko6272: Acho que o principal é que vejo ciência da computação, engenharia da computação e engenharia de software como tópicos diferentes, mas relacionados. Acho que eu estava interessado em conceitos puramente relacionados ao CS teórico; em parte para ensinar a diferença entre ciência da computação, engenharia da computação e engenharia de software.
Erro #


2

Eu acho que Planarity é um bom jogo. Ele dá uma idéia sobre gráficos planares e introduz conceitos elementares da teoria dos grafos (como o gráfico feito por nós e arestas e o grau de nós, o que são gráficos planares, ...)


1

É 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.


@ Saeed, eu mencionei o teste de primalidade ?!
Mohammad Al-Turkistany

Desculpe meu erro, eu interpretei errado (eu li: "encontrando números primos ...", na verdade, ao contrário, pensei que você queria falar sobre números primos e, com esse viés, li sua frase).
Saeed

0

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!


2
Sim. Veja a resposta de Serge Gaspers.
Jeffε

-1

zz2+c


2
Fractais são legais, mas eles não são realmente um "conceito em CS teórico".
Jeffε

ainda esperando aqui a lista oficial de tópicos do TCS, eu a defino amplamente e isso é suportado por muitos outros, por exemplo, até mesmo spolsky . para mim, os fractais se encaixam perfeitamente na pesquisa empírica . muitos pesquisadores de elite da CS os estudaram em muitos artigos importantes (desculpe não ter uma lista ou pesquisa, talvez o principal seria Wolfram). é um debate antigo voltando às suas origens, embora acho que seja um debate legítimo.
vzn

2
Por favor, consulte a primeira seção do FAQ para uma definição razoável de "ciência da computação teórica". (Além disso, Joel estava discutindo para alargar o âmbito do site para além ciência da computação teórica, a comunidade discordou.)
Jeffε

acho que é uma discussão meta, mas eu interpreto spolskys postar de forma diferente. Ele listou muitas áreas principais da ciência da computação e cada uma dessas áreas tem um lado teórico. pensando em perguntar sobre fractais e ver o que acontece
vzn

1
Concordo; isso é melhor discutido na meta.
Jeffε
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.