Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

Microbit はじめて8〜家庭科的工作をしてみる、マイクロビットを縫い付ける〜

下のサイトにあるマイクロビットがとても、かっこよく見えて似たようなものが作れないか調べてみました。

microbit.org

腕時計の作成手順が記載されているページのリンクです。

ここでは、不要になったジーンズとか靴下とか、結構な家庭科スキルを使用するので「他に良い方法はないか?」と思案し、素材を探して歩きました。。。

そして、以下のものを見つけました。

まずは、札幌駅線路(高架)下の百均へ行き、手首用のサポーターを購入しました。そして、編み物や裁縫関連のお店カナリアにて、マジックテープを購入。

さらにヨドバシで電池パックを購入!

f:id:Takunoji:20190921200135j:image

 

作成したものはこんな感じです。

 

 

作成手順

<レシビ>

・マイクロビット: 1匹

・マジックテープ: 小さじ一杯

・電池パック: 一切れ

・手首ようサポーター(フリーサイズ)一尾

 

  1. 初めにサポーターを二枚におろし、箱と中身に分けます。
  2. サポーターの手の甲部分に合うようにマジックテープを貼り付けます。下のような感じです。f:id:Takunoji:20190921201454j:image
  3. そして、マイクロビットがにもマジックテープを両面テープにて貼り付けます。(若干粘着力の強いものをオススメします)
  4. サポーターとマイクロビット側につけるマジックテープの「オス」と「メス」を間違えないようにします。生き物もマジックテープもオスとメスがセットになる必要があります。

あとは、電池パックなのですが、これはサポーターの手のひら側へ挟みます。すると下のように動かして遊べます。

こんな感じで作成しました。あとはプログラムをどのように組むか?

これが大きな課題になります。

ポイント

マイクロビットをUSBで接続しないので、各種センサーを使用したプログラムを起動しやすい、ついでにBluetoothでのデータ通信もやりがいがある(USBでPCに接続していれば、シリアル通信(byte送信)が使用できますので。。。)

とりあえずは、上の動画に関して。。。単純に温度センサーを起動しています。部屋の温度は24℃とマイクロビットが言っています。

 

今度は、何をやろうか考え中です。

 

でわでわ。。。

 

 

Microbit はじめて7 〜温度センサーを使う〜

今回は、温度センサーを使ってみます。

プログラムばかり書いていると「現実の世界」とデジタル(データやオブジェクトのイメージの)世界が混同してしまうような。。。まぁよろしくない状態になってしまうので。。。

「温度センサー」から始めてみようと思います。

マイクロビットのすごいとこ

マイクロビットはセンサーが標準装備されています。その中の1つが「温度センサー」です。

その名の通り、温度を感知することができます。

早速、コードを書いて実行してみます。

作成したコード

f:id:Takunoji:20190915171043p:plain

実行結果

こんな感じです。

オプションを使う

ここまで作ると、USBでパソコンに接続した状態で使うのもいまいちなので。。。

下のような本に載っているオプションを使用することを顧慮に入れます。

 

ズバリ、電池です。

しかし、Microbitに接続するためのジャック部分がメーカーのものになるので、専用のコネクタを準備、もしくは、電池パックを買う必要があります。

だいたい200円あれば買えます。

電池でマイクロビットを起動できれば、色々と使えそうです。

 

やはり、通信してJavaのSocketサーバーと連携させてみるのも良いかも?

 

悩める部分ですが、今回はここら辺で。。。

 

でわでわ。。。

 

Microbit はじめて6 〜サンプルコードを読んでみる〜

今回は、こちらのサイトを参考にして「ドキドキハート」を作ってみようと思います。

処理の内容はいたってシンプルで、子供にもわかりやすくできています。

ちなみに、自分の知っている(当時)小学生は、2次元配列を使っていました(笑)

 

負けてらんないな。。。

当時、自分はこのように思い、Socket通信などMicrobitと通信して遊べるようなものを作ろうとしたのですが、仕事に追われてしまい。。。まぁ言い訳ですね(笑)

 

気を取り直し、コードの内容を見てみます。まずは写経です。

f:id:Takunoji:20190915162347p:plain

ドキドキハート

こんな感じのコードができました。

JavaScriptでも作成できるようです。

f:id:Takunoji:20190915162502p:plain

JavaScript

ちなみに、JavaScriptの場合は、「basic」オブジェクトが提供されているので上のようなコードが実装可能です。

内訳を記載すると、basicなどのオブジェクトがJS版でMicrobitのAPIにて提供されているので実装が可能なわけです。他にPythonも提供されているAPIなので使用することができます。

APIってどっかで。。。

すでに知っている人もいると思いますが、WebAPI(地方自治体や国、新聞社などが提供しています)と言うものもあり、指定のURLにアクセスするとJSONなどの形式でデータを取得できるようなものです。

ちなみに、このページの右、もしくは下(スマホ版)に「楽天API起動中」とありますが、これは、楽天から商品のデータを取得して表示させています。

使用している言語はPHPです。取得結果をHTMLに出力しています。。。

話を戻し。。。

Microbitでのドキドキハートを作成したら今度は「ゆっくりドキドキする方法を考えてみましょう」と言う問題がありました。(上のリンク参照)

なるほど、これは面白いチャレンジだ。そのように思いました。

なので、この答えはどこかにありますが、自分で考えてみる方が面白いでしょう。

答えは無限にあると言っても過言ではありません。

そしてさらなる問題を。。。

ここまで、コードがいじれるようになったなら、他のこともできそうです。

そんなわけで、問題を何個か出したいと思います。

問題1

ドキドキしている最中に、Aボタンを押下するとドキドキを止めてしまうように、そして、ボタンを離すと元通りにドキドキするように作成プログラムを変更してください。

問題2

今度は、Bボタンを押下した時です。Bボタンを押下すると、ドキドキが、止まってしまうようにプログラムを修正してください。そして、Microbitを左へ傾けるとまたドキドキし始めるようにしてください。

 

いかがでしょうか?Let's Microbit!! 

 

でわでわ。。。

 

 

Microbit はじめて4 〜ブロックの使用 アクション確認〜

今回は、ブロックを使ってプログラミングしていきますが、初めにブロックの動きをみていきたいと思います。

前回「イベントハンドラ」について触れたので、その延長で。。。

このイベントハンドラは「〜の時」と言う言葉から処理を始めると言ういみで、例えばブラウザでいくと「クリックされた時」が「onClick」に相当し、クリックした時のイベント処理が走るような感じでプログラムを書くことができます。

同様に、まいくろびっとでも「ボタンが押された時」「揺さぶられた時」などいろんなイベントハンドラが用意されています。下に実装したものを載せておきます。

 

f:id:Takunoji:20190914202112p:plain

f:id:Takunoji:20190914202115p:plain

f:id:Takunoji:20190914202118p:plain

そのままなので、細かいことは何も記載しません。

プログラミング開始

正直のところ、このレベルでのプログラミングは「アイディアありき」だと思うので発想力の高い子供向けなのも頷けるものがあります。

しかし、負けてはいられないので頭をひねります。

とりあえずは、作成したプログラムを動かしてみました。

こんな動きに対して(他にもあります)、処理を実装することができるので、色々とできそうです。

一応整理しておくと以下のような感じです。

アクション一覧

  1. A or Bボタンを押下する
  2. (MIcrobitを)揺さぶる、傾ける、落とす(衝撃を与える)
  3. 下の部分にある端子をタッチした時
  4. 加速度(加速度センサー)
  5. 傾き(ジャイロセンサー)
  6. 温度(温度センサー)

パッとみた限り、大したことなさそうですが、加速度〜温度センサーまで全て、商用商品で使用しているものと大差ありません。ここまできたら「子供向け」なのはブロックとマイクロビットのホームページだけなのでわ?と思わざるを得ないです。

あとはアイディアを練る

うーむ、何をやろうか?

 

でわでわ。。。

 

 

Microbit はじめて3 〜大人が学ぶプログラミング1: ハローワールド〜

今回は、プログラミングの最初という意味でハローワールドを行います。

プログラミングでのハローワールドにはいろんな意味があるのですが、とりあえずは「おぉ!動いた!」を味わっていただきたく思います。

プログラミング呼び知識

Microbitに限った話ではないのですが、プログラムは何かのきっかけを受けて動きます。このきっかけのことを「イベントハンドラ」と呼び、よく聞く言葉で行くと以下のようなものがあります。

イベントハンドラの例>

  • オン・クリック
  • オン・マウスオーバー
  • オン・ダブルクリック
  • オン・ブラー(フォーカスが外れたとき)

この「オン〜」というのは英語で言うところの「〜の時」と言う意味です。

「オン・クリック」であれば「クリックした時」と言うような形で表現されます。

いざMicrobit!

日本語にするには、下の歯車マークをクリック→「Language」→「日本語」で変更ができます。

f:id:Takunoji:20190914191746p:plain

f:id:Takunoji:20190914184115p:plain

日本語のプログラミングページ?です。

ハローワールドを作る

まずは「入力」と書いてある部分をクリックします。

f:id:Takunoji:20190914192008p:plain

すると上のようにブロックの一覧が表示されて、ブロックをドラッグ&ドロップすることができます。

「とりあえず」で実装してみるのも良いと思います。子供向けなのでパソコンがクラッシュするようなことはありません。(多分。。。)

そして「ハローワールドはどのようにやろうか?」と考える必要があります。

Javaでのハローワールドは下のように、プログラムで書きます。実行結果はコンソール出力なので、シンプルにいきます。

public HelloWorld {

   public static void main(String[] args) {

      System.out.println("Hello World");

   }

}

 しかし今回はマイクロビットなので、文字表示は1文字ずつ流れます。。。

それもまぁ良しとします。。。

と言うわけで、ハローワールドを作ります。使用するのは「基本」と言う部分をクリックすると見つけることができます。

処理順序

プログラムは、マイクロビットが起動したときに実行されるように作成します。

なので使用するブロックは以下のものを使います。

f:id:Takunoji:20190914192857p:plain

これが、大人も使用するプログラムで言うところの「初期処理」にあたります。

処理の名前(メソッド名)には「init(イニット)」なんてつけることが多いです。

そして、「ハローワールドを表示するプログラム」は以下のようなものになります。

f:id:Takunoji:20190914193109p:plain

これは、もともとブロックの一覧にあったものです。なので今回はハローワールドを表示するので「Hello World!」と書き直してやる必要があります。

プログラムを組むと左側のマイクロビット画像が動きます。

デプロイする

たまに「デプロイ」と言う言葉を聞くことがあるかもしれません。

早い話が、作成したプログラムを実行環境(サーバーなど)へ配置することを言います。

当然マイクロビットもデプロイする必要があります。ちなみに作成したプログラムは以下のようなものです。

f:id:Takunoji:20190914193539p:plain

Javaでも1行なのでマイクロビットも1行です。

これから「ダウンロード」ボタンを押下します。

f:id:Takunoji:20190914193649p:plain

上のような感じで表示されるのでダウンロードしたフォルダを開きます。

そしてダウンロードしたHEXファイルを、ドラッグ&ドロップしてMICROBITのフォルダへ配置(デプロイ)してやると。。。

f:id:Takunoji:20190914193839p:plain

f:id:Takunoji:20190914193844p:plain

 

Microbit はじめて2 〜大人が学ぶプログラミング準備〜

今回は、プログラミングを実際に行うための準備に関して記載します。

教育と言う観点から大人もある程度理解する必要があり、現代ではフツーになっているITデバイス(スマホ、PCなど)に対するセキュリティに対する知識は必須項目だと思います。面倒臭い世の中ですねぇ。。。

その代わりに便利なことがたくさん実現しているのも事実です。「右を立てれば左が立たず」みたいな感覚を覚えるのは気のせいということにして。。。

Let's Microbit

早速プログラミングを始めるための準備と行こうと思います。まずはMicrobitのサイトにアクセスし、ユーザー登録を行います。そしたら「Let's Code」というボタンが見えるので、それをクリックしていきます。

<トップページ>

f:id:Takunoji:20190914181723p:plain

<次のページ>

f:id:Takunoji:20190914181828p:plain

<プロジェクト一覧画面>

f:id:Takunoji:20190914181932p:plain


上のプロジェクト一覧画面にて自分の作成したプロジェクトを管理することができます。ちなみに、下の方には他の誰かが作成したプロジェクトでそれらを見ることもできます。

余談

昨今のビジネスシーンでも仕事の管理(進捗を含む)でRedMineなどのオープンソースソフトを使用していることも少なくないと思います。

仕組みとしてはそれと同じで、リポジトリサーバーと呼ばれるウェブサーバーにて作成したプロジェクトを管理しています、いわゆるバージョン管理ソフトです。

Microbitでも同様に資源管理が可能というわけです。バージョンまでは管理する必要もないのでしょう(笑)

プロジェクトを作成(開く)

f:id:Takunoji:20190914182449p:plain

これは、自分がiPadを音源にして音を鳴らそうと作成したコードです。

iPhoneで鳴らそうと試みたところ、できなかったのでiPadで実現することができました。

ちなみにiPhoneでは、使用している音源ソフト(GrageBand)への接続が、bluetoothでの接続ができなかったので諦めた次第です。

はじめの一歩

どんなことでも「はじめの一歩」というものがあります。ちなみにプログラミングの政界では「ハローワールド」というプログラムを書く。。。というのがあります。

それを今回はMicrobitでやってみようというわけです。

<手順>

  1. 上にあるプロジェクト作成の画面を開く
  2. 買ってきたMicrobitをUSBで自分のパソコンに接続する

すると下のような画像が(Macでは)出てきます。Windowsの場合はエクスプローラから外部ドライブあたりに見つけることができると思います。

f:id:Takunoji:20190914183239p:plain

そして、プログラムを書く(ブロックを組み合わせる)のですが、基本になる考え方を少し記載します。

ブログラム言語は言語です

「プログラム」というのは言語なので「言葉」で作成する(認識を合わせる)ことができます、他の方法は使ったことがありません。

早い話が、プログラムを書くときには「言葉で考える」というところがポイントです。

どーゆーことか?

Microbitの場合は上のように「on start」とか「on XXX」と書かれているブロックがあります。英語版だったので、これを日本語に変更することもできます。下のような場所をクリック、

f:id:Takunoji:20190914183939p:plain

日本語を選択する。と

f:id:Takunoji:20190914184038p:plain

日本語になります。

f:id:Takunoji:20190914184115p:plain

 

これで、プログラミングの準備が整ったというわけです。

 

でわでわ。。。

 

Microbit はじめて1 〜大人が学ぶプログラミング的思考方法〜

2020年から「プログラミング教育」が始まります。内容を調べてみると、大まかに3つの教育方針というか狙いというか、曖昧ですが記載がありました。

  1. 身近な生活でコンピュータが活用さ れていることや問題の解決には必要 な手順があることに気付くこと。
  2. 自分が意図する一連の活動を実現 するために、どのような動きの組合 せが必要であり、一つ一つの動きに 対応した記号を、どのように組み合 わせたらいいのか、記号の組合せを どのように改善していけば、より意 図した活動に近づくのか、といった ことを論理的に考えていく力。
  3. コンピュータの働きを、よりよ い人生や社会づくりに生かそう とする態度。

それぞれに、A分類〜C分類のようになっていますが、学校の先生たちは「教育」の他にも「プログラミング」の勉強が必要になるのでは?と思ってしまいます。

趣味で「プログラミング」とかやっている先生なら別なんでしょうが。。。

簡単に図形を描いたりできるようなAPIやブロックプログラミングがあれば、それらの問題は解決できそうです。

Microbitで解決

Microbitはブロックプログラミング〜通常のコードで作るPython, JavaScriptの使用もできるようで、簡単なプログラミングが可能になっています。主に高レベルAPIと呼ばれるプログラムが使えるので「プログラマ」でなくても使用が可能だと思います。

※こちらの世界(プログラミング業界)もなかなか楽しいですよ?

ちなみに、巷にあるプログラミング言語について記載しました。参考程度にどうぞ

www.zenryokuservice.work

親子で学ぶのがミソ!

これは自分の持論です。何かを初めて継続するのには「誰かと一緒」にやるととてもスムーズに継続することができます。不思議なことに「約束したから。。。」とか「〜も頑張っているし。。。」とか続ける理由が簡単に出てきます。

当然、子供達も、「一緒に」やるのであれば継続することが容易にでき、成長も大きく、結果としても大きなものが得られるでしょう。

このレベルで話していると大人も子供も大して変わらないですね(笑)

しかし、我々、大人としても時代の流れに逆らって生きるのは大変なのでそれなりに。。。やっていく必要があります。

どーするか?

「プログラミングなんてわからないし興味もない」という人もいると思います。自分も昔そうでした。ちなみに自分の場合は、やってみたらハマってしまった方なのですが(笑)

結論から言いうと「楽しむのが一番」ということです。「面白いこと」「興味深いもの」「お金になりそうなこと」このキーワードには反応してしまします。※自分だけでしょうか?

実際には「〜をやるためにはどうしたら良いか?」と言う疑問に始まり、「これを実現するのにはどんな手法があるか?」「どうやれば問題を解決できるか?」と言う疑問をなんども自問自答するので必然的に「論的思考方法」が身につくと言うわけです。

<サンプル疑問>

「コンソールアプリ」でJavaプログラミングを理解するのにはどうしたら良いか?

→(自分の答え)コンソールアプリの作成過程をブログで公開する。そして作成するときに何を考えて、どのように結論を出したか?(全部描ききれてなかったらごめんなさい。。。)を同様にブログで公開する。ちなみにGitでも作成したコードを公開しています。

早い話

そんなわけで「楽しく勉強しましょう」というのが言いたいことです。

Microbitを始める。

Microbitは、世界中でプログラミング教育という観点において普及しています。

「さすがマイクロソフト!」って感じです。毎度おなじみのWindowsの会社です。

上にある「MIcrobit」のリンクから対象のページに遷移できます。

ここで、プログラミングを始めるのにはログインを行う必要があります。

なのでユーザー登録が必要になります、簡単でかつ無料です。

ちなみに画面は下のようになります。

f:id:Takunoji:20190914173531p:plain

画面トップ

カワイイ彼女達が腕につけているのはMicrobitです。ちょっとした工夫で世間で言うところの「IOT」の実装が可能になります。サーバーを立ててやるとか必要になりますが。。。しかしこれらのサーバーもネットワーク環境と無料の資源(オープンソース)に寄って簡単に実現することができます。

 

次回は、実際にプログラミングを行う準備をしようと思います。

でわでわ。。。

 

プログラミング教育について〜プログラムを学習するわけではない〜

近年「プログラミング教育」という言葉が盛んに叫ばれていますが、ちょっと調べてみました。

文部科学省のサイトから、こちらのPDFを参照することができます。以前、プログラミング教育では「プログラミング的思考」を学ばせるというような意図が記載されていましたが、「プログラミングを学ぶ」ような内容になってきているように思います。

 

実際

 上記のリンクにあるPDFは文部科学省のサイトより失敬してきたものですが、「プログラミングを通して学ぶ」とか「プログラミングの楽しさを学ぶ」などあり、「エンジニア不足解消」の意図が見え隠れするのがちょっと気になりますが、いづれにしろ「プログラミングの考え方」は身につけておいて、無駄になるものではないので良いことだと思います。

自分の場合は、このプログラミングの技術を身につけて仕事をしていますが人生の上でも「計画」〜「実行」までに「どのように考えを落とし込むのか?」に対する理解が深まったので、有意義に人生を過ごせているように思います。

駄菓子菓子But

しかし、教育する側の人間はどうなるのでしょうか?自分は先生業をしているわけではないのでわからないのですが、「先生」は「エンジニア」ではないので「プログラミング」を深く理解していないだろうし、そんな学習コスト(勉強時間)などありはしないと思います。

教育の手引き」というのがあったのでそれを眺めてみると、PCを持っている家庭向けの内容が書かれていました。学校でタブレット〜PCなどを配るのでしょうか?

まぁ多少の不安もありますが、ここで大切なのは以下のキーワードだと思います。

  1. 「面白い」
  2. 「これをやるためには?」
  3. 「どうすれば、解決できるだろう?」
  4. 「作ってみよう」
  5. 「チームでやる」

大人になってから必要になることばかりを考えても上記のようになると思います。

まずは、「動機」「やる気」がないと何も始まらないし、学習効率も悪い。なので「面白い」を大切にしてあげたいと思います。

「面白いから」世界の最先端技術までも理解してしまう子供が、たくさん出てきそうでちょっと楽しみでもあります。

しかし、上記の疑問に答え、面白さを伝えるためには「技術力」と「経験」が必要であり、はっきり言って学校に先生には無理だと思うし、その部分を学校の先生に求めるのは筋違いだと思います。

じゃーどーするか?

正直のところ「言うだけ」のレベルになってしまいます。日本全国にあるであろう「Coder Dojo」も月に数回あるようなところに通うことが難しい地域もあるのでここら辺の「地域ぐるみ」での「何か?」がないとどうにもできないような気がします。

我々、ITエンジニアとしても「人材の育成」には力を入れていますが、「やりすぎる」とか「シゴキすぎる」など気をつけなくてはいけないので、時間を短縮するなどができないし、適当な余裕がないとまた、これも叶わない。。。

とりあえずは、インターネット経由での何かしらの手段で教育ができれば良いのですが、ビデオ・チャットなどによる教育も悪くないと思います。

探せば、あの手この手があるので「手段」としてはなんとでもなるのですが、如何せん「人」と「人」のつながりがうまくいかないように思えます。

藪から棒に人を信頼するのも危ないのでなんとも言えない時代ですが、なんとかこの「技術を教えたい人と学びたい人」をつなげられる仕組みがあると良いのだろうなと思うし、現状すでにあるのだろうと思います。

探してみると近くにあるのかもしれませんね。

となれば、学校の先生たちをバックアップする仕組みが必要ですね。

これは。。。もうすでにあるようです。まぁ当然か(笑)

取り越し苦労だったようで。。。。

でも、地域でそこらへんのバックアップをしたいなぁなんて思いもあるんだがなぁ。。。

自分も地元にCoderDojoを作ろうかな?

 

お後がよろしいようで。。。

でわでわ。。。

 

 

Java Basic2 理論的アプローチ〜Lv2. JavaとScratchの違い〜

イントロダクション

前回は、Javaテクノロジーについて、そして、Scratch(ブロックプログラミング)について記載しました。まとめると、JavaでもScratchでも行うことはあまり変わりがなく以下のように考えて、「コード(ブロック)を組み立てる」というところです。

  1. 何を? => 文字列"Hello World"を
  2. どのように?=> 標準出力に表示する形で
  3. どうやって?=> JavaAPI(アプリケーション・プログラミング・インターフェース)を動かして
  4. 実現するのか?=> Javaを起動する環境を構築、ハローワールドプログラムを作成、起動して

上記はJavaでやる場合に考えることです。

 

Scratchの場合は、以下のようになります。

  1. 何を? => 文字列"こんにちは"を
  2. どのように?=> 猫の吹き出しに表示する形で
  3. どうやって?=> Scratchのブロックを組んで
  4. 実現するのか?=> Scratchにログイン、緑色の旗をクリックして

 ポイントとして

Javaでも、Scratchでも考えることはあまり変わりませんが、この2つの違いは「できること」が大きく違います。

Scratchは子供向けなのでセキュリティもしっかりしています。つまり制限が多い。

ja.scratch-wiki.info

<!— BODY広告-->

 

それに対して、Javaの場合はアプリを組むためにいろんな技術(ネットワーク、オブジェクト指向など)が必要になります。当然できることも格段に増えます。実際にはATM〜スマホアプリまでいろんなところで使用されています。

それに伴い、複雑でややこしく習得するのに時間がかかります。最近ではより高レベルなAPI(Kotlin:土台になっているのはJava言語のようです。)がありますが、どのような形が最良なのかはわかりません。。。

 

教育という側面

この教育という側面での「Scratch」という言語は素晴らしいと思います。実際にCoderDojoという団体があり、このScratchを使用してプログラミングを広めようと各地域で活動しているようです。

自分も趣味でこのCoderDojoに参加しています。プログラマとしての自分には以下のような利点があります。

  1. 子供達の発想力に刺激を受ける
  2. 大人(メンター)同士の情報共有ができる
  3. やる気が出る

最後の「やる気」の部分が一番大きいです。そして、このCoderDojoには非プログラマの人も参加していることが多く、「子供と一緒に勉強する」スタイルでボランティアしている方もいます。

大切なことは「一緒に勉強する」というところだと思います。

そして、「学ぶ」ということは、本当は「面白い」ことだと思います。

趣味で歴史を学んだり、旅行で世界を学んだり。。。数え上げればきりがありません(笑)

つまり、「世界には面白いことが腐るほどある」ということだと自分は思っています。

 

でわでわ。。。

 

 

プログラムの基本〜ほぼ全ての言語に共通する部分〜

イントロダクション

あなたは、「プログラミング」という言葉を聞いてどの様なイメージを描きますか?「とりあえずPC上で動くもの」など、何かしらボヤけたイメージを描く人が多いと思います。 結論からいうと、それで問題ありませんボヤけたイメージでいいんです。 ただし、仕事でプログラムを作成している人は別になります。

プログラムとは?

色んな表現で色んな書籍や人が言葉にしていると思いますが、人によってまちまちなイメージを受けます。その原因など記載しようと思います。

プログラムとは

0と1で出来たデジタル信号を操作するための道具

どういう事か?

パソコンもスマホもテレビゲームも全部デジタル信号を使っています。 当然、これらの信号を操作する為の道具が必要です。それが「プログラム」であり、実装する事を「プログラミング」と呼びます。細かい話は後で良いのです。
今後、実装して、ゲームやアプリを作ろうとした時に「メモリ使い過ぎだー!」とか、「コードが汚い!」とか言えば良いのです。

プログラムの基本

プログラム、デジタル信号の操作では大まかに以下の様な道具が揃っています。この道具の事をAPI(ApplicationProgramingInterface)と呼びます。このAPIC言語だったりJavaPython 、ブロック(スクラッチなど)だったりするわけです。 「道具一覧」 1. 変数→数値や文字、データの類を格納する
2. メソッド(サブルーチン)→一定の処理をまとめたもの(プログラム)
3. 繰り返し文→for文、while文など
4. 条件分岐→if文、switch文など
5. クラス→オブジェクト指向言語に限られるが(最近のものはほぼオブジェクト指向)このクラス(メソッド、メンバ変数をカプセル化したもの)を基本にしてアプリケーションを構築できる

オブジェクト指向

大雑把に「作成したものを再利用してどんどん新しい事をやりましょう」という考え方。つまり、クラスを作り、このクラスを再利用→同じコードは余り書かない様にコーティング、して行きましょう。 そうすればどんどん新しい事を考える時間が出来るから。
そして、クラスを使ってプログラムすれば、実際のモノを扱うのと同じ様に考えてアプリを作る事が出来るのでイメージがつきやすい。

注意

プログラムの処理は目で見ることができないので、イメージと理論で設計し、テストで想定通りに動くか確認します。

まずは基本

Lv1: 上に挙げた1→4の道具を使いこなすことが基本Lv1になります。
Lv2: 以降は、クラスの扱い(5番)で、提供されているAPI(ファイルやデータ編集処理)を理解してアプリ作成を行う
Lv3: ポリモーフィズムを理解して、オブジェクト指向プログラミングの実践

補足

プログラミングを続けていくとどうしてもDBとかネットワークなどについての技術、知識が必要になってきます。それはそれで理解すれば良いので問題ないですが、この部分は後々に。。。

まとめ

とりあえずは、実践しないと始まりません。技術は習得するもので、暗記するものではないからです。なので ハローワールドをとにかく実装して「動いた!」時の感動を味わって頂きたく思います。

でわでわ。。。