階層的科目体系における卒業単位チェックの判定アルゴリズム－動的パラメータの導入と再帰的アルゴリズムによる実現－
Algorithmic verification of graduation credit requirements for a multi-stage curriculum: Implementation
using dynamic parameters and a recursive algorithm
松尾太加志＊
Takashi MATSUO
The purpose of this paper is to report on how recursive algorithms and dynamic parameters were used to create an
academic credit requirement verification system to be used to determine graduation eligibility. The hierarchicalcurriculum has been represented using a tree structure with a pointer. The use of a recursive algorithm was necessary toallow curriculum components to be searched and total credits earned to be calculated. In the case of a system which
does not cross-verify credit totals, a separate algorithm must be used to determine credit deficits within specificcurriculum areas. For this reason, a recursive algorithm is required to allow for recalculation of previously accessedvalues (a kind of back-tracking method). Furthermore, by calculating prospective minimum credit totals andprospective maximum credit totals, dynamic parameters within each curriculum area may be compared with actual
credits earned, thereby facilitating a three-step verification procedure..
Key words: recursive algorithm, dynamic parameter, graduation credit requirements
本論文の目的は，「卒業単位チェックシステム」の実装における動的パラメータと再帰的アルゴリズムについての報告である．階層的科目体系では，その構造はポインタによる木構造として表現され，その科目体系を探索して単位の合計を算出するには，再帰的アルゴリズムが必要である．また，合計不一致型の単位シ
ステムの場合，判定アルゴリズムにおいて，他の科目区分の不足単位数を計算する必要がある．そのため，一種のバックトラックによって再帰的アルゴリズムで実現しなければならない．さらに，各科目区分においての判定を３段階で行うのに，各科目区分における動的パラメータとして最大見込み単位数と最小見込み単位数を算出することによって，それらの動的パラメータと取得単位数との比較で判定が可能になった．
キーワード：再帰的アルゴリズム，動的パラメータ，卒業単位
１．はじめにことは困難な課題ではなく，そのようなシステムが大学のカリキュラムの科目体系は科目区分が階層利用できれば，大学の学務においても学生側にとっ的な構造をしており，卒業に必要な単位は下位の科ても有益である．現在，学務情報システムの多くは，目区分の合計が上位の科目区分に算入されるように履修成績や履修登録と連動させることによって有用なっている．大学の学部学科によって，科目自体はなシステムとなっており，さらにコース管理システ

異なるものの，このような階層的な構造は共通しており，卒業に必要な単位をチェックする際の基本的なルールや構造は同じである．そのため，卒業単位チェックの汎用的なプログラムを開発する

図 1 「卒業単位チェックシステム」3）の出力例．○は新たな取得不要，×は追加取得が必要，△は他の区分で取らなければ追加取得必要．○は緑，×は赤，△は黄で表示＊ 正会員 北九州市立大学文学部人間関係学科教授

ムとの連携が実現されている 1)．しかし，カリキュ

合計

ラムに合わせたカスタマイズの必要性，成績と連動50単位するためのセキュリティの確保

2)の問題などが生じる．そのため，導入や運用コストは，金銭面だけで教養はなくシステム構築や保守運用のための人的資源においてもかなり必要となる．しかし，卒業の単位チ

20単位

（省略）

ェックだけに限れば，卒業要件の条件だけを設計す
人文

ればよいためコストはあまりかからない上に，成績との連動もないため，セキュリティ上の問題も考慮する必要がない 3)．
同様の単位チェックシステムはいくつかみられるが4)，汎用的なものは存在しない．そこで，Web で

社会

4単位

自然

4単位

null

4単位

null

null

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

利用できる卒業単位チェックの汎用的なシステム（図１）の開発を行った 3）．汎用性をもたせるため

2.2 単位の合計数が一致しないケースの判定に，データ構造が木構造となるため，単位計算など

一般に，ある科目区分の必要単位数は，その下位の探索において，再帰的なアルゴリズムの導入が必にある複数の科目区分の必要単位数の合計となる．

要であった．さらに，科目区分で定められた最低単

ただし，場合によっては，科目区分ごとに必要な単位数を取得しただけでは上位の科目区分の合計を満位の最低数が定められているだけで，それらの必要

たさないことがあり，このような場合の判定に動的最低数を合計しても，上位で必要な単位数に満たなパラメータの導入が必要であった．本稿では，再帰いことが多い．上位の合計数を満たすには，各科目

的アルゴリズムと動的パラメータの導入によって実区分での必要単位数を満たした上に，さらに合計数現された卒業単位チェックの判定アルゴリズムにつを満たすように，どこかの科目区分から単位を取得

いて報告を行う．

しなければならない．
各科目区分での必要単位数の制約を低くすること

２．問題

によって，学生は自分が取りたい科目区分での科目

2.1

を多く履修し，それらを卒業単位に反映できるため，階層的な科目体系の探索「卒業単位チェックシステム」では，各大学のカ

学生の科目履修の自由度を高めたカリキュラム体系

リキュラムに合わせて，どの科目区分の単位がどのになっている．このようなカリキュラムの場合，学科目区分の合計に算入されるのかを表した科目表を生によって，科目区分の取得単位数が異なるため，作成するだけで，自動的にその大学に合った単位チ

卒業に必要な単位の計算誤りが生じやすくなる．そェックプログラムが作成される

3）．そのデータ構造

は，図２に示したようなポインタによる木構造となる

5）のため,このようなカリキュラム体系の場合，「卒業単位チェックシステム」導入の有用性が高い．

．各ノードには科目区分名や当該の科目区分に

本稿では，以下のような用語の使い方をする．必

おける最低取得単位数がデータとして示される．卒

要最低単位数は各科目区分で最低取得しなければな

業単位の全合計は根ノードとなり，最下位の科目区らない単位数とする．また，開講科目数などによっ分は葉ノードとなり，ポインタは null で表される．

て認定される単位数の上限が決まっている場合，そ合計単位を計算するためには，この木構造を下にれを最大認定単位とよぶ．そして，ある科目区分の探索しながら単位数を合計していく必要がある．そ

必要最低単位数がそれよりも下位の科目区分の必要の際，合計単位は下位ノードの単位を合計するとい

最低単位数の合計と一致する場合，合計一致型とようアルゴリズムによって実現できる．下位の科目区

び，そうでない場合を合計不一致型とよぶ．表１に分は部分木となるため，再帰的アルゴリズムによっ

合計一致型と合計不一致型の例を示した．

て実装することができる．

合計一致型の場合，当該の科目区分で定められた

教養（合計）必要最低取得単位 不足単位単位
教養（合計）
20
14
6
人文
8
6
2
社会
6
6
0
自然
6
2
4
科目区分

必要最低
取得単位 不足単位単位
教養（合計）
20
14
6
人文
4
6
0?
社会
4
6
0?
自然
4
2
2?

自然

社会

４単位不足
あと４単位必要

不足なし
あと必要なしa)ない．合計一致型でなくても，合計に算入される単位数を限定している場合も，超過分が合計に算入されないため，合計一致型と等価となる．このような場合を擬似合計一致型とよぶこととし，合計の算入の上限を算入上限とよぶ．
３．再帰的アルゴリズムの必要性「卒業単位チェックシステム」として有用なのは，最終的な卒業判定よりも，どの科目区分でさらに単位を取得する必要があるかを示すことである．合計一致型の場合，各科目区分での不足単位数がそのま
ま取らなければならない単位数となるため，単純に不足単位数を算出すればよい（表 1 上，図３a）．
ところが，合計不一致型の場合，必要最低単位数

人文

教養（合計）

自然

６単位不足
あと６単位必要社会

２単位不足
あと２～６単位必要

b)

２単位不足
あと２単位必要

合計一致型の場合．不足単位分を取得すればよい．

科目区分

単位を超えて取得しても，超過分は合計に算入され６単位不足
あと６単位必要人文

不足なし
あと０～４単位必要

不足な し
あと０～４単位必要

合計不一致型の場合．不足単位数以上の取得が必要
図３ 各科目区分ごとの判定例

は確実に補うことができ，「教養（合計）」の不足分の６単位すべてを「人文」や「社会」で補う必要はなく，最大で４単位までとなる．しかも，その４単位までというのも，
「人文」，
「社会」，
「自然」のいずかの科目区分で補ってしまえれば，新たに取る必要がないため，「人文」や「社会」で取るべき単位は，４単位が必須ではなく，最大で４単位にすぎない．
そのため，「あと０～４単位必要」という幅をもった判定となってしまう．
「自然」についても同様で，「あと２～６単位必要」ということになる．
図３b で示した例では階層が２つで，同じ水準のノードの他の科目区分での必要単位数を計算すればを満たしていても，上位の合計を満たすために，さ合計

らに単位をとらなければならないことがあり，明確

14単位不足あと4単位必要に何単位あと取得しなければならないか判定できな
いため，単純なアルゴリズムでは実現できない．表

２単位不足
専門
あと２～12単位必要

教養

２単位不足
あと２～12単位必要

1 下および図３b に示した例では，「人文」や「社会」
では単位を充足しているが，「教養（合計）」を満たすためには，まだ単位を取る必要が残っている．た実践a) 同一水準のノードだけで探索した場合だし，「自然」で２単位不足しているため，２単位分
表２

下位科目区分まで探索しなければ
ならない例

科目区分
教養
専門
基礎
実践
合計

必要最低
不足単
修得単位数
単位数
位数
10
8
2
20
18
2
10
2
8
0
16
0
40
26
14

基礎

合計
２単位不足
専門
あと８～12単位必要不足なし 実践
あと０～４単位必要

14単位不足あと14単位必要
教養 ２単位不足
あと２～６単位必要

基礎 ８単位不足
あと８～12単位必要b) 下位科目区分まで探索した場合
図４ 下位科目区分まで探索した場合との比較

よいが，階層が深くなると，その下位の科目区分に

表３ p_max, p_min の計算と判定の例

対しても探索が必要となる．そのような例を表２に示した．この例では「教養」から見た場合，「合計」の不足 14 単位を補うには，「専門」での２単位不足により２単位は確保できるため，同一水準のノードだけで見れば最大でも 12 単位でよい（図４a）．しか

科目区分
教養（合計）
人文
社会
自然

必要最低
取得単位 p_max p_min
単位
20
4
4
4

14
6
6
2

20
10
10
8

20
6
6
4

判定
×赤判定
△黄判定
△黄判定
×赤判定

し「専門」の下位科目区分をみると，「基礎」で８単こまで単位を取る必要があるかの情報が必要となる．

位不足しているため，その上位の「専門」でも８単4.2 動的パラメータの導入

位は確保できる．したがって「教養」で補うべき単そこで，各科目区分の単位の取得状況によって動位の最大は 14 から８を減じた６単位となる（図４b）．

的に変化する見込み単位数の最大と最小の値を算出

このように，他の科目区分での不足単位数を計算することによって判定ができるようにした．前者をしながら，当該の科目区分であと何単位必要なのか

最大見込み単位数，後者を最小見込み単位数とよぶ．

の計算を行う必要がある．木構造で考えると，下位・最大見込み単位数 p_maxの部分木の探索が必要となり，一種のバックトラッ
クによる再帰的アルゴリズムが必要となる．

合計不一致型の場合，合計単位数を満たすためには，最低必要単位数以上の単位を取得しなければならない．それは，合計に算入される他の科目区分の４．単位充足判定の方法

単位取得状況によって変化する．他の科目区分で必4.1

要単位が多く残っていれば，そこで確実に取得単位単位チェックの３段階判定

単位チェックの判定において，あと何単位とる必が増えるため，当該科目区分で新たに取得する単位

要があるかを範囲で示すと誤解を招いてしまう恐れ

数は少なくてよいが，そうでない場合は多く取得しがある．そのため，単位数は明示せずに以下の３段

なければならない．そのため，各科目区分において階での判定を行うこととした．

最大で何単位まで取得が見込まれるのかを算出する．

・当該の科目区分において単位充足し，かつ，合計

たとえば，図３b で「社会」や「人文」から見ると，単位数を満たすために取得する必要がない．
（○；「自然」はまだ不足単位を２単位残しているため，

緑判定）

２単位は確実に増える．そのため，合計６単位不足

・当該の科目区分において単位が充足していないか，を満たすのに，「社会」や「人文」では，あと最大４全体の合計単位数を満たすために必ず取得の必要

単位とればよく，最大見込み単位数はすでにそれぞがある．（×；赤判定）

れで取得している６単位を加え 10 単位となる（表・当該の科目区分においては単位が充足しているが，

３）．一方，「自然」から見ると，「社会」や「人文」

全体の合計単位数を満たしてない．ただし，他のでは不足単位がないため，「自然」では合計を満たす

科目区分によっても合計単位数を満たすことが可には最大であと６単位必要で，最大見込みは取得し能であるため，当該の科目区分で必ずしも取得すている２単位を加え８単位となる（表３）．

る必要はない．（△；黄判定）

・最小見込み単位数 p_min

合計一致型の場合，他の科目区分での単位取得状

各科目区分においての最低条件は，当該の科目区

況とは関係なく単位の充足判定ができるため，当該分で定められている最低必要単位数をまず満たすこの科目区分で単位が充足しているかどうかの判定にとである．したがって，最小見込み単位数は最低必なる．そのため黄判定が生じることなく，あらかじ

要単位数を下回らない．図３b の「自然」では，最め定められた最低必要単位数との比較で赤判定か緑

小見込み単位数は４単位となる（表３）．ただし，す判定かが決まってしまう．

でに最低必要単位数を超えている場合，見込みとし主として問題になるのは，合計不一致型の場合，てはその取得単位を下回ることはあり得ないため，

緑判定か黄判定のいずれになるかの判定である．判

取得単位数が最小見込み単位数となる．
「社会」や「人定には，他の科目区分の単位取得状況によって，ど文」では必要最低単位はいずれも４単位であるがすとなる．
max 最大認定単位
緑判定（○）
単位
数５．動的パラメータの算出アルゴリズム
p_max 最大見込み単位

これまで述べてきたように，単位充足判定においては，動的パラメータの２つの値を算出することに黄判定（△）
p_min 最小見込み単位
赤判定（×）min 最低必要単位
は取得単位を表す

よって判定が可能となる．問題は動的パラメータをどのように算出するかである．それは以下の３つのフェーズで行われる．ここでは，表２に示した科目

図５ ２つの動的パラメータと単位充足判定ルールの関係．取得単位の数によって判定が異体系を用いて説明をする．p_min や p_max の算出例

でに６単位取得しているため，最小見込み単位数は取得単位という表現を認定単位と表している．科目

６単位となる（表３）．

体系によっては，取得単位すべてが卒業に必要な単ここで，最大認定単位(max)，最低必要単位数（min），

を含めて，改めて表４に示した．なお，ここでは，位にならない場合があり，卒業に必要な単位として最 大 見 込 み 単 位 数 （ p_max ）， 最 小 見 込 み 単 位 数認定されるものだけを使って判定を行うため，認定（p_min）の関係を図５に表した．合計一致型の場合，単位としている．

これら４つのパラメータは同じになるが，合計不一

5.1 第１フェーズ

致型の場合，２つの見込み数は max と min の間で動p_min と p_max の仮設定

まず，p_min と p_max の値を，他の科目区分を考的に変化することになる．

慮せずに仮設定を行う．設定はいずれの値も，認定4.3

された単位と最低必要単位の大きいほうとする．

単位の充足判定のルール

２つの動的パラメータの導入によって，単位判定

p_min は，最低でも最低必要単位をとることになるは以下のルールに集約される（図５）．

ので，最低必要単位以上になる．ただし，先に述べ・緑判定

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

たように，すでに最低必要単位以上の単位が認定さ

・赤判定

取得単位が最小見込み単位数に満たないれていれば，見込みとしては，それを下回ることは場合なく，すでに認定された単位を p_min の値として設取得単位が最大見込み単位数未満で最小

定する．

・黄判定

見込み単位数以上の場合．

一方，p_max は見込みとして最低でも最低必要単

取得単位数が最大見込み単位数以上であるという位を取るが，すでにそれを越えた単位を取っている

ことは新たに単位を取得する必要がないということ

場合，見込みとしてはその値を下回ることがないたである．また，最小見込み単位数に満たないというめ，p_min と同様すでに認定された値を設定する．

ことは，当該科目区分から必ず追加取得が必要であ

5.2

るため，赤判定になる．最大見込み単位数と最小見第２フェーズ

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

込み単位数の間に取得単位数がある場合は，上位のp_max 更新を再帰的なアルゴリズムとして実装し科目区分の合計を満たす必要があることを示していたのが，図７，図８である．この計算処理では，まるが，それが当該区分でなくてもよく，他の科目区ず，他の科目区分で少なくとも何単位増えるのかを分で追加取得がなされれば，新たに取得の必要はな

他の科目区分ごとに算出する必要がある．それが図くなる．このような場合黄判定となる．

７のアルゴリズムである．最小見込み単位数から認表３に判定例を示した．
「人文」と「社会」は，取表４ ３つのフェーズにおける p_max, p_min の更新例

得単位６単位が p_min と p_max の間にあるため黄判定となるが，「自然」と「教養（合計）」はいずれも

科目区分

p_min を取得単位が下回っているため，赤判定とな

教養
専門
基礎
実践
合計

る．このように２つの動的パラメータと実際に取得した取得単位を比較することによって，判定が可能

必要最低
単位数

取得
単位数

10
20

8
18
10
0

40

2
16
26

第１フェーズ
p_max, p_min 第２フェーズ 第３フェーズ
p_maxの更新 p _minの更新
の仮設定
10
14
10
20
30
26
10
14
10
16
20
16
40
40
40

p_max_update(科目区分，継承する不足単位数）④ 残り単位 ←Max(上からの継承，上位区分での不足）⑤ ターゲット区分での単位増の合計 self_sum

科目区分の数だけ繰り返す← min_increase(科目，算入上限）
other_sum←0⑥

他の区分での単位増の合計 other_sum← other_sum+min_increase(科目，算入上限）⑦ 不足単位 ←残り単位－other_sum
min_increase(科目区分，算入上限）⑧ p_max候補 ←① 当該科目の増 ←Max(不足単位，self_sum）＋認定単位

Min(p_min，算入上限）－認定単位⑨ 取るべき単位
sum←0②

下位科目区分の数だけ繰り返す＞p_max

再帰呼び出しsum ← sum＋
min_increase(下位科目，算入上限）⑩ 算入上限p_max ←
算入上限

＞p_max⑪ 最大認定単位＞p_max

下位科目単位増合計 ←Min(sum，算入上限－認定単位）⑫③ return Max(下位単位増合計，当該科目増）

図７

少なくとも何単位増えるのかを合計するための再帰的アルゴリズム

p_max ←
p_max候補

p_max ←
最大認定単位p_max_update(下位科目，継承する不足単位数）

図８

再帰呼び出し最大見込み単位数(p_max)更新のための再帰的アルゴリズム

定単位数を減じれば何単位増えるのかがわかる（図ここで再帰的に呼び出されている min_increase

７①）．ここで増える単位は，算入上限があれば，その関数は２つの引数を持っており，科目区分を指定

れを超えて上位の科目区分に算入されないため，そする引数と算入上限の制約を指定することになってれを考慮している．表４の例の「専門」で何単位増いる．このアルゴリズムは実際には次に説明する

えるかは，第１フェーズでの p_min の値 20 から認定

p_max の更新のアルゴリズムで利用される．

単位 18 を減じた値２単位となる．これが当該科目の増となる．

p_max の更新では，上記で述べた他の科目区分で算出される単位増の値を見込んで，最大何単位取得

しかし，先に述べたように下位科目区分も探索すを見込めばよいかを算出する．そのアルゴリズムがる必要があり，下位科目区分での不足単位があれば，

図８である．まず，上位から残単位を継承し，同時その分増えることになるため，下位科目区分での増に上の科目区分での不足分と比較し，大きいほうのの合計を再帰的に最下層までたどって合計を行う

値を残り単位としてまかなう必要がある（図８④）．

（図７②）．表４の例では，「基礎」と「実践」の科

ここでは「教養」と「専門」に関して注目すると，目の２つの下位科目区分の分だけ合計を算出する．

その上位区分は「合計」になる．「合計」では，14「基礎」は８単位増が見込まれ，「実践」では単位増

単位不足している．さらに「合計」の上位でもっと無しで，ここの合計(sum)は８単位となる．ここでも多く単位不足が生じている可能性があることも考慮

算入上限を考慮して，下位科目単位増合計が算出さして，その不足単位（上からの継承）も継承しなけれる．この値と当該科目増の大きいほうの値がそのればならない．その単位数が多ければ，その単位数

当該科目区分での増分になる（図７③）．下位科目区を下位でまかなうこととなる．ただし，表４の例の分（「基礎」と「実践」）の合計８単位増と「専門」

場合，「合計」の上は存在しないため，「合計」で不の２単位増を比較して，大きいほうの８単位が上位足している 14 単位を下位の「教養」と「専門」でま科目区分に増える単位数となる．

かなうことになる．

p_min_update(科目区分，継承する不足単位数）④ 残り単位 ←Max(上からの継承，上位区分での不足）⑤ ターゲット区分での単位増の合計 self_sum

科目区分の数だけ繰り返す← 0other_sum←0⑥

他の区分での単位増の合計 other_sum← other_sum+max_increase(科目，算入上限）⑦ 不足単位 ←残り単位－other_sum
max_increase(科目区分，算入上限）⑧ p_min候補 ←① 当該科目の増 ←Max(不足単位，self_sum）＋認定単位

Min(p_max，算入上限）－認定単位⑨ 取るべき単位
sum←0②

下位科目区分の数だけ繰り返す＞p_min

再帰呼び出しsum ← sum＋
max_increase(下位科目，算入上限）⑩ 算入上限p_min ←
算入上限

＞p_min⑪ 最大認定単位＞p_min

下位科目単位増合計 ←Min(sum，算入上限－認定単位）⑫③ return Max(下位単位増合計，当該科目増）

図９

最大何単位増えるのかを合計するための再帰的アルゴリズム

p_min ←
p_min候補

p_min ←
最大認定単位p_min_update(下位科目，継承する不足単位
数）

図 10

再帰呼び出し最小見込み単位数(p_min)更新のための再帰的アルゴリズム

次に，ここでの科目区分の「教養」と「専門」のこの値は「合計」の科目区分の残り単位を減じる

２つについて，自分のところの下位科目区分での単のに使え，その残り分が不足単位となる（図８⑦）．

位増と他の科目区分の単位増を計算して，それらでこの場合，14 単位から８単位を減じた６単位となる．

不足分をどこまでまかなえるかどうかを算出する．

この値がターゲット科目区分「教養」で取るべき最そのために，以下の処理を繰り返すことになる．

大の単位数となる．ただし，先ほど算出した「教養」

まず，ひとつの科目区分をターゲット（ターゲッ自身で増える２単位（self_sum）がそれを上回ってト区分）にして，その科目区分での不足単位（あといれば，そちらのほうが取るべき最大単位数となる．

何単位増えるか）を計算する（self_sum）．たとえば，

そして，その値に認定された単位を加えた単位が｢教養｣について計算する．ここでは図７に示したア

p_max の候補値となる（図８⑧）．つまり，６単位とルゴリズムを使い，それよりも下位の科目区分も探２単位の大きい方の６単位にすでに認定されている

索して何単位増えるかを算出する（図８⑤）．
「教養」

８単位を加えて，14 単位が p_max の候補となる．そには下位科目は存在しないため，この場合下位探索

して，それがすでに設定されている p_max よりも大は行わなくてよく，「教養」では２単位増だけとなる．

きい場合，この候補値で更新することとなる(図８

次に他の科目区分でどれだけ単位が補えるかを合⑨)．後は，算入上限(図８⑩)や最大認定単位（図８

計する．ここでは他の科目区分は「専門」だけであ⑪）を超えないようにする必要がある．そして，さるが，複数あれば複数の科目区分の合計（other_sum）

らに，下位の科目区分でも同様の処理を行っていくを算出する（図８⑥）．ここでも，図７に示したアルために再帰的に行う（図８⑫）．

ゴリズムを使って再帰的に下位科目区分まで探索を

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

図７のアルゴリズムを説明したときにすでに述べた科目区分として処理するだけである．
「専門」がター通りである．Other_sum は８単位となる．

ゲットとなると，さらにその下位科目区分「基礎」

や「実践」でも同様の処理を行う．その結果，表４の候補は，現在値を超えることはなく，更新されなに示した値で p_max の更新がなされる．

いこととなる（表４）．

ここでの再帰的関数 p_max_update は科目区分の指定の引数と下に継承していく不足単位数を引数として指定することとなっている．
5.3

第３フェーズ

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

６.考察
２つの動的パラメータを導入し，その算出を再帰
的アルゴリズムによって実装できた．そのため，３段階の判定が可能となった．図１に示した例は，表第２フェーズでは，他の科目区分での単位の取得

４に示したカリキュラムに語学の科目を加えたもの

可能性の最低を考慮したが，第３フェーズでは，他

で，語学は最大認定単位 10 単位となっており，これの科目区分での単位の取得が最大の可能性を考慮す

以上単位を取得しても，上位の合計には貢献できず，ることになる．他の科目区分で単位を最大限取得しすでに 10 単位取得しているため，緑判定（○）となても，まだ足りない可能性があった場合，足りないっている．このように合計不一致型の体系であって単位分は当該の科目区分で取得しなければならない．

も，どの科目区分でさらに単位取得が必要であるの

その単位数がどの程度であるのかを計算して，当該かが簡単にわかるようになった．

科目区分での最小見込み単位数 p_min を更新する．

ただし，他の科目区分に単位を流用するプログラ

第３フェーズのアルゴリズムを図 9，10 に示した

ムが十分に完成しておらず，今後さらに検討をするが，第２フェーズのアルゴリズムとほとんど類似し必要がある．また，現在のプログラムでは，科目区ており．以下の２つの点のみが異なる．

分ごとに，他の科目区分で何単位取得する可能性が

まず，第２フェーズが他の科目区分での最小取得あるのかを計算しており，一度算出した値を再度計見込みを考慮するのに対して，第３フェーズでは，算し直す形になっており，無駄な計算を無くすよう

他の科目区分での最大取得見込みを考慮するため，な工夫も必要である．

何単位増えるかの算出において，第２フェーズで
p_min と認定単位の差で計算していたのを p_max と参考文献の差で計算するところが異なるだけである（図９①）．

1)

梶田将司・角所考・中澤馬志・竹村治雄・美濃

もうひとつは，ターゲット科目区分の合計を０とす

導彦・間瀬健二：高等教育機関における次世代

ることである（図 10⑤）．これは，不足単位との比

コース管理システムの構築に向けて，日本教育

較において（図 10⑧），不足単位がマイナスを示す

工学会論文誌，31(3), 297-305, 2007．

こともあり，０を超えないようにするためにすぎな

2)と運用－ウェブデザインから DBMS、運用体制まい．

で－，富山国際大学地域学部紀要，4, 111-116,

表４における「専門」の p_min の更新のプロセス

2004.

を追うと以下のようになる．残り単位は「合計」14
単位で第２フェーズの場合と変わらない．他の区分

吉牟田裕：Web による履修登録システムの構築

3)

松尾太加志: 汎用的な卒業単位チェックシステ

での単位増の合計（図 10⑥）は，対象となるのが「教ム，教育システム情報学会第 34 回全国大会講演養」だけであり，今回は，p_max と認定単位との差

論文集，168-169, 2009.

（図９①）で算出され６単位となる．そして，残り

4)

栗原和夫：Web アプリによる卒業要件単位計算,

単位 14 との差の不足単位が８となる．この値に「専情報学研究（朝日大学経営学部電子計算機室年門」の認定単位 18 を加えたのが，p_min の候補値で報）, 16, 21-28, 2007.

26 単位となる．第１フェーズで設定された p_min20
単位よりも大きいため，26 単位で更新されることになる．後の科目区分も同様の計算を行うことになるが，いずれも他の科目区分での単位増が残り単位を上回り，不足単位が負の値を示す．そのため，p_min

5)ヴィルト, N.(浦昭二・國府方久史

訳)： デー

タ構造とアルゴリズム，近代科学社，1990.