ITエンジニアのための勉強会・イベントレポート情報メディア

初心者のためのプログラミング入門第2回構造化プログラミングにいきなり挑戦してみる
skill

初心者のためのプログラミング入門第2回
構造化プログラミングにいきなり挑戦してみる

2019.04.12

 
  • このエントリーをはてなブックマークに追加

プログラミング学習、
どの言語を学べばいい?

最近、エンジニア以外の社員にもプログラミングを学ばせる企業が増えています。プログラミングの概念を学ばせるだけではなく、実際にプログラミングをさせるという点がポイントです。エンジニアの方はお分かりだと思いますが、概念を学ぶのと実際にやってみるのでは理解の深さがまったく違ってきます。簡単で構わないので、実際にプログラムを書いてみると、強力なエンジニアとの共通言語を身につけることができます。

実際にプログラミングをやってみたいという人からよく尋ねられる質問が、「どの言語を学べばいいですか?」というものです。結論から言えば、プログラミング思考やプログラミン感覚を身につけることが目的であれば、どの言語でも構いません。中には特殊な用途のプログラミング言語もありますが、現在主流なのは「手続き型」と呼ばれるものがほとんどで、文法はほぼ同じ、英語と米語、方言程度の違いしかありません。とりあえず一つを学べば、別の言語もすぐに理解できるからです。

でも、「どれでもいい」と言われるとかえって迷ってしまうでしょう。そこで、言語ではなく、教材で選んでみてください。書籍やサイトの形で、さまざまな独習教材が存在しています。その中には初心者向けのわかりやすいものから、プロ向けの高度なものまであります。挿絵がたくさんあって親しみやすいものから、大人向けにドリル演習が豊富なものまであります。このような教材の中から、自分に合いそうなものをまず探して、その教材を使ってその言語を一通りマスターしてみるというのがお勧めです。さらに、同じ言語を別の教材を使って深めるのもいいですし、そこから別の言語の学習を始めても、基本的な文法は同じなので、理解は早いはずです。

Scratch(スクラッチ)がお勧め、
サイトにアクセスして、
「作ってみよう」ボタンをクリック

それでも迷う方にお勧めしたいのがScratch(スクラッチ)です。スクラッチは、MITメディアラボが開発した教育用のプログラミング環境で、世界中の小中学校、高校、場合によっては大学でプログラミングの学習に使われています。

いちばんのお勧めの理由は、ブラウザーがあればすぐに使えることです。ソフトをダウンロードしたり、環境を設定する必要はありません。しかも、命令ブロックを積み木のように重ねてプログラミングしていくというわかりやすい形式でありながら、ちゃんと本格的なプログラミング言語の構造も身についていくように工夫されています。

今からスクラッチを学んでいけば、将来、親子でスクラッチを使ってプログラミングをするということもできるかもしれません。

スクラッチを利用するには、スクラッチのサイトにアクセスして、「作ってみよう」ボタンをクリックするだけです。ただし、このままだとせっかく作ったプログラムを保存できないので、「参加する」をクリックしてアカウントを作成しておくことをお勧めします。利用料は無料です。

また、日本語表示にならない場合は、地球マークのアイコンから「日本語」を選んでください。

プログラミングしてみよう

スクラッチの画面は縦に3つに別れています。いちばん左に命令ブロックが並んでいて、これを真ん中のスペースにドラッグして移動することでプログラミングができます。プログラムを書くことで、右側にいる猫を動かすことができます。



実際にプログラミングしてみましょう。「10歩動かす」というブロックを真ん中のスペースにドラッグします。

これでもうプログラミングできてしまいました。動かしてみましょう。ブロックをクリックすると実行することができます。右の猫が10歩分動いたことがわかりますか?



これでは動きが微妙すぎてわかりづらいので、10歩ではなく200歩にしてみましょう。ブロックの「10」をクリックして、「200」に直します。これでブロックをクリックして実行してみてください。今度は猫が動いたことがはっきりとわかります。

しかし、動きがちょっと速すぎます。歩いているというよりも、瞬間移動したかのようです。そこで、歩いているかのようにゆっくり移動させることにしましょう。このように、プログラムとは、プログラミングしては動かしてみて、問題点を感じたらまた直すということを繰り返していきます。

ゆっくり動かすには、「制御」から「10回繰り返す」のブロックを持ってきて、この中に「10歩動かす」を入れます。これは「10歩動かす」ということを10回連続して繰り返すという意味です。これで、10歩を20回繰り返させてみましょう。結局200歩歩くことは先ほどと同じですが、ゆっくりと動くようになり、歩いている感じが出てきました。



このやり方で、猫をぐるりと一周させてみましょう。「動き」のところに「15度回す」のブロックがあるので、これを90度に変えれば方向転換ができます。これを4回繰り返せば、猫はぐるりと一周して、元のところに戻ってきます。

猫が端の方にいってしまったら、ドラッグをして中心に戻すか、猫の下にある座標を0、0(中心)、向きを90(右)に直してください。



ところで、このプログラム、何か無駄が多いような気がしませんか?こういうところに気がつくかどうかが、エンジニアリングのセンスです。同じブロックを4回も使っていることに無駄な感じを持たれる方も多いのではないでしょうか。

先ほど使った「制御」のブロックで、「10回繰り返す」というのがありました。これを使って「4回繰り返せばいいのでは?」と思う方も多いはずです。

すると、こんな簡単なプログラムになりました。これでも先ほどのプログラムとまったく同じ動きをします。



ここで使った「10回繰り返す」のブロックは、他のブロックを包み込むようになっています。これは中にあるブロックを繰り返すという意味です。このような何回も繰り返す構造がループと呼ばれるものです。

構造化プロブラミング =
ループ構造を使ったプログラミング

そして、このようなループ構造などを利用したプログラミング手法が、構造化プログラミングです。構造化プロブラミングなどという難しい言葉を使われると臆してしまう人もいるかもしれないが、要はループ構造を使ったプログラミングのことなのです。

このような構造化プログラミングのメリットは、

・プログラム自体が簡潔に記述できるようになる
・他の人が見たときに、どのような動きをするのかが理解しやすい
・構造がシンプルなので、プログラムミスが起こりづらく、修正するときも楽にできる

などがあります。

このような構造は、ループだけでなく、「もし◯◯であればこうして、××であればこうする」という条件分岐もあります。ループや条件分岐を積極的に使っていくのが構造化プログラミングで、現在では当たり前のことになっています。

プログラムといっても、さほど難しいものではないことがわかると思います。スクラッチには、「見た目」や「音」などのブロックに、猫が鳴いたり、コスチューム(猫のポーズ)を変えたりする楽しいブロックも用意されています。試行錯誤で構わないので、このようなブロックを使って、猫が鳴きながら駆け足をしているかのように見えるプログラムに改造してみてください。

そうやって遊んでいるうちに、プログラムのコツがわかってきます。プログラミングも、初心者のうちは才能や得手不得手は関係ありません。たくさん触った人が、触った時間に応じて上達します。ブラウザーだけで遊べるスクラッチで、プログラミングのコツを会得してみてください。

-----------------------------------------------------------------------------

※「初心者のためのプログラミング入門第1回 「順番」と「分岐」だけわかればプログラミング思考ができる」は以下からご覧ください。

初心者のためのプログラミング入門第1回 「順番」と「分岐」だけわかればプログラミング思考ができる

-----------------------------------------------------------------------------

原稿:牧野武文(まきの・たけふみ)

テクノロジーと生活の関係を考えるITジャーナリスト。著書に「Macの知恵の実」「ゼロからわかるインドの数学」「Googleの正体」「論語なう」「街角スローガンから見た中国人民の常識」「レトロハッカーズ」「横井軍平伝」など。

初心者のためのプログラミング入門第2回構造化プログラミングにいきなり挑戦してみる

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW