小6におすすめな言語 (549レス)
1-

41: 2020/10/18(日)11:28 ID:CqLBM1Q2(1) AAS
Pythonこそオススメしたい。
文法は簡潔で分かりやすいし。
42: 2020/10/18(日)12:19 ID:vmWunLYe(1/2) AAS
>>37
まあ、都市部から地方まで遍く子供達がPCとScratch使えればHaskellの出番は無いんだけどね。
小6向けは言語を変えるんじゃなくて、さらに複雑なアルゴリズムを学ぶ方向かな。

暇つぶしに組み合わせnCrを書いてみた。

数学
0! = 1
n! = n * (n - 1)!

n P 0 = 1
n P r = n * (n -1) P (r - 1)

n C r = n P r / r!

Haskell
fact 0 = 1
fact n = n * fact (n - 1)

n `p` 0 = 1
n `p` r = n * (n - 1) `p` (r - 1)

n `c` r = n `p` r `div` fact r
43: 2020/10/18(日)12:19 ID:vmWunLYe(2/2) AAS
Python
def fact(n):
a = 1
for x in range(1,n + 1):
a *= x
return a

def p(n,r):
a = 1
for x in range(n - r + 1,n + 1):
a *= x
return a

def c(n,r):
return (p(n,r) // fact(r))

Haskellのfactと`p`はPythonの書き方に合わせるとそれぞれ

fact n = product [1..n]

n `p` r = product [(n - r + 1)..n]

になる。
数学ではproductはΣ(シグマ/sum)の掛け算バージョンであるΠ(大文字のπ)に相当。
普通の言語にはsumはあってもproductは何故か無い。
(まあ作れば良いんだけど)
44
(1): 2020/10/19(月)20:33 ID:ACTVJQSq(1) AAS
だいたい独善親父が自分の宗教を子供に強制するカタチになるんだよなぁ
巨人の悪口吹き込んで、大洋ホエールズを応援するように仕向けたり
邪悪なM$の野望を打ち砕くために、子供には真に自由なFreeBSD以外を与えないようにしたり

シンプルな古典言語でいいんだよ
45
(1): 2020/10/19(月)22:11 ID:qSr3w0qH(1) AAS
>シンプルな古典言語でいいんだよ
lispだな
46: 2020/10/20(火)10:25 ID:qYYfNILy(1) AAS
Show you guts cool say what 最高だぜ
47: 2020/10/20(火)10:39 ID:pHiz9StD(1/2) AAS
>>45
forth
48: 2020/10/20(火)11:02 ID:3k48bEYB(1/3) AAS
> だいたい独善親父が自分の宗教を子供に強制するカタチになるんだよなぁ

> FreeBSD以外を与えないようにしたり
49: 2020/10/20(火)11:40 ID:1v+j53eJ(1/3) AAS
>>44
それこそ数学で十分で、小学生なら>>19みたいに算数に再帰の概念加えるだけで良いんだけどね。(x,yを丸や四角に置き換える)
掛け算だけでも色々な視点から考察出来るし。参考に下は>>19の別視点。
後々、関数型言語や普通の言語との相関も見えて来る。
結局、目的の式を思い付くのが重要で、言語はそれを動かす手段に過ぎないと分かる。

数学(iは右下添字)
y
x × y = Σ xi = x1 + x2 + .. xy
i = 1

Haskell
x × y = sum [x |_ <- [1..y]]

Python
def mul(x,y):
a = 0
for i in range(1,y + 1):
a += x
return a
50
(1): 2020/10/20(火)11:52 ID:1v+j53eJ(2/3) AAS
そもそも算数が教育の質が低下してるせいで掘り下げる事をしてないのがプログラミングなんてのが必須になった要因。
プログラミングも形骸化するのは目に見えてる。
51: 2020/10/20(火)12:08 ID:y00O+Rim(1) AAS
小・中学生が学ぶべきは

日本語 >>> 算数 >>> 英語 >>> 数学 >>> コンピュータ/情報リテラシー >>>>>>>>>> プログラミング

小6だと学年トップクラスで賢い子じゃなければスクラッチのような簡単お遊び系を余暇の時間にやるので十分
52: 2020/10/20(火)12:09 ID:pHiz9StD(2/2) AAS
python
functools.reduce(operator.add, range(1, y+1))
53
(1): 2020/10/20(火)12:15 ID:3k48bEYB(2/3) AAS
>>50
教育の質って低下しているの?
54
(1): 2020/10/20(火)12:55 ID:dIM1eY4o(1) AAS
日本語書くのが下手なやつはプログラム書くのも下手
55
(1): 2020/10/20(火)13:05 ID:1v+j53eJ(3/3) AAS
>>53
低下と言うか、受験やテスト目的の「やり方だけ教える」教育が続いて久しい。
プログラミングも算数も論理的思考を育む目的だが、それはやり方だけ教えるのでは身に付かない。
どうしてそう言うやり方なのか?を理解しないと暗記やコピペで終わる。

小数点同士の割り算で、割る数も割られる数も10倍100倍して商を出すが、余りはその後1/10,1/100して元に戻すのは何故か?
これを説明出来る教師が何割居るか。
本屋の参考書すらただの1冊も説明した本が無い。

AIに負けない子供を!と声だけ大きくて、実態は全然変わってない。
56: 2020/10/20(火)13:25 ID:C+6cO9mm(1) AAS
>>54
判りますω

>>55
概ね同意
57
(1): 2020/10/20(火)13:50 ID:Mso39Itu(1) AAS
1. 基礎をやる。
2. 応用をやる。
3. 抽象的ロジックを学ぶ。

おすすめは2.から入ることです。
小学生にはとにかく簡単に作って簡単に動かせる
プログラミングツールを使うのが本人の興味や好奇心を
刺激してそれについてより学びたいという気持ちを育むのに
適していると思います。
それに適しているのはScratchやUnityであると思います。
Unityは言語ではなく開発環境ですが。
58
(1): 2020/10/20(火)14:12 ID:3k48bEYB(3/3) AAS
マイナスのつく計算すら習っていない小学生に三角関数の知識が必須なゲーム制作を教えられる自信が無いのだが。
59: 2020/10/20(火)14:37 ID:BGCClquZ(1) AAS
マウスのひだりボタンをおさえながら〜
もじのうえまでもっていって〜
そうっ!そこではなす!
60
(1): 2020/10/20(火)17:48 ID:jhsdR4Vv(1) AAS
>>)49
#ruby
def mul(x, y)
(1..y).sum{x}
end
61
(1): 2020/10/20(火)18:01 ID:fAfKHlRh(1) AAS
>>58
Unityなら衝突判定用などのライブラリもあるから三角関数の知識が必須ではない
そして情弱のお前が教える必要がない
62: 2020/10/20(火)18:59 ID:78+LbKIW(1) AAS
>>61
お前が教える訳でもないがな
教師の立場考えろゴミカス
63
(1): 2020/10/20(火)19:12 ID:cYFqOukv(1) AAS
Unityは2010年頃にちょっとだけしか触っていないけど、あれって小学生でも扱えるものなの?
当時は文献が少なすぎて挫折したけど...。
64: 2020/10/20(火)23:18 ID:pTHIPiuS(1) AAS
unity2018くらいからインターフェースが日本語化出来る様になって
サードパーティー製のアセット
(手裏剣エフェクト等)が標準で入ったりして
VS2019communityとの連携対応でコード補完も充実して敷居が下がったと思う
キーボード打つのはファイル名やオブジェクト名の入力くらいで
他はほぼマウス操作だけでも3Dゲームがコンパイル出来る
65: 2020/10/21(水)04:56 ID:YRxEdpv5(1/4) AAS
そういうことじゃないと思うよ
66
(1): 2020/10/21(水)09:01 ID:/UqyrNIf(1) AAS
>>57
何故、基礎を飛ばして応用?
子供が楽しんでるのはゲーム作りではなく、発表して見て、触ってもらう事。
基礎でも小さな応用の発表と意見交換の繰り返しで自然な曲線で応用に行く。

プログラミングは独立した授業ではなく、算数や社会と言った授業の中に取り込まれる内容だという事を忘れちゃいけない。
ゲームを作らせるのが、プログラミングの目的では無い。

ちなみに、HaskellはPrologに比べると少々面倒臭いが、普通の言語に比べると比較的簡単に家系図とか作れる。
(まあ、Prologのロジック部分はSQLと名を変えて生き残ってるんだが)
Scratchって関数の再帰呼び出し出来たっけ・・・?(ちょっとしか触って無いけど手続きがあるだけで、関数無かった気がする)
家系図もだけど、ハノイの塔とかクイックソートとか、再帰出来ないと難しいアルゴリズム有るけど・・・。
そう言うの学ぶ辺りでPythonとかに行くのだろうか。
PC無い家庭でも学べるHaskellが良いんだが、採用されないよなぁ・・・。

>>60
交換法則とカリー化で。

replicate使用例: replicate 3 1 = [1,1,1]

Haskell

(×) x = sum.replicate x

使用例: 3 × 4 = (sum.replicate 3) 4 = sum [4,4,4] = 12
67
(1): 2020/10/21(水)10:29 ID:1W+LDLxS(1/3) AAS
>>66
最初の2段落までは同意。
しかしどうしてそこからhaskell推しに行くかな。
高学年になれば(身のまわりの生活に沿った)算数にすらついていけない子が出てくる現状で、数学(高度な抽象概念)的なhaskellなんかやらせても、プログラミング嫌いを大量生産するだけだろう。

理解できる人にとっては再帰とかシンプルでキレイな概念かもしれないが、小学生には高度すぎる。
現実の生活でも作業手順として順序、条件分岐、繰り返しで考えるのだから、プログラミングを教える目的としても関数型より手続き型のが適しているだろう。

自分が小学生の親としての立場から見ても、小学生に関数型プログラミングを習わせたいというのは数学が得意な人間のエゴだと感じるよ。
68
(1): 2020/10/21(水)11:44 ID:TJZ0h4l7(1/3) AAS
小学生には同じゲームでもアナログゲームを作らせたほうが遥かに教育効果が高い

画面の中の作られた楽しさよりもっと豊かな世界を五感で体験することがその後の人生を有意義にしてくれる

特に小5小6くらいのゴールデンエイジの体験はものすごく重要

自分からのめり込むような子供以外にその時期プログラミングを学ばせるのは子供の人生を無駄にしてる
69: 2020/10/21(水)12:35 ID:xBgAWF1Y(1/3) AAS
>>63
手順を踏めば小学生でも出来るレベル
アルファベットとか知ってるのは前提で
外部リンク:www.youtube.com
70: 2020/10/21(水)12:36 ID:u7mcTzUA(1/2) AAS
一般人は手順や段取りすらまともに考えられない。

想定どおりにならなかったときなど、もっと考えていない。

これらを教えるのが小学校のプログラミングで、プログラミング教育の意味がわかってないやつが多すぎる。
1-
あと 479 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.017s