Estou procurando a coisa mais legal que você pode fazer em algumas linhas de código simples. Tenho certeza de que você pode escrever um conjunto de Mandelbrot em Haskell em 15 linhas, mas é difícil de seguir.
Meu objetivo é inspirar os alunos que a programação é legal .
Nós sabemos que a programação é legal porque você pode criar qualquer coisa que você imaginar - é a saída criativa final. Quero inspirar esses iniciantes e superá-los o máximo que puder.
Agora, minhas razões são egoístas. Estou ministrando um curso de Introdução à Computação a um grupo de 60 cursos de engenharia, metade de negócios; todos os calouros. Eles são os alunos que vieram de escolas secundárias desfavorecidas. De minha experiência anterior, o grupo é geralmente dividido da seguinte forma: alguns astros do rock , alguns que se esforçam muito e meio que conseguem, alguns que se esforçam muito e mal conseguem, e poucos que não se importam. Eu quero alcançar o maior número possível desses grupos. Aqui está um exemplo de como eu usaria um programa de computador para ensinar:
Aqui está um exemplo do que estou procurando: um script VBS de 1 linha para que seu computador fale com você:
CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")
Eu poderia usar isso para demonstrar a ordem das operações. Eu mostrava o código, deixava que eles brincassem com ele e depois explicava que há muita coisa acontecendo nessa linha, mas o computador pode entender isso, porque conhece as regras. Então eu mostraria a eles algo assim:
4(5*5) / 10 + 9(.25 + .75)
E você pode ver que primeiro eu preciso fazer é (5 * 5). Então eu posso multiplicar por 4. E agora eu criei o Objeto. Dividir por 10 é o mesmo que chamar Speak - não posso falar antes de ter um objeto e não posso dividir antes de ter 100. Depois, do outro lado, primeiro criei um InputBox com algumas instruções sobre como exibi-lo. . Quando pressiono enter na caixa de entrada, ele avalia ou "retorna" o que eu inseri. (Dica: 'oooooo' faz um som engraçado) Então, quando digo Falar, o lado direito é o que Falar. E eu recebo isso da InputBox.
Então, quando você faz várias coisas em uma linha, como:
x = 14 + y;
Você precisa estar ciente da ordem das coisas. Primeiro, adicionamos 14 e y. Em seguida, colocamos o resultado (o que ele avalia ou retorna) em x.
Esse é o meu objetivo, ter um monte desses exemplos legais para demonstrar e ensinar a classe enquanto eles se divertem. Eu tentei este exemplo na minha colega de quarto e, embora não possa usá-la como primeira lição, ela gostou e aprendeu alguma coisa.
Alguns programas matemáticos bacanas que fazem belos gráficos ou formas fáceis de entender seriam boas idéias e eu vou dar uma olhada nelas. Aqui estão alguns exemplos complicados de actionscript, mas isso é um pouco avançado demais e eu não posso ensinar flash. Que outras idéias você tem?
fonte
Respostas:
Eu recebi uma ótima resposta dos meus filhos com um script VB rápido para manipular um caractere do Microsoft Agent. Para aqueles que não estão familiarizados com o MS Agent, é uma série de caracteres animados na tela que podem ser manipulados através de uma interface COM. Você pode baixar o código e os caracteres na página de download do Microsoft Agent .
As poucas linhas a seguir farão com que o personagem Merlin apareça na tela, voe, bata na tela para chamar sua atenção e diga olá.
Existem muitos outros comandos que você pode usar. Verificahttp://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx para mais informações.
EDIT 2011-09-02 Descobri recentemente que o Microsoft Agent não está instalado nativamente no Windows 7. No entanto, é oferecido como um download separado aqui . Eu não testei isso, por isso não posso verificar se está funcionando.
fonte
Digite esse código na barra de endereço (no navegador) e pressione enter. Então você pode editar todo o conteúdo da página!
Esse é o "one-liner" mais legal que eu conheço =)
fonte
javascript:
evoid 0
são clichê: o equivalente aint main() {
ereturn 0; }
em C. E as outras duas linhas são apenas diferentes APIs do navegador que fazem a mesma coisa: A primeira é a API IE, a segunda é a API Netscape. O HTML5 usacontentEditable
, portanto, a menos que você se preocupe em oferecer suporte ao Firefox 1.5 ou algo assim, o código real é de:document.body.contentEditable='true';
Quando escrevi isso pela primeira vez.
Isso surpreendeu as pessoas! O computador lembrou o nome deles!
EDIT: Apenas para adicionar a isso. Se você conseguir convencer um novo programador de que essa é a coisa mais legal que ele pode fazer, eles se tornarão os bons programadores. Hoje em dia, você pode fazer quase tudo o que quiser com uma linha de código para executar uma biblioteca que outra pessoa escreveu. Pessoalmente, não tenho absolutamente nenhuma satisfação em fazer isso e vejo pouco benefício em ensiná-lo.
fonte
PHP - a junta de Sierpinski, também conhecida como Triforce
OK, são 15 linhas de código, mas o resultado é incrível! Esse é o tipo de coisa que me fez pirar quando criança. Isto é do manual do PHP:
fonte
A Microsoft possui o Small Basic , um IDE para "crianças".
Ele foi projetado especificamente para mostrar o quão legal é a programação.
fonte
Costumo pensar que as pessoas estão impressionadas com coisas com as quais podem se relacionar ou são relevantes para suas vidas. Eu tentaria basear minhas 10 linhas de código em algo que eles conhecem e entendem. Veja, por exemplo, o Twitter e sua API. Por que não usar essa API para criar algo interessante? As 10 linhas de código a seguir retornarão a "linha do tempo pública" do Twitter e a exibirão em um aplicativo de console ...
Meu exemplo de código pode não ser o melhor para seus alunos. Está escrito em C # e usa o .NET 3.5. Portanto, se você ensiná-los PHP, Java ou C ++, isso não será útil. No entanto, o que quero dizer é que, associando suas 10 linhas de código a algo "interessante, interessante e relevante para os alunos, sua amostra também se torna interessante, interessante e relevante".
Boa sorte!
[Sim, eu sei que perdi algumas linhas de uso de instruções e o método Main, mas acho que as 10 linhas não precisavam ser literalmente 10 linhas]
fonte
Este é um servidor de telnet Python que solicita o nome do usuário e diz oi para eles. Isso parece legal porque você está se comunicando com seu programa a partir de um computador diferente na rede.
fonte
Eu acho que é difícil ser um educador de computadores hoje em dia. Eu sou. Enfrentamos uma batalha cada vez mais íngreme. Nossos alunos são usuários incrivelmente sofisticados e é preciso muito para impressioná-los. Eles têm tantas ferramentas acessíveis a eles que fazem coisas incríveis.
Uma calculadora simples em 10 linhas de código? Por quê? Eu tenho uma TI-86 para isso.
Um script que aplica efeitos especiais a uma imagem? É para isso que serve o Photoshop. E o Photoshop impressiona tudo o que você pode fazer em 10 linhas.
Que tal rasgar um CD e converter o arquivo em MP3? Já tenho 50.000 músicas que recebi do BitTorrent. Eles já estão no formato MP3. Eu os jogo no meu iPhone. Quem compra CDs, afinal?
Para apresentar aos usuários mais experientes a programação, você precisará encontrar algo que seja:
a) aplicável a algo que acham interessante e interessante eb) faz algo que ainda não pode fazer.
Suponha que seus alunos já tenham acesso ao software mais caro. Muitos deles possuem a versão completa do Adobe CS5.5 (preço de varejo: US $ 2.600; preço real: gratuito) e podem facilmente obter qualquer aplicativo que normalmente viole o orçamento do seu departamento.
Mas a grande maioria deles não tem idéia de como realmente funciona esse "material de computador".
Eles são um grupo incrivelmente criativo: eles gostam de criar coisas. Eles só querem poder fazer ou fazer algo que seus amigos não podem. Eles querem algo para se gabar.
Aqui estão algumas coisas que eu acho que ressoam com meus alunos:
Nenhuma delas envolve programação no sentido tradicional. Mas eles utilizam bibliotecas poderosas. Eu penso neles como um tipo diferente de programação.
fonte
Eu encontrei um grande favorito (em GWBASIC) é:
Eu descobri que os alunos iniciantes têm algumas concepções que precisam ser corrigidas.
Boa sorte com sua classe. Tenho certeza que você vai se sair bem.
PS Tenho certeza de que você entende que, juntamente com material e habilidade, você também está ensinando uma atitude, e isso é igualmente importante.
fonte
Talvez esse código C seja ofuscado, mas achei muito poderoso
E aqui está o resultado ... Em apenas 3 linhas ... Uma espécie de fractal
Hello World
...fonte
Que tal mostrar que você pode usar qualquer navegador da web e inserir JavaScript na barra de endereço e obter código para executar?
EDIT: Vá para uma página com muitas imagens e tente isso na barra de endereços:
fonte
Você pode criar um aplicativo que escolha um número aleatório. E você tem que adivinhar. Se você está errado, diz: maior ou menor. E se você adivinhou, uma boa mensagem.
É legal tocar para os alunos.
Versão simples do Python sem verificação de erro adequada:
Erik sugere que o computador adivinhe o número. Isso também pode ser feito em 10 linhas de código (embora agora a falta de verificação adequada de erros seja ainda mais séria: números válidos fora do intervalo causam um loop infinito):
fonte
eval(raw_input(prompt))
. Veja a entrada .De volta à aula de informática no ensino médio, eu e alguns amigos ensinamos à turma como programar com Delphi. A turma estava focada principalmente na programação com Pascal, então Delphi foi um bom próximo passo. Demonstramos a natureza orientada a eventos do Delphi e seus recursos RAD. No final da lição, mostramos à classe um aplicativo de amostra e pedimos que o reproduzissem. O aplicativo perguntou " Você está bêbado? " Com dois botões Sim e Não . ... Acho que você sabe o que está por vir ... o botão Não mudou de local ao passar o mouse e era quase impossível clicar.
Os alunos e o professor deram um bom chute nisso.
O programa exigiu apenas algumas linhas de código escrito pelo usuário com uma equação simples para calcular para onde mover o botão. Não acho que nenhum dos outros alunos tenha percebido, mas alguns foram próximos.
fonte
Quando descobri o bash forkbomb, achei muito legal. Tão simples, mas elegante no que pode fazer:
fonte
Isso é trapaça, e nem remotamente simples, mas uma vez escrevi um shoot'em em 20 linhas de C ++, usando a biblioteca de gráficos Allegro. Nenhum critério real para o que uma linha era , mas foi há pouco tempo e foi feita apenas por diversão. Tinha até efeitos sonoros grosseiros.
Aqui está o que parecia:
20 Linhas http://img227.imageshack.us/img227/8770/20linesxx0.png
E aqui está o código ( deve compilar):
fonte
Atualmente, o JavaScript é uma excelente maneira de mostrar como você pode programar usando algumas ferramentas realmente básicas, como o bloco de notas.
Os efeitos jQuery são um excelente ponto de partida para quem deseja impressionar seus amigos!
Neste, basta clicar no espaço em branco da página.
fonte
Uma coisa que você pode considerar é algo como Robocode , no qual muita codificação é abstraída e você basicamente diz ao robô o que fazer. Uma função simples de 10 linhas pode fazer o robô fazer muita coisa e tem um resultado muito visual e fácil de seguir.
Talvez o próprio Robocode não seja adequado para a tarefa, mas esse tipo de coisa é uma boa maneira de relacionar código escrito a ações visuais no computador, além de ser divertido observar quando você precisa dar exemplos.
fonte
Então, um dia, eu decidi que já tinha o suficiente. Eu iria aprender a tocar piano. Ver pessoas como Elton John comandar tal domínio do teclado me garantiu que era isso que eu queria fazer.
Na verdade, aprender piano foi uma grande decepção. Mesmo depois de completar oito séries de aulas de piano, eu ainda não estava impressionado com a forma como minha imagem mental de tocar piano era tão diferente da minha visão original de apreciar a atividade.
No entanto, o que eu gostei muito foram meus meros três graus de rudimentos da teoria musical. Eu aprendi sobre a construção da música. Eu finalmente fui capaz de sair do mundo da música escrita para escrever minha própria música. Posteriormente, pude começar a tocar o que queria tocar.
Não tente deslumbrar novos programadores, especialmente jovens. Toda a noção de "menos de dez linhas de código simples" parece suscitar um clima de "Mostre-me algo inteligente ".
Você pode mostrar a um novo programador algo inteligente. Você pode ensinar ao mesmo programador como replicar esse "desempenho". Mas não é isso que os prende à programação. Ensine-lhes os rudimentos e deixe-os sintetizar suas próprias dez linhas de código inteligentes.
Eu mostraria a um novo programador o seguinte código Python:
Percebo que não preciso atribuir
line
aedited_line
. No entanto, isso é apenas para manter as coisas claras e mostrar que não estou editando o documento original.Em menos de dez linhas, eu detalhei um documento. Obviamente, também certifique-se de mostrar ao novo programador todos os métodos de string disponíveis. Mais importante, mostrei três coisas fundamentalmente interessantes que posso fazer: atribuição de variável, um loop, E / S de arquivo e uso da biblioteca padrão.
Eu acho que você concorda que esse código não deslumbra. Na verdade, é um pouco chato. Não - na verdade, é muito chato. Mas mostre esse código a um novo programador e veja se ele não pode adaptar novamente cada parte desse script a algo muito mais interessante dentro de uma semana, se não o dia. Claro, será desagradável para você (talvez usando esse script para criar um simples analisador de HTML), mas tudo o resto leva tempo e experiência.
fonte
Como a maioria dos outros comentadores, comecei a escrever código para resolver problemas de matemática (ou para criar gráficos para jogos realmente terríveis que eu projetaria - coisas como Indiana Jones versus Zombies).
O que realmente me iniciou (em matemática e programação) foi passar de texto, escolher seus próprios jogos de aventura ... para mais jogos baseados em gráficos. Comecei a colorir papel milimetrado e a desenhar pixels, até entrar na geometria ... e descobri como usar equações para plotar curvas e linhas, caixas, etc.
Meu argumento é que eu realmente poderia ter entrado em algo como processamento ( http://processing.org/ ), em que um programa típico se parece com isso:
Para mim, este é o "logotipo" do futuro.
Existem exemplos fáceis do "olá mundo" que podem rapidamente levar alguém a desenhar e alterar códigos e ver como as coisas quebram e que "acidentes" estranhos podem ser criados ... até uma interação mais avançada e criação de fractal ...
fonte
Você pode usar um script escrito com AutoIt , que desfoca a linha entre o uso de um aplicativo e a programação tradicionais.
Por exemplo, um script que abre o bloco de notas e faz com que seu próprio computador os insulte nele e por meio de uma caixa de mensagem e, em seguida, não deixa rastros de suas ações:
fonte
Lembro que quando comecei a codificar loops sempre me impressionou. Você escreve de 5 a 10 linhas de código (ou menos) e centenas (ou quantas você especificar) de linhas impressas. (Eu aprendi primeiro em PHP e Java).
fonte
Eu acho que um bom lugar para um aluno começar pode ser o Greasemonkey . Existem milhares de scripts de exemplo no userscripts.org, material de leitura muito bom, alguns dos quais são muito pequenos. Os scripts Greasemonkey afetam as páginas da web, que os alunos já estarão familiarizados com o uso, se não com a manipulação. O próprio Greasemonkey oferece uma maneira muito fácil de editar e ativar / desativar scripts durante o teste.
Como exemplo, aqui está o script "Google Two Columns":
fonte
Este é um programa c # baseado em texto muito rudimentar que simula a ação de rotação de uma máquina caça-níqueis. Não inclui probabilidades diferentes de ganhos ou pagamentos em dinheiro, mas isso poderia ser um bom exercício para os alunos.
Desculpe, são mais de 10 linhas.
fonte
Com o Tcl, você tem um editor de texto simples com um botão salvar em cerca de 12 linhas de código (mas não aberto, isso levaria mais 8 linhas). Funciona em todas as plataformas padrão:
Sei que o objetivo era 10 linhas; portanto, se você quiser manter 10 linhas ou menos, um simples editor de texto sem carregar ou salvar é de apenas duas linhas. Isso não é muito ruim.
Execute um dos blocos de código acima com "desejo nome do arquivo " na plataforma de sua escolha. O Wish vem com a maioria dos * nix e mac, mas você terá que instalá-lo manualmente no Windows.
Para dar um passo adiante, esse script de duas linhas também pode ser escrito em python, embora seja preciso oito linhas, ainda abaixo do objetivo de 10 linhas:
fonte
Que tal um bookmarklet? Isso mostraria a eles como manipular algo que eles usam todos os dias (a Internet) sem exigir nenhuma ferramenta de desenvolvimento.
fonte
Se você puder comprar o hardware, o uso de uma placa Arduino + de processamento produzirá algumas coisas bem legais, embora possa ser um pouco avançado para pessoas que podem não estar interessadas em programação.
fonte
Escrevi sobre isso recentemente em um artigo "O programa mais curto e mais útil que já escrevi".
Resumo: escrevi um aplicativo VB6 de 3 linhas em 1996 que ainda uso todos os dias. Depois que o exe for descartado na pasta "Enviar para". Permite clicar com o botão direito do mouse em um arquivo no explorer e enviar o caminho completo desse arquivo para a área de transferência.
fonte
Clipboard.Clear
? Remove todo o conteúdo da área de transferência, mesmo dados que não sejam de texto (por exemplo, dados de imagem). Isso geralmente não é o que você deseja.É interessante que você mencione o conjunto de Mandelbrot, pois a criação de fractais com o GW-BASIC foi o que despertou meu amor pela programação no ensino médio (por volta de 1993). Antes de começarmos a aprender sobre fractais, escrevemos aplicativos de desvio padrão chatos e eu ainda planejava entrar no jornalismo.
Mas uma vez que vi aquele programa BASIC longo e difícil de escrever gerar "terreno fractal", fiquei viciado e nunca mais olhei para trás. Isso mudou a maneira como eu pensava em matemática, ciências, computadores e a maneira como aprendi.
Espero que você encontre o programa que tem o mesmo efeito em seus alunos.
fonte
Primeiros passos do wxPython
quadro simple.py http://zetcode.com/wxpython/images/simple.jpg
fonte
Tenho certeza de que ele se transformaria em mais de 10 linhas de código, mas você considerou um aplicativo baseado em formulário em que pressionar os botões faz coisas como mudar a cor do plano de fundo ou alterar o tamanho do texto? Isso mostraria a eles como os programas interativos funcionam. Também mostraria a eles que, como programadores, estão no controle completo do que o computador (programa) faz.
Esperançosamente, isso os levaria a fazer sugestões de outras coisas que eles poderiam mudar e, em seguida, de outras coisas que eles poderiam querer fazer.
fonte