Je cherche la chose la plus cool que vous puissiez faire en quelques lignes de code simple. Je suis sûr que vous pouvez écrire un ensemble de Mandelbrot en Haskell en 15 lignes mais c'est difficile à suivre.
Mon objectif est d'inspirer les étudiants que la programmation est cool .
Nous savons que la programmation est cool parce que vous pouvez créer tout ce que vous imaginez - c'est le débouché créatif ultime. Je veux inspirer ces débutants et leur faire surmonter autant de bosses d'apprentissage précoce que possible.
Maintenant, mes raisons sont égoïstes. J'enseigne un cours d' introduction à l'informatique à un groupe de 60 mi-ingénieurs, mi-affaires majors; tous les étudiants de première année. Ce sont les élèves qui viennent de lycées défavorisés. D'après mon expérience passée, le groupe est généralement divisé comme suit: quelques rock-stars , certains qui essaient très fort et en quelque sorte de l' obtenir, quelques-uns qui essaient très fort et l' obtiennent à peine , et quelques-uns qui s'en moquent. Je veux toucher autant de ces groupes que possible. Voici un exemple de la façon dont j'utiliserais un programme informatique pour enseigner:
Voici un exemple de ce que je recherche: un script VBS à 1 ligne pour que votre ordinateur vous parle:
CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")
Je pourrais l'utiliser pour démontrer l'ordre des opérations. Je montrerais le code, les laisser jouer avec, puis expliquer que beaucoup de choses se passent dans cette ligne, mais l'ordinateur peut le comprendre, car il connaît les règles. Ensuite, je leur montrerais quelque chose comme ceci:
4(5*5) / 10 + 9(.25 + .75)
Et vous pouvez voir que je dois d'abord faire (5 * 5). Ensuite, je peux multiplier pour 4. Et maintenant, j'ai créé l'objet. Diviser par 10 équivaut à appeler Parler - Je ne peux pas parler avant d'avoir un objet et je ne peux pas diviser avant d'avoir 100. Ensuite, de l'autre côté, je crée d'abord un InputBox avec quelques instructions pour l'afficher. . Lorsque j'appuie sur Entrée dans la zone de saisie, il évalue ou "renvoie" tout ce que j'ai entré. (Indice: 'oooooo' fait un drôle de son) Donc quand je dis Parle, le côté droit est ce qu'il faut dire. Et je l'obtiens de la InputBox.
Donc, lorsque vous faites plusieurs choses sur une ligne, comme:
x = 14 + y;
Vous devez être conscient de l'ordre des choses. Nous ajoutons d'abord 14 et y. Ensuite, nous mettons le résultat (ce qu'il évalue ou renvoie) dans x.
C'est mon objectif, avoir un tas de ces exemples sympas pour démontrer et enseigner la classe pendant qu'ils s'amusent. J'ai essayé cet exemple sur ma colocataire et bien que je ne puisse pas l'utiliser comme première leçon, elle l'a aimé et a appris quelque chose.
Certains programmes mathématiques sympas qui font de beaux graphiques ou des formes faciles à comprendre seraient de bonnes idées et je vais les examiner. Voici quelques exemples compliqués d'actionscript mais c'est un peu trop avancé et je ne peux pas enseigner le flash. Quelles autres idées avez-vous?
la source
Réponses:
J'ai reçu une excellente réponse de mes enfants avec un script VB rapide pour manipuler un personnage Microsoft Agent. Pour ceux qui ne connaissent pas MS Agent, il s'agit d'une série de personnages animés à l'écran qui peuvent être manipulés via une interface COM. Vous pouvez télécharger le code et les caractères sur la page de téléchargement de Microsoft Agent .
Les quelques lignes suivantes feront apparaître le personnage de Merlin à l'écran, voleront, frapperont à l'écran pour attirer votre attention et vous salueront.
Il existe de nombreuses autres commandes que vous pouvez utiliser. Vérifierhttp://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx pour plus d'informations.
EDIT 2011-09-02 J'ai récemment découvert que Microsoft Agent n'est pas installé nativement sur Windows 7. Cependant, il est proposé ici en téléchargement séparé . Je n'ai pas testé cela, je ne peux donc pas vérifier s'il fonctionne.
la source
Entrez ce code dans votre barre d'adresse (dans votre navigateur) et appuyez sur Entrée. Ensuite, vous pouvez modifier tout le contenu de la page Web!
C'est le "one-liner" le plus cool que je connaisse =)
la source
javascript:
etvoid 0
sont passe-partout: l'équivalent deint main() {
etreturn 0; }
en C. Et les deux autres lignes ne sont que des API de navigateur différentes qui font la même chose: la première est l'API IE, la seconde est l'API NetScape. HTML5 utilisecontentEditable
, donc à moins que vous ne vouliez prendre en charge Firefox 1.5 ou quelque chose dudocument.body.contentEditable='true';
Quand j'ai écrit cela pour la première fois.
Cela a époustouflé les gens! L'ordinateur s'est souvenu de leur nom!
EDIT: Juste pour ajouter à cela. Si vous pouvez convaincre un nouveau programmeur que c'est la chose la plus cool qu'il puisse faire, il deviendra le bon programmeur. De nos jours, vous pouvez faire presque tout ce que vous voulez avec une seule ligne de code pour exécuter une bibliothèque écrite par quelqu'un d'autre. Personnellement, je ne reçois absolument aucune satisfaction de faire cela et je vois peu d'avantages à l'enseigner.
la source
PHP - le joint Sierpinski alias le Triforce
OK, c'est 15 lignes de code mais le résultat est génial! C'est le genre de choses qui m'ont fait paniquer quand j'étais enfant. C'est du manuel PHP:
la source
Microsoft a Small Basic , un IDE pour les "enfants".
Il est spécialement conçu pour montrer à quel point la programmation est cool.
la source
J'ai tendance à penser que les gens sont impressionnés par des choses auxquelles ils peuvent se rapporter ou qui sont pertinentes pour leur vie. J'essaierais de baser mes 10 lignes de code sur quelque chose qu'ils connaissent et comprennent. Prenez, par exemple, Twitter et son API. Pourquoi ne pas utiliser cette API pour créer quelque chose de cool. Les 10 lignes de code suivantes renverront la "chronologie publique" de Twitter et l'afficheront dans une application console ...
Mon exemple de code n'est peut-être pas le meilleur pour vos élèves. Il est écrit en C # et utilise .NET 3.5. Donc, si vous allez leur enseigner PHP, Java ou C ++, cela ne sera pas utile. Cependant, mon point est qu'en associant vos 10 lignes de code à quelque chose de "cool, intéressant et pertinent pour les étudiants, votre échantillon devient également cool, intéressant et pertinent.
Bonne chance!
[Oui, je sais que j'ai manqué quelques lignes d'utilisation des instructions et de la méthode Main, mais je suppose que les 10 lignes n'avaient pas besoin d'être littéralement 10 lignes]
la source
Il s'agit d'un serveur Telnet Python qui demandera le nom des utilisateurs et leur dira bonjour. Cela a l'air cool parce que vous communiquez avec votre programme à partir d'un autre ordinateur via le réseau.
la source
Je pense qu'il est difficile d'être un enseignant en informatique de nos jours. Je suis. Nous sommes confrontés à une bataille de plus en plus abrupte. Nos étudiants sont des utilisateurs incroyablement sophistiqués et il faut beaucoup pour les impressionner. Ils ont tellement d'outils à leur disposition qui font des choses incroyables.
Une calculatrice simple en 10 lignes de code? Pourquoi? J'ai une TI-86 pour ça.
Un script qui applique des effets spéciaux à une image? C'est à ça que sert Photoshop. Et Photoshop souffle tout ce que vous pouvez faire en 10 lignes.
Que diriez-vous d'extraire un CD et de convertir le fichier en MP3? Euh, j'ai déjà 50 000 chansons que j'ai obtenues de BitTorrent. Ils sont déjà au format MP3. Je les joue sur mon iPhone. Qui achète des CD de toute façon?
Pour initier les utilisateurs avertis à la programmation, vous devrez trouver quelque chose qui soit:
a) applicable à quelque chose qu'ils trouvent intéressant et cool, et b) fait quelque chose qu'ils ne peuvent pas déjà faire.
Supposons que vos élèves aient déjà accès au logiciel le plus cher. Beaucoup d'entre eux ont la version complète d'Adobe CS5.5 (prix de détail: 2600 $; prix réel: gratuit) et peuvent facilement obtenir n'importe quelle application qui casserait normalement le budget de votre service.
Mais la grande majorité d'entre eux n'ont aucune idée du fonctionnement réel de ces "trucs informatiques".
Ils sont incroyablement créatifs: ils aiment créer des choses. Ils veulent juste pouvoir faire ou faire quelque chose que leurs amis ne peuvent pas. Ils veulent se vanter de quelque chose.
Voici certaines choses que j'ai trouvées en résonance avec mes élèves:
Aucun de ceux-ci n'implique de programmation au sens traditionnel. Mais ils exploitent de puissantes bibliothèques. Je les considère comme une programmation différente.
la source
J'ai trouvé un grand favori (dans GWBASIC):
J'ai trouvé que les étudiants débutants ont quelques conceptions qui doivent être corrigées.
Bonne chance avec ta classe. Je suis sûr que tu feras bien.
PS Je suis sûr que vous comprenez que, avec du matériel et des compétences, vous enseignez également une attitude, et c'est tout aussi important.
la source
Ce code C est peut-être obscurci, mais je l'ai trouvé très puissant
Et voici le résultat ... En seulement 3 lignes ... Une sorte de fractale
Hello World
...la source
Que diriez-vous de montrer que vous pouvez utiliser n'importe quel navigateur Web et entrer JavaScript dans la barre d'adresse et obtenir le code à exécuter?
EDIT: Accédez à une page avec beaucoup d'images et essayez ceci dans la barre d'adresse:
la source
Vous pouvez créer une application qui sélectionne un nombre aléatoire. Et vous devez le deviner. Si vous vous trompez, il est dit: supérieur ou inférieur. Et si vous l'avez deviné, un joli message.
C'est cool de jouer pour les étudiants.
Version Python simple sans vérification d'erreur appropriée:
Erik suggère que l' ordinateur devine le nombre. Cela peut également être fait dans 10 lignes de code (bien que le manque de vérification des erreurs soit encore plus grave: les nombres valides en dehors de la plage provoquent une boucle infinie):
la source
eval(raw_input(prompt))
. Voir entrée .De retour en classe d'informatique au lycée, moi-même et quelques amis avons appris à la classe comment programmer avec Delphi. La classe était principalement axée sur la programmation avec Pascal, Delphi était donc une bonne étape suivante. Nous avons démontré la nature événementielle de Delphi et ses capacités RAD. À la fin de la leçon, nous avons montré à la classe un exemple d'application et leur avons demandé de le reproduire. L'application a demandé " Êtes-vous ivre? " Avec deux boutons Oui et Non . ... Je pense que vous savez ce qui va suivre ... le bouton Non a changé d'emplacement à la souris et a été presque impossible à cliquer.
Les étudiants et l'enseignant en ont profité.
Le programme ne nécessitait que quelques lignes de code écrit par l'utilisateur avec une équation simple pour calculer où déplacer le bouton. Je ne pense pas que les autres étudiants l'ont compris, mais quelques-uns étaient proches.
la source
Quand j'ai découvert le forkbomb bash, je pensais que c'était vraiment adorable. Si simple, mais soigné dans ce qu'il peut faire:
la source
C'est de la triche, et même pas simple à distance, mais j'ai déjà écrit un shoot'em up en 20 lignes de C ++, en utilisant la bibliothèque graphique Allegro. Pas de vrais critères pour ce qu'est une ligne , mais c'était il y a un peu et elle était faite uniquement pour le plaisir. Il avait même des effets sonores grossiers.
Voici à quoi cela ressemblait:
20 lignes http://img227.imageshack.us/img227/8770/20linesxx0.png
Et voici le code ( devrait compiler):
la source
De nos jours, JavaScript est un excellent moyen de montrer comment vous pouvez programmer en utilisant des outils vraiment basiques, par exemple le bloc-notes.
Les effets jQuery sont un excellent point de départ pour tous ceux qui veulent épater leurs amis!
Dans celui-ci, cliquez simplement sur l'espace blanc de la page.
la source
Une chose que vous pourriez considérer est quelque chose comme Robocode , dans lequel beaucoup de codage est abstrait et vous dites simplement à un robot quoi faire. Une simple fonction de 10 lignes peut faire beaucoup pour le robot et a un résultat très visuel et facile à suivre.
Peut-être que Robocode lui-même n'est pas adapté à la tâche, mais ce genre de chose est un bon moyen de relier le code écrit aux actions visuelles sur l'ordinateur, et c'est amusant à surveiller lorsque vous devez donner des exemples.
la source
Alors un jour, j'ai décidé que j'en avais assez. Je voudrais apprendre le piano. Voir des gens comme Elton John maîtriser une telle maîtrise du clavier m'a assuré que c'était ce que je voulais faire.
En fait, l'apprentissage du piano a été une énorme déception. Même après avoir terminé huit années de cours de piano, je n'étais toujours pas impressionné par la façon dont mon image mentale de jouer du piano était si différente de ma vision originale de profiter de l'activité.
Cependant, ce que j'ai vraiment apprécié, ce sont mes trois grades de rudiments de la théorie musicale. J'ai appris la construction de la musique. J'ai enfin pu passer du monde de la musique écrite à l'écriture de ma propre musique. Par la suite, j'ai pu commencer à jouer ce que je voulais jouer.
N'essayez pas d'éblouir les nouveaux programmeurs, en particulier les jeunes programmeurs. Toute la notion de «moins de dix lignes de code simple» semble susciter une ambiance de «Montrez-moi quelque chose d' intelligent ».
Vous pouvez montrer à un nouveau programmeur quelque chose d'intelligent. Vous pouvez ensuite apprendre à ce même programmeur comment reproduire cette "performance". Mais ce n'est pas ce qui les rend accro à la programmation. Apprenez-leur les rudiments et laissez-les synthétiser leurs dix intelligentes lignes de code.
Je montrerais à un nouveau programmeur le code Python suivant:
Je me rends compte que je ne pas besoin d'attribuer
line
àedited_line
. Cependant, c'est juste pour garder les choses claires et pour montrer que je n'édite pas le document original.En moins de dix lignes, j'ai verbalisé un document. Bien sûr, assurez-vous également de montrer au nouveau programmeur toutes les méthodes de chaîne disponibles. Plus important encore, j'ai montré trois choses fondamentalement intéressantes que je peux faire: l'affectation de variables, une boucle, les entrées-sorties de fichiers et l'utilisation de la bibliothèque standard.
Je pense que vous conviendrez que ce code n'éblouit pas. En fait, c'est un peu ennuyeux. Non - en fait, c'est très ennuyeux. Mais montrez ce code à un nouveau programmeur et voyez si ce programmeur ne peut pas réutiliser chaque partie de ce script pour quelque chose de beaucoup plus intéressant dans la semaine, sinon la journée. Bien sûr, cela vous sera désagréable (peut-être en utilisant ce script pour créer un analyseur HTML simple), mais tout le reste prend du temps et de l'expérience.
la source
Comme la plupart des autres commentateurs, j'ai commencé à écrire du code pour résoudre des problèmes mathématiques (ou pour créer des graphiques pour des jeux vraiment terribles que je concevrais - des choses comme Indiana Jones contre Zombies).
Ce qui m'a vraiment commencé (à la fois en mathématiques et en programmation), c'est de passer du texte, choisissez vos propres jeux de style aventure ... à des jeux plus graphiques. J'ai commencé à colorier du papier millimétré et à tracer des pixels, jusqu'à ce que j'entre dans la géométrie ... et j'ai découvert comment utiliser des équations pour tracer des courbes et des lignes, des boîtes, etc.
Mon point est, j'aurais pu vraiment entrer dans quelque chose comme le traitement ( http://processing.org/ ) où un programme typique ressemble à ceci:
Pour moi, c'est le "Logo" du futur.
Il y a des exemples simples de "bonjour" qui peuvent rapidement amener quelqu'un à dessiner et à changer le code et à voir comment les choses se brisent et quels étranges "accidents" peuvent être créés ... jusqu'à une interaction plus avancée et une création fractale ...
la source
Vous pouvez utiliser un script écrit avec AutoIt , ce qui brouille la frontière entre l'utilisation d'une application traditionnelle et la programmation.
Par exemple, un script qui ouvre le bloc-notes et fait insulter leur propre ordinateur dans celui-ci et via une boîte de message, puis ne laisse aucune trace de ses actions:
la source
Je me souviens quand j'ai commencé à coder des boucles pour la première fois. Vous écrivez 5 à 10 lignes de code (ou moins) et des centaines (ou autant que vous spécifiez) de lignes s'impriment. (J'ai d'abord appris en PHP et Java).
la source
Je pense qu'un bon endroit pour un étudiant pour commencer pourrait être Greasemonkey . Il existe des milliers d'exemples de scripts sur userscripts.org, de très bonnes lectures, dont certains sont très petits. Les scripts Greasemonkey affectent les pages Web, que les étudiants seront déjà familiarisés avec l'utilisation, sinon la manipulation. Greasemonkey lui-même offre un moyen très simple de modifier et d'activer / désactiver les scripts pendant les tests.
À titre d'exemple, voici le script "Google Two Columns":
la source
Il s'agit d'un programme c # textuel très rudimentaire qui simule l'action de rotation d'une machine à sous. Cela n'inclut pas les différentes chances de gagner ou les paiements en espèces, mais cela pourrait être un bon exercice pour les étudiants.
Désolé, c'est plus de 10 lignes.
la source
Avec Tcl, vous avez un simple éditeur de texte avec un bouton d'enregistrement dans environ 12 lignes de code (mais pas d'ouverture, cela prendrait encore 8 lignes). Il fonctionne sur toutes les plateformes standard:
Je me rends compte que l'objectif était de 10 lignes, donc si vous voulez que cela reste sur 10 lignes ou moins, un simple éditeur de texte sans chargement ni sauvegarde n'est que de deux lignes. Ce n'est pas trop minable.
Exécutez l'un des blocs de code ci-dessus avec "wish filename " sur la plate-forme de votre choix. Wish est livré avec la plupart des * nix et du mac, mais vous devrez l'installer manuellement pour Windows.
Pour aller plus loin, ce script de deux lignes peut également être écrit en python, bien qu'il prenne huit lignes, toujours sous l'objectif de 10 lignes:
la source
Que diriez-vous d'un bookmarklet? Cela leur montrerait comment manipuler quelque chose qu'ils utilisent tous les jours (Internet) sans avoir besoin d'outils de développement.
la source
Si vous pouvez vous permettre le matériel, l'utilisation d'une carte Arduino + traitement produira des choses assez cool, même si cela peut être un peu avancé pour les personnes qui ne sont pas du tout intéressées par la programmation.
la source
J'ai récemment écrit à ce sujet dans un article "Le programme le plus court et le plus utile que j'aie jamais écrit".
Résumé: J'ai écrit une application VB6 à 3 lignes en 1996 que j'utilise toujours tous les jours. Une fois l'exe déposé dans le dossier "Send-to". Il vous permet de cliquer avec le bouton droit sur un fichier dans l'explorateur et d'envoyer le chemin complet de ce fichier au presse-papiers.
la source
Clipboard.Clear
? Il supprime tout le contenu du presse-papiers, même les données non textuelles (par exemple, les données d'image). Ce n'est généralement pas du tout ce que vous voulez.Il est intéressant que vous mentionniez l'ensemble Mandelbrot, car la création de fractales avec GW-BASIC est ce qui a suscité mon amour de la programmation au lycée (vers 1993). Avant de commencer à apprendre sur les fractales, nous avons écrit des applications ennuyeuses d'écart type et je prévoyais toujours de me lancer dans le journalisme.
Mais une fois que j'ai vu ce long programme BASIC difficile à écrire générer un «terrain fractal», j'ai été accroché et je n'ai jamais regardé en arrière. Cela a changé ma façon de penser les mathématiques, les sciences, les ordinateurs et ma façon d'apprendre.
J'espère que vous trouverez le programme qui a le même effet sur vos élèves.
la source
wxPython Premiers pas
cadre simple.py http://zetcode.com/wxpython/images/simple.jpg
la source
Je suis sûr que cela se transformerait en plus de 10 lignes de code, mais avez-vous envisagé une application basée sur un formulaire où appuyer sur les boutons fait des choses comme changer la couleur de l'arrière-plan ou changer la taille du texte? Cela leur montrerait comment fonctionnent les programmes interactifs. Cela leur montrerait également qu'en tant que programmeur, ils contrôlent totalement ce que fait l'ordinateur (programme).
J'espère que cela les amènera à faire des suggestions sur d'autres choses qu'ils pourraient changer, puis sur d'autres choses qu'ils pourraient vouloir faire.
la source