メインメニューを開く

この教科について編集

高校の「情報」教科では、データの圧縮のしくみや、エラー訂正のしくみなど、もっと細かいことを勉強する。

単なるマウスの使い方とか、キーボードの使い方とか、そういうのは中学校卒業までに習っているはずという前提で、教科書は書かれている。

さて、2016年の現在では、普通科高校の情報科目には『社会と情報』『情報の科学』の2つの科目がある。

『情報の科学』のほうが、技術的に、より細かい事が説明されている。

  • 高校生の読者へ

しかし、『情報の科学』は細かいぶん、初心者には雑多な情報も多く、初心者はまず『社会と情報』から読んだほうがいいだろう。

そして、教科書は、それぞれの科目とも2回か3回か読めば、充分であろう。

  • 備考: 大人の読者へ

なお、これら検定教科書に書かれている内容のうち技術的な部分は、おおむねIT系の検定試験の「基本情報技術者試験」などの内容の初歩に相当する。

なので、もし大人がこのページを読んでるなら、それら検定試験の市販の解説書の内容がすでに分かっているならば、ITリテラシーの自学自習の目的としては、わざわざ検定教科書を買う必要はない。

勉強法編集

この教科にかぎらず、基礎的なコンピュータのリテラシーについて自習する場合は、しばらくは検定教科書を中心に読んで勉強せざるを得ないだろう。けっしてネットの情報ではなく、教科書や専門書を読むこと。

書店に行っても、手頃なコンピューターの入門書が置いてない場合が多いだろう。なので、教科書取り扱い店で、高校の情報科目の検定教科書を注文する必要があるかもしれない。

※ 検定教科書の購入方法については、記事『小学校・中学校・高等学校の学習/検定教科書の購入方法』を参考のこと。

書店によっては、Windowsの使い方の書籍とか、そういう特定の商品の使い方の操作マニュアル的な入門書しか、その書店に置いてない場合がある。

しかし、単なる操作マニュアル本では、せっかく読んでも、たいしてコンピュータのリテラシーが身につかない。

あるいは、たとえ「C言語入門」みたいにプログラミング入門書が書店に置いてあっても、それらは専門的であり高校レベルの初心者の勉強の役には立たない。


「基本情報技術者試験」の試験対策本が書店に置いてあっても、中学を卒業したばかりの初心者には、その対策本はレベルを合わせていない。

しかし検定教科書を除けば、「基本情報技術者試験」対策本以外に、他に高校生向けのコンピューターリテラシーの書籍が書店に売ってないのが現状なので、どうしても情報科の検定教科書が購入できない場合には、「基本情報技術者試験」の参考書を買って読むのが次善の策であろう。


なお、ネットでなく書籍で勉強せよとアドバイスする理由は、

  • 技術的な説明のために画像を使わないと説明しずらい事がかなり多く、そのような説明のための画像が、書籍なら充実してるから。

たとえば、画像のデジタル化のしくみについての説明画像なんて、画像をつかわずに言葉だけで説明するのは難解である。 なんらかのソフトウェアの操作方法の説明についても、そのソフトウェアの画面の画像無しでは、説明は困難である。

じっさいに検定教科書を読むと、1つのページあたり、2つくらいの画像が載っていたりと、かなり画像が多い。

ネットの無料の教材なんて、画像がほとんど無いのが通常であろう。画像をつくる作業には、けっこう手間が掛かるのである。


検定教科書の内容編集

『社会と情報』の内容編集

『社会と情報』では、以下の話題を説明している。

文字の符号化のJISコードやASCIIコード、Unicodeなどの紹介
音のサンプリングを例に標本化定理を紹介
情報量のビットやバイトの概念
2進数や16進数
色のRGBとCMYKについて。
画像のベクター画像やラスター画像のちがい
データの圧縮や解凍
エラー訂正のしくみ。いわゆるパリティビットのこと。
暗号化の原理をシーザー暗号を例にして説明。鍵暗号についても紹介。しかし、素因数分解などを利用した数学的な暗号については紹介せず。
電子署名やファイアウォール、SSLなど、セキュリティに関する技術や用語など。
著作権法など。
フィッシング詐欺などサイバー犯罪の手口。
表計算ソフトの使用法について、巻末などで紹介。

『情報の科学』の内容編集

『情報の科学』では、さらに以下の話題を説明している。

フローチャートの概念
CPUのレジスタにおけるREADやWRITEやADDなどの処理。(いわゆるアセンブリ言語。しかし「アセンブリ」の用語は教科書には無い。)
メールサーバのPOPやSMTPとか
IPアドレスについてはグローバルIPやプライベートIPアドレスについて
公開鍵暗号や共通鍵暗号の初歩。さらに発展項目としてRSA暗号の原理が紹介されている。
検索のさいの「AND検索」や「OR検索」をベン図で説明している。(しかし「ベン図」という用語は、教科書では使ってない。)
リレーショナルデータベースを、「キー」や「レコード」や「ソート」などの用語
さらにリレーショナルデータベースの「結合」「射影」などの処理の用語も紹介。
表計算ソフトの、加法、減法や総和など、の基本的な演算のしかた。
表計算ソフトのマクロ。
統計数学の「分散」「標準偏差」などを、表計算ソフトを活用して計算する方法。
統計の結果を、円グラフや棒グラフなどで、表計算ソフトを活用して表示する方法。
JavaScriptなどスクリプト言語を例に、アルゴリズムやフローチャートなどの説明。
プログラミングの、if文やwhile文やfor文などの制御構造を、javascriptやエクセルマクロなどのコードを通して実例を紹介。
プログラミングの、「配列」機能。
HTMLについて。マークアップ言語。
WIKI(ウィキ)システム。
  • 一部の教科書
一部の教科書では、XMLを紹介。(日本文教出版)
一部の教科書では「Hello world」文を、C言語やPythonやVisualBasicやPHPやRubyの例文で、巻末にて紹介。(日本文教出版)

雑記編集

「PDCA法」とか、あまりコンピュータと関係のない話題も、これら情報科の科目の教科書では、扱われている。

まあ、検定試験などに出てくる用語だったりするので、そういう用語もせっかくだから覚えておこう。

コンビニの「POS」システムとか、社会科でも習う用語も、情報科では習います。

習わないこと編集

C言語やBASICなど、プログラミングについては、普通科の「情報」科では習っていないようです。ただし、「C言語」という名称だけなら紹介している検定教科書がありますし、組み込みソフトなどでC言語が使われる用途もある事も、検定教科書で紹介されています。

また、BASICで書かれた簡単なプログラム文は、中学校の技術科で紹介されています。

どうしてもプログラミング言語を勉強したい場合編集

なにを学ぶ?編集

高校レベルの初心者は、時間が足りないので、プログラミング言語の文法は、あまり学ばないほうがいい。なぜなら、5教科と両立して勉強できるような簡単な言語が、現代では少ないのである。

高校生は、まずは、ワープロソフトの使い方や表計算ソフトの使い方を、学校の「情報」教科の授業で練習するなど、仕事などでパソコンを必要な時に使えるようにしたほうがいいだろう。

どうしてもプログラミング言語を勉強したい場合は、BASIC(ベーシック)系統の言語のような、なるべく簡単なプログラミング言語から学ぶのが、初心者むけの解説が充実している場合が多くて良いのだが、しかし現代ではBASIC系の言語の書籍が少ない。

なので、他の言語から勉強する事になるだろう。この場合は、「C言語」(シー げんご)というプログラミング言語が、書店で初心者向けの書籍が充実しているので、勉強しやすいだろう。

高校生の独学では、ジャバ スクリプトは、勉強しなくていい編集

ほかにも、初心者むけとして有名な言語に、「JavaScript」(ジャバ スクリプト)というプログラミング言語があるが、しかし、書店にある書籍には、あまりJavaScriptの初心者むけの書籍が、それほど多くはないので、初心者はJavaScriptの解説書は、まだ買わないほうが良い。

こまったことに、タイトルで「入門 JavaScript」とか「わかるJavaScript」的な書名を主張してても、読んでみると、内容がまったく入門的でない、ダメな書籍も、「JavaScript」の解説書には、多いのである。

もちろん、なかには本当に初心者むきで分かりやすく説明できている、JavaScriptの入門書もあるだろう。しかし、初心者にそれを見抜くのは難しいので、初心者は、まだ、JavaScriptには手を出さないほうが良い。


また、JavaScriptの入門書の場合、まったくのプログラミング初心者にあわせた説明をしている書籍が、2017年の現状では、すくない。 JavaScriptの入門書では、C言語やBASICなどの、ほかの言語を既に一冊は学んだ人を対象にして説明している書籍が、多い。

JavaScriptの入門書では、インターネット関連の、高校レベルよりも上の技術知識を必要としている書籍も、JavaScriptの入門書では多い。


なお、JavaScriptを学ぶ前に、HTMLをある程度は習得しておく必要がある。どのみち、ほとんどの高校生は、あまりHTMLを習得できては、いない。なので、まだ、それほど あせらずに、JavaScriptには入門しなくても、大丈夫だろう。


なお、JavaScript と Java(ジャバ) とは、異なるプログラミング言語である。 混同しないように注意しよう。「Java」の文法は、まったく初心者むきではない。「Java」の理解に、かなり高度な知識が必要であり、初学者には、まったく手に負えない。


高校生が、もし学校でJavaScriptを習えるのなら、その機会を利用したほうが良いだろう。(検定教科書によっては、JavaScriptを紹介している。)

しかし、独学の場合は、残念ながら、書店には、ろくな入門書が、JavaScriptでは、そろってない。なので、2017年から当面は、高校生は、JavaScriptの入門書を買わないほうがいい。

入門する言語の決め方編集

さて、けっして、「C言語」と混同して、いきなり「C++」(シー プラス プラス)という言語からは勉強しないように、気をつけよう。「C++」という言語の入門書をじっさいに読むと気づくのだが、ほとんどのC++の入門書ではC言語の知識を前提として説明する場合が多いので、まだC言語を知らない人がC++の入門書を読んでも、まったく理解できない。

他の言語では、いきなり「PHP」(ピー エイチ ピー)とかのサーバー用プログラミング言語の入門書を読んでも、そもそもサーバーの知識がないと、何もわからない。また、そもそもPHPの文法が、C言語やC++をまねているという事情もあり、初心者がPHPを読んでも無駄である。

このように、ある程度、他の技術の予備知識を必要とする言語もある。

入門書の探し方編集

さて、プログラミング言語の初心者向けの入門書をさがすコツは、書籍タイトルが「C言語入門」とか「はじめてのC言語」とか「やさしいC言語」みたいに、タイトルに「入門」や「はじめて」とか「やさしい」とかの語句が書いてある本を選ぶ必要がある。

それ以外の本は、すでに初心者向けの入門書を買った人が、さらに知識を深めるための専門書であり、けっして初心者向けではない。

たとえば、「C言語完全マニュアル」みたいなタイトルの本は、すでに「C言語入門」とかを読んだ人で、さらに仕事でC言語を使う人が、細かい知識を確認するための書籍なので、その書籍の記述が羅列的であり、まったく初心者向けには噛み砕いてくれないので、なので初心者が読んでも理解できない。

書店では、プログラミング言語の初心者向けの書籍と、専門家向けの書籍が、同じ棚(たな)にあったりして、すぐ隣りに置いてあったりするので、気をつけよう

5教科の書籍が高校レベルと大学レベルの書籍をちがう棚に分けてもらえる状況とは、プログラミング言語の書店での状況は違っている。いちいちプログラミング入門書の書籍と、専門家向けのの書籍とを、書店は別々の棚に分けてくれない。


なお、

いくつかのプログラミング言語で、「入門」と名乗る本を読んでみると、書籍の冒頭から、入門者には分からない内容の記述の大量な、自称「入門書」もある。

逆にいうと、1冊の本で、「すべてが わかる!」とか「高度なことまで分かる」とか入門書のくせに主張してる本は、入門レベルを越えた難解な記述ばかりのダメな書籍なので、高校生は読まないほうが良い。

こまったことに、書店のプログラミング言語コーナーにある、プログラム言語の解説書には、プログラム経験ありの大人が読んでさえ、なかなか分からない記述なのに、タイトルに「わかる」とか「やさしい」とか名付けている、自称「入門」書も、プログラム言語の解説書には多い。

また、こまったことに、タイトルと内容の一致しない本もある。


なお、Amazonなどでのプログラム言語の入門書の読者感想欄を見ると、どう見ても、「本当に読んだのか?」と疑う本も多い。どうやら、出版社からの宣伝依頼をうけた業者が、宣伝のために、一般読者をよそおって、Amazonなどに投稿しているようである。


入門書の読み方編集

さて、1冊の(あるプログラミング言語の)入門書で、そのプログラミング言語のすべてを理解しきるのは、あきらめるべきである。


さてさて、プログラムの勉強では、パソコンを用意して、そのプログラム言語のプログラム実行環境を用意して、じっさいにプログラム文を入力して動作させてみるのがいいだろう。

パソコンを所有してない人は、実行環境を用意できないので、現時点ではプログラミングの勉強は、あきらめたほうが良い

なお、プログラミングの各コマンド(例えばある言語では「print」で出力表示とか)は暗記する必要は無い。コマンド名は、必要な時に書籍などで調べればいい。

どっちみち、細かい文法やコマンド名をせっかく丸暗記しても、年月が過ぎると、規格変更などによって文法の細部が変わっていくので、丸暗記は無駄になる。

※ 範囲外: 初心者のためのプログラミングの練習方法編集

(※ 本節の内容は、高校の範囲を越えてるので、練習しなくて良いです。高校卒業後の進学後などに、参考になれば、さいわいです。)

まず、上述したようにパソコンが必要です。

では、どうやって実際にプログラミング言語を勉強するかというと、まず、(プログラミング言語の)入門書に書いてあるコードを、最初のコードが出て来るまで読み進めて、実際にパソコンに入力してみて、プログラムを実行するという手順になります。

この最初のコードを入力するときは、とりあえず、何も考えずに、入力してみてください。そして、書籍の指示にしたがった方法で、プログラムの書かれたファイルを実行してみてください。

たとえば、ある入門書のさいしょのコードで(※ 下記のコードの例は「C++」言語の場合)、

#include <iostream>
using namespace std;

int main()
{
cout << "ようこそ!\n";
cout << "プログラミングの世界へ!\n";
}

というのがあれば、それをそのままパソコンに入力して、プログラムを実行してみます。

まず、エラーがなく正常に実行できるようになるまで、コードを修正します。

ちなみに、これを実行すると、

ようこそ!
プログラミングの世界へ!

というふうに2行で表示されます。


しかし、ほとんどの初心者は、たいてい、なんらかの入力ミスをしている事が多く、そのため、ファイルを実行してもエラーが起きてしまうので、プログラムは(実行されずに)中断されます。

エラーがあれば、書籍に書かれたコードをよく見ながら、コードを入力し直します。

もし、エラーせずにプログラムを実行できたのなら、すでにアナタは、入力したそのコードの仕組みを、だいたい分かっていますので、本wikibooksで説明するような、次の作業に移ります。

「次の作業」とは、もし入力したコードが、エラーもなくプログラムが正常に実行されれば、

今度は、さきひど入力したコードをコピーして別のファイルをつくり、数分ほど、さきほど入力したコード中にある「ようこそ!」などの文章などを、自分で思うままに書き換えてみてください。(←これが重要です!!)

(書き換え前の書籍どおりのコードと、書き換え後の自分流のコードの2種類を、パソコンに保管しておく。)

上記のコードの場合なら、たとえば「\n」を省略してみたら、どうなるかとかを、自分流コードで試してみるのです。なお「\n」とは「改行する」という意味です。

じっさい、たとえばあるプログラミング言語で、さきほどのコードから「\n」を除いてみたコード

(コード)

#include <iostream>
using namespace std;

int main()
{
cout << "ようこそ!";
cout << "プログラミングの世界へ!";
}

を実行すると

(実行結果)

ようこそ!プログラミングの世界へ!

というふうに、改行されずに、1行でつづけて表示されるはずです。


あるいは、「ようこそ」を「おはよう」に書き換えてみて、

(コード)

#include <iostream>
using namespace std;

int main()
{
cout << "おはよう!";
cout << "プログラミングの世界へ!";
}


を実行すると

(実行結果)

おはよう!プログラミングの世界へ!

というふうに、表示が確認することを、たしかめると、良いでしょう。


いっぽう、コードの理解できない部分は、書き換える必要がありません。 たとえば

#include <iostream>
using namespace std;

int main()

が何なのかを理解できないだろうし、ここは、まだ書き換えなくても良いのです。


このように、 まずは書籍のコードを書き写して実行してみたあとに、正常に実行できるようになったら、

今度は、自分のコードを理解できる範囲で書き換えてみて、自分の理解を確かめください。

なぜ、わざわざ自分なりに書き換えてみてまで、自分の理解を確かめる必要があるのかというと、その理由は、将来、プログラミングの入力エラーを自分が起こしたときに原因を特定できるようにするために、今のうちに、いろいろと試してみて、どこを書き換えると、どう結果が変わるかを、確認しておく必要があるのです。

また、大学などに進学してプログラミング科目を習う場合の定期テストでも、定期テストでは授業であつかったコードがそのまま出題される事はないので、自分でコードを書き換えてみて確かめるようにしないと、そのプログラミング科目の定期テストの問題が解けずに不合格になってしまう可能性もあります。

なお、大学の場合、その授業の毎時間のさいごに、その授業のコードを提出する場合があるので、授業用のコードは書き換えずに、授業用コードを自分流コードにコピーペーストして、その自分流コードを書き換えてみて試行錯誤しましょう。


プログラミングの学習では、正解のコードを、覚えることは、けっして、学習の目的ではありません。そもそもコードは、無限のパターンがあるので、覚えようと思っても不可能です。

プログラミングの学習は、もしもミスのあるコードを書いてしまった場合に、そのミスを探し当てられるようになるために試行錯誤することが、学習の目的なのです。

さて、書籍での学習で、数分ほどの書き換えによるコードの試行錯誤が終わったら、書籍をそのまま次のページへと読み進んでください。


そして、また新しいコードが出てきたら、同様に入力してプログラムを実行してみます。なお、新しいコードの入力の際、たいていは、前のページで入力した前回のコードに近いコードなので、前回のコードをコピーペーストして、それをもとに、いまのページの新コードへと書き換えても、かまいません。

いちいち、まったくゼロから新コードを書き始める必要は、ありません。

けっして「コピーペーストをして入力作業を減らしても、技術が身に付くのだろうか?」と心配する必要はありません。なぜなら、たいていの初心者は、たとえコピーペーストをして作業を減らした場合ですら、入力ミスをしてしまうことが多く、なにがしかのエラーを起こしてしまうからです。

裏をかえせば、コピーペーストをして入力作業を減らしてもエラーを起こさずに正常にプログラムを実行できるようなコードをすぐに書けるなら、すでにアナタは、そのページの新コードが、だいたい分かっているのです。

ともかく、コードを実行してみてエラーが出ても、エラーがなくなるまで直しましょう。もし、エラーがなく正常にプログラムが実行されたら、また自分流に書き換えを数分ほどしてみて、試行錯誤します。

それが終わったら、次のページへと読み進めます。

高校生の範囲なら、このような練習方法でも、充分です。

もし高校でJavaScriptや(プログラミング言語ではないが)HTMLなどを習う場合の練習方法も、だいたい、このような感じで練習すれば、高校生なら充分でしょう。