コンピュータ・サイエンス概論

教師と父兄のための ブログラミングとは

情報教育の推進

 

文部科学省が情報教育の推進を2020年から学習要項に組み入れ、初等、中等教育の現場にその手引きを開示しています。

その中のコンピュータ・プログラミング教育に関して学年別、単元別に事例が紹介されています。

このテキストは、教育の現場に立たれる教師の方、あるいは、地方自治体の教育委員会に従事されている方に、コンピュータ・サイエンスを広く理解し、適切な指導ができることを目的として書きました。

諸兄は、すでに、身の回りでパソコンやタブレット、スマートフォンを使い、各種集計や文書作成や、さらにプレゼンテーション資料の作成、メールを使った情報交換、その中では、情報セキュリティの機能についても熟知しているかと思われます。

また、インターネットを使った情報検索、場合によっては、クラウド・サービスを使った情報管理も行なっているのではと思います。

さらに、コンピュータ教育を受ける側も、スマートフォンやパソコンでゲームをしたり、情報検索をしたりと、より多くの時間を割いてコンピュータに接していると思われます。

このような環境にあるため、テキストの内容は、コンピュータの世界を俯瞰できること、受講者の質問にも対応できる知識レベルを盛り込みました。

 

知識レベルとしては、やや高度なレベルになりますが、ハーバード大学の無料のオンライン講座の「コンピュータ・サイエンス入門」を参考に、筆者が大学、大学院とコンピュータを専門とし、また、長きにわたり世界的規模のIT企業でコンピュータ事業に携わった経験と、退職後のApple社のiPhone/iPadのアプリケーションを企画、開発、販売している経験を生かして執筆しております。

内容については、技術の進歩も激しく、筆者の知らない世界があったり、誤解して表現されている箇所もあるかもしれませんが、読者の皆さんのご理解を賜りたいと思います。

2019年3月

オフィス・イニシアティブ

 

 佐藤 聖

「教師と父兄のためのプログラミングとは」の目次

アルゴリズム

アルゴリズム(英: algorithm [ˈælgəˌrɪðəm])とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。

「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。

コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。

 

by Wikipedia

擬似コード

例えば、アルゴリズムで紹介した例から、英単語の辞書で、Scienceという単語を探す場合、英語表記になりますが、

 0 pick up dictionary 

 1 open to middle of dictionary

 2 look at words

 3 if Science is among words

 4     call me

 5 else if Science is earlier in dictionary

 6     open to middle of left half of dictionary

 7     go back to step 2

 8 else if Sience is later in dictionary

 9     open to middle of right half of dictionary

10     go back to step 2

11 else

12     quit

 

まず最初に、上記擬似コードのピンクの単語は、動詞になっています。プログラミング的には、Functionと呼びます。

次に、 上記擬似コードのブルーの if , else If, elseは、 条件を判断します。 プログラミング的には、Conditionと呼びます。

 if, else ifに続く、 上記擬似コードのオレンジの Science is  among wordsは、「真」または「疑」の論理値を返します。 プログラミング的には、Booleanと呼びます。

最後に、 上記擬似コードのグリーンの go back to step 2は、繰り返し実行するためのコードです。 プログラミング的には、loopと呼びます。

 

どうでしょうか、プログラミングとは、あるアルゴリズムを実現するための決められた手続きである と理解できましたでしょうか。

Scratch

Scratchとは、アメリカのMIT (Massachusetts Institute of Technology)のMedia Labが開発した視覚的に使えるプログラミング言語の学習環境です。

 

Scratchは教育施設、博物館、コミュニティセンター、そして家庭といった多くの異なる場所で使用されている。例として低年齢の子供達は親や兄姉とプロジェクトを製作することが出来たり、大学生はいくつかの計算機科学入門クラス(ハーバード大の初級コンピュータクラス)でScratchを使用したりしています。