未分類
- 2020/12/04
- 2020/12/03
-
橿原市 初心者が感じるプログラミングの壁を超えるには
プログラミングにはどのような壁があるのか
プログラミングに初めて触れる際、どうしても高いハードルを感じるシーンがいくつかあります。まず最初にプログラミングを行っていくうえで必要になる環境を整えていく作業に壁を感じてしまいます。例えばテキストツール等をPCにインストールしていく際、基本的にツール配布サイトは英語です。さらにPCのスペックに応じて適切なバージョンのツールを選択しないと起動すらしてくれないこともあります。そして環境を整え、プログラミングを学習していくと大量に出てくる英語もまた壁の一つになります。コーディングに使用するのはもちろん、プログラミングを行う上で出てくる専門用語もほとんどが英語です。そしてなんとか作り上げたプログラムには大体エラーが付いてきます。そのエラーの原因を探るためにメッセージを見るのですが、このメッセージも英語です。これらが主に初心者が感じる大きな壁だと思います。しかし、実際のところこれらは簡単に解決することが出来ます。以下に記述していきたいと思います。
プログラミングの環境を整える
プログラミングを学んでいく際、まず最初に行う作業が環境の構築です。ここでPCについてのある程度の知識が試されますが、学習したい種類によって難易度が変わってきます。例えばPHPを学びたい場合、動きを確認するためにサーバの準備が必要になってきます。コンパイラと変換用のソフトが必要な言語もあります。これらに比べてJavaScriptやHTMLは特別なソフトが必要ありません。最低限メモ帳アプリがあればコーディングし、プログラムを実行することが出来ます。ただし、メモ帳アプリはとても使いにくいので本格に学習していくならテキストツールをインストールすることになります。テキストツールはたくさんの種類がありますがそのほとんどが英語ベースです。さらにPCのスペックやOSのバージョンに応じてインストールする必要もあります。これも少し難しく感じてしまいます。これらの壁ですが、Google等で検索すると日本語で解説してくれているサイトがたくさんあります。これらを参考にすれば簡単に整えられます。
専門用語を理解していく
環境を整えた後、実際に色々な本やサイトを参考にしてプログラミングを学んでいくのですが次に来る壁として専門用語があります。プログラミングでは普段使わないような単語が頻出します。さらにそれらは英語がメインになっているのでなおさら馴染みがなく、意味が分からずに躓いてしまいがちです。ゲームやアニメの専門用語だと思って何とか一つずつ理解していきましょう。それぞれの意味や使いどころを知ることでプログラミングについて何かわからないことがあった際に参考にしたい文献内容をより理解しやすくなります。最終的にはすべて覚えてしまうのが最善ですが、最初から覚えようとするとそっちにばっかり意識が向いてしまい、肝心のプログラミングの知識まで覚えられなくなってしまいます。これでは本末転倒なので最初はそんな言葉があるんだなぁくらいに思っておき、出てくる度に検索を掛ける程度でいいと思います。それよりも実際のスキルに結び付くであろう知識を優先しましょう。何度も検索をしていく中で自然と単語は頭に入っていくはずです。
コーディングに使われる英語たち
さて、これで環境を整え、参考資料を読めるようになりました。ここから実際にプログラミング作業に入っていくのですがここでさらなる壁にぶち当たります。ほとんどのプログラミング言語では英語がベースになってます。そしてコーディングをしていく際にはその英語をアルファベットのまま打ち込んでいくのです。カタカナでは無く正真正銘の英文を打ち込んでいく印象を持ってしまいます。ここの壁が非常に高く感じやすいです。今まで日常的に英文を打ち込んでいた人は少ないと思います。また、学校で習うような普通の文章とは違い、プログラミング言語独自の文法が存在しています。これらも非常に話をややこしくしてしまいます。ただ、これらも実際に作業していけば気付くのですが決して難しい物ではありません。英語がずらっと並んでいますがそのほとんどは英単語の羅列です。そこに英文の文法は関係ありません。プログラミング言語毎の文法も決して難しくなく、むしろ通常の英文より簡単になっています。1つ1つの意味をしっかりと意識しながら記述していきましょう。
壁を感じてしまった時
プログラミングは慣れるまでに様々な壁が出てきます。上記に上げた以外にも感じたことのある壁は多数あるかと思います。そんなとき、どうすれば壁を越えられるのか、何をモチベーションにすればよいのか、それは最初に自分がプログラミングを学びたいと思った動機を思い出すことです。例えばプログラミングが楽しそうだと思った場合、ややこしい話を抜きにしてプログラミングを楽しめるScratchを触ってみる、他の人の作品を遊んでみる等してプログラミングの楽しさを思い出してみましょう。資格取得や就職のために学んでいる場合、本当に自分にとって必要なのかを考えてみましょう。流行っているから、なんか就職に有利そうだから、等では少し続けるのは難しいです。自分の将来に絶対役に立たせるんだ、という強い意志を持つか純粋にプログラミングに楽しさを見いだせるか、このどちらかが出来ていないと上記の壁を乗り越えることは厳しいです。しかしこれはプログラミングに限らずあらゆる学習に言えることですね。
- 2020/12/02
-
かしはら市 子どもも大人も楽しめるロボットプログラミング
今人気のロボットプログラミングとは
近年よく話題に出てくるロボットプログラミングとは何なのか、解説していきます。ロボットプログラミングとは読んで字のごとく、ロボットにプログラミングしていくことになります。教室や講座によってはロボットははじめから用意されており、プログラミングだけしていくこともありますが、基本的には目標時に応じた動きをするロボットを自分で組み立てていき、それに合わせてプログラミングしていく流れになります。簡単なブロックで作るロボットから本格的なビス止めや電子回路を構成していくものまで多種多様です。子どもでも大人でも楽しむことが出来ます。普通のプログラミングとの違いは、プログラムを書き換えた際の変化が実際のロボットに反映されるため、見た目に分かりやすく、ロボット制作段階から動きを予想しながら作業を進められるのでプログラミングの方向性が明確で分かりやすいです。半面、ロボットによって対応している言語が違ったり、専用のソフトが必要だったりする可能性があります。
ロボットとプログラミングの関係性
ロボットとプログラミングは切っても切れない関係にあります。ロボットを思い描いた通りに動かそうとしたとき、モーターのオンオフだけではどうしても限界があります。例えば音を拾った時だけ動かしたり、黒い線を感知したときにモーターの回転方向を変えたりしようとするとそれを察知するためのセンサーが必要になり、そのセンサーから出される信号をきちんと認識しないといけません。この信号を認識し、それに合わせてモーターの出力を変えたりする部分がプログラムになります。プログラムがあるのと無いのとでは動きの自由度が天と地の差になります。なのでロボットを学んでいく際には一緒にプログラミングも学ぶことがほとんどになります。ロボットにさせたい仕事をしっかりと明確にし、それに必要なものを挙げていきます。センサーの読み取りやそれに対する返答等をプログラムでしっかりと組むことでロボットは完成するのです。
ロボット教室で学べる事
ロボット教室ではロボット制作を学ぶのはもちろん写真を見てどのようになっているのかを把握するための空間認識能力や説明文から実際の仕組みを把握するための読解力、途中でミスが無いかを確認する危機管理能力等を鍛えることが出来ます。また、もし間違っていたときにどこが間違っているのかを確認し、修正する力も見につきます。これらはロボット制作でも非常に重要になってきますが、他の作業でも十分に活用出来ます。より注意深く、確実に仕事をこなせるような能力を育てることが出来ます。空間認識能力も鍛えられるため、将来的に重機を扱ったり車の運転の際、死角を減らしたり、その部分が今どうなっているかを予想出来たりします。勿論ですが実際に指先を動かしてロボットを制作していくため手先の器用さも鍛えられます。これらを満遍なく鍛えらえれるロボット教室は将来、必ず役に立つスキルを提供していけると思います。
身の回りにあるロボットたち
私たちの身の回りにはたくさんのロボットが存在しています。自動車や電車、飛行機などの移動手段を担っているものや工場で働くアームロボット、ベルトコンベヤー、最近流行のルンバやドローンなど、多種多様なロボットが存在しています。それらのロボットにはすべて役割があり、その役割を果たすために効率よく動くように作られています。ギヤの組み方やモーターの取り付け位置、電源の配置や各ケーブルの配策等、物理的に調整できる箇所ではそのロボットの行動範囲の限界を広げることが出来ます。ですがどれだけ外側を改良してもそれをきちんと扱ってあげないと性能を発揮できません。どれだけいい車に乗っていても運転手が免許を取っていないとまともに運転できないようなものです。その運転技術に当たる部分が内部、プログラムになってきます。決められた性能の内、どれだけ引き出すことが出来るかを決めます。もちろんどれだけ効率よく動かせても元の性能が低ければ発揮される仕事の質も下がります。バランスが大事になってきます。
大人も楽しめるロボット
ロボット教室といえば子どもたちがワイワイと賑やかにロボットを作成したり競争したりしているイメージがあるかと思います。しかし昨今では大人の方がプログラミングを学ぶ手段としてのロボット教室も存在します。子ども向けの教室ではプログラミングは専用のアプリを使ったりするのですが大人向けの場合、Pythonと呼ばれるプログラミング言語を用いることが多いです。このPythonはAI技術等に使われている言語でJavaScriptやPHPのような目に見えるところで使われている言語は無く、システム面で多用されています。このような裏側で動くプログラムを作るエンジニアはバックエンドエンジニアと呼ばれています。本来でしたらPython習得の際にはプログラミングの結果がすぐにはわからないためハードルは高いのですが、ロボットですとすぐに動きに反映されるため、初心者の方でもとっつきやすくなっております。その為、大人向けロボット教室ではPythonを主流にしているのです。
橿原市 Scratchプログラミングで学ぶゲーム製作
Scratchとは
Scratchとはプログラミングに触ったことが無い人やコーディングに苦手意識を憶えてしまった人に向けて開発されたプログラミングアプリです。すべての機能が無料で仕様することが出来ます。プログラムを作っていくうえでアルゴリズムやフローチャートといった処理の順番や優先順位などを考えなければいけないのですがScratchはそれを視覚的、感覚的に分かりやすく表してくれます。なのでプログラミングに触ったことが無い人でもさせたい動きとそれに必要な処理さえ分かっていればプログラムを作ることが出来るのです。目標を決め、それに必要な動作や処理の順番をあれこれ試行錯誤する過程を感覚的に進めることが出来るのがScratchの良いところです。ゲームを自作する場合もまずはScratchから進めていき、より本格的なものを作りたくなったら別の言語やツールを使っていくことをお勧めします。
ゲームを作る準備
ゲームを作る為にはたくさんの準備が必要になります。まずはゲームのジャンル決めです。どのようなゲームにするのか、格闘ゲームなのかシューティングゲームなのかといったゲームの大まかなジャンルを決めます。その次に実際のゲームの動きについて決めていきます。ここで自分の個性を発揮していきましょう。ただし、あまりにも複雑にすると構築が大変になるので最初の内はシンプルなゲームを作ることをお勧めします。全体の動きを考えた後はその動きを実現するために必要な命令を考えていきます。この際に必要な命令と処理の順番、条件の分岐などを考えていく必要があります。言葉にするとすごく難しく聞こえますが要するにどんな時にどんな動きをさせるかをまとめる作業です。そして最後にゲームに使う画像や音楽などの素材の準備です。これはゲーム製作を始めてからでも大丈夫ですので出来たら準備しておいたほうがいい、程度に考えて大丈夫です。これらの準備を資料にしたものを仕様書と呼び、実際の制作現場では必ず最初に用意するものになります。この仕様書がどれだけ精密でしっかりと書けているかによって作品のクオリティも変わってきます。
実際にゲームを作成していく
仕様書が出来ましたら実際に作成していきます。仕様書にある必要な動きを実現していきます。この際、複数の動きを一気に作り、後でまとめてチェックしてしまうとどの部分で不具合が起きているのか、組み合わせの問題なのかがわからなくなってしまうので1つずつ作り、その都度動作チェックをしていきましょう。Scratchの場合、各動作ごとにプロジェクトを分けてしまうのもお勧めです。その時点で動きがおかしい場合、動きを実現させるためのプログラミングがそもそも間違っていると考えられます。その部分を直していきましょう。ある程度動きが出来てきたら複数を組み合わせましょう。どのように組み合わせればよいのか、処理の順番はどうなのか、分岐の条件は等、試行錯誤しつつ組み合わせていきます。ここで不具合が出てしまった場合、先ほどの組み合わせの部分や処理、条件分岐が間違っていると考えられますのでより良い方法を探りましょう。このサイクルを繰り返していき、目的の動作を実現させます。
他の人を参考にする
先ほどのやり方はすべて自分で考えて作る場合になります。実際にはほとんどの動きは他の人の手によって実現されています。Scratchでは他の人の作品を全て、中身まで見ることが出来ます。さらにその中から気に入ったものをバックパックに入れることで自分の作品に持っていくこともできます。なのでどうしてもアイデアが出ない時や動きの実現方法が思いつかない時は一旦他の人の作品を眺めてみましょう。それが出来るのもScratchを使用するメリットです。様々な作品の中から自分の気に入ったものを探し出し、どの部分がその動きなのかを見つけ出しましょう。もしくは作った本人に尋ねてみるのもいいかもしれません。予期せぬアドバイスをもらえるかもしれませんし、なによりアイデアというものは一人では限界があります。複数人でアイデアを出し合うことでより良い作品を作り出すことが出来ます。そういった交流関係を気付いていける環境がScratchには整っています。
完成した作品をどうするか
上記で述べた作業を何度も繰り返していくことで自分の納得できる作品が出来上がったかと思います。その作品をそのまま自分だけで楽しむものとして終わらせるのもいいですが、他の人と共有してみてはどうでしょうか。Scratchでは簡単に他の人と作品を共有できます。先ほど他の人の作品を参考に、と書きましたが今度は自分が参考にされる番になるのです。しかし、参考にされるだけでは終わりません。他の人が自分の作品を実際にプレイし、感想を言ってくれます。感想はクリエイターにとって一番うれしい反応になります。頂けた感想を糧に更に面白い作品を作るためのモチベーションにしていきましょう。もしくは完成した作品に手を加えてより面白くすることもできます。公開した作品を少しづつ改良していくことをバージョンアップと呼んだりもします。ゲーム製作の最終目標は面白いゲームを作ることです。完成した後もより面白くするための政策は続いていきます。