CS-第1章 コンピュータサイエンスってなんだろう?
【CS01-01】第1章ー第1話 コンピュータサイエンスで何を学ぶか?
これから全10章に渡って「コンピュータ・サイエンス」の基本をFabshop流に勉強していきます。今回がコンピュータサイエンスの授業の第1回目という事になります。
この章を読む前に、より理解を深めたい方は第0章の「コンピュータサイエンスを学ぶ前に」をお読みいただくとさらに良いと思います。
今回学習する「コンピュータサイエンス」は米国の小学生のコンピュータサイエンスで行われている授業のカリキュラムに、ものづくりの要素もさらに付け加えてFabshopならではのカリキュラムになっています。内容も小学生や中学生、または彼らの指導に当たる人向けに作られています。
いまいちコンピュータを理解していない人やもう一度正確に内容を理解しなおそうという方にお勧めな内容になっています。
コンピュータ・サイエンスでは何を学ぶのか?
今の時代、コンピュータは至る所にあります。スマートフォンもコンピュータです。家電品もインターネットに接続されるようになったり、コンピュータは今、至る所に入っています。でも、私たちの生活の中ではあまり意識していません。コンピュータは、意識させないようにこっそりと働いています。
つまり、コンピュータを日常的に利用しています。
でも、自分がコンピュータを積極的に利用して何かを制作したり、または何かをするときの手助けとして使うには少しスキルが必要です。
コンピュータが日本で一般に広まりはじめたのは2000年ごろです。インターネットの契約者数も日々増加しました。平成に生まれた子どもたちは、物心ついたときにはコンピュータやインターネットが日常的にある状況です。彼らは何も学ぶ前から、すんなりとコンピュータなどのデジタル製品を使う事ができるため「デジタルネイティブ」なんて呼ばれたこともありました。
今の時代のコンピュータは先にも述べた通り至る所で動作していて、意識しないでも使えるような簡単なものが多いから誰でも使えるようになっています。80年代や90年代にコンピュータを仕事で使った経験がある人は無機質な黒い画面に白い文字が表示されているだけで「むずかしい」とか「苦手」というイメージが植えついてしまったかもしれません。この時はきっと操作の手順を覚えるだけで、コンピュータがどういうものなのかを理解しないまま仕事としてこなしていたのかもしれません。
決まった操作が自動化されたものを使うのはとても簡単ですが、自分の為にコンピュータを働かせたり、自分がコントロールして自分の思うような作品を作ったりするにはコンピュータの仕組みをしっかり理解していく必要があります。
コンピュータサイエンスでは、コンピュータが動作する仕組みやコンピュータをどのように活用していくかを基礎から学ぶことでコンピュータの性格を知り、コンピュータとうまく付き合っていくための基礎を学びます。
プログラミングはコンピュータサイエンスでも重要な部分
コンピュータサイエンスを学ぶときに欠かせないのがプログラミングについての知識です。プログラミングとは、コンピュータにやってほしい命令をたくさん集めて1つの機能としてまとめたものをつくる作業の事を言います。つまりプログラムを作る作業をプログラミングといいます。
このプログラミングという作業は、写真に表示したように、ソースコードと呼ばれる文章のようなものをプログラムの書き方の作法に則って書いていきます。コンピュータには1から10まですべての動作を教えなければなりません。このプログラムを書くときには、自分がコンピュータにさせたい事をどのようにして達成させるかを1つ1つ考えていかないといけません。当たり前のような動作もすべて書きだしていくのです。
例えば、図のように2台のロボットがあって、左のロボが持っているオレンジジュースをもう一台のコンピュータに手渡すプログラムはどのように考えれば良いでしょうか?
この例では1つ1つのロボットにそれぞれ命令を与えておかないといけません。
「このオレンジジュースを右側のロボットに届けて!」という命令だけではロボットはどうしていいかわかりません。もっと細かく指示を与えなければなりませんが、この際にこのロボットがどのような性能をもっていて、どのように動くかなどのハードウェアとしての要素も理解しておかないといけません。
論理的思考が身につくプログラミング
プログラミングを学ぶことはコンピュータの動作全体を学ぶことにもつながっていきます。このプログラミングはロボットの例でいえば、その手順や必要な環境、必要な条件など様々なこと「思考」しなければなりません。
近年、小学校などへプログラミングが導入されるのは、決してパソコンが上手に使えるようになるためではなくて、この「論理的思考」を身につけるためです。これはコンピュータの世界だけでなく、日常の生活や仕事の中でも必要なスキルです。もちろんFabshopがすすめているパーソナルファブリケーションの世界でも必要不可欠な考え方です。
このプログラミングについての詳しくは、後の章でしっかりご紹介していきますが、ここではコンピュータサイエンスを学ぶ上でプログラミングは欠かせないものであるという事を理解しておきましょう。そして、それが今後コンピュータと付き合う中で必要な論理的思考を身につけるのに必要ふかけつなものの1つになります。
プログラミング言語
プログラムを組む際には様々な「言語」があります。世界中に様々な文化や言葉があるように、プログラムの世界にも様々な言葉があります。日本語が島国日本の中の文化の中で育まれてきたように、プログラムの言語も、コンピュータの世界の中の様々なニーズに合わせて発展してきているといえます。
どのプログラミング言語から始めたらよいの?とよく聞かれますが、プログラミング言語で重要なのはその「考え方」の部分で、言語はどれか1つから始めて、必要に応じて変更していく事は可能です。特に目的もなくプログラミングを始めたい人にとっては最近ではPythonなどが人気をあつめています。文法も比較的優しく、実行環境もすぐにそろいます。
現在以下のようなプログラミング言語が良く使われています。他にもたくさんありますが、代表的なモノをここでは紹介しています。
デジタル化に向かう世界
時代はますますデジタル化されてきています。自動車も自動運転の時代に突入し、ドローンや宇宙ロケット、情報端末などあらゆるものが進化し、今までアナログだったものもどんどんデジタル化されコンピュータが搭載されていきます。
コンピュータサイエンスはこういった世界をしっかりと生き抜くために必要な基本知識になります。第1回目は全般的なコンピュータサイエンスの世界を紹介しましたが、今後章が進むにつれてより具体的な情報が身についていきます。
Fabshopではものづくりに必要なよりコンピュータの根源となる電気や電波の知識も交えながら話が進みます。
次回は「【CS01-02】第一章、第二話コンピューティングの歴史」です。