情報科授業研究

一般にはなじみの少ない高等学校普通教科「情報」の教育実践・教材研究について紹介します!

和光教研

2008-11-22 | 学会・研究会
今日は和光中学校・高等学校教育研究集会がありました。午前中は公開授業、授業検討会、全体会、午後は分科会という内容で、午前中のみ参加しました。

公開授業では、高校3年選択「プログラミング演習」(2単位)の授業を参観しました。受講生は16人いるそうですが、出席者は9名(男子7名、女子2名)でした。受験で欠席の人もいたようです。この授業では、一学期にコンピュータの仕組みについて学び、2学期にVisual Basic 6.0を用いてのプログラミングの学習をしているそうです。本時は、繰り返し、条件判断、キーイベントを含むプログラムの作成をおこなっていました。どのように課題を解決するかを生徒に考えさせ、実際のコーディングは先生の指示に従っておこなっていました。子どもたちは素直に先生の指示に従って入力していました。

授業検討会は、授業が延長されたため、20分弱しかありませんでした。色々伺いたかったのですが、3点に絞って質問をしました。必修の「情報」を1年生に設置しており、主にWord、Excel、PowerPointを使う学習をしているそうです。和光中学からの内部進学者と、外部からの生徒が同じクラスで学習するため、ばらつきを解消するねらいがあるそうで、和光中学技術科との連携は特に無いと伺いました。

全体会では、都留文科大学 田中孝彦先生のご講演「新学習指導要領と子ども・青年が必要としている学習の質」を聞きました。とても興味深いお話でした。初めに学習指導要領「改正」に関わる問題点を指摘され、今、子どもたちが求めている学習の質について話されました。田中先生は「学校の生活・学習に主体的に参加できない子どもたちが数多くいる。」「そうした子どもたちも、世界と自分に関する感情を抱いており、わかりたい問題・考えたい問題を持っており、その問題を考える学習の機会を求めている。」と述べられました。そのような立場にたって実践をされている教師に敬意を払い、先輩教師から学ぶことが大切だと思いました。

最後にPISA型リテラシの問題点にも触れられ、実際にフィンランドの研究者のお話も紹介され、フィンランドの現状に驚きました。勉強になりました。

暴力行為件数の増加

2008-11-21 | 教育問題
今朝の毎日新聞によると、
「全国の小中高校生による暴力行為の発生件数が07年度、過去最多」になったことが文部科学省の調べで明らかになったそうです。

今の子どもたちの親は、私よりも少し上の世代でしょうか。私が小中学生の頃は、学校で体罰がおこなわれていた時代でした。今の親の中に「体罰=教育」という図式があり、自分の子どもに無意識に手をあげてしまっている親がいるのかも知れません。街中で親が子どもの些細なことで手をあげている様子を見ると心が痛みます。

また教育に過度の競争が求められていることの方が大きな原因かも知れません。いずれにせよ、報道でも指摘されているとおりね自己肯定感の低い子どもが増えているというのは前から指摘されている通りだと思います。

他にも様々な要因があると考えられ、一概には言えませんが、丸山校長が言われているように「問題を起こす子は『困った子』ではなく『困っている子』だという認識」(毎日新聞)を最近、持つように心がけています。

囚人のディレンマ

2008-11-04 | 教材研究
今日は、有澤 著『モデルシミュレーション技法』(共立出版、1997年)に記載されている「囚人のディレンマ」をC言語を利用してシミュレーションしました。

「囚人のディレンマ」はとても著名なゲーム理論の一つで非ゼロ和ゲームに分類されるものだそうです。自分と相手のとる行動によって得られるポイントを以下の通りとします。
自白黙秘
自白1/15/0
黙秘0/53/3


この「囚人のディレンマ」ゲームを20回実行するプログラムをC言語で書いてみました。相手の行動はランダムに決定します。

作成したCプログラムソースは以下の通りです。インデントが有効になっていないので見辛いです。

//Prisoners' Dilemma

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define REPETITION 20

main()
{
int intI;
int intAction, intCompAction; //行動
int intPoint; //得点

intPoint=0;
srand(time(NULL));

printf("「囚人のディレンマ」シミュレーションn");

for(intI=1;intI<=REPETITION;intI++){
//あなたの手を決めます
do{
printf("n");
printf("%d回目 : あなたは罪を自白しますか、黙秘しますか。",intI);
printf("1:白状、2:黙秘 ");
scanf("%d",&intAction);
if(intAction<=0||intAction>2)
printf("正しい数字(1または2)を入力してください。n");
}while(intAction<=0||intAction>2);

//相手の手をランダムに決定します
intCompAction=(int)(rand()*2.0/(1.0+RAND_MAX))+1;

if(intAction==1){
if(intCompAction==1){ //両方とも自白した場合
printf("相手も自白しました。得点は1点です。n");
intPoint+=1;
}else{ //プレーヤーのみ自白した場合
printf("相手は黙秘しました。得点は5点です。n");
intPoint+=5;
}
}else{
if(intCompAction==1){ //相手が自白した場合
printf("相手が自白しました。得点は0点です。n");
}else{ //両方とも黙秘した場合
printf("相手も黙秘しました。得点は3点です。n");
intPoint+=3;
}
}
printf("得点は%d点です。n",intPoint);
}

return 0;
}

このプログラムをさらに改変して、自動的に実行するようにしてシミュレーションしました。自分の行動を選ぶ基準を以下の4通りにして、10000回実行しました。
1 : 自白しつづける
2 : 黙秘しつづける
3 : しっぺ返し戦略(Tit-for-Tat)
4 : パブロフ戦略

その結果、以下のような点数になりました。
1 : 自分29892点、相手5027点
2 : 自分14889点、相手40074点
3 : 自分22477点、相手22477点
4 : 自分22644点、相手22389点

他にも色々な戦略の組合わせが考えられそうです。