学習方法/高校情報

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動

令和三年度の時点で、『社会と情報』・『情報の科学』から『情報I』(必須)・『情報II』(選択)への移行途中で先行実施期間中です[1]


この教科について[編集]

高校の「情報」教科では、データの圧縮のしくみや、エラー訂正のしくみなどより高度な内容を学びます。 単なるマウスの使い方、キーボードの使い方などは中学校卒業までに習っている前提で教科書は書かれています。

2016年の現在では、普通科高校の情報科目には『社会と情報』『情報の科学』の2つの科目がある。 『情報の科学』のほうが技術的詳細について説明されています。

高校生の読者へ
『情報の科学』は細かいぶん、初心者には雑多な情報も多く、初心者はまず『社会と情報』から読むことを勧めます。
教科書は、それぞれの科目とも2回か3回か読めば充分でしょう。
大人の読者へ
これら検定教科書に書かれている内容のうち技術的な部分は、おおむね情報処理技術者試験の区分の1つ「基本情報技術者試験」の内容の相当します。
もし大人がこのページを読んでるなら、それら技術者試験の市販の解説書の内容がすでに分かっているならば、ITリテラシーの自学自習の目的としては検定教科書を買う必要はありません。

勉強法[編集]

この教科にかぎらず、基礎的なコンピュータのリテラシーについて自習する場合は、しばらくは検定教科書を中心に読んで勉強せざるを得ないでしょう。 書店に行っても、手頃なコンピューターの入門書が置いてない場合が多いでしょう。教科書取り扱い店で、高校の情報科目の検定教科書を注文する必要があるかもしれない[2]。 書店によっては、Windowsの使い方の書籍とか、そういう特定の商品の使い方の操作マニュアル的な入門書しか置いてない場合がある。 しかし、単なる操作マニュアル本ではせっかく読んでもたいしてコンピュータのリテラシーが身につかない。 あるいは、たとえ「C言語入門」のようなプログラミング入門書が書店に置いてあっても、それらは専門的であり高校レベルの初心者の勉強の役には立たない。

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

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

検定教科書の内容[編集]

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

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

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

  • 表計算ソフトの使用法について、巻末などで紹介。

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

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

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

  • 一部の教科書
  • 一部の教科書[6]では、XMLを紹介。
  • 一部の教科書[6]では「Hello world」文を、C言語PythonVisualBasicPHPRubyの例文で、巻末にて紹介。

雑記[編集]

「PDCA法」とか、あまりコンピュータと関係のない話題も、これら情報科の科目の教科書では、扱われています。 技術者試験などに出てくる用語なので、そのような用語も覚えておきましょう。 コンビニエンスストアの「POS」システムなどの社会科でも習う用語も情報科では習います。

習わないこと[編集]

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

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

なにを学ぶ?[編集]

高校レベルの初心者は時間が足りないので、プログラミング言語の文法を学ぶことは積極的には勧めません。なぜなら、5教科と両立して勉強できるような簡単な言語が現代では少ないからです。 高校生は、まずはワープロソフトの使い方や表計算ソフトの使い方を、学校の「情報」教科の授業で練習するなど仕事などでパソコンを必要な時に使えるよいうになることがより重要です。

高校生は独学で JavaScript を学ぶことは適切か?[編集]

初心者むけとして有名な言語に、「JavaScript」(ジャバ スクリプト)というプログラミング言語があります。 JavaScriptは、ウェブブラウザで動作するので、最も広く普及しているプログラミング言語の一つといえます。 誕生当初 Netscape Navigator に実装された JavaScript は、まさに初心者むけの言語でした。その後、JavaScriptの普及とともにブラウザベンダーは競うように新機能を追加し、機能が増えるのだけなら良いのですが、ブラウザによって機能があったりなかったり、微妙な差異があり、プログラマはその違いに苦慮する状況が生まれました。

1997年、仕様の乱立状況を打破するため、JavaScriptの言語コア(文法と標準組み込みオブジェクトなど、入出力は除く)はECMAインターナショナルによってECMAScript(ECMA-262)として国際標準化されます。難航したECMAScript Edition 4がリリースされないなど紆余曲折がありましたが、JavaScriptの仕様は強化されていき、当初の玩具らしさは影を潜め、標準化により実装のばらつきも小さくなっているので、その意味でが学ぶべき価値があると言えます。

また、ウェブブラウザ上のJavaScriptを学ぶには、HTML(とCSS)をある程度は習得しておく必要があります。多くの高校生にとって、HTMLは身近な学習対象ではないので、ここにも一つJavaScriptを学ぶにあたってのハードルがあります。他方、JavaScriptをウェブコンテンツに組み込んでダイナミックなウェブサイトを作ることは、大きのモチベーションの1つになりえます。

高校生が、もし学校でJavaScriptを習えるのなら、その機会を利用したほうが良いでしょう(多くの検定教科書は、PythonやVBAとともにJavaScriptを紹介しています)。

尚、JavaScript と Java(ジャバ) とは、異なるプログラミング言語です。

JavaScriptとJavaを混同しないように注意しましょう。「Java」の複雑な文法と膨大なライブラリクラスは初心者むきではありません。

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

「C言語」と混同して、いきなり「C++」(シー プラス プラス)という言語からは勉強しないように気をつけよう。C++言語の入門書では、C言語の知識を前提としている場合が多いので、まだC言語を知らない人が(C言語の知識を前提とした)C++の入門書を使って学習すると理解が進みません。 他の言語では、いきなり「PHP」(ピー エイチ ピー)などのサーバー用プログラミング言語の入門書を読んでもサーバーの知識がないと理解には至らない。

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

入門書の探し方[編集]

書店では、プログラミング言語の初心者向けの書籍と専門家向けの書籍が同じ棚にあることが珍しくなくいので気をつけましょう。

5教科の書籍が高校レベルと大学レベルの書籍をちがう棚に分けてもらえる状況とは、プログラミング言語の書店での状況は違っています。いちいちプログラミング入門書の書籍と専門家向けのの書籍とを書店は別々の棚に分けられていることはまれです。残念ながらこれは図書館にも言えます。 いくつかのプログラミング言語で「入門」と名乗る本を読んでみると書籍の冒頭から、入門者には分からない内容の記述の大量な自称「入門書」もあります。

「比喩が分かりやすい本」ではなく、「一通り文法事項が順序だてされて説明してある本」と評されている書籍の購入を勧めます。「具体例な開発例が分かりやすい本」ではなく「一通り文法事項が順序だてされて説明してある本」を買いましょう。

入門書の読み方[編集]

あるプログラミング言語の入門書一冊で、そのプログラミング言語のすべてを理解しきることは望むべきでありません。 プログラムの勉強ではPCを用意しプログラム開発環境を用意しプログラムを入力し動作させるのがよいでしょう。

paiza.IOやWandboxのようなオンライン開発実行環境も年々機能向上しており。オンライン開発実行環境とタブレット・スマートホンの組み合わせでプログラミング環境を作ることは可能です。

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

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

まず、上述したように学習環境が必要です。 どうやって実際にプログラミング言語を勉強するかというと、プログラミング言語の入門書を最初のコードが出て来るまで読み進めて実際に入力しプログラムを実行するという流れになります。 この最初のコードを入力するときは、とりあえず何も考えずに入力してみてください。そして書籍の指示にしたがった方法でプログラムの書かれたファイルを実行してみてください。 たとえば、ある入門書の最初のコードで(※ 下記のコードの例は「C++」言語の場合)、

#include <iostream>
using namespace std;

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

とあれば、それをそのまま入力して、コンパイル、リンクし、実行形式を得て、実行形式を実行してみます。

まず、エラーがなく正常にリンクされるまでコードを修正します。

これを実行すると、

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

と2行で表示されます。

しかし、ほとんどの初心者は何んらかの入力ミスをしている事が多く、ファイルをコンパイルしてもエラーが起きてしまい実行形式を得ることができないか実行できても期待どおりに動かす事ができません。

エラーがあれば、書籍に書かれたコードをよく見ながらコードを修正します。 もし、エラーせずにプログラムをコンパイル、リンク、実行できたのなら、すでにアナタは、入力したそのコードの仕組みを、だいたい分かっていますので、本wikibooksで説明するような、次の作業に移ります。 「次の作業」とは、もし入力したコードが、エラーもなくプログラムが正常に実行されれば、 今度は、さきひど入力したコードをコピーして別のファイルをつくり、数分ほど、さきほど入力したコード中にある「ようこそ!」などの文章などを、自分で思うままに書き換えてみてください。 (書き換え前の書籍どおりのコードと、書き換え後の自分流のコードの2種類を、パソコンに保管しておく。) 上記のコードの場合なら、たとえば「<< endl」を省略してみたら、どうなるかとかを、自分流コードで試してみるのです。なお「<< endl」とは「改行する」という意味です。 じっさい、たとえばあるプログラミング言語で、さきほどのコードから「<< endl」を除いてみたコード

(コード)

#include <iostream>
using namespace std;

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

を実行すると

(実行結果)

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

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

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

#include <iostream>
using namespace std;

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

を実行すると

(実行結果)

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

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


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

#include <iostream>
using namespace std;

int main()

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

このように、

  1. まずは書籍のコードを書き写して実行してみたあとに、正常に実行できるようになったら、
  2. 今度は、自分のコードを理解できる範囲で書き換えてみて、自分の理解を確かめてみてください。

なぜ、わざわざ自分なりに書き換えてみてまで、自分の理解を確かめる必要があるのかというと、その理由は、将来、プログラミングの入力エラーを自分が起こしたときに原因を特定できるようにするために、今のうちに、いろいろと試してみてどこを書き換えると、どう結果が変わるかを確認しておく必要があるのです。 また、大学などに進学してプログラミング科目を習う場合の定期テストでも、定期テストでは授業であつかったコードがそのまま出題される事はないので、自分でコードを書き換えてみて確かめるようにしないと、そのプログラミング科目の定期テストの問題が解けずに不合格になってしまう可能性もあります。 なお、大学の場合、その授業の毎時間のさいごに、その授業のコードを提出する場合があるので、授業用のコードは書き換えずに、授業用コードを自分流コードにコピーペーストして、その自分流コードを書き換えてみて試行錯誤しましょう。 プログラミングの学習では、正解のコードを、覚えることは、けっして、学習の目的ではありません。そもそもコードは、無限のパターンがあるので、覚えようと思っても不可能です。 プログラミングの学習は、もしもミスのあるコードを書いてしまった場合に、そのミスを探し当てられるようになるために試行錯誤することが、学習の目的なのです。 さて、書籍での学習で、数分ほどの書き換えによるコードの試行錯誤が終わったら、書籍をそのまま次のページへと読み進んでください。 そして、また新しいコードが出てきたら、同様に入力してプログラムを実行してみます。なお、新しいコードの入力の際、たいていは、前のページで入力した前回のコードに近いコード前回のコードをコピーペーストして、それをもとに、いまのページの新コードへと書き換えても、かまいません。 いちいち、まったくゼロから新コードを書き始める必要は、ありません。 けっして「コピーペーストをして入力作業を減らしても、技術が身に付くのだろうか?」と心配する必要はありません。なぜなら、たいていの初心者は、たとえコピーペーストをして作業を減らした場合ですら、入力ミスをしてしまうことが多く、なにがしかのエラーを起こしてしまうからです。 裏をかえせば、コピーペーストをして入力作業を減らしてもエラーを起こさずに正常にプログラムを実行できるようなコードをすぐに書けるなら、すでにアナタは、そのページの新コードが、だいたい分かっているのです。 ともかく、コードを実行してみてエラーが出ても、エラーがなくなるまで直しましょう。もし、エラーがなく正常にプログラムが実行されたら、また自分流に書き換えを数分ほどしてみて、試行錯誤します。 それが終わったら、次のページへと読み進めます。 高校生の範囲なら、このような練習方法でも、充分です。 もし高校でJavaScriptや(プログラミング言語ではないが)HTMLなどを習う場合の練習方法も、だいたい、このような感じで練習すれば、高校生なら充分でしょう。

関連項目[編集]

  1. ^ 今後の学習指導要領改訂スケジュール平成28年8月26日 中央教育審議会 教育課程部会 資料3
  2. ^ 検定教科書の購入方法については、記事『小学校・中学校・高等学校の学習/検定教科書の購入方法』を参考のこと。
  3. ^ ASCIIコードと表記されることがあるが、ASCIIはAmerican Standard Code for Information Interchangeのアクロニムのなので「ASCIIコード」では「情報交換用米国標準コードコード」となってしまう。
  4. ^ アセンブリ言語を扱っているが、しかし「アセンブリ」の用語は教科書にはみられない。
  5. ^ 「ベン図」という用語は、教科書にはみられない。
  6. ^ 6.0 6.1 日本文教出版