プログラミングであそぼう
~ 実用言語で本格的に遊ぶ ~
TOP
>
asob
[
TIPS
|
TOYS
|
OTAKU
|
LINK
|
MOVIE
|
CGI
|
AvTitle
|
ConfuTerm
|
HIST
|
AnSt
|
Asob
]
遊ぼう
2020-11-20
BASIC (ベーシック) であそぼう 1
十進 BASIC で表示する迷路 ←
まずはココから
。
2022-03-21
BASIC (ベーシック) であそぼう 2
十進 BASIC で Matrix のアレ
2022-06-09
BASIC (ベーシック) であそぼう 3
迷路プログラムをアニメーション風に改良
2022-06-22
BASIC (ベーシック) であそぼう 4
迷路でオリエンテーリング
2022-09-09
BASIC (ベーシック) であそぼう 5
プログラムで迷路を解く
2022-10-10
BASIC (ベーシック) であそぼう 6
プログラムで迷路を作る
2022-12-12
BASIC (ベーシック) であそぼう 7
プログラムを使って会話
2022-12-22
BASIC (ベーシック) であそぼう 8
オセロで対戦
2020-11-03
Python (パイソン) であそぼう 1
pygame で表示する迷路 ←
まずはココから
。
2022-03-21
Python (パイソン) であそぼう 2
pygame で Matrix のアレ
2022-06-09
Python (パイソン) であそぼう 3
迷路プログラムをアニメーション風に改良
2022-06-22
Python (パイソン) であそぼう 4
迷路でオリエンテーリング
2022-09-09
Python (パイソン) であそぼう 5
プログラムで迷路を解く
2022-10-10
Python (パイソン) であそぼう 6
プログラムで迷路を作る
2022-12-12
Python (パイソン) であそぼう 7
プログラムを使って会話
2022-12-22
Python (パイソン) であそぼう 8
オセロで対戦
付録
2022-03-21
BASIC で tick
十進 BASIC でプログラムの速度維持
2022-10-10
BASIC で乱数
十進 BASIC で疑似乱数を生成
2022-10-10
Python で乱数
Python で疑似乱数を生成
2022-12-12
十進 BASIC で排他ロック
資源を共有
2023-07-07
十進 BASIC で MJD
修正ユリウス日を計算
2023-07-07
Python で MJD
修正ユリウス日を計算
2023-10-10
Java で MJD
修正ユリウス日を計算
ひみつ基地のノート
2023-12-25
ひみつノート 1
2 進数
2024-01-11
ひみつノート 2
クラス
ビジュアルプログラミング言語は使わない
巷で流行の「
ビジュアルプログラミング言語
」では、文部科学省の提唱する「
プログラミング的思考
*1
」を身に着けることはできますが、
「プログラミングの思考
*2
」を養うことはできません。
ビジュアルプログラミング言語は、教える側と評価する側のスキルが高くなくても使えるから流行しています。
*3
本格的なプログラミングに触れたときの精神的なアレルギー抑制と、見て楽しめるのが利点です。
本当にプログラミングや設計をしたいなら、本物のプログラミング言語を使う必要があります。
2023 年現在、自由にプログラムを作成できるビジュアルプログラミング言語は、残念ながらまだ出現していません。
*4
*1
「
ジョブ管理システム
」や「
シーケンス制御
」と呼び、プログラミングの一種ではありますが、概念が少し異なります。
*2
文部科学省も、小学生にそこまで求めていません。
*3
教員(教える側)と、生徒の親(評価する側) の両方にプログラミングの知識がないため、ウォーターフォール型教育を重んじる日本の教育制度のインタフェースとしてはこれが限界なのでしょう。
*4
これを達成するには、アルゴリズム ⇔ ビジュアルの完全可逆性が必要となります。
テーマ、内容はできるだけ同じにしてある
本稿では十進 BASIC と Python でテーマを同じにしています。
また、プログラムの作り方・アルゴリズムもできるだけ同じにしています。
例えば、Python では「クラス」という機能で作成すると簡潔なプログラムにできますが、十進 BASIC にクラスの概念・機能がないため、あえてそれを避けています。
*5
高度な概念であるクラスや美麗なグラフィックスは、最初から学習してはいけません。
*5
Python にあらかじめ用意されているクラスは使用しています。
成果物はゲーム的要素が多い
情報処理の本質は「入力されたデータを加工して出力する」なので、プログラムを作成するには「
要件定義
」が必要となります。
「要件定義」を作成するには、プログラミングの知識が不可欠という
因果性のジレンマ
が生じ、学習のハードルを低くすることができません。
ゲームなら「要件定義」を「ルール」に置き換えることによりハードルを低くすることができるので、
入門者がプログラミングを学習するにはゲームを作るのがベストの選択となります。
プログラミングと数学は概念が異なる
コンピュータの誕生は数値計算が発祥で、今もその考え方は変わりませんが、意外にも数学者の多くはプログラミングを苦手としています。
プログラミングと数学は概念が異なり、ここではプログラミング自体に焦点を当てているので、高度な数値計算はなるべく使わないようにしています。
コンピュータと数学のどちらが優れているかということではなく、それぞれに固有の概念・学習方法があります。