平成 21 年度
北九州市立大学特別研究推進費対象研究

Web による卒業単位チェックシステムの開発
松尾太加志
平成 22 年 4 月 1 日

目次

目次
1

はじめに

2

2

システム概要3

2.1

単位チェックプログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

2.2

科目表作成プログラム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3

4

5

卒業単位チェックの判定アルゴリズム

6

3.1

問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

3.2

再帰的アルゴリズムの必要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73.3

単位充足判定の方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

3.4

動的パラメータの算出アルゴリズム . . . . . . . . . . . . . . . . . . . . . . . . . . .

10
14

考察

4.1

アルゴリズムの有効性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

4.2

卒業単位チェックシステムの有用性 . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

謝辞

15

参考文献

15

A 卒業単位チェックシステムの使い方

16

B 科目表作成プログラムの使い方

17

C 研究成果の発表

20

1

1. はじめに1

はじめにチェックをすることに変わりはなく，間違いが生じる可能性はある．

大学のカリキュラムはさまざまな科目区分に分かれ，卒業に必要な要件は科目区分ごとの必要単位数だけではなく，複数の科目区分に渡った要件が設定されており，卒業要件の計算が複雑になっていることが多い．そのため，学生が計算を間違ってしまい卒業できなくなるケースもある．また，卒業できた学生であっても，卒業できるまでは，卒業に必要な単位を満たしているのかどうか不安を感じている学生も多い．
学務情報システム等が完備されている大学においては，不足単位数を示した成績表を配布したり，コンピュータ画面上で確認できるようになっているところもある．ただし，要件の条件が比較的単純な場合には科目区分ごとの不足単位数を示すことができるが，少し複雑になると的確に不足単位数を示すことができない．また，学務情報システムの導入に費用がかかるため，すべての大学においてこのようなシステムが利用できるわけではない．そのため，卒業要件のチェック確認表を配布するなどの対応のところも少なくない．しかし，確認表も履修便覧の記

そこで本研究では，コストがかからない汎用的な卒業単位チェックシステムの開発を検討した．学務情報システムは，履修成績や履修登録と連動させることによって有用なシステムとなっており，さらにコース管理システムとの連携が実現されている（梶田・角所・中澤・竹村・美濃・間瀬，2007）．しかし，カリキュラムに合わせたカスタマイズの必要性，成績と連動する
ためのセキュリティの確保（吉牟田，2004）の問題などが生じる．そのため，導入コストや運用コストは，金銭面だけではなく，システム構
築や保守運用のための人的資源においてもかな
り必要となる．
ところが，卒業の単位チェックだけに限れば，学生が自分の成績表を見ながら，単位数を入力すると，卒業判定ができるようなシステムとすることによって，学生のニーズは十分に満たすことができる．その場合，卒業要件の条件だけを設計すればよいためコストはあまりかからな
い上に，成績との連動もないため，セキュリティ上の問題も考慮する必要がない．したがって，

載内容をわかりやすく工夫しただけで，自分で図 1. 卒業単位チェックシステムの画面例．

2

2. システム概要
Web 上での構築も容易で，誰でも利用できるよ
うにすることが可能である．

  !#"%$&'

同様の単位チェックシステムはいくつかみられるが（栗原，2007; 岩下・片桐・ 天田・ 南・
中居，2006），汎用的なものは存在しない．大学の卒業単位要件は，科目区分ごとに必要な単位数が設定されるという点においてはどの大学%
./

ムの開発は可能であり，本研究では，それを実


kamoku.js

kamoku.htm

56においても共通であるため，アルゴリズムの工夫によって，汎用的な卒業単位チェックシステ +21
34
01 01

()+*
,-

help.htm

main.js

information.js

help.js

現することが目的である．
図 2. システムのプログラム構成図

2

システム概要図 1 に示したものが，実際に完成した卒業

単位チェックシステムの画面例である．学生は，

エンドユーザが実際に呼び出す HTML ファイ

Web 上で自分が取得した単位を科目区分ごとにルであり，後述の科目表作成プログラムによっ入力をする．そして「単位の計算」のボタンをて自動生成される．内容は，画面上に表示されクリックすると，科目区分での合計，全体の合る科目表の Table の定義がほとんどで，本プロ計等を算出し，科目区分ごとに判定を行ってく

グラムの主要部となるプログラムは，以下の２れる．その判定は３段階（○緑判定，×赤判定，

つの JavaScript ファイルに収められており，そ△黄判定）で，○は新たな取得不要，×は追加

れらのファイルはこのファイルにインクルード取得が必要，△は他の区分で取らなければ追加される．

取得が必要であることを示している（詳細は後科目情報ファイル (kamoku.js)

述）．学生はひと目でどの科目区分の単位が不科目に関する情報が収められているファイル

足しているのか知ることができるようになってで，後述の科目表作成プログラムによって自動

いる．

生成される JavaScript ファイルである．実際の本システムは，大きく分けて２つのプログラ

中身は，配列の宣言と変数の値の代入だけのプムから構成される（図 2）．ひとつは実際にエンログラムである．これらの変数は，卒業判定プ

ドユーザ（学生，教職員）が利用する単位チェッログラムで参照される．

クプログラムで，Web ブラウザで利用される．

卒業判定プログラムファイル (main.js)

もうひとつは，個々のカリキュラムに合わせた卒業判定のプログラムを記述したファイルで卒業単位チェックシステムを構築するためのプある．このプログラムでは，ユーザが科目区分

ログラム（科目表作成プログラム）であり，教ごとに入力した取得単位数に基づいて，科目区務担当者がシステム構築のために利用するもの

分単位でチェックを行う．チェックの結果は，次である．

の３つの段階で表示を行う．

• 当該の科目区分において単位充足し，か

2.1

単位チェックプログラム

図 2 の実践の枠全体が単位チェックプログラム

つ，合計単位数を満たすために取得する必要がない．
（○；緑表示）であり，以下のプログラムから構成されている．

• 当該の科目区分において単位が充足してメインプログラムファイル (kamoku.htm)

いないか，全体の合計単位数を満たすた

3

2. システム概要

図 3. CSV ファイルの例

図 4. 卒業単位チェックシステムで構築された科目表の例
めに必ず取得の必要がある．
（×；赤表示）• 当該の科目区分においては単位が充足しているが，全体の合計単位数を満たしてない．ただし，他の科目区分によっても合計単位数を満たすことが可能であるため，当該の科目区分で必ずしも取得する必要はない．
（△；黄表示）卒業単位チェックプログラムの使い方を説明するプログラムで，メインプログラムからリンクされている．
ヘルプ用科目情報ファイル (help.js)
卒業単位チェックプログラムの使い方を説明するために例示する科目表に関する情報が収められているファイルで，実際の中身は，配列の宣言と変数の値の代入だけのプログラムである．

卒業要件を満たすためには，すべての科目区

このプログラムも後述の科目表作成プログラム

分において，緑表示（○）にならなければならによって自動生成された JavaScript ファイルない．

である．hepl.htm にインクルードされて使わバージョン情報ファイル (information.js)

れる．

プログラムの改定情報を記述したファイルでバージョン表示を行う．kamoku.htm と help.htm
から呼び出して使われる．
ヘルププログラムファイル (help.htm)

4

2. システム概要

図 5. 科目表作成プログラムの実行例

2.2

科目表作成プログラム

CSV ファイルで記述された科目表ファイル
を読み込み，単位チェックプログラムのメインプログラムファイル (kamoku.htm) と科目情報
ファイル (kamoku.js) を自動生成するプログラ
ムである．C 言語 (コンパイラ Borland C++

Ver.5.5.1 for Win32) で記述されている Windows プログラムである．CSV ファイルで入力する内容は以下の通りである．
・科目区分名および科目区分コメント
・階層の様式（表形式にする場合の階層の指定）・最低単位数および最大取得許容単位
・入力項目であるか合計項目であるか（ユーザが単位数を入力するかどうかの指定）・合計項目番号および参入最低単位（合計項
目である場合．複数設定）
図 3 に示した CSV ファイルのように，Excel
で科目表を作成していく．まず，１〜99 の科目
番号を任意に振る．そして，科目区分の名称を入力し，必要に応じてコメントを入力する．このコメントは科目区分の上にマウスを移動するとポップアップされる．様式は階層の深さを指定する．できあがりの科目表（図 4）の階層は右に広がっていくため，列番号で指定することになる．次に取得すべき最低単位数と最大取得単位数（上限がある場合）を入力する．次の欄は入力項目か合計項目かを示す．利用者が直接取得単位数を入力する科目区分の場合「input」，
合計としての科目区分の場合「sum」と入力す
る．合計項目の場合，その後にどの科目区分を合計するのかを科目番号で示す．たとえば，科目区分「１．合計」の科目区分では「２．教養」，「６．語学」，「10．専門」を合計することを示している．さらに，算入する上限を指定する場
合，その最低単位を指定する．図 3 の例では，語学の合計は 12 単位までしか算入させないことを示している．
このようにして，教務担当者が上記の内容
を Excel で入力後，CSV 形式に保存し，そのファイルを科目表作成プログラムで実行すると，卒業単位チェックシステムで必要なファイル（kamoku.htm, kamoku.js）が自動生成される．図 5 には，科目表作成プログラムのダイアログを示している．科目表ファイルと出力フォルダを指定し，ファイル名を確認し生成実行を行えばよい．科目表ファイルの書き方に不具合があるとエラーが画面上に作成される．ただしエラーも警告レベルと致命的エラーがあり，致5

3. 卒業単位チェックの判定アルゴリズム
命的エラーの場合，生成は実行されないが，警

このような場合の判定に動的パラメータの導入

告レベルの場合生成実行はなされる．図 5 では，が必要であった．ここでは，再帰的アルゴリズ「合計（科目番号１）はどの項目にも算入されムと動的パラメータの導入によって実現されたていません」というメッセージが出ているが，卒業単位チェックの判定アルゴリズムについて

これは警告レベルのエラーである．合計は全体説明する．

の合計であるため，どの項目にも合計算入されなくても問題はない．科目表作成プログラムで

3.1

問題

3.1.1

階層的な科目体系の探索チェックされる主要なエラーは以下通りである．
・科目番号が１〜99 の範囲でない．
・科目番号が重複している．

卒業単位チェックシステムでは，各大学のカ

・どの項目にも算入されていない．

リキュラムに合わせて，どの科目区分の単位が・合計算入科目として参照している科目番号

どの科目区分の合計に算入されるのかを表したが存在しない．

科目表を作成するだけで，自動的にその大学に・合計がループになっている．

合った単位チェックプログラムが作成される．

・合計算入科目として参照している科目番号

そのデータ構造は，図 6 に示したようなポイン

が合計値でも入力値でもない．
・ある科目が複数の合計項目で割り当ての設定になっている．
・合計項目として指定してあるのに，算入科目の指定がない．
・必要最低単位数が合計項目の算入上限単位の合計よりも多くなっている
・階層列番号が１〜49 の範囲でない．
・階層列番号が論理的に間違い

タによる木構造となる（ヴィルト，1990）．各
ノードには科目区分名や当該の科目区分における最低取得単位数がデータとして示される．卒業単位の全合計は根ノードとなり，最下位の科
目区分は葉ノードとなり，ポインタは null で表
される．


  

・入力・合計の指定が適切でない．
科目表作成プログラムの実行によって自動的に単位チェックプログラムで使われる２つのファイルが生成された後は，単位チェックプログラ

   

ムに必要なファイル（図 2）を Web にアップロードすれば，卒業単位チェックプログラムが利用できる．

3

卒業単位チェックの判定アル
ゴリズム














図 6. 階層的科目体系のポインタによる木構造

卒業単位チェックプログラムに汎用性をもたせるために，データ構造が木構造となるため，単位計算などの探索において，再帰的なアルゴリズムの導入が必要であった．さらに，科目区分で定められた最低単位数を取得しただけでは合計単位を計算するためには，この木構造を下に探索しながら単位数を合計していく必要がある．その際，合計単位は下位ノードの単位を合計するというアルゴリズムによって実現でき上位の科目区分の合計を満たさないことがあり，

6

3. 卒業単位チェックの判定アルゴリズム
る．下位の科目区分は部分木となるため，再帰的アルゴリズムによって実装することができる．

3.1.2

単位の合計数が一致しないケースの判表 1. 合計一致型と合計不一致型の不足単位の計算例．上は一致型で下が不一致型．

科目区分

必要最

一般に，ある科目区分の必要単位数は，その教養（合計）

低単位
20

取得単位

不足単位

8

14
6

6
2

下位にある複数の科目区分の必要単位数の合計

人文
社会

6
6

6
2

0
2

科目区分

必要最

取得単位

不足単位

計数を満たすには，各科目区分での必要単位数

教養（合計）

低単位20を満たした上に，さらに合計数を満たすように，

人文

どこかの科目区分から単位を取得しなければな

社会

らない．

自然

14
6
6
2

6
0?
0?
2?

定

となる．ただし，場合によっては，科目区分ご

自然とに必要な単位の最低数が定められているだけ
で，それらの必要最低数を合計しても，上位で必要な単位数に満たないことが多い．上位の合444

各科目区分での必要単位数の制約を低くする
ことによって，学生は自分が取りたい科目区分での科目を多く履修し，それらを卒業単位に反映できるため，学生の科目履修の自由度を高めよぶこととし，合計の算入の上限を算入上限とよぶ．

たカリキュラム体系になっている．このようなカリキュラムの場合，学生によって，科目区分の取得単位数が異なるため，卒業に必要な単位の計算誤りが生じやすくなる．そのため, このようなカリキュラム体系の場合，卒業単位チェックシステム導入の有用性が高い．
ここでは，以下のような用語の使い方をする．
必要最低単位数は各科目区分で最低取得しなけ
ればならない単位数とする．また，開講科目数などによって認定される単位数の上限が決まっている場合，それを最大認定単位とよぶ．そして，ある科目区分の必要最低単位数がそれよりも下位の科目区分の必要最低単位数の合計と一致する場合，合計一致型とよび，そうでない場
合を合計不一致型とよぶ．表１に合計一致型と合計不一致型の例を示した．
合計一致型の場合，当該の科目区分で定められた単位を超えて取得しても，超過分は合計に算入されない．合計一致型でなくても，合計に算入される単位数を限定している場合も，超過分が合計に算入されないため，合計一致型と等価となる．このような場合を擬似合計一致型と

3.2

再帰的アルゴリズムの必要性

卒業単位チェックシステムとして有用なのは，最終的な卒業判定よりも，どの科目区分でさらに単位を取得する必要があるかを示すことである．合計一致型の場合，各科目区分での不足単位数がそのまま取らなければならない単位数となるため，単純に不足単位数を算出すればよい（表 1 上，図 7a）．
ところが，合計不一致型の場合，必要最低単位数を満たしていても，上位の合計を満たすた
めに，さらに単位をとらなければならないことがあり，明確に何単位あと取得しなければならないか判定できないため，単純なアルゴリズム
では実現できない．表 1 下および図 7b に示した例では，「人文」や「社会」では単位を充足しているが，「教養（合計）」を満たすためには，
まだ単位を取る必要が残っている．ただし，「自然」で２単位不足しているため，２単位分は確
実に補うことができ，「教養（合計）」の不足分の６単位すべてを「人文」や「社会」で補う必要はなく，最大で４単位までとなる．しかも，そ7

3. 卒業単位チェックの判定アルゴリズム

'  $%  
$   "   (#$  
 "      %
 #) 
F +-,/.2173/4>576/,2870>97:7;2G/HIA/B2J7KML2N/O78       表 2. 下位科目区分まで探索しなければならな
い例
必要最低

教養

単位
10

実践

2
16
26


      
     

 

!"
) *,+.-./103254768:93;7<.=5>$?@.A1B
   然」のいずれかの科目区分で補ってしまえれば，新たに取る必要がないため，「人文」や「社会」
大で４単位にすぎない．そのため，「あと０〜４40

の４単位までというのも，
「人文」，
「社会」，
「自

で取るべき単位は，４単位が必須ではなく，最

10
0

基礎
合計

取得単位数

8
18

20

専門



#$    
 # !       !"    %& !"   * +-,/./021/3/42576/,28/0297:7;2<>=7?@57A/B/C2D/E
図 7. 各科目区分ごとの判定例

科目区分        

!"  
$#% (    
'& C *ED7F5GIH7J7K3L.<.=5>?M@.A1B

単位必要」という幅をもった判定となってしまう．
「自然」についても同様で，最低不足分の２単位は必ず必要であるが，追加４単位分は，「社
会」や「人文」で取れれば必要がなくなるため，「あと２〜６単位必要」ということになる．

図 8. 下位科目区分まで探索した場合との比較

図 7b で示した例では階層が２つで，同じ水準のノードの他の科目区分での必要単位数を計算すればよいが，階層が深くなると，その下位の科目区分に対しても探索が必要となる．そのような例を表 2 に示した．この例では「教養」

えると，下位の部分木の探索が必要となり，一種のバックトラックによる再帰的アルゴリズムが必要となる．

から見た場合，「合計」の不足 14 単位を補うには，「専門」での２単位不足により２単位は確保

3.3

単位充足判定の方法

できるため，同一水準のノードだけで見れば最3.3.1

単位チェックの３段階判定

大でも 12 単位でよい（図 8a）．しかし「専門」の下位科目区分をみると，「基礎」で８単位不足

単位チェックの判定において，あと何単位としているため，その上位の「専門」でも８単位る必要があるかを範囲で示すと誤解を招いてしは確保できる．したがって「教養」で補うべきまう恐れがある．範囲の最大値まで取得しなけ

単位の最大は 14 から８を減じた６単位となる

ればいけないと思ってしまったり，最小値でよ（図 8b）．

いと思ってしまったりする可能性がある．そのこのように，他の科目区分での不足単位数を計算しながら，当該の科目区分であと何単位必ため，単位数は明示せず先に示した３段階での判定を行うこととした．

要なのかの計算を行う必要がある．木構造で考8

3. 卒業単位チェックの判定アルゴリズム
合計一致型の場合，他の科目区分での単位取

各科目区分においての最低条件は，当該の科得状況とは関係なく単位の充足判定ができるた

目区分で定められている最低必要単位数をまずめ，当該の科目区分で単位が充足しているかど

満たすことである．したがって，最小見込み単うかの判定になる．そのため黄判定が生じるこ

位数は最低必要単位数を下回らない．図 7b のとなく，あらかじめ定められた最低必要単位数「自然」では，最小見込み単位数は４単位となとの比較で赤判定か緑判定かが決まってしまう．

る（表 3）．ただし，すでに最低必要単位数を主として問題になるのは，合計不一致型の場

超えている場合，見込みとしてはその取得単位

合，緑判定か黄判定のいずれになるかの判定でを下回ることはあり得ないため，取得単位数がある．判定には，他の科目区分の単位取得状況

最小見込み単位数となる．
「社会」や「人文」でによって，どこまで単位を取る必要があるかのは必要最低単位はいずれも４単位であるがすで情報が必要となる．

に６単位取得しているため，最小見込み単位数
は６単位となる（表 3）．

3.3.2

動的パラメータの導入

ここで，最大認定単位 (max)，最低必要単位数（min），最大見込み単位数（p max），最小

そこで，各科目区分の単位の取得状況によっ

見込み単位数（p min）の関係を図 9 に表した．

て動的に変化する見込み単位数の最大と最小の合計一致型の場合，これら４つのパラメータは値を算出することによって判定ができるように同じになるが，合計不一致型の場合，２つの見した．前者を最大見込み単位数，後者を最小見込み数は max と min の間で動的に変化するこ込み単位数とよぶ．

とになる．

・最大見込み単位数 p max
合計不一致型の場合，合計単位数を満たすた
めには，最低必要単位数以上の単位を取得しなければならない．それは，合計に算入される他の科目区分の単位取得状況によって変化する．
他の科目区分で必要単位が多く残っていれば，そこで確実に取得単位が増えるため，当該科目区分で新たに取得する単位数は少なくてよいが，そうでない場合は多く取得しなければならない．

 "! #$*,5
67 "! 8$1 "!324$%'&)(+*+,+-/.+0

そのため，各科目区分において最大で何単位ま       

で取得が見込まれるのかを算出する．たとえば，
図 7b で「社会」や「人文」から見ると，「自然」

図 9. ２つの動的パラメータと単位充足判定

はまだ不足単位を２単位残しているため，２単ルールの関係．取得単位の数によって判定が異位は確実に増える．そのため，合計６単位不足

なる．

を満たすのに，「社会」や「人文」では，あと最大４単位とればよく，最大見込み単位数はすでにそれぞれで取得している６単位を加え 10 単位となる（表 3）．一方，「自然」から見ると，「社
会」や「人文」では不足単位がないため，「自然」では合計を満たすには最大であと６単位必要で，最大見込みは取得している２単位を加え８単位となる（表 3）．
・最小見込み単位数 p min

3.3.3

単位の充足判定のルール

２つの動的パラメータの導入によって，単位判定は以下のルールに集約される（図 9）．

• 緑判定 取得単位が最大見込み単位数以上の場合

9

3. 卒業単位チェックの判定アルゴリズム

表 3. p max, p min の計算と判定の例
科目区分

必要最

教養（合計）

低単位
20

取得単位

p max

p min

20
10

20
6

×赤判定

10
8

6
4

△黄判定

人文

4

14
6

社会

4
4

6
2

自然

• 赤判定 取得単位が最小見込み単位数に

判定

△黄判定
×赤判定

メータと実際に取得した取得単位を比較することによって，判定が可能となる．

満たない場合• 黄判定 取得単位が最大見込み単位数未

3.4

満で最小見込み単位数以上の場合

動的パラメータの算出アルゴリズ
ム

取得単位数が最大見込み単位数以上であるということは新たに単位を取得する必要がないとこれまで述べてきたように，単位充足判定にいうことである．また，最小見込み単位数に満おいては，動的パラメータの２つの値を算出す

たないということは，当該科目区分から必ず追ることによって判定が可能となる．問題は動的加取得が必要であるため，赤判定になる．最大パラメータをどのように算出するかである．そ

見込み単位数と最小見込み単位数の間に取得単れは以下の３つのフェーズで行われる．ここで位数がある場合は，上位の科目区分の合計を満は，表 2 に示した科目体系を用いて説明する．

たす必要があることを示しているが，それが当

p min や p max の算出例を含めて，改めて表 4

該区分でなくてもよく，他の科目区分で追加取に示した．なお，ここでは，取得単位という表得がなされれば，新たに取得の必要はなくなる．

現を認定単位と表している．科目体系によってこのような場合黄判定となる．黄判定は合計一は，取得単位すべてが卒業に必要な単位になら致型の場合生じない．

ない場合があり，卒業に必要な単位として認定

表 3 に判定例を示した．
「人文」と「社会」は，取得単位６単位が p min と p max の間にあるされるものだけを使って判定を行うため，認定単位としている．

ため黄判定となるが，「自然」と「教養（合計）」はいずれも p min を取得単位が下回っているた
め，赤判定となる．このように２つの動的パラ表 4. ３つのフェーズにおける p max, p min の更新例
科目区分

必要最低単

認定単位数

第 １ フェー ズ

第２フェーズ

第３フェーズp max の更新

p min の更新

818

p max, p min の
仮設定
10
20

14
30

10
26

10
16

14
20

10
16

40

40

40

位数

10
20

教養
専門

10
0

基礎
実践
合計

40

2
16
26

10

3. 卒業単位チェックの判定アルゴリズム
3.4.1

p min と p max の仮

第１フェーズ

3.4.2

第２フェーズ

他の科目区分での最小取得見込みを考慮した p max の更新

設定
まず，p min と p max の値を，他の科目区分

p max 更新を再帰的なアルゴリズムとして実を考慮せずに仮設定を行う．設定はいずれの値装したのが，図 10 である．この計算処理では，も，認定された単位と最低必要単位の大きいほ

まず，他の科目区分で少なくとも何単位増える

うとする．p min は，最低でも最低必要単位をのかを他の科目区分ごとに算出する必要がある．

とることになるので，最低必要単位以上になる．

それが図 10a のアルゴリズムである．最小見込

ただし，先に述べたように，すでに最低必要単み単位数から認定単位数を減じれば何単位増え位以上の単位が認定されていれば，見込みとし

るのかがわかる（図 10aては，それを下回ることはなく，すでに認定さ位は，算入上限があれば，それを超えて上位のれた単位を p min の値として設定する．

科目区分に算入されないため，それを考慮して）．ここで増える単

一方，p max は見込みとして最低でも最低いる．表 4 の例の「専門」で何単位増えるかは，

必要単位を取るが，すでにそれを越えた単位を第１フェーズでの p min の値 20 から認定単位取っている場合，見込みとしてはその値を下回

18 を減じた値２単位となる．これが当該科目のることがないため，p min と同様すでに認定さ増となる．

れた値を設定する．

しかし，先に述べたように下位科目区分も探索する必要があり，下位科目区分での不足単位があれば，その分増えることになるため，下位科目区分での増の合計を再帰的に最下層までた

1  3  1 i  2   
 NO ?e RS!#9 mJ= !  '  3  K LM."NO  PQ .RS n

T/UV W/X(Q .#!#$.0%&YZ  
7    "(    .09 :; #<=>?

\2^

 [ . #Q#.#! $.0%&]\ 2 ^ \2^ _      "( 
l

 
 
 G

RS!# 
J4= !# ) \ 2 ^p

1  3 `ab'  3  RS! 4qde"fg !#
h 1  3

1  3c
1  3 `ar h 1  3

1  3c sjk *+ !#
h 1  3

1  3cjk *+ !#

,#-  /.0$ '   1  ( 0 )*+ !#o 
H

#  .09: ;0<=(>?

@4ACB4DECF 67  58
       "    "!#$%& '     (  )*+ !# I2

'  3  #4!#$%&  ,-  5$ { vP 04 4"4 
 CC"t

1  3  1 i  2  # 
" NO ?e RS!#9 

Y Z    8 *+ !#

@4A4BCDE4F

u vxw y z { | }~#C4"

図 10. 最大見込み単位数 (p max) 更新のアルゴリズム

11

3. 卒業単位チェックの判定アルゴリズム
どって合計を行う（図 10a）．表４の例では，分での不足単位（あと何単位増えるか）を計算「基礎」と「実践」の科目の２つの下位科目区する（self sum）．たとえば，教養について計算

分の分だけ合計を算出する．
「基礎」は８単位する．ここでは図 10a に示したアルゴリズムを増が見込まれ，「実践」では単位増無しで，ここ

使い，それよりも下位の科目区分も探索して何の合計 (sum) は８単位となる．ここでも算入上単位増えるかを算出する（図 10b限を考慮して，下位科目単位増合計が算出されには下位科目は存在しないため，この場合下位る．この値と当該科目増の大きいほうの値がそ

探索は行わなくてよく，「教養」では２単位増だの当該科目区分での増分になる（図 10a

けとなる．

）．

）．
「教養」

下位科目区分（「基礎」と「実践」）の合計８単

次に他の科目区分でどれだけ単位が補えるか

位増と「専門」の２単位増を比較して，大きいを合計する．ここでは他の科目区分は「専門」

ほうの８単位が上位科目区分に増える単位数とだけであるが，複数あれば複数の科目区分の合なる．

計（other sum）を算出する（図 10b）．こ

ここで再帰的に呼び出されている min increase

こでも，図 10a に示したアルゴリズムを使っての関数は２つの引数を持っており，科目区分を再帰的に下位科目区分まで探索をしていく．こ

指定する引数と算入上限の制約を指定すること

こでの科目区分「専門」の計算過程は，図 10aになっている．このアルゴリズムは実際には次のアルゴリズムを説明したときにすでに述べたに説明する p max の更新のアルゴリズムで利通りである．Other sum は８単位となる．

用される．

この値は「合計」の科目区分の残り単位を減

p max の更新では，上記で述べた他の科目区じるのに使え，その残り分が不足単位となる（図分で算出される単位増の値を見込んで，最大何10b単位取得を見込めばよいかを算出する．そのアた６単位となる．この値がターゲット科目区分

ルゴリズムが図 10b である．まず，上位から残「教養」で取るべき最大の単位数となる．ただ単位を継承し，同時に上の科目区分での不足分

し，先ほど算出した「教養」自身で増える２単と比較し，大きいほうの値を残り単位としてま位（self sum）がそれを上回っていれば，そちかなう必要がある（図 10bらのほうが取るべき最大単位数となる．そして，）．ここでは「教）．この場合，14 単位から８単位を減じ養」と「専門」に関して注目すると，その上位

その値に認定された単位を加えた単位が p max

区分は「合計」になる．
「合計」では，14 単位不の候補値となる（図 10b足している．さらに「合計」の上位でもっと多と２単位の大きい方の６単位にすでに認定されく単位不足が生じている可能性があることも考ている８単位を加えて，14 単位が p max の候慮して，その不足単位（上からの継承）も継承補となる．そして，それがすでに設定されていしなければならない．その単位数が多ければ，る p max よりも大きい場合，この候補値で更

その単位数を下位でまかなうこととなる．ただ新することとなる (図 10b

し，表 4 の例の場合，「合計」の上は存在しない(図 10b

ため，「合計」で不足している 14 単位を下位のないようにする必要がある．そして，さらに，「教養」と「専門」でまかなうことになる．

下位の科目区分でも同様の処理を行っていくた

次に，ここでの科目区分の「教養」と「専門」）．つまり，６単位)．後は，算入上限) や最大認定単位（図 10bめに再帰的に行う（図 10b

）を超え

）．

の２つについて，自分のところの下位科目区分

この一連の処理をターゲット科目区分を順々での単位増と他の科目区分の単位増を計算して，に変えて行う．ここでは，あとは「専門」をター

それらで不足分をどこまでまかなえるかどうか

ゲット科目区分として処理するだけである．
「専を算出する．そのために，以下の処理を繰り返門」がターゲットとなると，さらにその下位科

すことになる．まず，ひとつの科目区分をター

目区分「基礎」や「実践」でも同様の処理を行

ゲット（ターゲット区分）にして，その科目区う．その結果，表４に示した値で p max の更新

12

3. 卒業単位チェックの判定アルゴリズムがなされる．

まず，第２フェーズが他の科目区分での最小

ここでの再帰的関数 p max update は科目区取得見込みを考慮するのに対して，第３フェー

分の指定の引数と下に継承していく不足単位数

ズでは，他の科目区分での最大取得見込みを考を引数として指定することとなっている．

慮するため，何単位増えるかの算出において，第２フェーズで p min と認定単位の差で計算し

3.4.3

第３フェーズ

他の科目区分での最大ていたのを p max との差で計算するところが異なるだけである（図 11a

取得見込みを考慮した p min の更新）．もうひとつは，ターゲット科目区分の合計を０とすることであ第２フェーズでは，他の科目区分での単位の取得可能性の最低を考慮したが，第３フェーズ
では，他の科目区分での単位の取得が最大の可能性を考慮することになる．他の科目区分で単位を最大限取得しても，まだ足りない可能性があった場合，足りない単位分は当該の科目区分で取得しなければならない．その単位数がどの程度であるのかを計算して，当該科目区分での最小見込み単位数 p min を更新する．
第３フェーズのアルゴリズムを図 11 に示したが，第２フェーズのアルゴリズムとほとんどる（図 11b）．これは，不足単位との比較において（図 11b），不足単位がマイナスを示すこともあり，０を超えないようにするためにすぎず，ターゲット科目区分の合計を０とみなすこと自体には特別の意味はない．プログラムのメンテナンス上，第２フェーズと第３フェーズのプログラムを同じ形式にするメリットがあるためである．第２フェーズにおいて，すでに他の科目区分の p max の値にターゲット科目
区分での最小見込み単位増が織り込まれているため，ターゲット科目区分の単位増は考慮する

類似しており．以下の２つの点のみが異なる．

2   2 i  3    
 NO ?e RS"$9 
mJ= "! (   K!LM/#NO !PQ!/RS n

T0UV!W0X)Q!/$"$%/1&'[ !/19 :; $<=>?

] 3 _    
\ /$Q$/$"!%/1&'^] 3 _     ] 3 _    `       1) !
l
    

G

o

RS"$ 
J4= "$ * ] 3 _    
p2  abc
(   RS"!4  Y Z    8 +, "$qde#fg "$h 2 

2  C
2  abr h 2 

2  C sjk +, "$h 2 

2  Cjk +, "$-$.  0/1% (  2   1 *+, "$
 H  /19$:!;1<=)>?

@4ACB4DECF 67  58     $  # !  #"$%&' (    ) !*+, "$ I3 (   $4"$%&'! -.  5% 

 vx!44!
!CC# YZ  t

2   2 i  3   $ # NO ?e RS"$
9 

@4A4BCDE4F

u vxw y z{ | }~!!P4#

図 11. 最小見込み単位数 (p min) 更新のアルゴリズム

13

4. 考察は，科目区分ごとに，他の科目区分で何単位取必要がない．
表 4 における「専門」の p min の更新のプ得する可能性があるのかを計算しており，一度ロセスを追うと以下のようになる．残り単位は算出した値を再度計算し直す形になっており，「合計」14 単位で第２フェーズの場合と変わら

無駄な計算を無くすような工夫も必要である．

ない．他の区分での単位増の合計（図 11b）は，対象となるのが「教養」だけであり，今回は，p max と認定単位との差（図 11a

4.2

）で算

出され６単位となる．そして，残り単位 14 と卒業単位チェックシステムの有用性の差の不足単位が８となる．この値に「専門」

本システムの実現によって，学生は科目区分の認定単位 18 を加えたのが，p min の候補値ごとに取得単位数を入力するだけで，３つのレで 26 単位となる．第１フェーズで設定されたベルで単位の取得状況を確認できるようになっp min20 単位よりも大きいため，26 単位で更新

た．学生はどの科目区分が不足しているのかがされることになる．後の科目区分も同様の計算

わかり，単位計算を誤って卒業できなくなったを行うことになるが，いずれも他の科目区分でりしてしまうことがほとんど無くなる．さらにの単位増が残り単位を上回り，不足単位が負の

このシステムの利点は，表示結果をもとに履修値を示す．そのため，p min の候補は，現在値

プランを立て，取得予定単位数を入力すれば，を超えることはなく，更新されないこととなる

計画通りの単位取得で卒業要件を実際に満たす（表 4）．

のかどうか確認できることである．卒業できるのかどうか不安を感じる学生の不安を解消する

4

考察

4.1

アルゴリズムの有効性ことができる．
また，このシステムは汎用性をもたせたシス
テムであるため，他大学での利用も可能であり，教務担当者が科目表を作成すればどの大学のカ本システムの開発にあたって，２つの動的パラメータを導入し，その算出を再帰的アルゴリ
ズムによって実装できた．図 9 に示したように，
２つの動的パラメータによって３段階の判定基準が明確で単純になった．その動的パラメータを更新するために再帰的なアルゴリズムが有効であった．この結果，汎用性をもたせ，どのような科目体系でも構築できることになった．
図 1 に示した例は，表 4 に示したカリキュラ
ムに語学の科目を加えたもので，語学は最大認
定単位 10 単位となっており，これ以上単位を取得しても，上位の合計には貢献できず，すでに 10 単位取得しているため，緑判定（○）となっている．このように合計不一致型の体系であっても，どの科目区分でさらに単位取得が必要であるのかが簡単にわかるようになった．
ただし，他の科目区分に単位を流用するプログラムが十分に完成しておらず，今後さらに検討する必要がある．また，現在のプログラムでリキュラムにも対応することができる．卒業要
件だけではなく，卒業論文（卒業研究）着手要
件，進級要件などの設定も簡単に行うことができる．
履修プランや卒業要件のチェックは，学生自身が履修便覧等を精読して，履修要件を十分に理解すれば生じることではないことであるが，人間である以上，間違いが生じるのはやむを得ない．人間が起こす間違い（ヒューマンエラー）
に対して，松尾（2003）は，間違いであることに気づかせるための外的手がかりのしくみを設けることが必要だと主張している．自分だけで考えていると大丈夫だと思い込んでしまい，間違いに気づかないことが多い．松尾は外的手がかりとして，対象，表示，ドキュメント，人を提案している．卒業単位のような情報に関するエラーの場合において，松尾の外的手がかりの提案に適用すると，人，ドキュメントの外的手がかりのしくみを設けることが考えられる．

14

5. 謝辞人は，友人，教員，事務職員に尋ねるなど，
自分以外の他者に確認をしてもらうことを指す．

ステムの有用性はかなり高いものであると考えられる．

しかし，現実は人という外的手がかりに頼ることは難しい．友人と確認しあったとしても，その確認で正しいのかどうか学生の不安がなくな

5

謝辞

るわけではない．教員に尋ねることは敷居が高東亜大学の具志堅伸隆先生には，本システム

いし，教員の中には卒業要件を十分に把握してを使っていただき，バグ等の指摘をいただきまいない教員もいる．事務職員の場合，一人ひとした．記して感謝いたします．

りの学生に対応するのは大変であるし，事務職員も人間である以上，間違うこともあり，間違ったことを教えてしまった場合，責任問題となっ

参考文献

てしまう．

[1] 岩下亜希子・片桐理紗,・天田貴大・南弘

ドキュメントは，履修便覧や確認表などで確樹・中居祐一 (2006). インターネットを利認することであるが，それを読むコストがかかっ用した教員免許取得単位のチェックシステ

たりわかりにくかったりすることがある．誰もム 朝日大学学長研究奨励費研究結果論文が履修便覧で確認できれば，卒業単位の計算ミ

集, 2, 26-31.

スは起きないわけであり，このようなドキュメ
ントを使っても，単位計算を誤って卒業できな[2] 梶田将司・角所考・中澤馬志・竹村治雄・美濃くなるケースが出てくるのである．したがって，

導彦・間瀬健二 (2007). 高等教育機関におこのようなドキュメントは有効ではない．
．松

ける次世代コース管理システムの構築に向尾はドキュメントの中には，紙だけではなく電けて 日本教育工学会論文誌, 31, 297-305．

子的なものも含めて考えている．本研究で開発[3] 栗原和夫 (2007). Web アプリによる卒業

したチェックシステムは電子的なドキュメント

要件単位計算 情報学研究（朝日大学経営に相当する．しかも，単なるドキュメントとい

学部電子計算機室年報），16, 21-28.

うよりも電子アシスタントというべきものである．このような電子アシスタントであれば間違いはなくなる．
ただし，松尾 (2003) が指摘しているように，
外的手がかりは主観的確信が高い場合，たとえ[4] 松尾太加志 (2003). 外的手掛かりによる
ヒューマンエラー防止のための動機づけモデル，ヒューマンインタフェース学会誌，

5, 75-84.

しくみとして設けてあってもそれを利用されな[5] 吉牟田裕 (2004). Web による履修登録シいことが考えられる．まり，学生自身の主観的ステムの構築と運用−ウェブデザインから確信が高いとこのようなシステムは利用されに

DBMS、運用体制まで−，富山国際大学地

くい．学生が大丈夫だと思い込んでこのシステ

域学部紀要，4, 111-116.

ムを使わなければ意味がない．また，単位数の入力ミスに対しても脆弱である．汎用性を持たせたため，学生に配布される成績一覧表と本シ
ステムの表示画面の対応がわかりにくくなり，[6] ヴィルト, N.(浦昭二・國府方久史

訳)(1990). データ構造とアルゴリズム 近代
科学社

単位数の入力ミスが発生する可能性もある．学
務情報システムが完備して，自分の取得単位を確認する際に同時にこのようなチェックシステ
ムが使えることが理想的であるかもしれない．
しかし，導入コスト等の問題を考えれば，本シ

15

A. 卒業単位チェックシステムの使い方

A

卒業単位チェックシステムの使い方

help.htm 実行時の画面

16

B. 科目表作成プログラムの使い方

B

科目表作成プログラムの使い方

17

B. 科目表作成プログラムの使い方

18

B. 科目表作成プログラムの使い方

19

C. 研究成果の発表

C

研究成果の発表
1. 「汎用的な卒業単位チェックシステム」（教育システム情報学会第 34 回全国大会

2009 年８月

20 日）
2. 「階層的科目体系での卒業単位チェックプログラムにおける再帰的アルゴリズム」（日本情報ディレクトリ学会第 13 回全国大会

2009 年９月 12 日）

3. 「階層的科目体系における卒業単位チェックの判定アルゴリズム−動的パラメータの導入と再帰的アルゴリズムによる実現−」（日本情報ディレクトリ学会誌第８巻

2010 年 3 月）

20