こどもプログラミング教室・オンライン講座/プログラミングアカデミー

こどもプログラミング教室・オンライン講座/プログラミングアカデミー

公式ブログ

2021/03/11

s-2:Scratchアカウントの作り方

実はScratchではアカウントを作成せずともプログラミング機能を利用することが出来ます。
しかし、アカウントが無いと他の人たちとの交流が出来ません。更に作品の保存もPC本体のみに
制限されてしまいます。アカウントを作成することでネット上に保存できますので容量の心配も
なくなりますし、何より複数端末からのアクセスが可能となります。
2021/03/05

S-1:Scratchの始め方

Scratchとは世界中の誰でも、無料で簡単にプログラミングが行えるアプリケーションです。
プログラミング初心者の方や小学生以下のお子様等がプログラミングに初めて触れるものとして
真っ先に名前が挙がります。
当教室ではこのScratchを利用して様々な動きをプログラミングしていきます。
是非皆さんも一緒にプログラミングを楽しみましょう!!

Scratchはこちらk
2021/02/06

橿原市 プログラミング オンラインレッスンの需要

習い事の形態の経緯

現在に至るまで、様々な習い事が生まれました。それぞれ素晴らしいところがありますが今回はその習い事を習う形態について記述していきます。習い事の形態は大きく分けて4つあります。まず、教室等に生徒が集まり、1体多で授業を進めていくものです。ほとんどの習い事はこちらに当たるかなと思います。学校とはまた違ったコミュニティを形成できるので交友が広がったり、それぞれで競い合うことで向上心が刺激されます。次に生徒の家、もしくは先生の家にて1対1で行われる個人レッスンのものです。ピアノレッスンや家庭教師等はこちらに当たります。1対1なので他人の目を気にせず質問できます。また、レッスン内容を個人の能力に合わせ組めるため、レッスンの内容が身に付きやすいです。3つ目に通信教育です。生徒のもとにはテキストや教材が届き、それを自分のペースで進めていくものになります。先生が直接指導するのではないのでのびのびと自由に進めることが出来ます。そして最後に、オンラインレッスンです。先生と生徒がオンラインで通信を行います。通話の繋げ方にも寄りますが基本的に他の生徒の目はありません。しかし場合によってはみんなで画面を共有して発表する場を設定することもできます。それぞれにいい点、悪い点がありますが、今回はオンラインレッスンに焦点を当てて記述していきます。

オンラインで出来る事

昨今では習い事やイベント、学校での授業等あらゆる場面でオンラインでのやり取りの活用が進められています。教室やイベント会場に直接赴くことなく参加出来るため、今までは移動にかかる時間や費用が原因で参加できなかったイベントや遠くて通うことのできなかったレッスン等でも参加することが出来るようになりました。もちろん、現地で行われる内容そのままというわけにはいきませんがそれでも選択肢の範囲はすごく広がります。買い物をネットショップで行うようになったように、習い事やイベント等もオンラインで行う時代が来たと言えます。もちろん、中にはどうしてもオンラインでは出来ないものもあります。スポーツや音楽教室などがそれにあたります。全てをオンラインで行うのではなく、適材適所で実施していくことが今後、より重要になってきます。また、オンラインでレッスンを受けるということは勿論、PC等の基本的な知識も必要になってきます。特にお子様にオンラインレッスンを受けさせる場合、ご自身のPCを貸すことなると思いますが、思わぬ操作から個人情報等が流出してしまう可能性もあります。これまで以上にPCスキルが必要になる機会が増えてきたと言えます。

オンラインレッスンの需要が増えているわけ

上記でも述べました通り、現在オンライン事業が盛んになっております。もちろんオンラインレッスンも含まれています。様々な要因から盛んになっているのですが、一番の理由はやはり2020年1月より発生した新型コロナウィルスによる感染症への不安からだと思われます。コロナウィルスはとても強力な感染能力を持っていますが、接触しなければ感染の可能性はありません。このことから直接会わずとも様々なサービスを行えるオンライン事業が盛んになっていきました。その中でも特にプログラミングや塾等は元からオンデマンド教材を用意していたところが多いのも相まってかなり早い段階からオンラインレッスンを取り入れていきました。また、感染症対策以外にも理由はあります。例えばイベントの場合、従来であればイベント会場の広さから参加人数が絞られていたり、場所が遠くて参加できなかったり等、参加したくてもできない人が多数いましたがオンライン枠を実装することでそう言った人たちも参加しやすくなります。レッスンの場合も人気のある先生に教えてもらいたくても遠くて無理だった人たちがオンラインでその人のレッスンを受けることが可能になります。

プログラミングを学ぶ手段について

今までオンラインレッスンについて述べてきましたが、次にプログラミングレッスンについて記述していこうと思います。プログラミングを学ぶ方法は大きく3つあります。1つは独学です。自分で本や各種webサイトを閲覧し、自分の力で学んでいく方法です。自分で調べ、トライ&エラーを繰り返したいける人向けの方法になります。次に専門学校等に通うパターンです。学校で学ぶため気持ちの切り替えが出来ます。また基礎からしっかりと順番に学んでいけます。プログラミングを何に使いたいかはっきりと決まっていない場合等の場合はこちらがお勧めかなと思います。最後にプログラミングスクールを利用する方法です。こちらはある程度学びたいことを決めている、若しくは全く分からないが専門学校に通ったり自分で調べたりするのも難しい、という人向けのものになります。小さいお子さんや逆に高齢になってからプログラミングを触りたい、といった人に特におすすめされます。それぞれにメリットやデメリットがありますが、どれを選んだとしても最終的に重要なのはスキルを身に着けることなので自分に合った方法を選択しましょう。

プログラミングオンラインレッスンについて

今まではプログラミングを身に着けたくても身近にスクールが無くて学べなかった、ことがありました。しかし現在ではオンライン通話を利用することで世界中どこにいてもスクールのレッスンを受けることが出来るようになりました。オンラインレッスンなので先生の手元を見る事は出来ませんが、元々プログラミングは先生の手元を見るよりも生徒様が打ち込んだソースコードを見る事の方が重要なのでオンラインのデメリットをそこまで気にせずに受講することが出来ます。ソースの確認についてはファイルを直接送ってもらって添削し、後日改めてレッスンを行うパターンと、画面共有でリアルタイムに直していくパターンの2つがあります。リアルタイムの場合、画面共有ですので操作にラグが生じてしまうデメリットが存在します。また、お互いのPCのスペックによっては落ちてしまう可能性もあります。ファイルを受け取って添削するパターンの場合、時間はかかってしまいますがじっくりと手直し出来るのでより確実に間違いを直していけます。それぞれどちらかしかしないのではなく、両方を取り入れているスクールがほとんどです。簡単に解決できそうなものはその場で、時間がかかりそうだったり詳しく説明が必要な物に関しては一旦ファイルを受け取り、後日添削結果を指導しています。

2021/01/12

橿原市 JavaScriptプログラミング 関数について

プログラミングにおける関数とは

学校で学ぶ関数とは、複数の数字の関係性について式に表したものを指します。たとえばy=ax+b(a,bはそれぞれ定数)といった式が与えられている場合、xの数字を一つ与えることで決められた数yを求めることが出来ます。このように何か数字を与えることで決められた何かを返すような式のことを関数と呼びます。これはプログラムの世界でも変わりません。予め自分で必要な要素を定め(先ほどの例で言うとxの部分になります)、それに対してどのような処理を行い(先ほどの例でいうとaを掛けたりbを足したりしている部分になります)、どのような値を返すのか(先ほどの例で言うとyの部分になります。)を記述します。こうすることで同じ処理を何度も繰り返す際に記述量を大幅に減らせたり、やることは毎回同じだけど数字が違うような処理を行う際に毎度書き直す手間を省くことが出来ます。プログラミングを効率良く行うためには関数の考え方をしっかりと把握し、活用していく必要があります。

関数を使うことのメリットについて

先ほどもさらっと記述しましたがプログラミングを行っていく上で関数を用いるメリットは大きく2つあります。1つ目はコードの再利用です。プログラムの中には同じ動きを何度も行う場合があります。その際に毎回同じコードを記述していると手間ですし見た目にも分かりにくくなってしまいます。そんな時にその部分を関数として記述することで大幅に記述量を減らすことが出来ます。また、ミスが見つかった際にも関数を記述した部分を直すだけで済みますのでメンテナンス性も高まります。微調整を行ったり、処理を増やしたりする際も同様に関数部分を直すだけになります。2つ目の理由として、他者との共有が容易になることです。たとえば自分で思いついた複雑な処理を他者に使ってもらう場合、記述されたコードそれぞれを理解し、調整方法等について説明しなければなりません。関数にしておくことで与える要素の意味のみ説明しておけば後はコピペで済みます。これらの理由から関数は重宝されているのです。

関数の記述方法

関数の記述方法についてですが、勿論各言語毎に違います。しかし、大まかな形や考え方は同じなのでその部分について解説します。まず、関数を記述するには関数名を定義します。行う処理をそのまま名前にすることが多いです。無名関数を定義するパターンもありますが少しややこしいのでここでは割愛します。次に与える要素の数を決めます。1つだけのパターンもありますし複数個の要素を与える関数も作ることが出来ます。ここでは要素に名前を与えますがこれはあくまでその関数内での仮名になります。実際の変数名とは関係ないので注意しましょう。分かりやすくする工夫として実際の変数名と同じにすることも多いです。その後、実際の処理を記述していきます。与えられた要素に対して何かしらの処理を行い、最終的に返すものを記述します。返すものは一つですが、その途中で行う処理に制限は有りません。また与えられたものとは関係のない処理をさせることも可能です。

関数の実行方法

関数は宣言し、記述しただけでは仕事をしません。実際に必要な要素を与えてあげることで初めて実行されます。実行方法も言語によってさまざまですが基本的には関数名を記述し、そのあとに与える要素を記述する形になります。この実行が無いとどれだけ素晴らしい関数を作成したとしても意味はありません。また、実際実行している部分と関数の中身を設定している部分は繋がっている必要は有りません。なので基本的に関数の宣言はソースの初めの方でまとめてしておき、必要な箇所で関数を呼び出していくことが多いです。こうすることで関数の宣言等の実際に動作していない部分を区分けることが出来ます。また、関数の中にその関数を実行するように記述することもできます。この場合、特に対策していなければ一瞬で無限ループを起こし、最悪クラッシュの危険性があります。しかし関数の実行を遅らせる処理を挟むことで安全に無限ループを起こしたり、関数を実行する回数に制限をつける事で繰り返す数を決めたり、関数を実行しなくする条件を付けることで途中で終わらせたり等、便利な使い方もあります。

自分が使う関数

上記までで関数のメリットや記述、実行方法等について解説してきました。ここでは私がよく使う関数について、簡単に述べていきたいと思います。ソースコードを直接は書かないのでこの説明を読んで、自分ならどう実現するかを考えてみてください。連続した数をランダムに並び替え、それぞれを配列に収納する関数です。必要な要素はどれだけの数が欲しいか、の1つだけです。その要素を与える事で0からスタートする要素の数だけ連続した数を用意し、それをランダムに並び替えた配列を作成する、と言った処理を行います。この関数は複数個の、被りの無いランダムな数を使用する際に用います。処理としてはまず与えられた要素の数分だけ連続した整数を配列に数字を格納していきます。その後、配列の中身をシャッフルする、と言う流れですがこの部分が少しややこしいです。私の場合は配列の最後の部分を、その手前までのランダムな箇所の要素と入れ替える、という処理を最初の部分まで順番に行っていくことでシャッフルを行っています。ただ、これはあくまで私の方法なのでぜひ皆様のご自身のやり方を見つけてみてください。

2020/12/24

橿原市 プログラム、プログラミング言語の歴史について 後編

現在のプログラミングに繋がる1990年代 前半

1990年代に入るとパソコンも進化していきます。それまでのパソコンはCUIと呼ばれる、動きを命令するために文字を入力するようなインターフェースでした。1990年代では現在と同じようなGUIと呼ばれる、マウスや指などで指示するインターフェースへと移行したのです。現在であれば当たり前のUIはここで登場しました。そしてそれに合わせてより見た目に分かりやすい、美しい言語も登場してきます。現在でも現役で使用されているJavaやPythonなどです。これらはオブジェクト指向型の言語です。特にPythonは現在、AI開発に使用されており、注目され続けています。また、少し後にはPHPも誕生します。Webページの動的な動きを実装するためのスクリプト言語になります。C言語をベースにしています。当HPを含めたほとんどのWebページに使用されています。このように現在でも活躍している言語が多数生まれ、プログラミングの世界がワンステップ進んだ年代になります。

Windows95の誕生

1995年、Windows95が発売されました。こちらはカラー出力、ネットワーク接続機能が搭載されており、発売から4日ほどで400万本の売り上げを出すほど人気でした。これの登場によってインターネットは爆発的に普及しました。さらに同年、Rubyという言語が日本人まつもとゆきひろによって開発されました。様々な言語をブレンドしており、柔軟性が高く表現力も豊かです。こちらは日本だけではなく世界的に人気があり、現在でもWebサービスやアプリ開発で使用されています。また、この年からオブジェクト指向が主流となり、Javaが多くの業界で使用されていきます。人気ゲームであるマインクラフトもJavaによって構築されています。また、1997年にはJavaScriptが登場します。これによってクライアントサイドでの動的な動きを記述できるようになりました。ここまででWeb制作に必要な言語は一通りそろったことになります。

プログラミング近代、2000年代

2000年代に入り、まず大きな動きとしてMicrosoftがC#を開発しました。C++をメインにJavaを取り込んでいるため文法がJavaに似ており、Windowsとの相性も良いためこちらも現代で使われています。2003年にはScalaが登場します。こちらはオブジェクト指向型と関数型の両方の機能を備えたハイブリット言語であり、Javaと互換性を持つためJavaで使用していたライブラリをScalaでも使用することが出来ます。TwitterやPayPalに使用されています。国内での需要が特に高まっている言語の1つであり、新規に習得したいプログラマが増えています。さらに現在まだ有名ではありませんがすぐれた機能を持つ言語としてD言語というものが2007年に開発されました。C言語の置き換えを目的にこれまでの様々な言語の特徴を取り込んでいます。今後主流になる可能性も十分にあります。このようにこの年代から開発された言語は優れた物も多いのですがまだ主流にはなっていない、といったものが増えてきます。

スマホの登場する2010年代

スマートフォンも登場、普及したことで更にネットワークに接する時間が長くなり、頻度も上がってきました。そこでより機能性や安全性を考慮した言語の開発が盛んに行われるようになってきました。この年代に開発されたもので今後有力な言語はAppleによって開発され、iPhone用のアプリ等に用いられているSwiftやFacebookが開発したPHPを基にしている言語Hack等があります。さらに、Google社からはオブジェクト指向型であり、動的型付けと静的型付けの両方に対応している言語であるDartが開発されました。こちらはJavaScriptの代替えとして開発されているため、JavaScriptを学んでいると触りやすくなっております。しかしこれらの言語はまだ生まれて間もない為、どうしても既存の言語たちに比べると洗練されておらず、使い勝手がよくなかったりします。しかしその分成長の伸びしろがあるとも言えますので今のうちから学習する価値は

現在のプログラミング言語の状況

現在、プログラミング言語の主流はやはりオブジェクト指向型になります。よく、プログラミング言語を学ぶならC言語だ、と言った意見が出ますが就職や転職の際に有利になるのはやはり現場で実際に使われているオブジェクト指向型言語たちや、各業界ごとに人気のある言語になります。もちろんC言語を学ぶメリットもあります。プログラミングをより深く、根本的な部分を理解するにはC言語は必須になります。また、C言語は単純かつコンパクトなプログラムを書くことが出来ますので実は処理速度の面ではかなり優秀です。このように目的次第で様々な言語が役に立ちます。ただ、どの言語にも言える事ですが、まずは1つのものを集中して学習しましょう。どの言語でも基礎はほぼ同じです。その基礎をしっかりと身につけ、やりたいことがある程度出来るようになってから次の言語へ行くかどうか考えるとスムーズに学習できると思います。

2020/12/17

橿原市 プログラム、プログラミング言語の歴史について 前編

プログラムの歴史 1940年代

プログラムを活用したコンピューターは1930年代にイギリスの数学者「チャールズ・バベッジ」が最初に考案したとされています。彼が設計したコンピューターは解析機関と呼ばれています。これは記憶装置と演算装置から構成されています。プログラムを直接書き込む形ではなく、外部からパンチカードを読み込ませることでプログラムを制御する予定でした。50桁の数字を1000個格納でき、四則演算が可能です。更にそれぞれの比較や後付けで平方根の演算も可能となっていました。演算速度はおおよそ20桁同士の掛け算を3分以内に出来るだろうと言われています。この性能はムーアの法則と呼ばれるコンピューターの成長曲線を過去に向かって伸ばしてみると、その値よりもずっと高性能です。ただ、惜しむらくはこの解析機関、様々な要因が重なり、完成することが出来ませんでした。もし完成していたらコンピューターの世界はもっと違うものになっていたのかもしれません。

電子式コンピュータの登場

上記にて紹介した解析機関は機械式のコンピューターになります。機械的にスイッチを切り替えたりすることで演算を行っていました。しかし1940年代に入ると電子式のコンピューターが登場します。我々の知っているコンピューターの形にかなり近くなります。そして、そのコンピューターを制御するために誕生したのがプログラミングを行うための言語系統です。当時の電子式のコンピューターは0と1しか認識できないため、0と1の2進数で命令を記述します。この言語系統を機械語と呼びます。機械であるコンピューターが理解できる言語になります。しかしこの言語を人間が直接書くことはとても難しいです。そこで命令1つに対してニックネームのようなものを1つ設定し、人間に分かりやすくした言語が誕生しました。この言語のことをアセンブリ言語と呼びます。もちろんこの言語をそのままコンピューターに渡しても理解してくれません。アセンブリ言語を機械語に変換してからコンピューターに渡していました。

高水準言語の登場 数々のプログラミング言語の登場

1940年代までで機械語、アセンブリ言語と言った言語系統が生まれました。機械語は機械の動きをそのまま記述していますし、アセンブリ言語は機械語の命令1つ1つの記述を人間にわかる言葉に直したものです。これらは機械への命令をそのままの形で記述しているため、人間には少し分かりにくい言語になります。このような言語を低水準言語と呼びます。これに対してより人間に分かりやすく、記述しやすくした言語のことを高水準言語と呼びます。1950年に世界初の高水準言語であるFortranが誕生しました。また同時期にCobolやAlgol58も開発されています。CobolやFortranは現代でも使用されるシーンがあります。またAlgol58はこの後に生まれてくる数々のプログラミング言語に多大な影響を与えています。この時点でプログラミング言語の基礎は固まっていたと言っても過言ではありません。

C言語やオブジェクト指向型言語の誕生

1970年に入るとプログラミング言語の世界に一つの契機が訪れます。今でも多くの人が勉強し、現在のプログラミング界隈でも利用されることの多いC言語が計算機械学者「デニス・リッチー」を中心にして開発されます。このC言語の特徴は汎用性の高さにあります。それはコーディングやメンテナンス性によるシステムやアプリケーション開発等といった様々な分野に使える点に加え、対応している機器の多さにも言えます。パソコンはもちろんのこと、家電や自動車、果てはスパコンにまで、様々なハードウェアに対応できる、という点でも汎用性が高いです。また、同時期にはオブジェクト型言語の概念が誕生しました。それまでは手続き型と呼ばれる、上から順番に文章を読むようにしてソースを実行していく言語ばかりでしたが、このオブジェクト指向型言語はそれまでと違い、予め設計図のようなものを記述し、それに必要な要素を与えることで動きを組み立てていくように記述します。現代ではこのオブジェクト指向型言語が主流になっています。

進むプログラミング界隈

1980年代にはC言語を中心にプログラミング界隈は成長します。1983年にはC言語にオブジェクト指向の要素を組み込んだC++が開発されます。しかしこの時代はまだオブジェクト指向が認知されておらず、システム開発の中心はC言語が担っていました。オブジェクト指向が主流になるのはもう少しあとの話になります。また、C++が開発された時に同じくオブジェクト指向をメインに据えたObjective-Cが開発されます。こちらは後にSwiftが開発されるまでの間、iPhone等のMac製品の開発の主流を担っていました。更に1987年には、現在でもかなりの人気を誇るPerlが開発されました。こちらは開発効率の高さや対応言語の多さ、自由度の高さ、後付け機能の付けやすさ等々の理由から世界中で人気があります。また、それだけ人気があるので後付け機能も様々な人が開発されています。このように現在のプログラミング界隈に影響を及ぼすような言語が開発され始めました。

2020/12/12

橿原市 現在行っているプログラミングオンラインレッスンの方法

どのようなレッスンを行っているのか 内容について

当教室では小学生向けをメインにプログラミングについて指導しています。プログラミングに触れたことの無い生徒様には基本的にScratchから触ってもらい、独自に定めたカリキュラムを進めてもらいます。このカリキュラムではScratchプログラミングの基本的な考え方や動きを実現させる方法、簡単なゲーム作成の流れについて指導しております。カリキュラムを一通りしっかりと理解していればScratchのおおよそ基本的な使い方についてマスターできるようになっております。またScratchを通してプログラミングをしていく上で重要になってくる不具合があるか都度確認すること、不具合が出た場合に原因がどこかを探ることをそれぞれ習慣づける様指導しております。もちろんこちらから不具合の個所を指摘することもありますが、最初は必ず自分で考えてもらいます。それでもわからない場合は一緒に不具合の個所を見て、何がおかしいのか、その部分の動きを作っているのはどこかと言った解決までの道のりを示すよう心がけております。

オンラインでのレッスン内容について 教室との違いはあるのか

当教室では現在、教室でのレッスンとオンラインレッスンの両方を受け付けております。そしてその両方で受けて頂くレッスンの内容については差が無いように努めております。カリキュラムなどは全く同じものを使っておりますが、オンラインであるため、レッスン形態の違いからくる指導方法の違いが生まれてしまいます。また、環境の構築難易度から教室では受けられるレッスンでもオンラインでは厳しい、対処出来ないものも存在しております。例えば環境を構築するために料金が発生してしまうもの、教材に使用しているものが外部持ち出し禁止であるもの等が理由となっております。これらの差はいずれ埋めていきたいと考えておりますが、現在、対応が遅れている状態です。その他の違いとして教室でのレッスンでは他の生徒様の目があるので質問するのが恥ずかしい子でもオンラインだと1対1なので質問しやすいが逆に他の生徒様の目が無いことにより気が緩みすぎて集中出来ない、といったこともあり得ます。

実際のオンラインレッスンの流れ

まず、レッスン開始10分前にZoomミーティングを開始し、IDとパスワードを生徒様に伝えます。直前にお教えする理由としてはセキュリティ面を考慮したためです。その後、レッスン開始時に複数人の生徒様が居る場合、Zoomのブレークアウトセッション機能を利用します。こちらは本来、会議中にグループを作り、その中で話し合ってもらうための機能なのですが、これを私たちは生徒様一人一人に割り当てることで講師と生徒様の1対1の空間を作り出しています。そして最初に今回のレッスンの目的、内容を伝えて何をして欲しいかの指示を出します。そして一旦セッションを離れ、生徒様一人の状態にして作業を進めてもらいます。わからないことがある時や質問をしたい時、作業が修了したときは先生を呼ぶボタンを押してもらいます。このように疑似的にではありますが各生徒様と1対1の状況を作り出すことが出来ます。

オンラインレッスンと教室でのレッスンの両立

講師側の目線で行くと、正直な話教室でのレッスンとオンラインでのレッスンを同時に進行することはとても難しいです。教室の生徒様の場合、こちらの手が空いていない状態でも声だけで反応することが出来ます。対応できない場合でも「ちょっと待ってて」の一声をかけることが出来ます。なのである程度の人数を同時に見る事も出来ます。しかしオンラインの場合、当教室の方法では部屋を分けています。そしてその部屋に入っていない間、その生徒様一人に向けた声掛けの方法はチャットのみになってしまいます。チャット欄をまめに確認してくれる生徒様なら良いのですが、もちろん気付かない生徒様もいます。そうなった場合、先生に反応してもらえなかった経験を得てしまい、次から困ったときに呼びにくくなってしまいます。なので本来であればオンラインレッスンを行うならばオンラインレッスンを専属で行うスタッフを用意するべきです。

現状の方法の課題点

先ほども記述しましたが、教室でのレッスンとオンラインレッスンを同じスタッフが担当した場合、折角の疑似的な1対1を複数作ってもあまり意味がありません。今後よりオンラインレッスンが盛況になった場合、専属のスタッフを用意するべきだ、というのが課題点の一つです。次に、教材についてです。現在、教室でのレッスンと同じ教材を使用しておりますが、この教材は目の前で教えることを前提に作られたものなのでオンラインで教える際に不便な点があります。生徒様のパソコンを遠隔操作することも出来るのですがどうしてもラグが発生したり処理が重くて確認しずらかったりします。このあたりを解決できるような教材づくりんも課題の一つになります。また、レッスン内容と違うところで、各生徒様毎の自宅のネットワーク環境の違いについても課題があります。通信速度やカメラ画質等、上げればきりがありませんがこれらに対して柔軟に対応できるようなマニュアルを作成しなければならないのも課題です。

2020/12/10

かしはらし Scratchプログラミングで学ぶ場所の表し方

場所を表す色々な方法

人に場所を説明する際、どのようにして相手に伝わるように表現するでしょうか。指をさして場所を指定する、今いる場所からどのような道筋で行くかを説明する、住所を教える、大体の方角と距離を伝える等々場所を説明する為の手段は数多く存在しています。それぞれ良い点、悪い点が存在しており、その時々に合わせて使い分けていく必要があります。しかしプログラムは違います。プログラムは1つの手段でのみ場所を表現します。この手段が座標です。基準となる地点を1つ設定し、そこから目標地点までの各方向の移動距離を指定することで目標地点を表す方法になります。基準や各方向の向き、数などは場合によって異なりますが基本的な考え方は同じです。そしてこの座標の考え方はScratchにも勿論使われています。Scratchでプログラミングを行っていくにはこの座標と言う考えかたをしっかりと把握しなければ自分の思い通りの動きを実現させることは難しいでしょう。

場所を表す重要性について

Scratchに限らず、プログラミングを行っていく上で自分の想像した通りの位置に要素を配置するスキルは必須になってきます。どのようなプログラムを作成する場合でも命令には場所の情報が必要になってきます。例えば自動販売機の場合、ボタンが押されたらその位置をまず把握し、指定された飲み物がある場所に対してそれを出すよう命令していく必要があります。ここだけで場所の情報を2回も使っています。車の場合、アクセルペダル、ブレーキペダルをどの位置まで踏んだのか、ハンドルをどれくらい回したのか等場所情報がかなりの頻度で使われます。このように機械はたくさんの位置情報を正確に把握し、それに対して動きを変えていかなければいけません。また、ゲームやWebサイト等、実際の動きが目に見えないものでも位置情報はたくさん使われています。例えばWebサイトですが、マウスポインタが上に来た時に画像が切り替わるような動きをつける場合、マウスポインタの位置や画像を切り替える範囲などを指定しなければいけません。プログラミングを行っていくうえで場所を示す情報は必須なのです。

プログラミングにおいて場所を示す方法

プログラミングを行っていくうえで様々な数字や情報を取り扱っていきます。その中に場所の情報もあります。最初に記述したように場所を示す方法は多数あります。直接指さす、道筋を説明する、住所を伝える等々…。プログラミングで一番使われる方法は座標を示す方法です。基準となる点を原点にし、その地点から各軸の方向にどれだけ離れているかで表します。この方法のメリットは2つです。1つは情報量が少ないことです。平面上であれば縦方向と横方向の2つの数字、立体であればそれに奥行きを足して3つの数字でそれぞれ決まった1つの点を表すことが出来ます。Scratchは平面なので基本的に2つの数字を使って場所を指定していきます。少し難しい計算をして応用すればScratchでも立体的な表現をすることが出来ますが今は省きます。Scratchに限らず、おおよそ平面上で座標を示す時は横方向の軸をX軸、縦方向の軸をY軸と呼び、それぞれの軸方向にどれだけ移動したかをX座標、Y座標と呼びます。この数字を操ることで好きな位置から好きな方向に好きな距離を移動させることが出来るようになります。

Scratchで座標を利用する方法

実際にScratch上でどのように座標を触っていくのかを説明していきます。まず、スプライトの表示位置を調節する時に座標を触ります。この場合、旗を押した際に表示させたい位置へ移動するようなプログラムを組みます。場所を変える、ということはつまり座標を弄るということです。これから先、何度も場所を変えたりすることがあると思いますが、場所関係の動きの場合はほぼ確実に座標を触るんだ、と理解しましょう。さて、どのようにして座標を弄るかと言いますとブロックに「X座標を~に、Y座標を~にする」というものがあります。このブロックの数字をそれぞれ指定してあげることでこの命令を実行した際にその座標の位置にスプライトが移動します。このようにScratchで座標を利用する方法はとても簡単で、ブロックに座標と書いてあるものを使うだけです。但し、ブロックが違えば動きは変わってきますのでそれぞれのブロックがどのように座標を変えるのかをしっかりと把握しなければいけません。

Scratch上での座標の基準

座標を決めるためには基準となる原点が必要になります。Scratchにももちろん原点が存在しております。原点の位置はステージの中心になります。そして各座標にも上限が存在します。その上限を超えるとステージからはみ出してしまうので基本的にこの上限値以内で各座標を触っていくことになります。その上限値ですがX座標の最大が280、Y座標お最大が180となります。また、それぞれの座標の数字ですが、X座標が大きくなれば右方向に、Y座標が大きくなれば上方向にずれていきます。ここで中心から左や下に行くにはどうすればよいか。それは先ほどとは逆のことをするので数字を小さくすればよいのです。0より小さい数字にすれば中心より左、下に指定することが出来ます。0より小さい数字とは負の数、つまりマイナスの数です。数字の手前に”ー”をつけるだけで大丈夫です。慣れるまでは計算など大変ですが、何度も触って慣れていきましょう。

2020/12/09

橿原市 Scratchプログラミングでゲームを作ろう

どんなゲームを作るか

ゲームを作るためにはまずどのような内容なのかを決めましょう。例えばアクションゲームやシューティングゲームといったジャンルからそれが縦スクロールなのか横スクロールなのか等ある程度の仕様まで決めておきます。今回は例題を設定しています。同じゲームを作ってもいいですし、流れのみ参考にしていただいても大丈夫です。ゲームの内容は、横から的が飛んできて、それをクリックすることで撃ち落とす、というものです。この際画面はスクロールせず的のみが横から流れてくるようにします。今回はこのように簡単に作れるよう様々な要素を削ってありますが、もしチャレンジするとしたらクリックしたときに弾を発射し、それが当たると撃ち落とせるようにする、的を複数種類用意しそれぞれで速さや得点を変える等、アイデア次第ではより面白い要素を追加できると思います。自分で思いつかない場合でも他の人の作品を参考にしたり、公開した後にアドバイスを求めてみたりすることでより良い作品を目指していくことが出来ます。

目標に合わせてどのような動きが必要かを確かめる

次にScratchで実際にゲームを作っていくのですが、何が必要か、どのような動きがいいのかを自分の中でしっかりと明確にしましょう。紙やテキストデータなど、文章にしてみるとより分かりやすいかと思います。今回の場合、まず必要な物は的の見た目です。そして動きですが的が一つしか来なかったら面白くないので複数出てくるようにします。出現方法ですが右端から左端へ流れるようにしましょう。クリックされたら撃ち落とされるので消えるようにします。これが的の動きになります。次に点数の動きです。スタートしたら点数は初期化しなければなりません。そし的を一つ消すたびに点数を追加していく必要があります。点数の動きはこの二つのみです。以上2つがこのゲームの基本的な動きを構成しています。なのでまずはこれらを1つずつ実現させていきます。例えば点数の動きですが、まず最初に点数を管理するための変数を作成します。そしてゲームが始まるたびにその変数を初期化させます。ゲームの開始時なので旗が押された時ブロックを用意します。そして初期化するために点数を0にするブロックを下につなげます。この時点で旗を押すたびに点数が0になるはずです。確認のために点数を~にするブロックを使って任意の数字にし、旗を押してみましょう。0になれば完成です。このように他の動きもブロックで表現し、確認していきましょう。

作成した動きを組み合わせる

動きを1つずつ作成し終えたら次はそれらを組み合わせていきます。先ほどの点数を0にする動きを的のスプライトに書き込み、その下に続けて的の初期設定をしてあげるブロックを繋げていきます。先ほどまではおそらく別々のスクリプトになっていたはずですがこれらは1つにしても問題ないはずです。もちろん、きちんと動くかチェックを忘れないようにしましょう。初期設定が終わったら次は自身のクローンを作り続けるループに入るようにします。これも別のスクリプトだったものを合体させます。このようにして動きを組み合わせて1つの大きな動きにしていきます。この時、動きを処理させる順番も重要になってきます。ループの中に初期設定を入れてしまうと動きに不具合が出てしまうはずです。このミス自体はよく起きてしまうものです。それに対していかに素早く気づけるか、が大事になってきます。なので組み合わせていく際もチェックを欠かさず行っていき、不具合が出た場合はそれの解消を最優先にしていきましょう。

とても大事な最終チェック

上記の作業を何度もこなしていくと、最終的に自分で納得のできる作品が仕上がってきます。そこで完成だと公開するのは少し気が早いです。最後の詰めとして最終チェックをしていきましょう。具体的にどのようなさぎょうをするかというと、通しで作品をプレイしていきます。その際、1週ではなく何回もしましょう。ずっと同じ動作をしてもよいですが基本的には出来る事を全てチェックします。キーやクリックの連打、何もない場所のクリック等、様々なシーンを想定してチェックします。シンプルなゲームであれば予期せぬ不具合はほとんど発生しませんが、内容が濃くなればなるほど、予想外の不具合が発生してしまうものです。実際のゲーム製作でも作品を発売する前にチェック作業を何日もかけ、何人もの手で行っていくのです。この不具合を見つけ、取り除く作業のことをデバッグと呼びます。デバッグ専門の会社が存在するほどこの作業は重要です。自分たちでしっかりと不具合を見つけ、修正していきましょう。

ゲームが完成したら

ここまで様々な作業をこなし、大変な思いをしてやっとこさ完成させたゲームですが、自分一人だけで楽しむのはもったいない、と思いませんか。Scratchでは自分の作品を様々な人に公開することが出来ます。最初は誰にも見てもらえないかもしれません。しかし自分から積極的に他の人の作品を参考にし、その都度コメントを残していくことで交流が広がるはずです。頑張って作った作品にコメントが付くとそれはもう嬉しい思いになります。このゲームのこんなところが良かった、とかここの動きが素晴らしいので参考にさせてもらいます等のコメントが付けば、そのゲーム制作は大成功だったと言えるでしょう。しかし、そういったコメントではなく否定的な意見が付くこともあります。面白くない、どこどこの動きがおかしい、不具合がある等々、これらのようなコメントが付いたとしても不安にならないでください。逆に言えばその部分を直せば良い作品になるはずなのです。完成した後でもゲーム製作は続けられます。不具合を直し、おかしい動きを修正し、より面白くなるようなアイデアをひねり出してゲームのクォリティを上げていきましょう。

2020/12/08

橿原市 一番近くのパソコン教室とオンラインレッスン

教室で習い事を受けるメリット

今まで、習い事といえば教室に通い、講師の方一人に対して複数人がレッスンを受けるか、少し高額になってくるとマンツーマンでレッスンを受ける、というのが一般的でした。教室に通う形での習い事は、講師の方と直接顔を合わせられ、何かあったときに助けてもらえる安心感がありますし、習い事によっては一般家庭では道具や環境を整えるのが難しい物でも教室に行けばそろっています。さらに同じ習い事に通う他の生徒様方との交流の機会もありますので交友の輪が広がるチャンスでもあります。習い事の種類によっては全国的な大会が開催されていたり、資格取得のための検定を受けさせてもらえるものもあります。これらは分かりやすい目標になりますので習い事を続けていけるモチベーションに繋がりますし、自分がどれ程のスキルを習得しているかの大まかな目安になります。検定を合格した、大会でいい結果を残せた、となれば自分に自信が持てますし、より上を目指す理由にもなっていくと思います。

オンラインレッスンを受けるメリット

次に、オンラインでレッスンを受けるメリットについて説明していきます。まず、移動時間が必要ありません。教室に通う場合、どれほど近くても数分は移動しなければいけませんが、オンラインレッスンの場合自宅で受けることが出来、移動する必要がなくなります。なのでその空いた時間を他の趣味や習い事の予習、復習等に充てることが出来ます。また、自宅で受ける場合、いつも過ごしている場所なのでリラックスしてレッスンを受講できます。飲食も基本的には自宅のルールに従いますので教室程気を遣わずに行うことが出来ます。教室で受講する場合、環境が完全に整えられているので自宅で同じことが出来ない場合がありますが、オンラインレッスンの場合、そもそも自宅などの実際の環境でレッスンを受けることが出来ます。その場で出来なかった場合、講師の方に現場での対応方法を教えてもらうことが出来ます。最後に今一番言われているメリットがコロナウィルスの感染防止です。オンラインですのでもちろん接触の可能性がありません。このメリットが最近オンラインレッスンが増えている一番の理由になります。

パソコン教室で学べる事

そんな数ある習い事ですが、その中でもパソコン教室について今回記述していきます。パソコン教室では基本的にパソコンで出来ることを幅広く教えています。例えばMicrosoftofficeのそれぞれの使い方やパソコンの各種設定の触り方、プログラミングレッスン等になります。これらは少し前まではすべて社会人の方向けが多数でした。その場合officeを使った資料作成や就職に有利なプログラミング言語検定の取得等が最終目標になります。しかし現在、子どもや初心者向けのレッスンが非常に増えています。理由としてはパソコンが非常に身近な存在になり、日常生活でも活用する人が増えたこと、義務教育期間内でのプログラミング学習が必修になったこと等が挙げられます。なので最近のパソコン教室では初心者の方から仕事に使う方まで幅広く学べるよう多数のコースを設けていることが多いです。

パソコン教室には通うべきかオンラインか

将来をどこまで見据えるかに寄りますが、パソコンに慣れたい、他の人より少し得意になりたい程度の場合や将来的にはがっつり学びたいけどパソコンの操作や設定には慣れていない場合は教室に通い、しっかりと整えられた環境で操作を憶えていくのがいいと思います。環境を整えるにはある程度操作を憶え、知識をつける必要があるため、オンラインレッスンでは最初の環境の構築の段階で躓く可能性があるためです。また、環境の構築は作業としてもあまり達成感もなく、面白くないと感じることが多いため、ここで飽きてしまう可能性もあるため、やはり少しでも操作に不安がある場合は教室にしっかりと通うことをお勧めします。逆に将来的にはプログラマーになりたい、パソコンをしっかりと使いこなしたい場合や操作にある程度慣れている、今まで教室に通っていた経験がある場合はオンラインでも問題なく受講できると思います。環境の構築は確かに少し難しいですがプログラミングを本格的に行う場合、必須のスキルになりますのでそこから教えてもらえる機会があるなら生かすべきだと思います。

近くのパソコン教室、オンラインパソコン教室

先ほど上記でも述べましたが自分の現在のスキルや目標に応じて教室に通うべきかどうかを決めるべきですが、例外的な要因もいくつかあります。例えば自分のパソコンを持っていない場合やご自宅の通信環境があまりよくない場合はオンラインレッスンの選択肢を選ぶのは大変難しいです。レッスンを受けるための準備が必要になります。教室に通う場合、移動に使う時間や費用などが掛かりますがレッスンは確実に受けることが出来ます。また、参考文献等を用意してくれている教室もありますので検索に不慣れな場合はそちらを参考にすることもできます。それに対してオンラインはやはり移動の手間がかからない点が大きいです。また、自分で調べる方法やコツなどをつかめればある程度オンラインレッスンで基礎を学び終えるとあとは自力でなんとかなります。教室では出来るけど家に変えると出来ない、という習い事にありがちな問題がオンラインレッスンでは起こりにくいのです。オンラインレッスンにすべきか、教室に通うべきかお悩みの場合は直接教室の方に連絡を取り、相談してみるのもいいでしょう。無料体験を開催している教室も多くありますので実際にレッスンを受けてみるのが一番かもしれませんね。

連絡窓口

プログラミングアカデミー;
〒634-0006 奈良県橿原市新賀町232
橋本第2ビル2階
TEL:0744-29-1043
E-mail: info@online.programming-academy.jp

公式チャンネル

ロボットの動画を上げています!!ぜひ見てね!!