せっかくだから、プログラミングを始めてみよう
先日、iPad第8世代(32GBモデル)を手に入れました。かねてから気になっていた apple の swift playgrounds で、swift というiOSや、iPad OS・ mac OS用のプログラミング言語を勉強しようと思っています。拙いところもあると思いますが、暖かい目で見ていただければと思います。ちなみに、私が経験している言語はBASIC(VBではないです)・Z80マシン語ぐらいです。プログラミングの入り口の”Hello world!”が書けるのは、C・COBOL・FORTRANぐらいの化石です。
こんにちは、世界!(Hello world!)
プログラミングの初歩の初歩としておそらく世界一有名な、だいたいのプログラミング言語の入門書に書かれている”Hello world”というプログラムがあります。”Hello world”という文字を画面に表示するだけの、非常に単純なプログラムです。
BASICだと
10 PRINT”Hello world”
20 END
C言語だと
#include <stdio.h>
void main (void) {
printf(“Hello world\n”);
}
FORTRANだと
program hello
print * , ‘hello world’
end program hello
HTMLだと
<html>
<head>
</head>
<body>
Hello world
</body>
</html>
同じ処理をするのにもぜんぜん書き方が違うことがわかります。
一つの言語でいいと思うかもしれませんが、それぞれの言語で得意分野が違います。この中で機械語(機械が実行できるコード)に一番近いと言われているのはC言語ですし、BASIC言語は人が話す言葉に近い言語と言われています。また、FORTRANは科学技術計算用に開発された言語です。HTMLは、WEBページ作成用の言語になります。
Swift言語と Swift playgrounds
今回、私が勉強していこうと思っている言語は、iOS・iPad・macOS開発用のApple社製の言語 “Swift“ です。つまり、iPhone・iPad などのアプリを開発できる言語です。
また、Appleから無償で“Swift playgrounds“というアプリが提供されており、初心者でもゲーム感覚でプログラミングの基礎から覚えることができます。
キャラクターに命令を与えて動かし、目的を達成させることにより、プログラミングに必要な考え方を養う基礎的なものから、複雑な機能が利用できる実用的なものまで、幅広くレッスンを受けることができます。
私が利用した感じでは、小学生でも利用出来るぐらいのものではないかと思います。ただ、現在プログラミング学習の主流である、ブロックをつなぎ合わせてプログラムを組み立てるものとは違い、実際の課題のビジュアルを見ながら、実際の Swift のコーディングをしていくことになります。コーディングといっても、ブロックをタップしていくだけで簡単に書けるので、子供でもできますし、実際のコーディングなので、コードを見て理解できるようになれることも、今までのプログラミング学習とは違う、新しい形のプログラミング学習ツールだと言えます。
最近は教育現場でも使われている
最近は、教育現場の一部でも iPad が使われ始めており、そこで Swift playgrounds が使われる事もあるそうです。学校側でも、生徒たちが自主的に問題を解決できるような配慮をしたり、また、経験の無い先生のための教員用ガイドブックが iBooks の中に無償で用意されていたり、コミュニティーも活発に活動されているようなので、徐々に広がりを見せてきているようです。
そもそも、プログラミング教育の要点が、コンピュータの利用だけでなく、状況を把握し、目的をはっきりと設定でき、順序立てて考え、実行に移すことができるようになること、わかりやすく論理的に意思を伝える事のできるコミュニケーション能力(プログラミング的思考)を養うことです。
1人1台でも、1グループ1台でも学ぶことができるのも大きな強みであり、押し付け型の教育では無い、自ら学ぶことができる教材としても大変意義のあるものと思います。
Swift playgrounds を実際に使ってみての感想
まだ初めの方しか触っていないのですが、なかなか考えられて作られていると思いました。最初は単なる命令の羅列から、同じ動作をする所を見抜き、それを1つの関数としてまとめたり、繰り返しできるところは繰り返しでまとめたり、それを今度は応用してみたりと、ゲーム感覚でプログラミングの基礎を学べるのはやっていて楽しいですし、試行錯誤を繰り返したり、「もっと簡潔に書けないか」と考えたりすることも楽しいです。
確かに、今の時代なら検索するだけで答えは出ます。しかし、試行錯誤して出た答えは、「答えと同時にできる、できない」の判断材料を与えてくれます。検索して出た答えはあくまで情報であって、実際にやって出た答えはしっかりとした答えです。その違いをしっかり認識することも大事です。
私は、これから Swift playgrounds を使ってプログラムを勉強していこうと思っています。そして、その試行錯誤の過程をまた記事にできればと思っています。一人でも多くの方が、プログラミングに興味を持っていただければ幸いです。