
Khan Academy、一番最初に学ぶプログラミング言語としてJavaScriptを推奨 57
ストーリー by hylom
手軽という意味ではいいのかな 部門より
手軽という意味ではいいのかな 部門より
eggy 曰く、
「Khan Academy」は、初等教育の算数から大学教育レベルのファイナンスまで幅広く網羅した教育ビデオを無料で提供するサイトであるが、一番最初に学ぶべきプログラミング言語としてJavaScriptを推奨することにしたようだ(本家/.、IT World記事)。
Khan Academyの動画の視聴者は若者が多いため、集中力を維持させるのに、早い段階で成功をフィードバックできるグラフィックスなどの楽しい要素が不可欠であるとのこと。
えーJavaScriptみたいな言語 (スコア:2)
入門には不適切じゃ。
とアンチJavaScript派のスレッドのために、いちおう書いてみる。
オブジェクト指向も強力で、はまるといいみたいですね。
JavaScriptいまいち慣れないな。
Javaが好き。
Re:えーJavaScriptみたいな言語 (スコア:1)
記事(というかビデオ)を見るとかなりまともなことを言っているかと思いますが。
・視聴者は一桁から10代の人間が多いので、視覚フィードバックが簡単で
モチベーションが保てる言語を使いたい。JavaScript なら Canvas でお絵かきできる。
・ユーザーの環境がバラバラなので、C/C++系はインストール作業がつらい。その点、
カーンアカデミーを見ている時点で JavaScript が動かない端末の可能性はゼロ。
・現代言語でよく出てくる概念が一通り動く。Logoみたいに業務には使わない
言語じゃないのでやる気が出たら実用的なものも作れちゃう。
目的を考えれば良くねられていると思いますよ。
Re: (スコア:0)
なんでわざわざ「ゴミ」と書くの?
現実としてマスコミは…という話ではなく。
そう書いたところで今そう思ってない人が急にそう思うようになるわけでもなく、単に頭が弱い人に見えるよ。
Re: (スコア:0)
だね、「マスゴミ」とか言っちゃう人って凄く頭悪そうに見える。
センスに欠ける表現を喜んで選んじゃう辺りが…ちょっとね。
Re: (スコア:0)
ガラパゴスよりましかな
Re: (スコア:0)
目糞鼻糞だな。M$とか書くのがカッコいいと思い込んでるのと同レベル。
Re: (スコア:0)
Javascriptに型宣言は要りませんよ
Re: (スコア:0)
「マスゴミ」のような表現は
書いた人間や文章を理解するのに役に立つから、
むしろ増えた方がいいかも
Re: (スコア:0)
既にスラドはそんなのだらけだというのにまだ増やしたいと?
ツカミとして良さそう (スコア:2)
「Webで利用する教育コンテンツ」なら、JavaScriptは適しているでしょうね。
ブラウザという実行環境が既に整っているという点で。
普段見慣れた画面で自ら手を動かして作ったものが動く、という点もキャッチ―で良さそうだし、
作ったものを他の人のPCで見てもらって自慢できる、というのも動機付けとしてプラスに働きそう。
# 一昔前はブラウザが変わると動作が違ったりするような面倒臭さがあったと思うのですが、今は違うのでしょうか。
Re: (スコア:0)
# 一昔前はブラウザが変わると動作が違ったりするような面倒臭さがあったと思うのですが、今は違うのでしょうか。
すべてちゃんと書くならIE8以前はあいかわらず面倒ですが、jQueryを使うようになって、状況は一変しましたね。
違いをほとんど考えずに済むので(多少は考える)以前に比べたら、互換をとる為の時間はほぼ無いに等しく感じます。
Re:ツカミとして良さそう (スコア:2)
ありがとうございます。
よく見たらIT World記事 [itworld.com]自体がjQueryを作ったJohn Resigの話す今回の採用の概要から始まっていました。
って、Wikipedia [wikipedia.org]見てみたら、
John Resig is an application developer at Khan Academy.
なるほど。
Re: (スコア:0)
すべてちゃんと書くならIE8以前はあいかわらず面倒ですが、jQueryを使うようになって、状況は一変しましたね。
それはJavaScriptを使ったプログラムの勉強じゃなく、jQueryを使ったプログラムの勉強じゃないかな。パラダイムが全然異なる気がする。
あと、JavaScriptのエラー行は、かなりの場合ずれていた記憶があるのですが、最近は直った or ツールが充実したんですかね。
Re: (スコア:0)
GUIを手軽に利用できるという点が
初心者には非常に学ぶモチベーションになりますよね
Tclにせよ、Javaにせよ目に見える結果を出すには、
それ相応に労力が要りますし
Re:ツカミとして良さそう (スコア:1)
だいたい同意ですが、さすがにJavaScriptだとルーズさが悪い方向に転ぶ可能性が高い気がするので、個人的にはProcessing [processing.org]をお勧めしたいところです。
お子様向け環境の歴史? (スコア:2, 参考になる)
テキスト
* LOGO - 長老。亀さんでお絵描き。じつは関数型言語。
* BASIC - LOGO より年長だが、グラフィック関連の命令 (CLS, LINE...) が出てきたのは 80 年代くらいの印象。MS の Small Basic はバランス良し。
* Processing - 描画系に力点を置いた Java ベースの環境。美大生のメディアアート用途で使われたり。
グラフィカル
* Squeak eToys - アラン・ケイ。OLPC にも採用される。ただし Smalltalk 環境ではないので注意。同系統で Scratch も人気。
* Lego Mindstorms - NXT はなんと LabVIEW ベース。実空間のモノを動かせるというのは他にない魅力。
* Max/MSP/Jitter - 部品を線でつないで音響合成とか映像とか。非理系の大学でライトに使われたり。
どーしてもブラウザ環境でというなら Processing.js あたりが落としどころだとは思うけど、いまどき、お絵描き
させておけば子供が飛びつくだろうって、ちょっと乱暴だよね。マイコンの時代ならまだしも、最近のゲームに
慣れ親しんだ子供が、プリミティブな図形を描くことに対してよろこびを見いだしてくれるのだろうか。
# 義務教育に Mindstorms と戯れる時間が導入されたら、たいした情操教育になると思う今日この頃
Re:お子様向け環境の歴史? (スコア:1)
Max/MSP/Jitterは有料なのが気になったら、PureDataで。
http://puredata.info/ [puredata.info]
Re: (スコア:0)
> プリミティブな図形を描くことに対してよろこびを見いだしてくれるのだろうか。
この点に関しては概ね同意できるんですけど、でもその慣れ親しんでいるゲームは、
このようなプリミティブな図形描画の発展の上に成り立っていることを教えることが
本来の基礎学習なのではないでしょうか。
言語や動作環境は最新のものであったとしても、教える内容は原始的なものからでないと、
習った環境でしか使えない知識ばかり植え付けることになるんじゃないかと思います。
極端な話、言語は何でも良いはずなのです。
コンピューターの本質として、記憶域があって変数がある、その変数を介して
Re: (スコア:0)
うちの姪っ子にはペイントブラシは大人気ツールでしたよ?
アニメーションまでできるのでプログラミング環境はありかと
Re: (スコア:0)
# 義務教育に Mindstorms と戯れる時間が導入されたら、たいした情操教育になると思う今日この頃
ペットのプログラム書き換えてとパパにせがむ子供が現れるんですね
職業プログラマを目指す人に対しての推奨は? (スコア:1)
職業プログラマを目指す人に対しての推奨となると何になるだろう。
狙ってる業界による、っていうのはもちろんあるんだろうけどね。
個人的にはC言語かじってからjavaが推奨。
#C言語にあと2段階ぐらいスコープがあったらもっと仲良くなれた。
HTML知らないのにJavascript覚えられるの? (スコア:0)
HTMLの教育もセット?
最初に学ぶにはしきいが高い気もするけど・・・対象年齢をどのくらいに想定してるんだろう
敷居は意外と低いですよ (スコア:4, すばらしい洞察)
最近の Firefox だと Shift+F4 で Scratchpad 開くし、
HTML の要素なんて absolute で配置すればスプライトも当然だし、
CANVAS でビットマップも扱えます。
30年前に MSX BASIC で遊んでたのがどういう世代かを考えれば
小学校低学年相手に教えても十分使い物になるくらい敷居の低い環境です。
まして中高生以上が相手なら、敷居はないも当然くらい低いです。
今日のPC利用においてwebの閲覧がかなり大きな比率を占めるという点を考えると
web の閲覧画面をクライアントから色々いじれるという点からしても
JavaScript は取っ掛かりとして、実用性の面からも申し分ないです。
Re: (スコア:0)
敷居じゃなくてハードルじゃない?
Re:敷居は意外と低いですよ (スコア:1)
「敷居が高い」と「ハードルが高い」は違う意味なんですね。
今ググってみて初めて知りました。
# はい、ここでは「ハードルが高い」が正しいです。
Re: (スコア:0)
もしかして:同然
Re: (スコア:0)
Scratchpad なんて初めて知った。
言語の性質も大切だけど、こういうツールの存在が初学者には一番重要な気がする。
Re:HTML知らないのにJavascript覚えられるの? (スコア:1)
テキスト入出力がくせ者で、定番の「ユーザから数字を入力して貰って計算した結果をほげほげ」が意外とめんどくさかったり、一方で、貼った画像の座標をぐりぐり動かす、みたいなのの方が簡単に書けたりするし。「初心者が楽しく学べる用ライブラリ」を用意した上でのJavascript採用はありだと思う。
Re:HTML知らないのにJavascript覚えられるの? (スコア:1)
まあ世の中にはWebブラウザに依存しない実行環境もありますから。
Re: (スコア:0)
コマンドラインからnode.jsだなんだで頑張って実行するよりは、
ブラウザに依存しててもらったほうがやりやすそうな気がしますね。
# パソコンに最初から入ってる青い奴はダメだから、みんなこの赤い丸の最強伝説で学ぼうね
アセンブラ知らないのにC覚えられるの? (スコア:0)
ちょろっと
Re: (スコア:0)
ソースコードの可読性という意味では、javascript付きのHTMLは読みにくいと思うのだが、これいかに?
まあ、まともなストレージがなくて、巨大なDATA文の羅列を入力してたROM-BASICよりは、構造化されている分ましだと思いますけどね。
どちらかというと、ステップ実行できるIDE環境があるかどうかの方が、教育的には問題だと思う。ステップ実行できるIDE環境があれば、実際に変数の内容がどう変わるか見ることができるし、プログラムをどう間違えたのかわかりやすいからね。動かしてみました、動きませんでは、学習用には向いていないと思う。
Re:HTML知らないのにJavascript覚えられるの? (スコア:1)
ステップ実行できるIDE環境は、確かに重要。先生動きませんと呼ばれる立場になって欲しい。
Re:HTML知らないのにJavascript覚えられるの? (スコア:1)
最近の主要ブラウザなら大概JavaScriptデバッガ使えますし、まあ問題ないでしょう。
編集の面は…Aptanaあたりでそういう機能付いてないですかね? JSはテキストエディタしか使わないのでよくわかりません。
開発環境的にはハードルの低い言語ですね。
Re: (スコア:0)
> 編集の面は…Aptanaあたりでそういう機能付いてないですかね
ついてますがeclipseベースなおかげでやたら重いので、同じく無料のVisualStudio2010Expressの方が全然良いです。
でも金払えるならWebStormを買いましょう。1万円でお釣りが来ます。これが最強。
Re: (スコア:0)
ただの私見に「これいかに?」とは、これいかに?
Re: (スコア:0)
たとえばC系の言語でhello worldって出すだけにどんだけおまじないが必要か考えてごらんよ。
#それでもスラドのマッチョ共は「C/C++にあらずばプログラミング言語にあらず」的な発言が絶えないだろ?
そもそも (O/T) (スコア:0)
なんでプログラミング言語入門と言えばhello worldから, なの?
標準出力というのは言語論的にはかなり高度な内容.
個人的には関数から教えるのがいいと思う
int succ(int x){
return x+1;
}
この場合標準出力が得られないからフィードバックが得られない,
よって入門には不向き, というのはわかるけど,
それってC言語(というか大抵の命令型言語)の入門コストですよね.
例えばScalaの例ではインタープリタで入門をやることが多いけど,
> def succ(x:Int):Int = x + 1
> succ(5)
res0 : Int = 6
なら, 標準出力みたいな難しい概念の前に,
より基礎的な関数の概念を教えられていいと思うんだ.
Re:そもそも (O/T) (スコア:2)
Tutorial Introduction to the Language B, Kernighan's 1972 より
main( ) {
extrn a, b, c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
関数宣言、呼び出し、変数宣言、変数呼び出し、その順序、関数の意味を短くまとめた秀逸なコードだ。そもそも標準出力という概念は、当時の計算機には説明不要な機能だったわけで、そこは障害にならないと思う。
Re: (スコア:0)
面白くないから
Re: (スコア:0)
>プログラミング言語入門と言えばhello worldから, なの?
入門かどうかは別にしてコンピュータ関係者はこういう洒落が大好きなんですよ。
hello, world の出自って本当は都市伝説なんじゃないかな。
自分が何かを作るときは、いつもなし崩し的に進んでいって、
エピソードになりそうな話は皆無なんだけど。
処理系インストール不要 (スコア:0)
いまどきブラウザが無い環境も珍しいので、
取っときやすいのでは?
ちょっと前には、子供の科学にも連載されていました。
htmlの部分は、scriptタグだけでなんとか。おまじないとして。
プログラムに入る前に
テキストファイル
フォルダ
拡張子
エディタ(メモ帳)
等の概念は知っておく必要がありますが。
昔はROM-BASICインタプリタが入門の土俵でしたが、
いまの土俵はブラウザなんですねぇ。
Re: (スコア:0)
Windowsだったら、拡張子jsのファイルに書けば、タグを書く必要もありません。
その代わりGUIも無いけど。(メッセージボックス程度は出せる)
オブジェクト指向の言語 (スコア:0)
プログラミングにオブジェクト指向の言語はよくないと思います。
Re:オブジェクト指向の言語 (スコア:2)
なんで?
というか今時OOじゃない言語なんてCOBOLくらい……じゃない!!! [hitachi.co.jp]
ああ、LISPの人でしたか。
Re: (スコア:0)
マジレスするとhaskellはOOではないが
Re:オブジェクト指向の言語 (スコア:1)
が、初心者に合うのかどうか?
すみません。lisp勢に入れてしまっていました。
ところでオフトピ
schemeとhaskellどっちを先にやるべき?
あとhaskellのアプリってなに?
回りにないと触手が伸びない。
#script-fuにも伸びてないけど。
Re: (スコア:0)
Haskellは数学に弱いと茨の道ではあるが、プログラミング経験はむしろないほうがいいかもしれん
情報源は http://haskell.org/ [haskell.org]
Re: (スコア:0)
Haskellは数学に弱いと茨の道ではあるが、プログラミング経験はむしろないほうがいいかもしれん
情報源は http://haskell.org/ [haskell.org]
元々情報系でもなんでもなくて知り合いにHaskellから学んだ人が居ますが、新しい言語を学ぶ度にHaskellに直してるのが印象的でした
あの言語学ぶのにいろんな先入観が邪魔するので、本当の初心者なら他言語と同程度の苦労で学べるかと
Re: (スコア:0)
Circular programmingなんて勘弁してくれって感じ