2016年3月28日月曜日

構造化プログラミング(小学生のためのプログラム<スクラッチ編>~その3~)

構造化プログラミングについて~小学生のためのScratch入門(番外編)~

前回の記事で、同じ動作をさせる方法は一つではないことを書きました。

ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。

そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。

「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。

ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)

ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。


構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。

良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。

「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。

正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。


要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。


では、どうしたら分かりやすい構造になるのでしょう。

「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。

この3つの構造を順に説明します。

順次(順構造)

「順次」は、プログラムの記述されている順番に処理が実行される構造です。



「処理1」「処理2」の順番に実行されます。

この「処理1」や「処理2」はスクラッチでいう「見た目」や「動き」などの1つのブロックに該当します。




分岐(判断)

「分岐」は、ある条件が成り立つ場合のみ、処理を実行する構造です。



上の場合は、判断条件が成り立つ場合に、処理1が実行されます。



上の場合は、判断条件が成り立つ場合に、処理1、成り立たない場合に、処理2が実行されます。



反復(繰り返し)


「反復」は、繰り返しの条件が満たされている間、処理を繰り返す構造です。


上の場合は、条件が成立している間、処理1を実行し、条件が成立しなくなったら、次の制御に移ります。

処理1の実行より先に条件の判定を行っている(前判定)ので、条件によっては、1度も処理1を実行しない場合があります。



上の場合は、処理1の実行の後に条件の判定(後判定)を行っているので、条件によらず、必ず1度は処理1を実行することになります。


以上の3つの構造でプログラムを書くと、分かりやすいプログラムになります。

スクラッチには、分岐、反復に対応したブロックが用意されているので、スクラッチでプログラムを作っていると、構造化プログラミングの基本が理解できるようになると思います。


2016年3月27日日曜日

ネコもっと走る(小学生のためのプログラム<スクラッチ編>~その2~)

ネコ、もっと走る~小学生のためのScratch入門~

前回、ネコを繰り返し移動させるところをやりましたが、ネコの絵が変わらないのでスーッと滑っていく感じで、走っているようには見えませんでした。

ですので、今度は絵を交互に変えて走っているようにしてみましょう。

コスチュームを切り替えましょう

スクラッチを起動してください。

前回作成したファイルを読み込んでください。

「コスチューム」タブを選択してください。



少し違うネコの絵(コスチューム2)があると思います。

今表示しているコスチューム1とコスチューム2を交互に表示してみましょう。

「見た目」の「次のコスチュームにする」ブロックを「スクリプト」タブにドラック&ドロップして、
次のようにしてください。


そして、緑の旗をクリックしてください。







どうでしょう。走っているように見えましたか?

だけど、画面の右端で、ずっと走ってますね。

止める時は、右上の赤い丸「」をクリックしてください。

今度は、画面の端に着いたら、止まるようにしてみましょう。


「制御」の「(   ) まで繰り返す」を「スクリプト」タブにドラック&ドロップしてください。



そして、「ずっと」ブロックと入れ替えてください。
不要になった「ずっと」ブロックは、消してください(欄外へドラック&ドロップ)


次に、「調べる」の「(  )に触れた」ブロックを


「スクリプト」タブにドラック&ドロップしてください。
そして、「( )に触れた」の選択部分を「端」を選んで


にしてください。
そうしたら、「(  )まで繰り返す」ブロックの空いているところにドラック&ドロップして、


のようにしてください。

そうしたら、ネコを左端に、ドラックしてから実行してみましょう。
ただし、ネコを左端に、くっつけると動かないので、少し離してください。

そうしたら、緑の旗をクリックして実行してみましょう。



どうでしょうか?ネコが右側に走っていき、画面の端で止まったでしょうか?


このように動くスクリプトは、次のようにしても同じように動きます。



同じことをさせる方法は一通りではありません。
色々なやり方を考えることもプログラムを作成するには重要です。
(そのためには、他の人が作ったプログラムを読むことは、とても良いことです)

ただ、もっと大きなプログラムを作るときには、分かりやすく間違い(バグ)のないプログラムを作るにはコツがあります。

その一つが「構造化プログラミング」というものです。

次回、その辺りのことを解説したいと思います。


ネコ走る(小学生のためのプログラム<スクラッチ編>~その1~)

ネコ、走る(スクラッチ(Scratch)の基本操作)~小学生のためのScratch入門~


まずは、スクラッチの基本操作を覚えましょう

スクラッチを起動してください。

スクラッチ(Scratch)の初期画面


左上に、「動き」とか「制御」とかのボタンがあると思います。

それらをクリックすると、下にいろいろなブロックが表示されます。

まずは、「動き」の中の
スクラッチ(Scratch) 「10歩動かす」ブロック

を画面の真ん中の枠の「スクリプト」タブにドラック&ドロップしてください。

スクラッチ(Scratch)のスクリプトタブ


そうしたら、今置いた「(10)歩動かす」ブロックをクリックしてみてください。

右上のネコが右に少し動きましたか?

次は、「(10)歩動かす」ブロックの数字の部分をクリックして数字を50にして、もう一度ブロックをクリックしてください。

すると、ネコがもっと多く移動しますね。

では、そのブロックを左のブロックが置いてあるところに、ドラック&ドロップしてください。
ブロックが消えますね。

間違って置いてしまったり、使わなくなったブロックは、こうやれば消せます。


では、もう一度「(10)歩動かす」ブロックを「スクリプト」タブにドラック&ドロップしてください。


次に、左上に、「制御」ボタンをクリックして、その中の

スクラッチ(Scratch)のスタートブロック


スクラッチ(Scratch)の繰り返しブロック

も「スクリプト」タブにドラック&ドロップして、次のようにしてください。


スクラッチ(Scratch)のスクリプトタブ


各ブロックを近づけると、くっつきます。

そうしたら、

スクラッチ(Scratch)の実行画面

ネコのスプライトを左のほうにドラッグして移動してください。
その後、右上の緑色の旗をクリックしてください。

ネコが右側に移動しましたか?

止めるときは右上の赤い丸「」をクリックしてください。

ここで、作ったプログラムを保存してみましょう。

画面の上にある「ファイル」メニューをクリックして、

スクラッチ(Scratch)のファイルメニュー

「名前をつけて保存」をクリックしてください。

スクラッチ(Scratch)の保存ダイアログ


「新しいファイル名」に適当にファイル名を入力して、「OK」をクリックしてください。

これで保存できます。

保存したプログラムを読み出す時は、画面の上にある「ファイル」メニューをクリックして、

「プロジェクトを読み込む」をクリックしてください。

スクラッチ(Scratch)のファイル読み込みダイアログ

読み込みたいファイルを選択して、「OK」をクリックすることで、プログラムを読み込むことができます。

今回は、ここまで。

小学生向けのプログラミング教室ってどうなの?

小学生向けのプログラミング教室について~小学生のためのプログラム~

安部政権の経済政策「アベノミクス」の成長戦略に「プログラミング教育」が含まれていたこともあり、近年、小中学生向けのプログラミング教室が数多く開催されています。

その内容はマチマチで、ただテキスト教材にあるプログラムをパソコンに打ち込んで、動かすだけのようなものから、本格的にスマホアプリを開発するものまであるようです。



政府の目的が、


「ITやデータを活用して新たなイノベーションを生み出すことのできるハイレベルな IT人材の育成・確保を推進する」という目的のもと、具体的には「ITを活用した21世紀型スキルの修得」と「人材のスキルレベルの明確化と活用」を行う

とされています。


ITを活用した21世紀型スキルプログラミングなのかは若干疑問ではありますが、プログラミングが出来るようになると、パソコンやIT技術について、拒絶感がなくなり、身近に感じれるようにはなれるかなとは思います。

とはいえ、ご両親がITに詳しくない場合、プログラミング教育が義務化されるならば、誰かに教えてもらわなければと思うのもわかります。

ただ、注意が必要なのは、巷の小中学生向けの教室には、受講してプログラミングができるようにはならないものもあるということです。

書かれているプログラムを、そのまま打ち込むだけでは役に立ちません(子供たちの興味を刺激するのには有効だと思いますが)


といったところで、私が考えるプログラミング教室を選ぶポイントを紹介します。




プログラミング方法だけでなく、考え方(アルゴリズム)を教えてくれる



本ブログで紹介しているスクラッチにしても、Ruby、Javaなどの本格的なプログラム言語にしても、基本的にできることは一緒です。各言語、環境により得手不得手はありますが。

プログラムをする上で重要なのは、ある問題を、いかにして(できることを組み合わせて)解いていくかということです。

難しい問題をそのまま解くのではなく、簡単な処理を組み合わせて問題を解く方法を理解することが重要です。

考え方(アルゴリズム)ができれば、どんなプログラム言語でも扱えるようになります。

プログラマは、作るものに合わせて言語/環境を使い分けていると思います。




講師との対話/講義形式だけでなく、グループワークが含まれている


講義形式だと、どうしてもテキストを写し取る(そのまま打ち込む)だけになりがちで、特に疑問も持たずに言われたことだけを進めるだけになってしまうと思います。

グループワーク型ですと、プログラムでは、ある処理を行う方法は、複数あり、人それぞれで実現方法が異なったりします。(方法は1つではない)

そういったことを学んで欲しいと思います。




作ったものを公開/発表する場がある


作っただけで終わりではなく、やはり作ったものは公開/発表したくなりますよね。

公開するとことで、自分では気付かなかった観点での意見/アイデアをもらって、さらに改良していくといった継続的に改善を繰り返して良いものを作って欲しいと思います。

現在は、インターネットで、わかりやすい情報が多くありますので、まずは、自宅にパソコンがあれば、親子でやってみるのでもよいかなとも思います。


2016年3月24日木曜日

Cordova開発環境構築

Apache Cordova 開発環境構築


今のところ、本編には直接関係ありませんが、先日Cordovaを使ったアプリを開発したので、備忘録として残したいと思います。

Cordovaはハイブリッドアプリ(Webブラウザ上でも、スマホでも動くアプリ)の開発技術の1つです。

従来のWebシステムで使用している技術(JavaScript,HTML,CSS)を使ってアプリが開発できるというものです。

ただ、今のところゲームなどのように処理速度や視覚効果が必要なものには向いていないようです。

ゲームはcocos2d-xやunityなどのゲーム専用ツールがあるので、そちらを使うとよいと思います。

私は、Windows10上で開発環境を構築しましたので、その手順を残します。

Android Studioのインストール

以下のURLからインストーラをダウンロードしてインストールします。



かなり時間がかかりますが、辛抱強く待ちます。

※Android SDKの設定やエミュレータの設定は、ネットで検索してください。


Node.jsのインストール

以下のURLからインストーラをダウンロードしてインストールします。

  https://nodejs.org/en/

  
Node.jsの公式サイトのダウンロード画面


※私は、v4系を使っています。

インストールが完了したら、コマンドプロンプトを開きます。

> node -v

と入力してEnterキーを押します。

v4.4.1

とバージョンが表示されればインストールは完了です。




Cordovaのインストール

Node.jsをインストールするとnpmが使えるようになります。

npmがインストールできているか確認します。

> npm -v

と入力してEnterキーを押します。

2.14.12

とバージョンが表示されれば大丈夫です。


npmを使って、「Cordova」をインストールします。

> npm install -g cordova

と入力してEnterキーを押します。
インストールが終わったら

> cordova -v

と入力してEnterキーを押します。


5.4.1

とバージョンが表示されれば完了です。


2016年3月22日火曜日

私とプログラム(その2)




私とプログラム~プログラミング開始~


高校生になったころから、プログラミングに興味を持ちだして、独学でプログラム言語(BASIC)やアルゴリズムを勉強するようになりました。

情報処理技術者認定試験の第2種(今は基本情報処理)の受験勉強も始めました。

ただ、情報処理技術者認定試験では、午後問題にプログラミングについての出題があるのですが、当時知っていたBASICはありませんでした。

選択可能な言語は、COBOL、FORTRAN、PL/I、CASL(アセンブラ)で、どれも未知の言語でした。

当時は、インターネットが無かったので、近くの書店で、問題集や解説書を購入し、勉強しました。

プログラム言語については、実際に動かして試せないためか、なかなか理解が進みませんでした。
その時は、なんとなく分かりやすそうという理由でCOBOLを選んでいたと思いますが、その後、社会人デビューしてから5年間は、汎用機でのCOBOLプログラマをしてました。


最近は、プログラミングができるパソコンが一家に1台以上の時代ですので、とても羨ましい環境ですね。

おまけにプログラミング環境も無料で手に入りますしね。

昔は、プログラムを動かすのに必要な環境(コンパイラ)が有料で、しかも個人では手に入れられないくらい結構高かったんですよ。


2016年3月21日月曜日

はじめてのプログラム~小学生のためのプログラミング(スクラッチ編)~

はじめてのプログラミング(小学生のためのScratch入門)


最近、小学生向けのプログラミング教室が開催されていますが、その中でよく紹介、使用されているのが、MITメディアラボが開発したスクラッチです。

当ブログでも、スクラッチを使って、プログラミングの学習を行っていきたいと思います。

スクラッチは、ビジュアルプログラミング言語の1つで、用意されたブロックを組み合わせてプログラムを作成します。

スマホアプリやWebシステムなどの本格的なプログラムを作成するには不向きですが、プログラムの組み立て方や考え方を理解するのにはとても良いと思います。

スクラッチでは物足りなくなったり、スマホゲームなどが作りたくなったら、他のプログラム言語(JavaScriptやRuby、JAVA、C#など)に挑戦すると良いでしょう。

当ブログでもプログラム初心者を卒業するあたりで、他のプログラム言語についても紹介/説明していきたいと思います。

スクラッチの準備をしましょう

まずは、スクラッチでプログラミングをするための、プログラミング環境を用意しましょう。

スクラッチは、インターネットを通じてブラウザ上でプログラミングができるバージョン2.0と自分のパソコンにインストールするバージョン1.4があります。

当ブログでは、バージョン1.4を使用していきたいと思います。

まずは、インストールをしていきたいと思います。

以下のURLから自分のパソコンにあったファイルをダウンロードします。


スクラッチ(Scratch)の日本語サイト

Windowsの場合、真ん中の「Scratch 1.4 for Windows」を選んでください。

ダウンロードしたら、「ScratchInstaller1.4.exe」をダブルクリックしてください。

スクラッチ(Scratch)のインストーラ画面(その1)

[Next > ]ボタンをクリックしてください。

スクラッチ(Scratch)のインストーラ画面(その2)


インストール先を指定してください。(こだわりがなければ、このままでOKです)

スクラッチ(Scratch)のインストーラ画面(その3)

しばらく待って、「Completed」が表示されれば、OKです。

[Next > ]をクリックしてください。


スクラッチ(Scratch)のインストーラ画面(完了)

[Finish]をクリックしてください。

すると、

スクラッチ(Scratch)の初期画面


Scratchの画面が開きますが、ここでは、一旦右上の「x」をクリックして終了してください。

以下のリンクから、翻訳ファイルの修正分をダウンロードしてください。

http://squeakland.jp/abee/scratch/japo130504.zip

ダウンロードしたら、適当なところに解凍してください。
(Windowsの場合、右クリックして、[すべて展開]で解凍できます)

解凍した中の「ja.po」「ja_HIRA.po」の2ファイルをScratch本体をインストールしたパスの下の
localeフォルダの下に上書きコピーします。

Windows7であれば、「c:\Program Files\Scratch\locale」、Windows10であれば「c:\Program Files (x86)\Scratch\locale」の下にコピーします。

そうしたら、デスクトップにある猫のアイコンをダブルクリックしてScratchが起動すれば、インストールは完了です。

次回から、プログラム作成に入ります。