<10行の簡単なコードでできる最もクールなことは何ですか?初心者を鼓舞するのに役立ちます![閉まっている]


406

数行の簡単なコードでできる最もクールなことを探しています。マンデルブロセットをHaskellで15行で書けると思いますが、理解するのは難しいです。

私の目標は、プログラミングがクールであることを学生に刺激することです

あなたが想像するものは何でも作成できるので、プログラミングがクールであることを私たちは知っています-それは究極の創造的な出口です。私はこれらの初心者を刺激し、できるだけ多くの初期学習のこぶを乗り越えさせたいと思っています。

今、私の理由は利己的です。私は、コンピューティング入門コースを60人のハーフエンジニアリング、ハーフビジネスメジャーのグループに教えています。すべての新入生。彼らは恵まれない高校から来た生徒たちです。私の過去の経験から、一般的として分割されているグループは、次のとおりです。いくつかの岩の星、非常に難しいと試みる人もの種類のそれを得ることを、非常に難しい試してみて、少数の人々かろうじてそれを取得し、いくつかは気にしない人。私はこれらのグループのできるだけ多くに効果的にリーチしたいと思っています。コンピュータプログラムを使用して教える方法の例を次に示します。

ここに私が探しているものの例があります:あなたのコンピュータにあなたと話させるための1行のVBSスクリプト:

CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")

これを使用して、操作の順序を示すことができます。私はコードを見せて、彼らに遊んでもらい、それからその行でたくさんのことが起こっていることを説明しますが、コンピューターはルールを知っているのでそれを理解できます。それから私は彼らにこのようなものを見せます:

4(5*5) / 10 + 9(.25 + .75)

そして、私が最初に行う必要があるのは(5 * 5)であることがわかります。次に、4を掛けることができます。これで、オブジェクトが作成されました。10で除算することは、Speakを呼び出すことと同じです。オブジェクトを取得する前に発言することはできません。また、100にする前に分割することはできません。次に、反対側で、まず、表示方法の指示を含むInputBoxを作成します。 。入力ボックスでEnterキーを押すと、入力した内容が評価または「返され」ます。(ヒント:「oooooo」は面白い音を出します)だから私が話すと言うとき、右側が話すものです。そして、それをInputBoxから取得します。

したがって、次のような行でいくつかのことを行うと、

x = 14 + y;

物事の順番に注意する必要があります。まず、14とyを追加します。次に、結果(評価結果または戻り値)をxに入れます。

それが私の目標です。これらのクールな例をたくさん持って、楽しみながらクラスをデモンストレーションし、教えることです。私はルームメイトでこの例を試しましたが、最初のレッスンとしてこれを使用することはできませんが、彼女はそれを気に入って何かを学びました。

理解しやすい美しいグラフや形状を作成するいくつかのクールなMathematicaプログラムは良いアイデアになると思います。複雑なアクションスクリプトの例をいくつか示しますが、それは少し高度すぎるため、フラッシュを教えることはできません。他にどんなアイデアがありますか?


102
プログラミングを教える方法についての質問は素晴らしく、簡単ではないと思います。あなたがやろうとしていることを頑張ってください。
Mike Dunlavey、2009年

6
「私の目標は、プログラミングがクールであることを学生に刺激することです。」プログラミングが優れているとは言えません。彼らはそれを好むか好まないかのどちらかです。
Rik、

2
1行のVBSスクリプトが私のMacで動作しません!:-Pいい質問ですが。
John Topley、

1
私はいつもこの種のものを好きですが、あなたが印象づけようとしている人、シェルピンスキーのガスケットは私が素晴らしい仕事をするでしょう。IT担当者にとっては、ファイルを作成するものがあるかもしれません。つまり、対象となる視聴者が重要なのは、何がクールかを定義することです。
Oakcool、2009年

5
83人がこの質問が「優れており、些細なことではない」というコメントに賛成票を投じます...明らかにそう思わない5人によって「建設的ではない」と締め切られました。パワーグランドではないですか?
rg88 2011

回答:


78

私は、Microsoft Agentキャラクターを操作するための簡単なVBスクリプトを使用して、子供たちから素晴らしい反応を得ました。MSエージェントに慣れていない人にとっては、COMインターフェイスを介して操作できる一連のアニメーション化された画面上のキャラクターです。Microsoft Agentダウンロードページでコードと文字をダウンロードできます。

次の数行は、マーリンのキャラクターを画面に表示し、飛び回って、画面をノックして注意を喚起し、挨拶します。

agentName = "Merlin"
agentPath = "c:\windows\msagent\chars\" & agentName & ".acs"
Set agent = CreateObject("Agent.Control.2")

agent.Connected = TRUE
agent.Characters.Load agentName, agentPath
Set character = agent.Characters.Character(agentName)

character.Show

character.MoveTo 500, 400
character.Play "GetAttention"
character.Speak "Hello, how are you?"
Wscript.Sleep 15000
character.Stop
character.Play "Hide"

使用できるコマンドは他にも多数あります。小切手詳細については、http://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx参照してください。

編集2011-09-02 私は最近、Microsoft AgentがWindows 7にネイティブにインストールされていないことを発見しました。ただし、ここから個別にダウンロードできます。私はこれをテストしていないので、動作するかどうかを確認できません。


それは素晴らしいです。これはより多くの賛成投票に値します。
トム・リッター

認識のトムに感謝します。それでも賛成票を獲得し始めたとしても、私は担当者ポイントを獲得しません。:-P
ボブMc

32
このようにして、常にクリップを見ることができます:D
Pedery

8
@Bob BASICは初心者向けの言語です。VBはBASICではありません。VBは、当時のニーズに合わせてMSが作成したスイスアーミーナイフです。今日では、その代わりとして、はるかに優れた(より専門的な)ツールがあります。VBは悪い言語ではありません、それはたくさんの過剰な荷物があるだけです。私がそれを使わない理由を完全に公平な理由で挙げるとしたら、それはMSがVBのサポートを徐々に落としているためです。それは瀕死の言語です。OfficeスクリプトがJavaScript(近い将来に計画されています)で実行されるまで待ってください。そうすれば、VBの低下は確実です。
Evan Plaice、2011

3
@Evan-いくつかの宗教的長たらしい話ではなく、公正な回答をありがとう。よくできました。Office JavaScriptの移転については聞いていません。調査します。
Bob Mc

339

(ブラウザの)アドレスバーにこのコードを入力し、Enterキーを押します。次に、Webページのすべてのコンテンツを編集できます。

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

それは私が知っている最もクールな「ワンライナー」です=)


95
「ワンライナー」はそのような誤称です。それは本当に3行です。必要に応じて、コードを1行にすることができます。
DisgruntledGoat

5
これは本当にきれいに見えますが、変更されたページを取得する方法はありますか?
Sylverdrag 2009

51
私はそれがとても好きです、私はあなたのために999999999回賛成しました!! img707.imageshack.us/img707/4843/jshack.png
JRL

4
JavaScript:が無効化されているため、Firefoxではこれは当てはまりません。残念なこと。

2
@DisgruntledGoatは、javascript:void 0の同等:定型あるint main() {return 0; }C.およびその他の2行は同じことを行うだけで別のブラウザのAPIです:最初のIEのAPIがあり、第二は、NetscapeのAPIです。HTML5の用途contentEditable、あなたはFirefox 1.5以上、何かをサポートする気にしない限り、そう、実際のコードは、になる:document.body.contentEditable='true';
Zarel

201

私がこれを最初に書いたとき。

10 PRINT "What is your name?"
20 INPUT A$
30 PRINT "Hello " A$
40 GOTO 30

人を驚かせた!コンピュータは彼らの名前を思い出しました!

編集:これに追加するだけです。新しいプログラマを説得できれば、これは彼らができる最もクールなことであり、彼らは優れたプログラマになります。最近では、他の誰かが書いたライブラリーを実行するために、1行のコードでほぼすべてのことを実行できます。私は個人的にそれを行うことに全く満足感がなく、それを教えることにはほとんど利益がありません。


15
40 GOTO 30
2009年

8
ユーザー名を表示するための+1、人々は常に自分の名前が表示されるのを気に入っています。@saua、それは無限の印刷ループではないのですか?それはライン30に戻り、20行目ではない
- zの

13
goto 10は間違いなく他の誰かが自分の名前を入力できるようにする必要があります...
Omar Kooheji 09年

17
35 PRINT CHR $(7)を忘れました
Adam Jaskiewicz、2009年

6
これは私もプログラミングを学んだ方法です。その最良の答えはイモです。+1を受け入れるには
2009年

180

PHP-トライフォースとも呼ばれるシェルピンスキーガスケット

15行のコードですが、結果はすばらしいです。それは私が子供だったときに私を驚かせたようなものです。これはPHPマニュアルからです:

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0); 

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

シェルピンスキーガスケット


25
ちなみに、これはシェルピンスキーのガスケットです。
混乱

6
それは素晴らしいですが、ループや配列などの多くの概念に基づいているため、コースのほぼ中間に入るはずです。
Mike Dunlavey、2009年

4
@Masi:一般的な考え方は、三角形の角である3つの固定点と、更新し続ける「現在の」点を持つことです。移動するには、いずれかのコーナーをランダムに選択し、現在のポイントをそのコーナーに向かって半分ほど移動します。現在のポイントの色。次に、同じ方法でもう一度動かし、さらに数千回繰り返すと、パターンが表示されます。次に、コーナーの数を変えて試してみるか、現在のポイントがコーナーに向かってジャンプする割合を変更して、パターンにどのように影響するかを確認します。
Daniel Earwicker、2009年

18
ちなみに、これはシェルピンスキーのガスケットではありません...実際、トライフォースです。en.wikipedia.org/wiki/The_Legend_of_Zelda
jason

2
このコードは私には奇妙に思えます。なぜなら、これは通常、再帰を使用して行われるためです(コードの行もごくわずかです)。実際、フラクタルはコンピュータサイエンスのクラスでの再帰の入門として適しています。しかし、ランダムなアプローチのため、このコードは非常に非効率で、多くのピクセルをペイントおよび再ペイントするように見えます。
スティーブウォーサム

105

マイクロソフトには、「子供」用のIDEであるSmall Basicがあります。

pic = Flickr.GetRandomPicture("beach")
Desktop.SetWallpaper(pic)

これは特に、プログラミングがいかに優れているかを示すために設計されています。


80
これらのライブラリ呼び出しは魔法のように見えるので、これは実際には最悪です。あなたはそれらをVBスクリプトキディとして設定しています。彼らはその「ダークマジック」エリアに潜むことはなく、「安全な」配管エリアに留まることはないと思います。...ああ、ここにインターネットブラウザを一行で作る方法があります!MSIEControl(.. blabla何でも...)(見せる)。
HASEN

88
子供はばかだとは思わない。彼らにプログラミングの可能性について興奮してもらうと、彼らは自分でより高度なことをする方法を見つけるでしょう。何が起こったとしても、テストステロンに感染した少年たちは、何が起こったのかを知る前に、最も不可解なダークマジックのことを学ぼうとしています。
Tim Lin、

28
@hansen j、それは不公平です。誰もがどこかから始めなければなりません。
ジョンファレル

30
これは子供向けのCSの学位ではありません。これはプログラミングのおもちゃです。ASMである必要はなく、プログラミングの楽しい面を子供たちに見てもらうためのゲートウェイが何であれ。
コパス2009年

29
私が教えようとした子供たちを知っていると、彼らが試す前の約10秒はpic = Flickr.GetRandomPicture( "boobs")
Iain Galloway

83

私は、人々が自分の生活に関連する、または自分の生活に関連するものに感銘を受けていると思いがちです。私は自分の10行のコードを、彼らが知っていて理解しているものを基にしてみます。たとえば、TwitterとそのAPIを見てみましょう。このAPIを使用して、かっこいいものを作成してみませんか。次の10行のコードは、Twitterから「公開タイムライン」を返し、コンソールアプリケーションに表示します...

using (var xmlr = XmlReader.Create("http://twitter.com/statuses/public_timeline.rss"))
    {
        SyndicationFeed
            .Load(xmlr)
            .GetRss20Formatter()
            .Feed
            .Items        
            .ToList()
            .ForEach( x => Console.WriteLine(x.Title.Text));
    }

私のコードサンプルは、生徒にとって最適ではない場合があります。C#で記述され、.NET 3.5を使用します。したがって、PHP、Java、またはC ++を教える場合、これは役に立ちません。ただし、私のポイントは、10行のコードを「クールで興味深い、学生に関連するもの」に関連付けることにより、サンプルもクールで興味深い、関連性のあるものになるということです。

幸運を!

[はい、usingステートメントとMainメソッドの数行を見逃したことはわかっていますが、10行が文字通り10行である必要はなかったと思います]


これは本当にすてきです!SyndicationFeedオブジェクトに慣れていませんでした-コードに感謝します!
Tad Donaghe、2009年

対象者はオタクではない、エルゴです、彼らはトゥイーターについて気にしませんか?
peufeu 2009年

80

これは、ユーザー名を要求し、挨拶するPython telnetサーバーです。ネットワーク経由で別のコンピューターからプログラムと通信しているので、これはクールに見えます。

from socket import *
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 3333))
s.listen(5)
while 1:
   (c, a) = s.accept()
   c.send("What is your name? ")
   name = c.recv(100)
   c.send("Hello "+name)
   c.close()

68

最近、コンピュータ教育者になるのは難しいと思います。わたし。私たちは、ますます険しい上り坂の戦いに直面しています。私たちの学生は信じられないほど洗練されたユーザーであり、印象づけるにはたくさんの時間がかかります。彼らは、驚くべきことを行うためにアクセスできる非常に多くのツールを持っています。

10行のコードで構成される単純な計算機ですか?どうして?そのためのTI-86を持っています。

画像に特殊効果を適用するスクリプトですか?それがPhotoshopの目的です。そしてPhotoshopはあなたができることを10行で吹き飛ばします。

CDをリッピングしてファイルをMP3に変換してみませんか?ええと、BitTorrentから既に50,000曲もらっています。彼らはすでにMP3形式です。iPhoneで再生します。とにかく誰がCDを買うのですか?

知識のあるユーザーにプログラミングを紹介するには、次のようなものを見つける必要があります。

a)彼らが興味深くてかっこいいと思うものに適用できる、そしてb)彼らがまだできないことをする。

生徒がすでに最も高価なソフトウェアにアクセスできると仮定します。それらの多くは、Adobe CS5.5のフルバージョン(小売価格:2,600ドル、実際の価格:無料)を備えており、通常は部門の予算を超えるアプリケーションを簡単に入手できます。

しかし、それらの大多数は、この「コンピュータ」が実際にどのように機能するかを知りません。

彼らは信じられないほど創造的な束です:彼らはものを作るのが好きです。彼らはただ、友達ができないことをしたり、作りたいと思っています。彼らは自慢できることを望んでいる。

生徒たちと共感していることがいくつかわかります。

  • HTMLおよびCSS。それらから、MySpaceのテーマがどのように機能するかを学び、それらをカスタマイズすることができます。
  • マッシュアップ。彼らはすべてそれらを見てきましたが、それらを作成する方法がわかりません。Yahoo!をチェックしてください。パイプ。RSS、XML、テキストフィルタリング、マッピング、視覚化など、学習可能な瞬間はたくさんあります。完成したマッシュアップウィジェットは、Webページに埋め込むことができます。
  • アートワーク。Context-Free Artご覧ください。再帰とランダム化は、美しい写真を作るための鍵です。
  • ストーリーテリング。Aliceのような使いやすい3Dプログラミング環境を使用すると、ドラッグアンドドロップだけを使用して、高品質で魅力的なストーリーを簡単に作成できます。

これらのどれも、伝統的な意味でのプログラミングを必要としません。しかし、強力なライブラリを活用しています。私はそれらを別の種類のプログラミングと考えています。


11
+1 bittorrentとAdobe CS4からの50,000曲を
無料

Pythonで単純なバイナリ検索アルゴリズムを記述します。それがどのように機能するかを説明するために、電話帳を半分以上何度も引き裂いてください。経験豊富なプログラマーがしばしば見落とし、初心者が@に畏敬の念を抱くのは、プログラミングのシンプルでありながら強力な側面です。ほとんどの人は、モニターが60〜120秒のモニターのピクセルの少なくとも半分をリフレッシュすることに気づいていません。人間対コンピュータのスピード競争を行います。楽しいもの。:より多くのアイデアのためにこれを見academicearth.org/courses/introduction-to-computer-science-i彼らの第一言語として彼らにANSI Cを教示していない...何をするにしても、そして:。私はそこに行ったことがあります。
Evan Plaice

3
サイトをカスタマイズしている場合は、Greasemonkeyを使用してみませんか?
new123456

あなたの例についてのほんの少しの考え:フォトショップについては、明白なことを指摘する必要があります-フォトショップでは1つの画像を変更でき、スクリプトを使用すると数十万を変更できます。そして、MP3に関して言えば、もうCDをダウンロードする人はいませんが、合法性がない場合は、最新の音楽をiPodに直接自動的にダウンロードするプログラムを作成できると説明できます。
ジェフウェリング2011

@JeffWell Photoshopをうまく活用すれば、バッチやアクションを作成して、任意の数のファイルに対してもこれらの変更を行うことができます。最近のコンピュータでどれほど当たり前になっているのかは驚くべきことです。
John

63

私は(GWBASICで)大きなお気に入りを見つけました:

10 input "What is your name ";N$
20 i = int(rnd * 2)
30 if i = 0 print "Hello ";N$;". You are a <fill in insult number 1>"
40 if i = 1 print "Hello ";N$;". You are a <fill in insult number 2>"

私は初心者の学生が修正する必要があるいくつかの概念を持っていることを発見しました。

  • コンピュータはあなたの心を読みません。
  • コンピュータは一度に1つのことしか実行しません。たとえ高速で実行しても、一度にすべてを実行しているように見えます。
  • コンピュータは単なる愚かなマシンであり、言われたことだけを実行します。
  • コンピュータは特定のものだけを認識し、これらはビルディングブロックのようなものです。
  • 重要な概念は、変数は値を含むものであり、その名前はその値とは異なるということです。
  • プログラムを編集する時間とプログラムを実行する時間の違い。

あなたのクラスで頑張ってください。きっとうまくいくと思います。

PS教材やスキルだけでなく、態度も教えていることを理解していると思いますが、それも同様に重要です。


現代のコンピュータは、一度に複数のことを実行します。
dreamlax 2009年

しかし、あなたのコードは一度に複数のことをしますか?
JeffO 2009年

5
@dreamlax:もちろんですが、髪の毛は分けないでください。私たちは子供たちにコンピューターを導入し、それらに基本的な精神的ビルディングブロックを与えることについて話している。並列処理は後で行うことができます。
Mike Dunlavey、2009年

1
@ベンS:たまたま行10の前のスペースを削除しましたか?SOフォーマッターは最初の行のスペースを1スペースほど大きくしないように見えるので、それを入れました。コードを整列させるためのより良い方法があるかしら?
Mike Dunlavey、2009年

2
@foljs:おっと!本当に?:-) dreamlaxも同じ点を指摘しました。問題は、コンピューターについて何も知らない人と一緒に作業しているときは、すべてが一度に起こるかのように見えるので、髪の毛を分けずにそれを乗り越えなければならないということです。したがって、本当に基本的な概念は、「最初にAを実行し、次にBを実行する、など」です。
Mike Dunlavey、2009年

62

このCコードは難読化されている可能性がありますが、非常に強力であることがわかりました

#include <unistd.h>
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<L?--_
%6:6:7)+"World! \n",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}

そして、これが結果です...わずか3行で...一種のフラクタルHello World...

WWWWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWooooooooooooooooorrrrrrrrrrrrrrrrrrrrroooooooooooooooooooooooooooo
WWWWWWWWWWWoooooooooooorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrooooooooooooooooooooo
WWWWWWWWWWooooooooorrrrrrrrrrrrrrrrrrrrrrrllllld!!ddllllrrrrrrooooooooooooooooo
WWWWWWWWoooooooorrrrrrrrrrrrrrrrrrrrrrllllllldd!oWW!!dllllllrrrrroooooooooooooo
WWWWWWWoooooorrrrrrrrrrrrrrrrrrrrrrlllllllldddd!orro!o!dllllllrrrrrrooooooooooo
WWWWWWooooorrrrrrrrrrrrrrrrrrrrrllllllllldddd!WorddddoW!ddllllllrrrrrrooooooooo
WWWWWoooorrrrrrrrrrrrrrrrrrrrrlllllllllddd!!!o!!!   !dWW!ddddllllrrrrrrrooooooo
WWWWooorrrrrrrrrrrrrrrrrrrrllllllllldd!!!!WWWoo      WloW!!!ddddllrrrrrrrrooooo
WWWWoorrrrrrrrrrrrrrrrrrrlllllllddddWldolrrlo!Wl     r!dlooWWWoW!dllrrrrrrroooo
WWWoorrrrrrrrrrrrrrrrrlllllddddddd!!Wdo  l!               rdo!l!r!dlrrrrrrrrooo
WWoorrrrrrrrrrrrrrrlllddddddddd!!!!oolWW                       lW!ddlrrrrrrrroo
WWorrrrrrrrrrrrllld!!!!!dddd!!!!WWrd !                        rlW!ddllrrrrrrrro
Worrrrrrrllllllddd!oooWWWoloWWWWoodr                           drrWdlllrrrrrrrr
Worrrlllllllldddd!WolWrr!!dWWWlrrldr                            ro!dlllrrrrrrrr
Wrrllllllllddddd!WWolWr        oWoo                              r!dllllrrrrrrr
Wlllllllldddd!!odrrdW            o                              lWddllllrrrrrrr
Wlddddd!!!!!WWordlWrd                                          oW!ddllllrrrrrrr
olddddd!!!!!WWordlWrd                                          oW!ddllllrrrrrrr
Wlllllllldddd!!odrrdW            o                              lWddllllrrrrrrr
Wrrllllllllddddd!WWolWr        oWoo                              r!dllllrrrrrrr
Worrrlllllllldddd!WolWrr!!dWWWlrrldr                            ro!dlllrrrrrrrr
Worrrrrrrllllllddd!oooWWWoloWWWWoodr                           droWdlllrrrrrrrr
WWorrrrrrrrrrrrllld!!!!!dddd!!!!WWrd !                        rlW!ddllrrrrrrrro
WWoorrrrrrrrrrrrrrrlllddddddddd!!!!oolWW                       lW!ddlrrrrrrrroo
WWWoorrrrrrrrrrrrrrrrrlllllddddddd!!Wdo  l!               rdo!l!r!dlrrrrrrrrooo
WWWWoorrrrrrrrrrrrrrrrrrrlllllllddddWldolrrlo!Wl     r!dlooWWWoW!dllrrrrrrroooo
WWWWooorrrrrrrrrrrrrrrrrrrrllllllllldd!!!!WWWoo      WloW!!!ddddllrrrrrrrrooooo
WWWWWoooorrrrrrrrrrrrrrrrrrrrrlllllllllddd!!!o!!!   WdWW!ddddllllrrrrrrrooooooo
WWWWWWooooorrrrrrrrrrrrrrrrrrrrrllllllllldddd!WorddddoW!ddllllllrrrrrrooooooooo
WWWWWWWoooooorrrrrrrrrrrrrrrrrrrrrrlllllllldddd!orro!o!dllllllrrrrrrooooooooooo
WWWWWWWWoooooooorrrrrrrrrrrrrrrrrrrrrrllllllldd!oWW!!dllllllrrrrroooooooooooooo
WWWWWWWWWWooooooooorrrrrrrrrrrrrrrrrrrrrrrllllld!!ddllllrrrrrrooooooooooooooooo
WWWWWWWWWWWoooooooooooorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrooooooooooooooooooooo
WWWWWWWWWWWWWooooooooooooooooorrrrrrrrrrrrrrrrrrrrroooooooooooooooooooooooooooo
WWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWWWWoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWWWWWWoooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

5
いいね!残念ながら、実際に「Hello World!」と言っている場所はありません。
Ponkadoodle、2010

これはかわいい!マンデルブロモデル:D
Aniket

45

任意のWebブラウザーを使用してJavaScriptをアドレスバーに入力し、コードを実行できることを示してみませんか?

編集:画像の多いページに移動し、アドレスバーでこれを試してください:

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++ }setInterval('A()',5); void(0)

2
わかりました、しかしあなたはあなたが知っている具体的な例を与えるべきです..
hasen

1
@ジョン:具体例を挙げてください。私はJSファイルをエクスポートすることによって私のサーバーでJSを使用しました。コードをアドレスバーに配置したことがありません。
レオ・レオポルド・ヘルツ준 영

7
それほどエキサイティングな例ではありませんが、javascript:alert( "Hello World");を実行できます。
John Topley、

「javascript:for(var i = 0; i> -1; i ++)alert( 'おめでとうございます。Enterキーを' + i + '回押しました!');」(実行する前にそのコードを読んでください...)。^^
Arnis Lapsa、2009年

wow-factorの+1 ...かなりすばらしい例:)
fretje

37

乱数を選択するアプリケーションを作成できます。そして、あなたはそれを推測する必要があります。あなたが間違っている場合、それは言う:より高いまたはより低い。そして、あなたがそれを推測したならば、素晴らしいメッセージ。

学生のために遊ぶのはクールです。

適切なエラーチェックなしのシンプルなPythonバージョン:

import random

while input('Want to play higher/lower? ').lower().startswith('y'):
    n = random.randint(1, 100)
    g = int(input('Guess: '))

    while g != n:
        print('  %ser!' % (g > n and 'low' or 'high'))
        g = int(input('Guess: '))

    print('  Correct! Congratulations!')

エリックは、コンピュータが数字を推測するように勧めています。これは、10行のコード内でも実行できます(ただし、適切なエラーチェックがないことはさらに深刻です。範囲外の有効な数値は無限ループを引き起こします)。

while input('Want to let the pc play higher/lower? ').lower().startswith('y'):
    n = int(input('Give a number between 1 and 100: '))
    lo, hi, guess, tries = 1, 100, 50, 1

    while guess != n:
        tries += 1
        lo, hi = (guess + 1, hi) if guess < n else (lo, guess - 1)
        guess = (lo + hi) // 2

    print('Computer guessed number in %d tries' % tries)

4
より興味深いのは、ユーザーに乱数を選択させてから、コンピューターにそれを推測させることです。
エリックフォーブス

15
次に、これら2つのプログラムがソケットを介して互いに再生するようにします。
Josh Lee、

3
コンピュータに直接番号が与えられなかった方がいいでしょう。「1から100までの数字を選択する」ようにユーザーに指示する必要があります。次に、「私は50を推測します」を出力し、入力を求め(「より高い」、「より低い」、または「正しい」)、推測を調整します。
ポンカドゥードル

私はこれを息子(9)と一緒に行いました。また、アルゴリズム的思考に入るという利点があります。これは、最短時間の推測で正しい数を見つけるための最良の戦略は何ですか。
mbesso 2011

raw_inputが必要だと思います。入力はに等しいeval(raw_input(prompt))入力を参照してください。
Jeff Kaufman、2011

26

高校のコンピュータクラスに戻ったとき、私と2人の友人がDelphiでプログラミングする方法をクラスに教えました。このクラスは主にPascalでのプログラミングに焦点を合わせていたため、Delphiは次のステップとして適切でした。Delphiのイベント駆動型の性質とそのRAD機能を示しました。レッスンの最後に、クラスにサンプルアプリケーションを示し、それを再現するように依頼しました。アプリケーションは、「酔っていますか?」という2つのボタン[ はい]と[ いいえ]を尋ねました。...次に何が起こるかご存知だと思います... [いいえ]ボタンはマウスオーバーで場所を変更し、クリックするのがほとんど不可能でした。

生徒と教師はそれから良いキックを得ました。

プログラムは、ボタンを移動する場所を計算するための簡単な方程式を使用した数行のユーザー作成コードを必要としました。他の生徒がそれを理解したとは思わないが、数人は近くにいた。


7
おもしろいだけでなく、私の同僚がソフトウェアでこれを行ったことがあるだけで、メッセージボックスの[OK]ボタンだけでした。それは内部で使用されたアプリだったので、眉をひそめられませんでした。これはブルームーンで1回だけ行われました。もちろん彼らは彼を呼んで、彼がそれを信じようとするならそれが起こるのを見るために彼は彼が必要だと言ったでしょう。それで彼はさまよった、そしてもちろん彼がそこにいたときそれは起こらないだろう...
ジェイソン・D

私はこのようなものを思い出しますが、それはフラッシュの中にありました...そして質問は「あなたはゲイですか?..」と花火イベントのボタンをクリックするセットでした。
Glasnt

2
これは、タブとスペースを使用してナビゲートすることを人々に教えるための興味深い時間です。
davidahines

23

私が最初にbashフォークボムを見つけたとき、それは本当に甘いと思いました。とてもシンプルですが、何ができるのかがきちんと整っています。

:(){ :|:& };:

7
これはかなり良い説明です:cyberciti.biz/faq/understanding-bash-fork-bomb
hodgesmr

12
Linuxの初心者向け:実行しないでください。そうしないと、すべての作業が失われます。
Behrooz、2010

@Behroozは、いくつかは、内蔵の任意のスレッド/フォーク限界があり、あなたのディストリビューションに依存します。
レイザーストーム

それはSuSEに大きな衝撃を与えますが、ほとんどのdebianベースのディストリビューションでは何もしません。
Behrooz、2011年

それだけでなく、ユーザー制限、お使いのディスクキャッシュがフラッシュされる頻度を、ファイルシステム...
new123456

22

これはごまかしであり、それほど単純ではありませんが、Allegroグラフィックライブラリを使用して、C ++の20行でシュートシュートを書いたことがあります。ラインが何であるかについての本当の基準はありませんが、それは少し前であり、それは純粋に楽しみのために作られました。粗雑な音響効果さえありました。

これは次のようになります。

20行http://img227.imageshack.us/img227/8770/20linesxx0.png

そしてここにコードがあります(コンパイルする必要があります):

bool inside(int x, int y, int x2, int y2) { return (x>x2&&x<x2+20&&y>y2&&y<y2+10); }
int main() {
  BITMAP* buffer;
  float px,shotx,shoty,monstars[8],first,rnd,pressed,points = 0, maxp = 0;
  unsigned char midi[5] = {0xC0,127,0x90,25,0x54}, plgfx[] = {0,0,0,10,3,10,3,5,6,5,6,10,8,12,10,10,10,5,13,5,13,10,16,10,16,0,13,0,13,2,3,2,3,0,0,0}, mongfx[] = {0,0, 10,5, 20,0, 17,8, 15,6, 10,16, 5,6, 3,8, 0,0};
  allegro_init(), set_color_depth(32), set_gfx_mode(GFX_AUTODETECT_WINDOWED,320,240,0,0), install_timer(), install_keyboard(),  install_mouse(), buffer = create_bitmap(320,240),srand(time(NULL)),install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT,""),clear_to_color(buffer,makecol32(100,100,255));
    while ((pressed=(!key[KEY_Z]&&pressed)?0:pressed)?1:1&&(((shoty=key[KEY_Z]&&shoty<0&&pressed==0?(pressed=1?200:200):first==0?-1:shoty)==200?shotx=px+9:0)==9999?1:1) && 1+(px += key[KEY_LEFT]?-0.1:0 + key[KEY_RIGHT]?0.1:0) && 1+int(px=(px<0?0:(px>228?228:px))) && !key[KEY_ESC]) {
    rectfill(buffer,0,0,244,240,makecol32(0,0,0));
    for(int i=0;i<8;i++) if (inside(shotx,shoty,i*32,monstars[i])) midi_out(midi,5);
        for (int i=0; i<8; monstars[i] += first++>8?(monstars[i]==-100?0:0.02):-100, points = monstars[i]>240?points-1:points, monstars[i]=monstars[i]>240?-100:monstars[i], points = inside(shotx,shoty,i*32,monstars[i])?points+1:points, (monstars[i] = inside(shotx,shoty,i*32,monstars[i])?shoty=-1?-100:-100:monstars[i]), maxp = maxp>points?maxp:points, i++) for (int j=1; j<9; j++) line(buffer,i*32+mongfx[j*2 - 2],monstars[i]+mongfx[j*2-1],i*32+mongfx[j*2],monstars[i]+mongfx[j*2+1],makecol32(255,0,0));
    if (int(first)%2000 == 0 && int(rnd=float(rand()%8))) monstars[int(rnd)] = monstars[int(rnd)]==-100?-20:monstars[int(rnd)]; // randomowe pojawianie potworkow
    if (shoty>0) rectfill(buffer,shotx,shoty-=0.1,shotx+2,shoty+2,makecol32(0,255,255)); // rysowanie strzalu
    for (int i=1; i<18; i++) line(buffer,px+plgfx[i*2 - 2],200-plgfx[i*2-1],px+plgfx[i*2],200-plgfx[i*2+1],makecol32(255,255,0));
    textprintf_ex(buffer,font,250,10,makecol32(255,255,255),makecol32(100,100,255),"$: %i   ",int(points)*10);
    textprintf_ex(buffer,font,250,20,makecol32(255,255,255),makecol32(100,100,255),"$$ %i   ",int(maxp)*10);
    blit(buffer, screen, 0, 0, 0, 0, 320,240);
  }
} END_OF_MAIN()

5
これはどのように誰かに何かを教えることになっていますか?無関係なことに、COOL!ハ!楽しかった!
slezica '31

21

今日では、JavaScriptは、メモ帳などの非常に基本的なツールを使用してプログラミングする方法を示す優れた方法です。

jQuery効果は、友達を驚かせたい人にとって素晴らしい出発点です。

このページでは、ページの空白をクリックするだけです。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document.body).click(function () {
  if ($("#pic").is(":hidden")) {
    $("#pic").slideDown("slow");
  } else {
    $("#pic").slideUp();
  }
});
</script>
</head>
<body><img id="pic" src="http://www.smidgy.com/smidgy/images/2007/07/26/lol_cat_icanhascheezburger.jpg"/>
</body>
</html>

1
同意します。メモ帳を開いて、javaスクリプトでコーディングを開始してから、ブラウザーを開くと、生徒が感心することでしょう。これらは誰もが持つツールであり、Jonの例のように実行できるさまざまな効果やものを調べることができます。
ジェフレディ2011

1
ライブラリを使用してかなり単純な言語の基礎を誰かに教えるのは良い考えではないと思います。jQueryを使用せずにこれを簡単に行うことができます。初心者は、そうする必要があります。ライブラリは、実際の言語に置き換わるものではありません。
一部の男

javascriptの場合、jQueryはjavascriptの代わりではなく、(非常に変数の多い)domsの代わりです。誰にとっても、これは回避できる素晴らしいことです。
Kzqai

20

考慮すべき1つは、Robocodeのようなものです。多くのコーディングは抽象化されており、基本的にロボットに何をすべきかを指示するだけです。単純な10行の関数は、ロボットに大きな働きをさせることができ、非常に視覚的でわかりやすい結果になります。

おそらく、Robocode自体はタスクに適していないかもしれませんが、この種のことは、書かれたコードをコンピューター上の視覚的なアクションに関連付けるための良い方法です。

public class MyFirstJuniorRobot extends JuniorRobot {
 public void run() {
  setColors(green, black, blue);
  // Seesaw forever
  while (true) {
   ahead(100); // Move ahead 100
   turnGunRight(360); // Spin gun around
   back(100); // Move back 100
   turnGunRight(360); // Spin gun around
  }
 }
 public void onScannedRobot() {
  turnGunTo(scannedAngle);
  fire(1);
 }
 public void onHitByBullet() {
  turnAheadLeft(100, 90 - hitByBulletBearing);
 }
}

6
robocodeについては知りませんが、ロゴを使用した後、コーディングに入りました。前方、後方、左、右などを使用して家を描くことができる。それは、巨大なタスクを実行する単純な指示の考え方にあなたを連れて行きます。
ロビン・デイ

1
小学校のコンピューター室でロゴを学びました。私はそれがかっこいいと思っただけでなく、もっと知りたいと思った子供の一人でした。
トラビス

1
RoboCodeの+1!私はロボコードが好きで、誰が最良のアルゴリズムを思いつくかを競うために自分たちの間で競争をしていました
Andreas Grech

18

だからある日、私は十分だと判断しました。私は考えピアノを学びます。エルトン・ジョンのような人々がキーボードのそのような熟達を指揮するのを見て、これが私がやりたかったことであると確信しました。

実際にピアノを習うことは大きな失望でした。8年生のピアノの授業を終えた後も、ピアノを弾くという私の精神的なイメージが活動を楽しむという私の本来のビジョンとあまりにも違っていたので、私はまだ感銘を受けませんでした。

しかし、私が徹底的に楽しんだのは、私の音楽理論の初歩の3グレードだけでした。音楽の構成について学びました。ようやく作曲の世界から自分の作曲に転向することができました。その後、やりたいことをやり始めることができました。


新しいプログラマ、特に若いプログラマを驚かせようとしないでください。「10行未満の単純なコード」という概念全体が、「何か賢いものを見せて」の気分を引き出しているようです。

新しいプログラマーに何か賢いものを見せることができます。その同じプログラマに、この「パフォーマンス」を再現する方法を教えることができます。しかし、これは彼らがプログラミングに夢中になっているものではありません。初歩を教え、自分たちの賢い10行のコードを合成させます。

新しいプログラマーに次のPythonコードを示します。

input = open("input.txt", "r")
output = open("output.txt", "w")

for line in input:
    edited_line = line
    edited_line = edited_line.replace("EDTA", "ethylenediaminetetraacetic acid")
    edited_line = edited_line.replace("ATP", "adenosine triphosphate")
    output.write(edited_line)

に割り当てる必要がないことに気づきlineましたedited_line。ただし、これは説明を明確にするためであり、元のドキュメントを編集していないことを示しています。

10行未満で、ドキュメントを冗長化しました。もちろん、利用可能なすべての文字列メソッドを新しいプログラマーに示すことも忘れないでください。さらに重要なこととして、私ができる基本的に興味深い3つのことを示しました。変数の割り当て、ループ、ファイルIO、標準ライブラリの使用です。

このコードがまばゆいものではないことに同意するでしょう。実際、それは少し退屈です。いいえ-実際には、それは非常に退屈です。しかし、そのコードを新しいプログラマーに見せて、そのプログラマーがそのスクリプトのすべての部分を、その日ではないとしても、その週の中でもっと興味深いものに再利用できないかどうかを確認します。確かに、それはあなたには不愉快です(おそらく、このスクリプトを使用して単純なHTMLパーサーを作成することになります)。


17

他のほとんどのコメンターと同様に、私は数学の問題を解決するためのコードを書き始めました(または、私が設計する本当にひどいゲーム(インディアナジョーンズとゾンビなど)のグラフィックを作成します)。

(数学とプログラミングの両方で)私が本当に始めたのは、テキストベースから、独自のアドベンチャースタイルのゲームを選択して、グラフィックベースのゲームに移行することでした。ジオメトリに入るまで、グラフ用紙のカラーリングとピクセルのプロットを開始しました...そして、方程式を使用して曲線や線、ボックスなどをプロットする方法を発見しました。

私のポイントは、典型的なプログラムが次のようなものである処理(http://processing.org/)のようなものに本当に入ることができたということです:

void setup() 
{
  size(200, 200); 
  noStroke();
  rectMode(CENTER);
}

void draw() 
{   
  background(51); 
  fill(255, 204);
  rect(mouseX, height/2, mouseY/2+10, mouseY/2+10);
  fill(255, 204);
  int inverseX = width-mouseX;
  int inverseY = height-mouseY;
  rect(inverseX, height/2, (inverseY/2)+10, (inverseY/2)+10);
}

私にとって、これは未来の「ロゴ」です。

簡単に「Hello World」の例があり、コードを描画して変更し、物事がどのように壊れ、奇妙な「事故」が発生するかをすばやく確認できます。より高度な相互作用とフラクタルの作成に至るまで...


+1初心者が学習する必要がある最も重要なトピックであるアルゴリズム的思考を教えるには、処理が優れた方法だと思います。
Nils

15

AutoItで記述されたスクリプトを使用できます。これは、従来のアプリケーションの使用とプログラミングの境界をあいまいにします。

たとえば、メモ帳を開いて自分のコンピュータにメッセージボックスとメッセージボックスを介して侮辱し、そのアクションの痕跡を残さないスクリプト:

Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("You smell of human.")
Sleep(10000)
MsgBox(0, "Humans smell bad", "Yuck!")
WinClose("Untitled - Notepad")
WinWaitActive("Notepad", "Do you want to save")
Send("!n")

++レッスンプランのどこに収まるかわかりませんが、かわいらしいです。
Mike Dunlavey、2009年

13

初めてループのコーディングを始めたときはいつも感心しました。5行から10行(またはそれ以下)のコードを記述し、何百行(または指定した数)の行を出力します。(私は最初にPHPとJavaで学びました)。

for( int i = 0; i < 200; i++ )
{
   System.out.println( i );
}

13

学生が始めるのに適した場所はグリースモンキーかもしれないと思います。userscripts.orgには何千ものサンプルスクリプトがあり、非常に優れた資料であり、その一部は非常に小さいものです。Greasemonkeyスクリプトは、操作しなければ、学生が使い慣れているWebページに影響を与えます。Greasemonkey自体は、テスト中にスクリプトを編集して有効/無効にする非常に簡単な方法を提供します。

例として、「Google Two Columns」スクリプトは次のとおりです。

result2 = '<table width="100%" align="center" cellpadding="10" style="font-size:12px">';
gEntry = document.evaluate("//li[@class='g'] | //div[@class='g'] | //li[@class='g w0'] | //li[@class='g s w0']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
for (var i = 0; i < gEntry.snapshotLength; i++) {
  if (i==0) { var sDiv = gEntry.snapshotItem(i).parentNode.parentNode; }
  if(i%2 == 0) { result2 += '<tr><td width="50%" valign="top">'+gEntry.snapshotItem(i).innerHTML+'</td>'; }
  if(i%2 == 1) { result2 += '<td width="50%" valign="top">'+gEntry.snapshotItem(i).innerHTML+'</td></tr>'; }
}
sDiv.innerHTML = result2+'</table>';

if (document.getElementById('mbEnd') !== null) { document.getElementById('mbEnd').style.display = 'none'; }

10

これは非常に初歩的なテキストベースのc#プログラムであり、スロットマシンの回転動作をシミュレートします。賞金の支払いや現金払いのオッズは含まれていませんが、学生にとっては良い練習になるでしょう。

10行以上でごめんなさい。

string[] symbols = new[] { "#", "?", "~" }; // The symbols on the reel
Random rand = new Random();

do
{
    string a="",b="",c="";

    for( int i = 0; i < 20; i++ )
    {
        Thread.Sleep( 50 + 25 * i ); // slow down more the longer the loop runs

        if( i < 10 )
            a = symbols[rand.Next( 0, symbols.Length )];

        if( i < 15 )
            b = symbols[rand.Next( 0, symbols.Length )];

        c = symbols[rand.Next( 0, symbols.Length )];

        Console.Clear();
        Console.WriteLine( "Spin: " + a + b + c );
    }

    if( a == b && b == c )
        Console.WriteLine( "You win. Press enter to play again or type \"exit\" to exit" );
    else
        Console.WriteLine( "You lose. Press enter to play again or type \"exit\" to exit" );
}
while( Console.ReadLine() != "exit" );

9

ではTclのあなたは(別の8行を取るだろうが、開いていない、)約12コードの行にある保存ボタンを持つ単純なテキストエディタを持っています。すべての標準プラットフォームで機能します。

pack [frame .toolbar] -side top -fill x
pack [button .save -text save -command save] -in .toolbar -side left
pack [scrollbar .vsb -orient vertical -command [list .text yview]] -side right -fill y
pack [text .text -wrap word -yscrollcommand [list .vsb set]] -side left -fill both -expand true
proc save {} {
    set filename [tk_getSaveFile]
    if {$filename ne ""} {
        set f [open $filename w]
        puts $f [.text get 1.0 end-1c]
        close $f
    }
}

目標は10行だったので、10行以下に固執したい場合は、ロードも保存もない単純なテキストエディターは2行だけです。それはあまりにも粗末ではありません。

pack [scrollbar .vsb -orient vertical -command [list .text yview]] -side left -fill y
pack [text .text -wrap word -yscrollcommand [list .vsb set]] -side left -fill both -expand true

選択したプラットフォームで、「wish filename」を使用して上記のコードブロックのいずれかを実行します。ほとんどの* nixとMacにはWishが付属していますが、Windowsの場合は手動でインストールする必要があります。

さらに一歩進んで、その2行のスクリプトをpythonで書くこともできますが、8行かかりますが、それでも10行の目標を下回っています。

from Tkinter import *
root=Tk()
text = Text(wrap="word")
sb = Scrollbar(orient="vertical", command=text.yview)
text.configure(yscrollcommand=sb.set)
sb.pack(side="right", fill="y")
text.pack(side="left", fill="both", expand=True)
root.mainloop()

9

ブックマークレットはどうですか?開発ツールを必要とせずに、毎日使用するもの(インターネット)を操作する方法を示します。


この提案が欲しいのですが、例とそこから何を学べるかが良いでしょう。質問の例のように:[コード] javascript:alert(4(5 * 5)/ 10 + 9(.25 + .75)); [/ code]操作の順序を示します。
タイラーマック09年

8

ハードウェアに余裕がある場合は、Arduinoボード+処理を使用すると、かなりクールな結果が得られますが、プログラミングにまったく興味がない可能性のある人にとっては少し進んだかもしれません。


8

これについては、「これまでに書いた中で最も短く、最も有用なプログラム」という記事でこれを書いた。

概要:私は1996年に3線式のVB6アプリを作成し、毎日毎日使用しています。exeが「送信先」フォルダにドロップされると、エクスプローラでファイルを右クリックして、そのファイルの完全パスをクリップボードに送信できます。

Public Sub Main()   
    Clipboard.SetText Command$   
End Sub  

なぜClipboard.Clear?テキスト以外のデータ(画像データなど)も含め、すべてのコンテンツをクリップボードから削除ます。これは通常、まったく望んでいないことです。
Konrad Rudolph、

さて、おそらく最短のプログラムは現在のサイズの半分にする必要があります...
JohnFx 2009年

本当にきちんとしています。長いパスを入力する必要がなく、タイプミスがないか疑問に思います
Sylverdrag

AFAIKは、「モダン」なWindowsバージョンで、ファイルをコピーしたとき(Ctrl + C)とまったく同じように動作します...ファイル名をコピーするだけです。誰かがこれを試すことはできますか(ウィンドウがないため)?
opatut

私はWindows 7を使用していますが、それはできません。
JohnFx 2011

7

興味深いのは、GW-BASICでフラクタルを作成することが高校時代のプログラミングを好きになったきっかけだったからです(1993年頃)。フラクタルについて学ぶ前に、退屈な標準偏差アプリケーションを書きましたが、私はまだジャーナリズムに行くつもりでした。

しかし、長くて書くのが難しいBASICプログラムが「フラクタル地形」を生成するのを見たとき、私は夢中になり、振り返ることはありませんでした。それは私が数学、科学、コンピューターについて考える方法、そして私が学ぶ方法を変えました。

学生にも同じような影響を与えるプログラムを見つけていただければ幸いです。


それは学期のプロジェクトに最適です。私が教えていたときにそのことを考えていたらよかったのに。
Mike Dunlavey、2009年


6

10行を超えるコードになると思いますが、ボタンを押すと背景の色を変更したり、テキストのサイズを変更したりするフォームベースのアプリを検討したことがありますか?これは、対話型プログラムがどのように機能するかを示します。また、プログラマーとして、コンピューター(プログラム)の動作を完全に制御していることも示します。

うまくいけば、彼らが彼らが変えることができる他の事柄を提案し、次に彼らがやりたいかもしれない他の事柄に提案するようになるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.