学校(教育)ソフトウェアの開発・販売

実際に使ってみた

 ある高校の時間割を『時間番』で作成してみました。(小学校や中学校でも同様です。)
 この高校は、1学年10クラスで、2年次からは文系と理系コースに分かれ、さらに文理コース内で選択科目がある、時間割条件が厳しい高校です。

  時間割の条件   作業の流れ   完成した時間割

時間割の条件

 時間割の条件は、次のようになっています。⇒【処理可能な条件はこちら】

◎教師時間表について
・(必須条件)1日の授業時数を4時間以下にする。
・(必須条件)1日の連続授業時数を2時間以下にする。
・できるだけ同じ時限の授業時数を4時間以下にする。
◎クラス時間表について
・(必須条件)5単位以下の科目は同じ日に重ならないようにする。
・(必須条件)6単位以上の科目が同じ日に重なる場合は連続させない。
・(必須条件)2単位の科目は連続する曜日には配置しない。
・できるだけ同一教科が同じ日に重ならないようにする。
・(必須条件)同一教科が同じ日に重なる場合は連続させない。
・(必須条件)3年の家庭は2時間続きで調理室を使用し、1限を避け、昼休みをまたがない。
・(必須条件)体育と芸術は午前または午後において連続させない。
◎特別教室時間表について
・(必須条件)体育館の使用は最大2展開とし、同じ学年同士は同時展開しない。
・できるだけ体育館の使用は1展開とし、特に1限は1展開とする。

作業の流れ

 それでは具体的な作業手順を見ていきましょう。
 基本的な流れは、データを入力したら、「コマの割付」続いて「時間割の適正化」を行います。
 「コマの割付」と「時間割の適正化」の所要予定時間は、それぞれ数分、数十分程度で、いづれも自動です。

1.コマの割付

 コマの割付は、まず必須条件を守りながら割付を行い、その条件では割付できない場合にはもう少し緩い条件で割付する方法で行います。
 今回は次の2段階を用意して割付を行いました。

●NO.1の条件(ほぼ理想的な条件)
◎コマの移動回数 10回
◎教師時間表における割付条件
 ・〔1日の授業時数を 4 時間以下にする〕
 ・〔1日の連続授業時数を 2 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔同一教科を最大限別な日に配置する〕
 ・〔同一教科を 1 時間以上空けて配置する〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
◎特別教室時間表における割付条件
 ・〔同時展開数を最大許容数以下にする〕(体育館の最大許容数は 2 に設定)
 ・〔同じ分類名を持つコマを同時展開しない〕

●NO.2の条件(緩めの条件)
◎コマの移動回数 10回
◎教師時間表における割付条件
 ・〔1日の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
◎特別教室時間表における割付条件
 ・〔同時展開数を最大許容数以下にする〕(体育館の最大許容数は 2 に設定)
 ・〔同じ分類名を持つコマを同時展開しない〕

【結果】
 NO.2の条件で割付したコマは数コマで、残りのコマはすべてNO.1の条件で、コマの割付が終了しました。
 コマの割付はわずか数分で終了し、パスコマはありませんでした。

2.時間割の適正化

 適正化は時間割の片寄りを解消する作業で、必ず満たしてほしい必須条件から初めて、できれば満たしてほしい条件を徐々に取り入れながら、教師、クラス、特別教室についてそれぞれ適正化を行います。
 今回は次の6段階で時間割の適正化を行いました。なお、コマの割付で使用したNO.2の条件(緩めの条件)から徐々に条件を追加(太字部分)しています。

(1)特別教室時間表の適正化
 体育館の1限が1展開となるようにしました。
◎コマの移動回数 10回
◎教師時間表における割付条件
 ・〔1日の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
◎特別教室時間表における割付条件
 ・〔同時展開数を最大許容数以下にする〕(体育館の最大許容数は 2 に設定)
 ・〔同時展開数を設定した許容数以下にする〕(体育館の1限の許容数をすべて 1 に設定)
 ・〔同じ分類名を持つコマを同時展開しない〕
【結果】
 すべて条件を満たすようにコマを移動できました。

(2)特別教室時間表の適正化
 できるだけ体育館の使用は1展開となるようにしました。
◎コマの移動回数 10回
◎教師時間表における割付条件
 ・〔1日の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
◎特別教室時間表における割付条件
 ・〔同時展開数を最大許容数以下にする〕(体育館の最大許容数を 1 に設定
 ・〔同時展開数を設定した許容数以下にする〕(体育館の1限の許容数をすべて 1 に設定)
 ・〔同じ分類名を持つコマを同時展開しない〕
【結果】
 すべて条件を満たすようにコマを移動できました。

 以下、特別教室時間表における割付条件は、上記と同じですので省略します。

(3)クラス時間表の適正化
 クラス時間表において同一教科ができるだけ同じ日に重ならないように、同じ日に重なる場合は連続しないようにしました。
◎コマの移動回数 10回
◎教師時間表における割付条件
・〔1日の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔同一教科を最大限別な日に配置する〕
 ・〔同一教科を 1 時間以上空けて配置する〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
【結果】
 すべて条件を満たすようにコマを移動できました。

(4)教師時間表の適正化
 教師時間表において1日の連続授業時数が 2 時間以下になるようにしました。
◎コマの移動回数 10回
◎教師時間表における割付条件
 ・〔1日の授業時数を 4 時間以下にする〕
 ・〔1日の連続授業時数を 2 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
【結果】
 すべて条件を満たすようにコマを移動できました。

(5)教師時間表の適正化
 教師時間表において同じ時限の授業時数が 4 時間以下になるようにしました。
◎コマの移動回数 10回
◎教師時間表における割付条件
・〔1日の授業時数を 4 時間以下にする〕
・〔1日の連続授業時数を 2 時間以下にする〕
〔同じ時限の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔同一教科を最大限別な日に配置する〕
 ・〔同一教科を 1 時間以上空けて配置する〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
【結果】
 すべて条件を満たすようにコマを移動できました。

(6)クラス時間表の適正化
 当初の時間割作成の条件にはありませんでしたが、おまけでクラス時間表において同じ科目を異なる時限に配置しました。
◎コマの移動回数 10回
◎教師時間表における割付条件
・〔1日の授業時数を 4 時間以下にする〕
・〔1日の連続授業時数を 2 時間以下にする〕
・〔同じ時限の授業時数を 4 時間以下にする〕
◎クラス時間表における割付条件
 ・〔同一科目を最大限別な日に配置する〕
 ・〔同一科目を 1 時間以上空けて配置する〕
 ・〔同一科目を 2 日以内の連続のみにしない〕
 ・〔同一教科を最大限別な日に配置する〕
 ・〔同一教科を 1 時間以上空けて配置する〕
 ・〔時間続きのコマが指定された時限をまたがないようにする〕
 ・〔連続禁止科目を午前または午後の時限間で連続させない〕
 ・〔同じ科目の時限の授業時数を 1 時間以下にする〕
【結果】
 1クラスに付き数科目を除き、ほとんどの科目を異なる時限に配置できました。

【適正化全体の結果】
 わずか数十分で、与えられた時間割条件はすべて満たすように適正化できました。

完成した時間割

 データ入力を除いてわずか数十分で、全教師、全クラス、全特別教室に対して下記の条件をすべて満たす時間割が自動で作成できました。
 下記において青字の数字は、各学校の条件に応じて変更可能です。
 なお、結果の時間割はサンプルデータとして製品内に収められています。

■教師時間表において
 佐々木先生を例にとって説明しますが、全教師について同様になっています。
□〔1日の授業時数を 4 時間以下にする〕
 各曜日の授業時数はすべて4時間以下になりました。

□〔1日の連続授業時数を 2 時間以下にする〕
 各曜日の連続授業時数はすべて2時間以下になりました。
 (1年は会議のコマで、時数にカウントされません。)

□〔同じ時限の授業時数を 4 時間以下にする〕
 各時限の授業時数が4時間以下になりました。

■クラス時間表において
 クラス1-1を例にとって説明しますが、全クラスについて同様になっています。
□〔同一科目を最大限別な日に配置する〕
 5単位以下の科目(国Taと国Tb、政経、倫理、化T、保健、英T、OCA、体育、芸術)はそれぞれすべて別な日に配置されました。
 7単位の数TAは、週5日の内3日に1コマずつ、2日は2コマずつ配置されました。

□〔同一科目を 1 時間以上空けて配置する〕
 7単位の数TAは、週5日の内2日は2コマずつ配置されましたが、2日とも1時間以上空けて配置されました。

□〔同一科目を 2 日以内の連続のみにしない〕
 2単位の科目(政経、倫理、保健、OCA)は、すべて中1日以上空けて配置されました。(国Ta、国Tbは同一科目で、4単位扱いとなっています。)

□〔同一教科を最大限別な日に配置する〕
 合計5単位以下の同一教科(国Taと国Tb、政経と倫理)は、それぞれ別な日に配置されました。同一教科に設定されている4単位の英Tと2単位のOCAは、週5日の内1日だけ英TとOCAが入りましたが、残りの4日については英TとOCAのどちらか一方のみが配置されました。

□〔同一教科を 1 時間以上空けて配置する〕
 週1回は同じ日に重ならざるを得ない英TとOCAは、1時間以上空けて配置されました。

□〔連続禁止科目を午前または午後の時限間で連続させない〕
 体育と芸術は午前または午後において連続しないように配置されました。

 クラス時間表における上記の条件は、選択授業に含まれる各科目にも適用されます。
 クラス3-10を例にとって説明すると、次のようになります。
 物化T(4単位)は物Uと化T、化生U(2単位)は化Uと生Uの選択授業です。物化T、化生Uともそれぞれすべて別な日に配置され、2単位の化生Uは、中1日以上空けて配置されました。さらに同一教科(理科)に設定されている科目(物U、化T、化U、生U)を含む物化Tと化生Uは、週5日の内1日だけ重なって入りましたが、残りの4日については物化Tと化生Uのどちらか一方のみが配置されています。さらに、週1回は同じ日に重ならざるを得ない物化Tと化生Uは、1時間以上空けて配置されています。
 社公(2単位)は3-8、3-9、3-10を5人で担当する選択授業、地歴A(1単位)は3-9、3-10を4人で担当する選択授業ですが、これらの授業に対しても物化T、化生Uと同様の条件が満たされています。
 数C(3単位)は単独授業、数V(4単位)は3-9と3-10を3人で担当する選択授業ですが、これらの授業に対しても物化T、化生Uと同様の条件が満たされています。

■特別教室時間表において
 体育館の使用に関しては、次のようにコマが配置されました。
□〔同時展開数を最大許容数以下にする〕
 体育館の使用は2展開以下になりました。
□〔同時展開数を設定した許容数以下にする〕
 1限はすべて1展開となり、さらに2展開は最小になりました。
 (金曜7限は全学年ともHRです。)
□〔同じ分類名を持つコマを同時展開しない〕
 2展開の曜日・時限には、異なる学年の授業が配置されました。
 (実行時には右クリックで使用中のクラス名を表示できます。)

 ここまでできるとはすばらしい!