我正在寻找最酷的事情,你可以在几行简单的代码。我相信你可以用Haskell用15行写一个Mandelbrot集,但是很难理解。

我的目标是启发学生编程很酷。

我们知道编程很酷,因为你可以创造任何你想象到的东西——它是最终的创意出口。我想激励这些初学者,让他们尽可能多地克服早期学习的困难。

Now, my reasons are selfish. I'm teaching an Intro to Computing course to a group of 60 half-engineering, half business majors; all freshmen. They are the students who came from underprivileged High schools. From my past experience, the group is generally split as follows: a few rock-stars, some who try very hard and kind of get it, the few who try very hard and barely get it, and the few who don't care. I want to reach as many of these groups as effectively as I can. Here's an example of how I'd use a computer program to teach:

Here's an example of what I'm looking for: a 1-line VBS script to get your computer to talk to you: CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it") I could use this to demonstrate order of operations. I'd show the code, let them play with it, then explain that There's a lot going on in that line, but the computer can make sense of it, because it knows the rules. Then I'd show them something like this: 4(5*5) / 10 + 9(.25 + .75) And you can see that first I need to do is (5*5). Then I can multiply for 4. And now I've created the Object. Dividing by 10 is the same as calling Speak - I can't Speak before I have an object, and I can't divide before I have 100. Then on the other side I first create an InputBox with some instructions for how to display it. When I hit enter on the input box it evaluates or "returns" whatever I entered. (Hint: 'oooooo' makes a funny sound) So when I say Speak, the right side is what to Speak. And I get that from the InputBox. So when you do several things on a line, like: x = 14 + y; You need to be aware of the order of things. First we add 14 and y. Then we put the result (what it evaluates to, or returns) into x.

这就是我的目标,有一堆很酷的例子来演示,并在他们玩得开心的时候教他们。我在我室友身上尝试了这个例子,虽然我可能不会把它作为第一课,但她喜欢它,并学到了一些东西。

一些很酷的数学程序,可以做出漂亮的图形或容易理解的形状,这是很好的想法,我将研究这些。这里有一些复杂的actionscript示例,但这有点太高级了,我不能教flash。你还有什么其他的想法吗?


当前回答

当我还是个孩子的时候,我对计算机(当时是MSX)有浓厚的兴趣,因此编程(所有的东西都是Basic的变体)。长大后我失去了它,但当我了解到《反恐精英》只是一些粉丝通过修改《半条命》代码而创造出来的mod时,我又重新拥有了它。这让我重新对编程产生了兴趣!

这不是10行代码,但如果你向人们展示某个游戏的源代码,然后修改它,让它做一些不同的事情,并向他们现场演示,这真的会让他们大吃一惊。哇,这其实不是黑魔法!你能做到的!

现在,有相当多的游戏可以做到这一点。我认为所有《雷神之锤》系列(至少1到3)的源代码都已经发布了。我知道你可以为《半条命》和《半条命2》创建mod,我相信其他游戏如《虚幻世界》和《孤岛惊魂》也提供了类似的功能。

一些简单的事情可以激发你的动力:

让武器变得超级强大(例如,无限的弹药,更高的伤害,自动瞄准。等。 添加一个动画风格的动作(飞行,快速奔跑等)。

修改本身不需要太多代码行,但它工作的事实是令人惊讶的。

其他回答

我记得我发现简单的循环很神奇。每次我学习一门新语言,我通常会把这样的东西放在一起:

<?php
$numberOfBottles = 99;
print("<h1>$numberOfBottles Bottles of Beer on the Wall</h1>");
print("$numberOfBottles bottles of beer on the wall,<br />");
print("$numberOfBottles bottles of beer!<br />");
print("Take one down, pass it around,<br />");
for($numberOfBottles--; $numberOfBottles>1; $numberOfBottles--)
{
    print("$numberOfBottles bottles of beer on the wall!<br />");
    print("<br />");
    print("$numberOfBottles  bottles of beer on the wall,<br />");
    print("$numberOfBottles  bottles of beer!<br />");
    print("Take one down, pass it around,<br />");
}
print("One last bottle of beer on the wall!");
?>

也许一些while或foreach循环的变化也会很容易。

我用4行代码创建了高级计算器

JavaScript的处理呢?我不知道如何处理,但是代码对于它能做的事情来说总是显得相当小,它是非常可视化的,你可以在浏览器中运行它。 http://processingjs.org/exhibition

当我第一次想出bash叉式炸弹的时候,我觉得它真的很可爱。如此简单,但它能做的事情却很整洁:

:(){ :|:& };:

Squeak是一个激发灵感的好工具

例如:http://squeakland.jp/school/drive_a_car/html/Drivecar12.html。