Aqui está minha opinião depois de algumas falhas e algumas boas tentativas:
Programar é resolver problemas.
Comece com coisas concretas que são programadas para serem usadas todos os dias - navegador de internet (facebook), telefone celular, caixa registradora, etc. Obtenha-os para dar muitos exemplos. Estabeleça que todas essas coisas tenham um tipo de computador. O coração de um computador é o processador.
O processador é como um trabalhador muito rápido, mas muito burro. Se você der algumas instruções, elas serão executadas exatamente como você diz. Não fará nada extra e não dirá se algo que você disse para fazer estava errado. No entanto, esse processador faz tudo - se você disser exatamente como fazê-lo, poderá fazer uma ligação ou colocar uma foto em um email.
Pergunte a ela como ela diria a um trabalhador muito rápido, mas muito burro, para comprar uma lata de refrigerante em uma máquina de refrigerante. Quando ela começa a descrever as etapas ("Coloque o dinheiro na máquina e pressione o botão."), Comece a dissecá-lo como um programa ("O que é dinheiro? Como o coloco na máquina? Quando coloco o dinheiro na máquina e pressione o botão ao mesmo tempo, nada acontece. "). Se você possui um quadro branco, inicie à esquerda com o primeiro conjunto de instruções. Enquanto ela os revisa, coloque a nova lista maior no lado direito. Quando você tiver um bom conjunto de instruções, comece a generalizar as peças ("Remova o dinheiro do bolso e remova o refrigerante da bandeja com um som semelhante - que partes são iguais / diferentes?") Pegue as generalizações e coloque-as no meio e riscam as peças que agora englobam. Tente, eventualmente, amarrar as peças para combinar com as instruções originais, como chamadas de função. Outros bons exercícios: envie uma carta, passe por uma porta, desenhe um círculo / quadrado / triângulo.
Portanto, programar é resolver problemas: dividir problemas em partes, identificar partes comuns e agrupar essas partes novamente para resolver problemas. Logo, você descobre que algumas partes são comuns em muitos problemas e começa a juntar as peças para resolver problemas que nem sabia que tinha.
Ok, a essa altura ela pode entender, mas provavelmente está entediada. Siga-o com um conjunto de exemplos interessantes de programação. Os shaders e o código visual relacionado são fáceis de demonstrar - você pode exibir uma imagem e começar a fazer alterações com alterações muito pequenas no código. Se ela manifestou interesse no Facebook, mostre conversas com o Facebook pelo REST para ver dados de amigos de amigos (6 graus dela). Se ela gosta de videogame, mostre algumas demos de jogos de código aberto, juntamente com alguns trechos de código e como eles ajudam o jogo a funcionar. Finalize mostrando algumas ferramentas e recursos gratuitos que ela poderia investigar em casa. (Python, C # etc.)
Minhas tentativas fracassadas: tentando explicar o cálculo do pi (eles estavam perguntando), o jogo de tabuleiro C-Jump http://c-jump.com/ (eles não entenderam e as instruções eram de buggy) e codificação ao vivo em 2D game (simplesmente não conseguia despertar o interesse, não importando quão pequenos passos eu estava dando entre as demos).
Boa sorte!