ICT・Educationバックナンバー
ICT・EducationNo.32 > p10〜p13

教育実践例
情報発信源としてのWebページの作成−JavaScriptの利用−
智辯学園和歌山高等学校 南方勝博
1.教科「情報」の位置づけ
 我が校では「コンピューターが発達し,高度に情報化された社会」の中で,教科「情報」を習得して大学に進学していく生徒達が,高等学校の「情報」の授業で養った力を大学で利用できるように「情報の収集」「情報の加工」「情報の発信」を中心とした指導を行っています。インターネットを用いた「情報の収集」と「情報の発信」の実習がその中心です。「情報の収集」は,検索サイトを利用して,カテゴリ別の階層による検索や,検索エンジンによるキーワード検索を用いて,調べたいことやわからないことを中心に様々な事柄を検索させています。調べた内容は,ワープロソフトを利用するだけでなく,表計算ソフトも利用してわかりやすくまとめ,レポート(「情報の加工」の成果物)として提出させています。これらレポートは,クラス別の冊子に仕上げています。
 Webページの作成はこの最終段階の「情報の発信」の練習として行っています。夏休みや冬休みの期間を利用して,生徒一人一人が様々なことを調べてきます。その分野は多岐にわたり「村祭りの歴史や風景」「伝統的な食べ物」「残しておきたい自然の風景」「時代と共に移り変わる町並み」など,生徒達の感性のままにあらゆる分野を容認しています。
 彼らが考えるWebページを自由に作らせてみると,最初は試行錯誤をくり返しながらもまとまった内容の作品ができ上がってきます。最近では,文章だけではなくデジタルカメラを用いて,自らの視点で撮影した写真を掲載する生徒も増えてきました。そんな中で,外国のことを調べたWebページを作成した生徒から,こんな話が出ました。
 「時差を表現できないかなぁ」
 このとき,Webページに時間を表示させる方法を指導してみました。
2.生徒個人の感性に基づいたWebページ作り
 教科「情報」の初年度のWebページは,単に<html><head></head><body>〜</body></html>の間に調べた内容の文章を書くだけのページでした。改行で使用する<br>や,区切り線として利用する<hr>は事前に教えておき,必要に応じて利用するように指導しました。しかし,完成したページを見た生徒達は,普段目にしているWebページとの差を感じたようで,タイトルの付け方や見出しの付け方についての質問が多数出ました。これらのタグについて簡単に書いたプリントを用意したところ,各自が必要な部分を取捨選択しそれぞれ自由な発想で文字に色を付けたりし始めました。最初から,美しく整ったWebページができたわけではありません。彼らが要求するタグをその都度,プリントにして与えただけです。

タイトル:<title>〜</title>
見出し:<h1>〜</h1>
文字の色の変更:
<font color="red">

 新たなタグを1つ導入する度に,様々な知識の追加が必要になります。カラーコードや見出しを使用する上でのマナーなど,これらすべての指導が必要になり,「情報の発信」としてのWebページ作成とは少し離れたものになってしまうように感じました。
 しかし,実際は,より自由な発想で,よりまとまったWebページができ上がることになったのです。
3.JavaScriptの利用
 外国のことについて調べた生徒が日本の時刻とその国の時刻を表示させるページを作成する。これは,「最初からすべてを示すのではなく,彼らの必要に応じて示していく」過程での事柄です。JavaScriptを利用した時間の表示の指導は,このような過程の中で発生したものです。
 プリントには,次のソースファイルのみを提示しました。

<html>
<head>
<title>時刻の表示</title>
<script language="JavaScript">
<!--
function jikoku() {
dd = new Date();
document.fm1.tm1.value =
dd.toLocaleString();
window.setTimeout("jikoku()", 1000);
}
//-->
</script>
</head>
<body onload="jikoku()">
現在の時刻
<form name="fm1" action="#">
<input type="text" name="tm1"
size="30">
</form>
</body>
</html>

 これで,基本的なHTMLタグの使用方法を理解している生徒は,自由に時間を表示させることができます。HTMLタグは少々間違えても表示されますが,JavaScriptは1文字間違えると正しく表示されなかったり,全角スペースと半角スペースの間違いにも反応します。これにより,正確に入力する練習にもなります。



(1)時差のある2つの時計の表示
 日本以外の時間を表示させるためには,時間を進めたり遅らせたりする必要があります。これには少々複雑な操作が必要です。

<html>
<head>
<title>時刻の表示</title>
<script language="JavaScript">
<!--
zone_a = 13 * 60; // ニュージーランド
zone_j = 9 * 60; // 日本:東京
function jikoku(){
dd = new Date();
tj = nowat(zone_j,dd)
tn = nowat(zone_a,dd)
document.fm1.tm1.value=tj;
document.fm1.tm2.value=tn;
window.setTimeout("jikoku()",1000);
}
function nowat(tz, now) {
var hr, mn, sc;
var t = new Date();
t.setTime(now.getTime() +
(now.getTimezoneOffset() + tz) * 60
* 1000);
hr = t.getHours();
mn = t.getMinutes();
sc = t.getSeconds();
if (hr < 10) {
hr = "0" + hr;
}
if (mn < 10) {
mn = "0" + mn;
}
if (sc < 10) {
sc = "0" + sc;
}
return hr + ":" + mn + ":" + sc;
}
// -->
</script>
</head>
<body onload="jikoku()">
現在の時刻
<form name="fm1" action="#">
<table>
<tr><td>日本</td><td><input
type="text" name="tm1"
size="8"></td></tr>
<tr><td>ニュージーランド
</td><td><input type="text"
name="tm2" size="8"></td></tr>
</table>
</form>
</body>
</html>

 これで,一つの画面に異なる2つの時刻を表示させることができます。時差のある時計を表示させるためには,タイムゾーンについて学習する必要がありますが,これについては,ソースファイル中のzone_aの部分に標準時との差の時刻を分単位で入力しておけば世界中どこの時間でも表示させることができます。生徒達はソースファイルから時間を表示させるために必要な手続きやその困難さを理解し,問題を自ら解決する能力を身につけていきます。



(2)近くにある神社のページ
 神社の歴史を調べたページを作成した生徒が「占いができるページを作るにはどうすればいいか」と尋ねてきました。神社ですから「おみくじ」ができるソースファイルを提示してみました。

<html>
<head>
<title>「○○神社」</title>
<script language="JavaScript">
<!--
function MakeArray(n){
this.length=n;
}
function omikuji(){
var msg=new MakeArray(7);
msg[1]="大吉"; msg[2]="中吉";
msg[3]="吉"; msg[4]="小吉";
msg[5]="末吉"; msg[6]="凶";
msg[7]="大凶";

k1=5; //大吉
k2=7; //中吉
k3=12; //吉
k4=11; //小吉
k5=8; //末吉
k6=5; //凶
k7=1; //大凶

k2+=k1; k3+=k2; k4+=k3;
k5+=k4; k6+=k5; k7+=k6;

var day=new Date();
var time=day.getTime();
var num=(time%k7)+1;
var mes;

if(num<=k1) mes=msg[1];
else{if(num<=k2) mes=msg[2];
else{if(num<=k3) mes=msg[3];
else{if(num<=k4) mes=msg[4];
else{if(num<=k5) mes=msg[5];
else{if(num<=k6) mes=msg[6];
else{if(num<=k7) mes=msg[7];
} } } } } }
alert(mes);
}
//-->
</script>
</head>
<body>
<form name="Omikuji" method="post">
<input type="button" value="おみくじ"
onClick="omikuji()">
</form>
</body>
</html>



 これで,「おみくじ」と描いてある部分をクリックすると次の比で「大吉」「中吉」「吉」「小吉」「末吉」「凶」「大凶」が現れてきます。
k1:k2:k3:k4:k5:k6:k7

 文字を表示させるための配列msg[]や演算子+や%については,個別に指導する必要がありますが,「大吉」や「吉」ではなく,「Lucky」や「頑張れ」等の言葉が追加され,それぞれ個性のあるおみくじができ上がっていました。



(3)他の授業で習ったことの利用
 慣用句をまとめたページや数学の公式をまとめたページを作成する生徒もいます。ここでは,座標平面上の3点を入力してその3点によってできる三角形の面積を求めるJavaScriptを示します。



<html>
<head>
<title>三角形の面積</title>
<script language="JavaScript">
<!--
function calc(){
var a1=document.fm1.ax.value;
var a2=document.fm1.ay.value;
var b1=document.fm1.bx.value;
var b2=document.fm1.by.value;
var c1=document.fm1.cx.value;
var c2=document.fm1.cy.value;
s=((b1-a1)*(c2-a2)-(b2-a2)*(c1-a1))/2;
s=Math.abs(s);
document.fm1.sur.value=s;
}
//-->
</script>
</head>
<body>
<form name="fm1">
<table>
<tr><td>点A</td><td>(</td>
<td><input type="text" name="ax"
size="10"></td>
<td><input type="text" name="ay"
size="10"></td>
<td>)</td></tr>
<tr><td>点B</td><td>(</td>
<td><input type="text" name="bx"
size="10"></td>
<td><input type="text" name="by"
size="10"></td>
<td>)</td></tr>
<tr><td>点C</td><td>(</td>
<td><input type="text" name="cx"
size="10"></td>
<td><input type="text" name="cy"
size="10"></td>
<td>)</td></tr>
<tr><td colspan="5"><input
type="button" value="面積を求める"
onClick="calc()"><br>
三角形ABC=<input type="text"
name="sur" size="10"></td></tr>
</table>
</form>
</body>
</html>

 表計算等で使われる関数と同様に,Math.abs(s)を使うだけで簡単にそのようなWebページを作成することができます。
4.生徒達の自由な発想
 生徒が自ら望むことに対する習得能力はすばらしいものがあります。計算式を利用して,2次方程式の解を求めるページや万年カレンダーのページなどを希望する生徒も出てきました。最近では,自分で本を買って学習を始めたり,他のプログラム言語を学習し始めたりする生徒も増えてきています。簡単なことからでかまいません。彼らの望むことをその望み通りに提供すれば,自ら学び始めます。
5.JavaScriptの次にあるもの
 一般のワープロソフト(MSWordや一太郎)を利用してWebページを作成することもできます。わざわざテキストエディタを利用して,HTMLのタグを入力しなくてもWebページは作れます。しかし,これまでこれらの方法で生徒達がWebページを作成したときには,ページごとの文字の大きさが異なったり,一般に使用されていないフォントで作られたりしていました。これでは異なるブラウザで正しく表示されなかったり,幅を変更すると正しく表示されなくなってしまったりします。簡単なWebページ作りでも,基本的なHTMLの構造は十分理解させておきたいものです。
 しかし,HTMLの記述方法だけを指導して,JavaScriptを理解させるのには無理があります。授業という限られた時間の中で効率よくJavaScriptの記述方法を理解させるには,生徒に自ら「理解したい」という気持ちを持たせることが大切です。これまで述べてきたのは「理解しなさい」と提示する方法による指導ではなく,習得の効率化を考え,「何がしたいの」と尋ねるような形で指導する方法です。
 しかし,この実現には教師側の準備と学習が重要になります。文字の色や複数のWebページのデザインを統一するにはスタイルシートを指導することになります。アクセスカウンタや掲示板などを設置する場合にはPerlやPHPなどを利用することになります。これ以外にもFlashやDreamweaverなどのソフトウェアを使ったページの特徴も理解しておく必要があります。最近では,Ajaxを用いたWebページの作成方法も紹介されています。
 このように日進月歩の情報化社会において,生徒達が目にする技術も日々進化しています。「情報」の授業をしていても,一年前の情報がもう古くなってしまっていることもたくさんあります。基本にあるHTMLタグやTCP/IPの技術など,普遍的な部分は大切に教える必要があります。しかし,この変化の流れの中で我々の学ばなければならない分野がどんどん広がっているのも事実です。我々も自ら進んで新しい技術を習得し,情報交換することが重要になってきていることを痛感しています。
前へ   次へ
目次に戻る
上に戻る