ICT・Educationバックナンバー
ICT・EducationNo.42 > p22〜p25

教育実践例
アルゴリズム学習のためのC#プログラミング環境
兵庫県立西宮香風高等学校  松本 吉生
ymatsumoto@hyogo-c.ed.jp
1.情報科の授業での実習
(1)「情報の科学的理解」の重要性

 高等学校学習指導要領には,情報科の目標として,「情報及び情報技術を活用するための知識と技能の習得を通して,情報に関する科学的な見方や考え方を養うとともに,社会の中で情報及び情報技術が果たしている役割や影響を理解させ,情報化の進展に主体的に対応できる能力と態度を育てる。」と示されている。「情報の科学的理解」は「情報B」の目標であると思われがちであるが,そもそも情報科全体の目標として「情報に関する科学的な見方や考え方を養う」ことが掲げられているのである。

(2)学習指導要領における実習の取り扱い

 また,学習指導要領には「各科目の目標及び内容等に即してコンピュータや情報通信ネットワークなどを活用した実習を積極的に取り入れること。原則として,「情報A」では総授業時数の2分の1以上を,「情報B」及び「情報C」では総授業時数の3分の1以上を,実習に配当すること。」とある。この文からは,とかく「2分の1」あるいは「3分の1」という時間数のことが取り上げられることが多いが,「各科目の目標及び内容等に即して」という点も同様に重要である。つまり,実習はあくまでも科目の目標を達成するために,また,科目の内容に即したものであるべきである。

(3)「情報ABC」のためのプログラミング実習

 情報に関する科学的な見方や考え方を養うには様々なアプローチがあるが,コンピュータを使ったプログラミング実習も,1つの方法である。コンピュータのOSがMicrosoft社のWindowsであれば,少しの準備で.NET Frameworkを利用して無料でC#のプログラミングを実習することができる。
2..NET FrameworkとC#
(1).NET Framework

 .NET Frameworkは,Windows OSの上に被せられた開発と実行のための環境である。Windows Vistaなど最新のOSには最初から実装されており,Windows XPなどではアプリケーションのインストール時に,.NET Frameworkが同時にインストールされたり,Windowsの自動更新でインストールされたりすることもある。また,Microsoft社のサイトからもダウンロードできる。

(2)C#

 C#はC言語やC++言語を発展させてMicrosoft社が設計,開発したオブジェクト指向のプログラミング言語である。.NET Frameworkと同時に開発されたため,Windowsアプリケーションの開発においては最も中心的な言語になっている。

(3)C#の開発環境

 最もよく知られたC#の開発環境にVisual Studioがある。しかし,.NET Framework上でのC#プログラミングはVisual Studioがなくてもできる。.NET Frameworkがインストールされていれば,そこにはcsc.exeというコンパイラが用意されており,メモ帳などでプログラムを書き,csc.exeでコンパイルして実行ファイルを作ることができる。

(4).NET FrameworkとC#を利用するための環境

 .NET Frameworkにはいくつかのバージョンがある。現時点で最新のものは,.NET Framework 3.5だが,これを利用できるのは,クライアントOSとしてはWindows XP,またはWindows Vistaである。しかし,少し前のバージョンである.NETFramework 2.0は,Windows 98,Windows ME,Windows 2000などのOSでも利用できる。
3.C#によるプログラミング実習のメリット
(1)無料で利用できる

 Visual Studioなどの開発環境がなくても.NET Frameworkさえインストールされていれば利用できる。

(2)簡単に実行環境を整えられる

 .NET Frameworkのインストールは簡単であり,インストールされたファイルから数個をコピーすればC#プログラミングの実行環境を整えることができる。

(3)書籍やWebの情報が多い

 C#はWindowsの中心的な開発言語であり,各出版社から多数の書籍が出版されている。また,インターネットでもWebやblogで数多くの情報が手に入り,参考にすることができる。

(4)アルゴリズムの学習に集中できる

 Visual Studioのような統合開発環境は,習熟すれば確かに開発効率がよい。しかし,統合開発環境はその環境自体を習熟するのに時間がかかる。また,「スケルトン」と呼ばれる「プログラムの骨組み」が自動生成されるため,プログラムの全体構造を理解しにくい。それに対してメモ帳でプログラムを書き,コンパイルするという方法は,プログラムを書くこと自体に集中できる。

(5)ソースコードとオブジェクトプログラムの関係が理解しやすい

 コンパイル作業を手作業で行うことにより,ソースコードとオブジェクトプログラムの関係や,コンパイルの概念が理解しやすい。
4.実習環境を作る
(1).NET Frameworkを探す

 例えばWindows XPの場合,図1の例のように.NET Frameworkのファイルがインストールされている。

図1 .NET Frameworkのインストール例
▲図1 .NET Frameworkのインストール例

 ここで「Framework」フォルダの下にあるのは,.NET Frameworkの各バージョンに相当するフォルダである。このコンピュータには最新版の.NET Framework3.5がインストールされていることがわかる。

(2)コンパイル作業のためのフォルダを作る

 .NET Frameworkに用意されたcsc.exeというコンパイラを利用するには,csc.exeと同じフォルダにプログラムを作成し,そのフォルダ上でコンパイルしなければならない。また,コンパイルにはcsc.exe以外にも必要なファイルがある。それらをコピーした作業フォルダを別に作る。
5.作業フォルダを準備する
(1)フォルダを作る

 コンピュータのローカルまたはネットワークドライブに,プログラミングを行うためのフォルダを作成する。ここではCドライブの直下に「C」というフォルダ名で作成することとして説明する。

(2)必要なファイルをコピーする

 基本的なコンパイルに必要なファイルを.NET Frameworkから選んでコピーし,作成したフォルダに置く。前述したように.NET Frameworkにはいくつかのバージョンがあるが,ここでは多くのOSに対応したv2.0を使うことで説明する。この場合,まず必要なファイルは「csc.exe」,「cscomp.dll」,「cscompui.dll」の3つである。
 csc.exeとcscomp.dllはv2.0,50727フォルダの直下にある。cscompui.dllはさらにその下の1033または1041という名前のフォルダの中にある。必要なファイルが用意され,完成した作業フォルダは図2のようになっている。

図2 コンパイル用に作成したフォルダ例
▲図2 コンパイル用に作成したフォルダ例
6.C#プログラミングとコンパイルの実際
(1)メモ帳によるプログラミング

 プログラミングはメモ帳で行う。例えば,プログラミングの初歩として有名な「Hello,World」のプログラムをC#で図3のように作成する。

図3 C#によるHello,Worldプログラムの例
▲図3 C#によるHello,Worldプログラムの例

(2)ソースファイルの保存

 メモ帳を使って上記のプログラムができたら,先に用意した作業フォルダに適当な名前で保存する。C#のソースコードは慣習的に.csという拡張子をつけることになっているので,「ファイルの種類」を「すべてのファイル」に変更し,拡張子を明示的に.csとつけて保存する。

図4 ソースファイルができた作業フォルダの例
▲図4 ソースファイルができた作業フォルダの例

 ファイルの保存を行うと,作業フォルダは図4のようになり,ソースファイルができていることがわかる。

(3)csc.exeによるコンパイル

 完成したソースファイルはコンパイルによってオブジェクトプログラムにすることができる。コンパイルに利用するcsc.exeはコマンドプロンプトで実行する。
 コマンドプロンプトを開いたら,先に作った作業フォルダに移動するためにcdコマンドを実行する。
 cd c:\C
 次にcsc.exeを使ってコンパイルする。コンパイルの実行は「cscソースファイル名」の形で行う。
 csc prog_hello_world.cs
 コンパイル時にはメッセージが表示され,エラーがなければコマンドラインに戻る。実行例を図5に示す。

図5 コンパイルの実行例
▲図5 コンパイルの実行例

(4)オブジェクトプログラムの生成

 コンパイル時にエラーが表示されれば,メモ帳でソースファイルを確かめ,修正してコンパイルをやり直す。エラーが出なければコンパイルが正しく完了し,作業フォルダには図6のようにオブジェクトプログラムができる。オブジェクトプログラムの名前は,元のソースファイル名の拡張子が.exeに変えられたものになっている。

図6 オブジェクトプログラムが生成した作業フォルダの例
▲図6 オブジェクトプログラムが生成した作業フォルダの例

(5)プログラムの実行

 ここで作られたプログラムは,コマンドラインからファイル名を入力することで実行する。この時拡張子.exeを入力する必要はない。
 prog_hello_world
プログラムの実行例を図7に示す。

図7 Hello,Worldプログラムの実行例
▲図7 Hello,Worldプログラムの実行例

7.Windowsフォームアプリケーションの作成
(1)Formsクラスの利用

 .NET Frameworkにはクラスライブラリというプログラムの雛形が多数用意されており,WindowsフォームはSystem.Windows.Formsクラスを利用し,図8のようなプログラムで作ることができる。

図8 Formsクラスを使ってWindowsフォームを作成するプログラム例
▲図8 Formsクラスを使ってWindowsフォームを作成するプログラム例

(2)csc.rspでクラスライブラリを利用する

 このプログラムを作業フォルダに保存してコンパイルすると,Windows名前空間が存在しません,といったエラーメッセージが出てコンパイルできない。
 クラスライブラリの利用をcsc.exeコンパイラに対して指定するためには,csc.rspファイルを利用できる。これを.NET Frameworkのフォルダから作業フォルダにコピーすると,プログラムをコンパイルすることができる。csc. rspはcsc.exeやcscomp.dllと同様v2.0.50727フォルダの直下にある。csc.rspを配置し,Formsクラスを使ったprog_form01.csプログラムを保存した作業ファイルの例を図9に示す。

図9 csc.rspを配置した作業フォルダの例
▲図9 csc.rspを配置した作業フォルダの例

(3)Windowsフォームプログラムのコンパイルと実行

 コンパイルが正しく行われると図10のようにオブジェクトプログラムが生成する。

図10 Windowsフォームアプリケーションのオブジェクトプログラムが生成した例
▲図10 Windowsフォームアプリケーションのオブジェクトプログラムが生成した例

 コマンドラインから実行すると,図11のようなWindowsフォームが実行される。

図11 実行したWindowsフォームの例
▲図11 実行したWindowsフォームの例

 ここで実行したWindowsフォームは何も機能を持たないものだが,簡単なプログラムならコードを追加することで,メモ帳とcsc.exeコマンドラインコンパイラだけで作ることができる。
8.実習での利用
 このように.NET Frameworkを利用すれば,少しの準備でC#プログラミングの実習ができる。多くの生徒はコマンドラインの扱いに慣れていないが,プリント教材さえしっかり作っておけば,1時間でHello,Worldプログラミング程度の実習はできる。ぜひ生徒にプログラミングを体験させ,ソースファイル,コンパイル,オブジェクトプログラムの概念を体験的に理解させる実習をしていただきたい。
参考URL
「アドミンティーチャーズ」
http://adminteachers.spaces.live.com/
「ホチキス先生の『情報』実習アイデア集』
http://hotikisusensei.spaces.live.com/
前へ   次へ
目次に戻る
上に戻る