@inproceedings{oai:ipsj.ixsq.nii.ac.jp:00133064,
 book = {全国大会講演論文集},
 issue = {コンピュータと人間社会},
 month = {Sep},
 note = {情報科学で必要な離散数学やアルゴリズムの学習では、学習者がプログラミングを行うことで、理解がより深まる。また, 教師にとっても, 学習者の理解を助けるための教材としてのプログラムを作ることが必要になることも多い. しかし、実際のプログラミングを行なう場合, 数学的な概念やアルゴリズムそのものの学習よりも、プログラムにおけるデータ構造の細部の設計に多くの時間を費やす。そこで、データ構造の細部の設計をできるだけ必要とせずに, 離散数学やアルゴリズムの学習を行えるような教育用言語Tupleを提案する. Tupleでは, 基本的な型として, 組(tup型), 集合(set型), 関数(fun型)を持つ. また, 関数を要素とする集合, 組を要素とする集合を要素とする組, 集合を要素とする集合から組を要素とする集合への関数等, 任意に組み合わされた複雑なデータ構造を容易に作ることができる. このため, 組, 集合, 関数という概念を用いて記述されることの多い離散数学の概念やアルゴリズムを容易に, しかも, 分かり易くプログラミングできる. さらに, これらの型を処理する演算子, 組込み関数等を多く準備し, プログラムの記述性を高めている. 集合をべースにしたPASCAL風な手続き言語として集合指向言語SOL[1]がある. Tupleでは標準的なC言語の構文を使用する. これは, 現在, 大学のプログラミング教育にはC言語が広く使われていることによる. また, Tupleでは, tup型, set型, fun型の基本的な型はC++のクラスで実現し, 演算子や組込み関数はオーバーロードを用いて実現している. Tupleを用いたプログラミングでは, tup, set, fun型をべースにしたデータ構造を作るが, 通常, データ構造とアルゴリズムは一体となって設計されるべきであり, 最適なデータ構造の設計が最もプログラム作成者が工夫する点である. この点に関しては, Tupleでは, tup, set, fun型だけでなく, 本来のC++プログラミングで作ることのできるデータ構造はすべて作ることができるので, 効率が要求されるデータに対しては, プログラム作成者独自のデータ構造を構築すればよい. さらに, 初めは, tup, set, fun型を用いてプログラムを書き, 必要な部分を独自のデータ構造で次第に置き換えてゆくことも可能である.},
 pages = {531--532},
 publisher = {情報処理学会},
 title = {情報科学教育におけるアルゴリズム記述に関する研究},
 volume = {第55回},
 year = {1997}
}