マナティ

大人のためのやさしいプログラミング教室体験記

第1回 はじめてのプログラミング教室

この連載では、プログラミングの経験が全くない方でもわかるように、プログラミングの学び方を説明していきます。
仕事でプログラミングをどうしても覚える必要がある方、最近流行りのプログラムに興味はあるけど何をするものか全くわからない方、近い将来必須科目になるプログラムを子供に習わせたいけど親である自分がプログラムが何なのかわからなくて不安な方など、そんな方でも気軽に読んでいただける連載です。
みなさんもプログラム初心者のMさんと一緒にプログラミングに触れてみてください。

さて、本連載の主人公であるMさんが、上司と何か話しています。Mさんは会社で突然システム開発の部署に異動になってしまい、その上、上司にプログラミングを命じられて困っているようです。

 

 

●突然、プログラミングをやることに…!?

OL_08-75x117.png
無理、無理、無理、無理。不可能です!
社内で必要と言われても…無理なんです。

プログラミングなんて私には難しすぎます。
お断りさせていただいていいですか?
 
syacho-75x82.png
そういわれても、
もう決まったことだしねぇ。
わが社としても、Mさんにやってもらうしかないんだよ。
 
OL_07-75x117.png
えー、そんな!
無理です。本当です。無理なんです!
 
syacho-75x82.png
そうだ!僕の知り合いが、プログラミング教室をやっていたな。
こどもから大人まで、プログラミングが好きになるって言ってたなー。
ここに行ってみたら?
きっとプログラミングが好きになるかもしれないよ。
それでもダメだったら…、その時は仕方がないね。
 
OL_07-75x117.png
え?ここに、行けば変わる?
わかりました。そこに行ってもダメだったらあきらめてくださるんですね。

わかりました。それなら、行ってまいります!
 

というわけで、Mさんは、泣く泣くプログラミング教室に行くことになりました。

●はじめてのプログラミング教室

ai_san03-75x85.png
こんにちは、Mさん。こちらこそよろしくお願いします。
ところでMさんは、プログラミング経験はありますか?
 
OL_06-75x117.png
実は、とっても苦手なんです。
今まで何度も挑戦したのですが、挫折してきたんです。
でも、会社でシステム開発に配属されて、
どうしてもやらないといけないみたいなんです!

それで、ここに駆け込んできたんです。
こんな私でもプログラミングができるようになりますか?
 
ai_san03-75x85.png
そうですか。それは大変ですね。
でも、大丈夫ですよ。
きっとできるようになりますよ。
OL_06-75x117.png
ホントですか。
不安だなー。
ai_san01-75x85.png
とりあえず、「プログラミングゼミ」という学習用アプリをやってみましょう。
このサイトから無料でダウンロードできますよ。
https://programmingzemi.com/
今回は、あらかじめインストールしてある教室のPCを使いましょうね。
はいっ、この画面ですよー。
 

pic1.png

OL_11-75x117.png
これって、こども向けの教材ですよね (-_-;)
こんなので本当に大丈夫なんですか?
 
ai_san01-75x85.png
大丈夫、大丈夫。ほら、とりあえずやってみましょう。
こうやってブロックをつなげて、「そらもん」を動かしてみてください。
OL_07-75x117.png
そうですか。では、だまされたと思ってやってみますね。
 

 

 

ai_san04-75x85.png 楽しくやってるじゃないですか。
どうですか?
 
OL_04-75x117.png 自分の思い通りに動くのは楽しいけど、
まだ、プログラミングしているというより、
遊んでいるという感覚ですね。
 
ai_san01-75x85.png いいですね。その「楽しい」という感覚が大切なんです。
でも、実は楽しんでいる間に、
プログラミングの最初の基礎がすでに身に付いているんですよ!
 
OL_03-75x117.png えっ。まだ何も分かってないんですけど。
 

●「順次処理」ってなあに?

ai_san03-75x85.png 今、ブロックを順番につなぎましたね。
これが「順次処理」という処理の仕方なんです。
 
OL_03-75x117.png 順次処理?
 
ai_san03-75x85.png そう、順次処理。
Mさんは、スマホを操作するとき、
使いたいアプリのアイコンをタップしますね。
 
OL_01-75x117.png はい。
ai_san03-75x85.png 同じアイコンをタップしたとき、いつも同じ動作を期待しますよね。
 
OL_01-75x117.png そりゃそうですね。
 
ai_san03-75x85.png もし、同じアイコンをタップしても、毎回違う動作をしたらどうですか?
 
OL_10-75x117.png それは困ります!
 
ai_san03-75x85.png そうですよね。
では、アイコンをタップしたときに、いつも同じ動作をするように、
プログラマーは何をしていると思いますか?
 
OL_03-75x117.png その動作をあらかじめ書いておくんですか?
 
ai_san01-75x85.png その通りです。
そして、動作は、順番に記述する必要がありますね。
具体的には
「アイコンがタップされたら、アプリを起動する」
という順番で記述されているんですね。
それが「順次処理」なんです。
 
OL_01-75x117.png なるほど。
 
ai_san03-75x85.png 今回は、キャラの動かし方を順番に決めましたが、
実際のプログラミングでは、PCやスマホの動かし方を順番に決めておくんです。
順番を間違うと、とんでもないことになるんですよ。
 
OL_11-75x117.png そうなんですか。
でも、あまりピンとこないなー。
 
ai_san12-75x85.png そうだなー、例えば…、
スマホで、銀行のアプリを使ったことはありますか?
 
OL_01-75x117.png はい、いつも使ってます。
 
ai_san06-75x85.png アプリを起動したとき、
どんな順番でアプリが動くか説明してもらってもいいですか?
 
OL_05-75x117.png ログイン時にアカウントとパスワードを求められます。
それから、残高照会や振り込みができるようになりますね。
 
ai_san06-75x85.png そですよね。でも、もし、あるとき順番が変わって、
パスワードが求められる前に振り込みができる画面になったとしたらどうですか?
 
OL_05-75x117.png あっ。
パスワードを知らない誰かに、操作されてしまう可能性がありますね。
確かに、順番は大切ですね。
 
ai_san01-75x85.png そうなんです。
もちろん、銀行アプリには、もっと裏でたくさんの動作をしていますが、
基本になるのは「順次処理」です。
会社で使うプログラミング言語でも、この順次処理をマスターして、
プログラムの流れ(フロー)をしっかり組み立てることが大切になります。
 
OL_05-75x117.png 分かりました。
 

●プログラミングの考え方はどんな言語でも同じ

ai_san03-75x85.png 今回使っている「プログラミングゼミ」はプログラムを英語などの文字ではなく、
視覚的なブロックでプログラムするので、ビジュアルプログラミングと呼ばれています。
このビジュアルプログラミングでも、
会社で使っているJavaやPythonなどのテキストプログラミング言語でも、
考え方の基本は同じです。
ですから、まず、「プログラミングゼミ」で、
プログラミングの基礎と枠組みを学びましょう。
 
OL_04-75x117.png 大切なのは分かりました。
でも、こんなこども用のアプリで勉強することで、
本当に会社で使っているテキストプログラミング言語まで使いこなすことができるんですか?
 
ai_san03-75x85.png いい質問ですね。
もちろん、それぞれの言語の文法や用語は学ぶ必要がありますが、
根底に流れる論理的思考力は、プログラミングゼミで十分身につくんですよ。
言語よりも、プログラミングの枠組みを理解することが大事なんですね!

例えば、プログラミングゼミで、こんな名簿入力プログラムも可能ですよ。
これはユーザーが見る画面ですね。
 

pic2.png

ai_san03-75x85.png ちなみに、実際のプログラムは、こんなふうになってますよ。
 

pic3.png

pic4.png

OL_03-75x117.png へぇーっ。こんなものまでできるんですねー。
何か意外ですね。
そして、プログラムも、そんなに複雑ではないですね。
なんか、やる気が湧いてきました。
 
ai_san03-75x85.png それは良かった。何か、他に聞きたいことはありますか?
 
OL_05-75x117.png うーん。順次処理以外に、大切な枠組みはありますか?
 
ai_san03-75x85.png プログラミングの大枠は、「順次処理」、「繰り返し」、「条件分岐」です。
そのほかに使うツールが「メッセージ」、「引数」、「変数」などです。
あと、データの入出力なども必要ですね。
次号以降の記事ではこの内容が掲載されますよ。
 
OL_10-75x117.png そんなに覚えないといけないんですね。
なんか大変そう。
 
ai_san01-75x85.png そんな顔しないで。
大丈夫ですよ。
ほら、プログラミングゼミには、
それらすべてが簡単に使えるように用意されていますから。
 

pic5.png

OL_01-75x117.png へぇー。
これなら楽しく学べそうですね。
 
ai_san01-75x85.png そう思いますよ。
プログラミング言語は、これからどんどん変化しながら進化し続けると思います。
だからこそ、一つのプログラミング言語にこだわることなく、
プログラミング全体の枠組みをこの「プログラミングゼミ」で学ぶのは、
非常に大切なことなんです。
プログラミング的な考え方を身に着けて、
どんな時代になっても対応できるようになるのがいいと思います。
では、これから実際にやってみましょうか?
 
OL_02-75x117.png はいっ!


Mさんは少しプログラミングに対する抵抗感がなくなってきたようですね。
今回は順次処理というプログラミングの一番基本的な書き方を学びました。
次号ではパズルゲームで奥深いプログラミングを学びます。
Mさんがどんなふうに成長していくか、どうぞ楽しみにしていてください。

著者プロフィール

特定非営利活動法人 ロジカ・アカデミー 理事長 関 愛(著者)
中学生の頃からプログラミングを独学し,18歳の時に北海道の田舎町でシステムエンジニアとして起業。19歳で情報処理推進機構(IPA)から「天才プログラマー/スーパークリエータ」の認定を受ける。23歳の時に新入社員研修講師として活動を開始し,Yahoo! JAPAN,UFJ銀行,日本生命をはじめとする大手企業で1,000名以上の現役プログラマーを育成してきた。33歳で特定非営利活動法人ロジカ・アカデミーを設立し,理事長に就任。
現在は「すべての人に生きる力を授けるプログラミング教育」をコンセプトとした「ロジカ式」教材の開発を指揮する傍ら,プログラミング教育の普及と講師育成を中心とした活動に携わっている。
著者ホームページ:https://logica.academy