Voici mon point de vue après quelques tentatives infructueuses et quelques très bonnes tentatives:
La programmation est la résolution de problèmes.
Commencez avec des éléments concrets programmés qu’ils utilisent tous les jours: navigateur Internet (Facebook), téléphone portable, caisse enregistreuse, etc. Demandez-leur de vous donner beaucoup d’exemples. Établissez que toutes ces choses ont une sorte d'ordinateur en elles. Le coeur d'un ordinateur est le processeur.
Le processeur est comme un travailleur très rapide, mais très stupide. Si vous lui donnez des instructions, il les fera exactement comme vous le dites. Cela ne fera rien de plus et ne vous dira pas si quelque chose que vous lui avez dit de faire était mal. Ce processeur fait tout, cependant - si vous lui dites exactement comment le faire, il peut passer un appel téléphonique ou mettre une photo dans un courrier électronique.
Demandez-lui comment elle dirait à un travailleur très rapide mais très débile d'acheter une canette de soda dans une machine à soda. Alors qu'elle commence à décrire les étapes ("Mettez de l'argent dans la machine et appuyez sur le bouton."), Commencez à la disséquer comme un programme ("Qu'est-ce que l'argent? Comment le mettre dans la machine? Quand je mets de l'argent dans la machine et appuie sur le bouton en même temps, rien ne se passe. "). Si vous avez un tableau blanc, commencez à gauche avec sa première série d'instructions. Lorsqu'elle les révise, placez la nouvelle liste plus grande sur le côté droit. Quand vous avez un bon jeu d’instructions, commencez à généraliser les morceaux ("Enlevez l’argent de votre poche et enlevez le soda du plateau son similaire - quelles sont les parties identiques / différentes?") Prenez les généralisations et placez-les au milieu et rayer les morceaux qu'ils englobent maintenant. Essayez d’attacher les pièces pour qu’elles correspondent à ses instructions originales, un peu comme des appels de fonction. Autres bons exercices: postez une lettre, passez une porte, dessinez un cercle / carré / triangle.
Donc, programmer, c'est résoudre des problèmes: diviser les problèmes en parties, identifier les pièces communes et les regrouper pour les résoudre. Bientôt, vous découvrez que certaines parties sont communes à de nombreux problèmes, puis vous commencez à les assembler pour résoudre des problèmes que vous ne saviez même pas que vous aviez.
D'accord, à ce stade, elle comprendra peut-être, mais elle s'ennuie probablement. Suivez-le avec un ensemble d’exemples de programmation intéressants. Il est facile de faire la démonstration des Shaders et du code visuel associé. Vous pouvez afficher une image et commencer à la modifier en modifiant très peu le code. Si elle a exprimé son intérêt pour Facebook, montrez-lui que vous pouvez parler à Facebook par le biais de REST pour voir des données d'amis de ses amis (à 6 degrés). Si elle aime les jeux vidéo, montrez quelques démos de jeux open source ainsi que quelques extraits de leur code et expliquez comment ils aident le jeu à fonctionner. Terminez-le en montrant quelques outils et ressources gratuits sur lesquels elle pourrait enquêter à la maison. (Python, C #, etc.)
Mes tentatives infructueuses: essayer d'expliquer le calcul du pi (ils demandaient), le jeu de plateau C-Jump http://c-jump.com/ (ils ne l'ont pas compris et les instructions étaient boguées), et coder en direct un 2d jeu (je ne pouvais tout simplement pas retenir mon intérêt, peu importe le nombre de pas que je faisais entre les démos).
Bonne chance!