はじめよう
1週間でコーディングを学ぼう
Swift Playgrounds
Learn real coding the fun way
コーディングに興味があるなら、「Swift Playgrounds」で最初の一歩を踏み出してみませんか。このMac用Appでは、インタラクティブなパズルを解きながら、コーディングの基礎を楽しく学べます。
「コードを学ぼう1」という、最初の遊び場(プレイグラウンド)を開いたら、毎日1つずつ、7つのチャプタに取り組みましょう。1週間が過ぎる頃には、デベロッパになるとはどういうことか、だいぶわかってくるはずです。
ここでは、「Swift Playgrounds」で学べることを紹介します。
1日目:コマンド
「はじめに」でのチャプタの紹介が終わると、「Swift Playgrounds」のウインドウには、2つの画面が並んで表示されます。右側はゲームの世界で、ここにはByte(バイト)という、かわいい1つ目の生き物が暮らしています。左側はテキストエリアで、ここにSwiftコマンドを入力してByteを動かします。
あなたの目標はマップ内のByteを動かして、宝石を集めたり、抜け穴に入ったり、スイッチを入れたりすることです。それには正しい順番で、正しいコマンドを打ち込んでいく必要があります。そしてそれこそが、実はコーディングのすべてなのです。
「moveForward()」とタイプして、初めてのSwiftコマンドを入力しましょう。「コードを実行」をクリックすると、Byteが前に進みます。これで最初のプログラムが書けましたね。おめでとうございます!
2日目:関数
このチャプタでは、一連のコマンドをまとめて「関数」を作る方法を学びます。関数を使うとコードがシンプルになり、手間が省けます。例えば、Byteに右を向かせるために、「turnLeft()」と3回入力し、左90度のターンを3回させる代わりに、それらの動作をまとめた「turnRight()」という関数を作れば、コマンドは1つで済みます。
また、大きな問題を小さなステップに分ける方法も学びましょう。「分解」と呼ばれるプロセスで、関数を使うことですばやく解決できます。
3日目:forループ
新しいツールを学ぶ時です。「ループ」を使って、Byteがコマンドを実行する回数を指定しましょう。こうしたループは、Byteがより複雑なステージを歩き回る際に役に立ちます。
あっさりと解けるパズルもありますが、大抵はあれこれ試行錯誤しながら、コードのミスを修正しないといけません。例えば、Byteが壁にぶつかったり、崖から落ちそうになるなら、「moveForward()」コマンドが多いか、ループの回数が間違っていることに気づくでしょう。
ここで便利なヒントを一つ紹介しましょう。「タイマー」のアイコンをクリックすると、プログラムの実行速度を変えられるので、コードの間違いを見つけやすくなります。一番遅いモードでは、Byteの動きに合わせて、対応するコードがハイライトされます。一番速いモードは、プログラムが正しく機能するか、すばやくチェックしたい時に重宝します。
4日目:条件分岐コード
次のテーマは、Byteを条件に応じて動かす、「条件分岐コード」です。例えば、Byteが宝石の下に立っている時だけ、宝石を回収するように指示できます。
せっかく書いた条件分岐コードが、思ったように動かないこともあるでしょう。指示に従っているのに失敗するByteは、口をへの字にして悲しそうです。何度も壁に突っ込むByteは、見ていると健気でかわいらしいかもしれませんが、やはりしっかりと導いてあげることが大切です。
5日目:論理演算子
次は論理演算について学びましょう。論理演算を用いることで、Byteは様々な状況の組み合わせに反応できるようになります。「isOnGem」といった特定の条件式には、それが満たされるか否かに応じて、true(真)かfalse(偽)か、いずれかの結果が定まります。条件がtrueならByteにある行動をさせ、falseなら別の行動をさせることができます。
論理演算がわかると、コーディング技術は飛躍的に上がります。今までは明確な指示に従うだけだったByteが、自分で判断を下せるようになるのです。もちろん、そうした判断も、あなたがプログラムした結果なのですが、Byteもあなたも、少しずつ成長していることを実感できるのではないでしょうか。
6日目:whileループ
そろそろ普段使っているAppで、これまで学んできたコマンドがどう使われているのか、見えてきたのではないでしょうか。ことによると、あなたはコードで考えるようになっているかもしれません。例えば、Appを初めて開いた時だけチュートリアルが表示されるように、デベロッパは条件をつけて「displayTutorial()」というコード書いているのでは、と想像できるようになるでしょう。
「whileループ」で解決できるのは、これとは逆の問題です。条件が満たされ、条件式の結果がtrue(真)である間はずっと、コマンドが繰り返し実行されます。例えば、左右に曲がるべき道が「ない」間だけ、Byteをまっすぐ歩かせることができます。プログラミングとは、ある意味では、すべてを文字通り受け止めてしまう子どもに話しかけるようなものです。「壁の前では止まりなさい」と伝えない限り、Byteは喜んで壁に向かって行ってしまうのです。
7日目:アルゴリズム
おめでとうございます、ついに7日目までやってきました! 今日のレッスンは、これまで学んできたことの総集編です。複数のコマンドをまとめて、明確な条件分岐の指示を作成し、コンピュータに実行させましょう。実はあなたは、自分では気づかなかったかもしれませんが、もう何日も、こうした「アルゴリズム」を書いていたのです。
より複雑な状況に対処できるよう、コマンドを微調整する方法も学びましょう。例えば、Byteが複数のやり方でタスクを完了できる場合、どうやって一番効率のよいやり方を決めればよいでしょうか。
学ぶべきことはまだまだたくさんありますが、ここまで楽しく学べたあなたなら、これからも学習を続けていけるはずです。