JP4808041B2 - プログラミング学習支援システムおよびプログラミング学習支援方法 - Google Patents

プログラミング学習支援システムおよびプログラミング学習支援方法 Download PDF

Info

Publication number
JP4808041B2
JP4808041B2 JP2006044452A JP2006044452A JP4808041B2 JP 4808041 B2 JP4808041 B2 JP 4808041B2 JP 2006044452 A JP2006044452 A JP 2006044452A JP 2006044452 A JP2006044452 A JP 2006044452A JP 4808041 B2 JP4808041 B2 JP 4808041B2
Authority
JP
Japan
Prior art keywords
source program
question
client terminal
data
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006044452A
Other languages
English (en)
Other versions
JP2007225726A (ja
Inventor
正之 荒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Teikyo Univ
Original Assignee
Teikyo Univ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Teikyo Univ filed Critical Teikyo Univ
Priority to JP2006044452A priority Critical patent/JP4808041B2/ja
Publication of JP2007225726A publication Critical patent/JP2007225726A/ja
Application granted granted Critical
Publication of JP4808041B2 publication Critical patent/JP4808041B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)

Description

この出願の発明は、プログラミング学習支援システムに関するものである。さらに詳しくは、この出願の発明は、ソースプログラムと連動して、プログラミング初学者に重要と考えられる制御構造、変数の内容、入出力データなどの情報を可視化した、新しいプログラミング学習支援システムおよびプログラミング学習支援方法に関するものである。
大学の理工学部系学部情報系学科(以下、情報系学科と呼ぶ)の学生にとって、プログラミングの学習は必須である。多くの情報系学科では、1年生からプログラミング教育がはじまり、その後3年生くらいまで、積み重ね的な教育を行っている。このため、情報系学科において、初学者が初期にプログラミングでつまずくと、その後の学習に大きく影響を与えてしまう可能性がある。プログラミング初学者がつまずく理由は次のように考えられる。
一般に、アルゴリズムを熟考し決定後、プログラムを記述するという習慣がつかない時期に、プログラミング初期教育が始まる場合が多く、論理的思考定着前のプログラミング学習には障害が多い。また、既存のプログラミング言語はヨーロッパ言語を使う人間が設計しており、印欧語の影響を強く受けている。従って、プログラミング学習においても、外国語の学習と同様、多くのプログラムに触れ、多くの優れたソースコードを読む、などが有効であると考えられる。しかし、このような学習環境は現状では整っていない。
プログラミング学習に限ったことではないが、学習者個人に合った方法・手順で学習を進めることが望ましいが、現状では、教科書などに沿った画一的学習が一般的に行われている。
プログラミング初学者は、次のような過程を経て、プログラミングを修得しているのではないかと考えられる。
(1)プログラムの全体構造の理解と、入出力文、変数、定数、式、代入、変数宣言、変数の型などの理解
(2)連接、条件判断処理、反復処理などのアルゴリズムの基本構成要素の理解と、それらを使ったソースプログラムを1行1行追う(トレースする)能力の修得
(3)連接、判断、繰り返しなどのアルゴリズムの基本構成要素を用いて、簡単なプログラムを作成する能力の修得
(4)各種のアルゴリズムやデータ構造をプログラムとして記述する能力の修得
Brown, M.H.: Exploring Algorithm Using Balsa-II, Computer, Vol.5, pp.14-36 (1998) Brown, M.H.: Zeus: A System for Algorithm Animation and Multi View Editing, Preceeding IEEE Workshop Visual Languages, IEEE CS Press, pp.4-9 (1991) Stasko J.T.: Tango: A Framework and System for Algorithm Animation, IEEE Computer, Vol. 23, No.9, pp.27-39 (1990) Beaza-Yates R.A., Quezada G., and Valmadre G.: Visula Debugging and Automatic Animation of C Programs, Software Visualization, Vol.7, pp.46-58 (1997) De Pauw W., Mitchell N., Robillard M., Sevitsky G., and Srinivasan H.: Drive-by Analysis of Running Programs, Proceeding for Workshop on Software Visualization, International Conference on Software Engineering, pp.17-23 (2001)
プログラミング学習を支援するシステムは数多く存在する。しかし、それらの多くは上記学習過程(3)(4)を支援するものであり、上記学習過程(1)(2)を支援するシステムは少ない。上記学習過程(1)については、講義、教科書、参考書などの教材で学習することが一般的である。上記学習過程(2)の能力を修得するためには、教科書などの静的な教材ではなく、可視化システムなど動的な教材が望まれるが、初学者を対象としたそのようなシステムは存在しない。
そこで、この出願の発明は、以上のとおりの事情に鑑みてなされたもので、上記学習過程(2)のアルゴリズムの基本構成要素の理解と、それらを使ったソースプログラムをトレースする能力を初学者でも動的な教材により容易に修得することができるプログラミング学習支援システムおよびプログラミング学習支援方法を提供することを課題とする。
この出願の発明は、上記課題を解決するものとして、第1には、サーバに教員クライアント端末と学習者クライアント端末が接続されてなるプログラミング学習支援システムにおいて、サーバは、問題データベース、問題生成モジュール、コンパイラーモジュールおよび可視化モジュールを備え、問題データベースは、問題識別子、ソースプログラムを実行したときの実行結果を問うものとする問題文、ソースプログラム、制御構造記述、ソースプログラムの各命令の解説の説明文および問題の正答を含むシステムに必要なデータを管理し、問題生成モジュールは、教員クライアント端末から入力された、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データを受け取り、受け取った出題データをもとに、そのソースプログラムのどの内容を変更するかについての教員クライアント端末からのデータを受けて、類似問題のソースプログラムを生成した後、出題問題のソースプログラムと生成した類似問題のソースプログラムをコンパイラーモジュールに渡し、コンパイラーモジュールから出題問題および類似問題のソースプログラムの各命令の解説の説明文、正答である実行結果および制御構造記述を受け取り、これらのデータに問題識別子、問題文ならびに出題問題および類似問題のソースプログラムを加えて問題データベースに渡し、コンパイラーモジュールは、字句解析および構文解析部と機械語翻訳部を有し、字句解析および構文解析部は、問題データベースより受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの各命令の解説の説明文および制御構造記述を問題生成モジュールに返し、機械語翻訳部は、コンパイラーによりコンパイルを行い、ソースプログラムを実行して、正答である実行結果を問題生成モジュールに返し、可視化モジュールは、問題データベースのデータを用い、制御構造記述よりチャートを作成し、ソースプログラム、チャートおよびソースプログラムの各命令の解説の説明文を同期させ、変数の内容を得て、学習者クライアント端末からの要求を受けて表示画面を生成し、教員クライアント端末は、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データ、解答選択肢の記述または解答欄の設定のデータ、類似問題作成のために出題データのソースプログラムのどの内容を変更するかについてのデータの入力を受け付け、学習者クライアント端末は、問題提示画面を表示し、その問題の解答を受け付けた後、ソースプログラムのトレース実行画面を表示することを特徴とするプログラミング学習支援システムを提供する。
また、第2には、上記第1の発明において、学習者クライアント端末は、学習者が作成したソースプログラムを受け付け、そのソースプログラムをコンパイラーモジュールに渡し、サーバの各モジュールは教師からのソースプログラムに代えて学習者自作のソースプログラムをもとに各処理を行うことを特徴とするプログラミング学習支援システムを提供する。
また、第3には、上記第1または第2の発明において、サーバと教員クライアント端末および学習者クライアント端末がインターネットにより接続されていることを特徴とするプログラミング学習支援システムを提供する。
また、第4には、上記第1から第3のいずれかの発明において、教員クライアント端末の画面レイアウトが、ソースプログラムを実行したときの実行結果を問うものとする問題文および問題の内容であるソースプログラムからなる出題データを入力するための出題データ入力画面と、類似問題を出題可能にするために出題データのどの内容を変更するかについての変更項目選択および変更項目設定を行う複数問題設定画面を有することを特徴とするプログラミング学習支援システムを提供する。
また、第5には、問題識別子、ソースプログラムを実行したときの実行結果を問うものとする問題文解答を施す問題文、ソースプログラム、制御構造記述、ソースプログラムの各命令の解説の説明文および問題の正答を含むシステムに必要なデータを管理する問題データベースを有するとともに問題生成モジュール、コンパイラーモジュールおよび可視化モジュールを備えたサーバに、教員クライアント端末と学習者クライアント端末が接続されたシステムにおけるプログラミング学習支援方法であって、前記サーバの問題生成モジュールが、教員クライアント端末から入力された、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データを受け取り、受け取った出題データをもとに、そのソースプログラムのどの内容を変更するかについての教員クライアント端末からのデータを受けて、類似問題のソースプログラムを生成した後、出題問題のソースプログラムと生成した類似問題のソースプログラムをコンパイラーモジュールに渡し、コンパイラーモジュールから出題問題および類似問題のソースプログラムの各命令の解説の説明文、正答である実行結果および制御構造記述を受け取り、これらのデータに問題識別子、問題文ならびに出題問題および類似問題のソースプログラムを加えて問題データベースに渡し、前記サーバのコンパイラーモジュールが、字句解析および構文解析部と機械語翻訳部を有し、字句解析および構文解析部は、問題データベースより受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの各命令の解説の説明文および制御構造記述を問題生成モジュールに返し、機械語翻訳部は、コンパイラーによりコンパイルを行い、ソースプログラムを実行して、正答である実行結果を問題生成モジュールに返し、前記サーバの可視化モジュールが、問題データベースのデータを用い、制御構造記述よりチャートを作成し、ソースプログラム、チャートおよびソースプログラムの各命令の解説の説明文を同期させ、変数の内容を得て、学習者クライアント端末からの要求を受けて表示画面を生成し、教員クライアント端末が、解答を施す問題文と問題の内容であるソースプログラムからなる出題データ、解答選択肢の記述または解答欄の設定のデータ、類似問題作成のために出題データのソースプログラムのどの内容を変更するかについてのデータの入力を受け付け、学習者クライアント端末が、問題提示画面を表示し、その問題の解答を受け付けた後、ソースプログラムのトレース実行画面を表示することを特徴とするプログラミング学習支援方法を提供する。
さらに、第6には、上記第5の発明において、学習者クライアント端末が、学習者が作成したソースプログラムを受け付け、そのソースプログラムをコンパイラーモジュールに渡し、サーバの各モジュールは教員作成ソースプログラムに代えて学習者自作のソースプログラムをもとに各処理を行うことを特徴とするプログラミング学習支援方法を提供する。
この出願の発明に係るプログラミング学習支援システムおよびプログラム学習支援方法によれば、動的な教材を介して多くのプログラミング初学者がソースプログラムをトレースする能力を容易に身につけることが可能になる。そして、学習者は次の学習過程である「連接、判断、繰り返しなどのアルゴリズムの基本構成要素を用いて、簡単なプログラムを作成する能力の修得」にスムーズに進むことが可能となり、学習初期において、プログラミングにつまずく学生の割合を低減させることができる。
この出願の発明は上記のとおりの特徴をもつものであるが、以下にその実施の形態について説明する。
ソースプログラムをトレースする力を養うためには、トレースしている命令とプログラム全体の制御構造との関係、その時点の変数の内容との関係、入出力内容との関係などを理解することが重要である。そこで、この出願の発明に係る実施形態のプログラミング学習支援システムには、次のような機能を持たせている。
・ソースプログラムと制御構造を表したチャートを並行して表示して、学習者が指でなぞりながらトレースできる機能:初学者には身体性が重要である。
・変数の内容の変移を表示する機能:トレースを行うためには、実行時の変数の内容と同時に、変数の内容の変移の理解が重要である。
・類似問題を半自動的に作成する機能:初学者には、類似プログラムを何度も読み書きする反復学習が重要である。
また、時間や場所に関係なく学習できる環境の整備が重要である。このため、この実施形態のシステムは、サーバ−クライアント方式で実現し、クライアントにはウェブブラウザさえあれば、いつでもどこでも学習が可能とする。
この出願の発明に係るプログラミング学習支援システムの構成を図1にブロック図で模式的に示す。
このプログラミング学習支援システムは、サーバ(10)および教員クライアント端末(20)と学習者クライアント端末(30)から構成される。サーバ(10)はこの実施形態ではインターネット(図示せず)を介して教員クライアント端末(20)と学習者クライアント(30)に接続されている。
サーバ(10)は、問題データベース(1)、問題生成モジュール(2)、コンパイラーモジュール(3)、可視化モジュール(4)、制御部(5)、主記憶部(6)および入出力(I/O)インターフェース(7)を有する。
問題データベース(1)は、システムに必要である次のようなデータを管理するデータベースである。
・問題識別子
・問題文
・ソースプログラムの説明文
・制御構造記述
・キーワード
・ソースプログラム
・正答
問題生成モジュール(2)は、教員が出題したデータを元に、半自動的に類似問題を複数生成する。生成されたソースプログラムは、出題問題のソースプログラムとともにコンパイラーモジュール(3)に渡され、構文チェックが行われる。構文エラーがない場合、問題生成モジュール(2)は、コンパイラーモジュール(3)から、ソースプログラムの説明、実行結果(正答)、制御構造記述を受け取り、それらのデータに問題識別子、キーワード、問題文、ソースプログラムを加えて、問題データベース(1)へ格納する。
コンパイラーモジュール(3)は、「字句解析および構文解析機能」を備えた字句解析および構文解析部(図示せず)と「機械語翻訳機能」を備えた機械語翻訳部の2つの機能部を有する。字句解析および構文解析部は、問題生成モジュール(3)または学習者クライアント端末(30)から受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの説明、制御構造記述を問題生成モジュール(2)に返す。機械語翻訳部は、たとえば既存のフリーのコンパイラーを用いてコンパイルを行い、構文エラーのチェックを行い、構文エラーがない場合は、プログラムを実行して、実行結果(正答)を問題設定モジュールに返す。構文エラーがあった場合は、教員クライアント端末(20)または学習者クライアント端末(30)にエラーを表示し、教員または学習者は、表示されたエラーを元にソースプログラムを書き換える。
可視化モジュール(4)は、問題データベース(1)の情報を用いて、学習者クライアント端末(30)に画面表示を行うため、次のような機能を有する。
・制御構造記述を用いて、チャートを生成する。
・ソースプログラム、チャート、説明文を同期させる。
・変数の内容を得る。
・学習者クライアント端末(30)からの要求に合わせて画面を生成する。
主記憶部()は、サーバ(10)の制御プログラム等を有しており、制御部()がその制御プログラムに基づいて各モジュールの動作の制御を行う。入出力インターフェース()はサーバ(10)と教員クライアント端末(20)および学習者クライアント端末(30)との間でデータのやりとりを行うためのモジュールである。
教員クライアント端末(20)は、教員が出題するためのインターフェースであり、次のような機能を持つ。
・問題記述
・ソースプログラム記述
・解答選択肢の記述
・問題バリエーションの設定:たとえば、条件判断処理では条件のバリエーション、繰り返し処理の場合には、ループカウンタの初期化、繰り返し条件、ループカウンタの刻みなどの設定を可能にする。
教員クライアント端末(20)としては、たとえばPC本体とキーボード、マウス、ディスプレイ等の周辺機器を接続した通常のパーソナルコンピュータを用いることができるが、これに限定されない。
学習者クライアント端末(30)は、学習者のためのインターフェースである。このプログラミング学習支援システムでは、教員から出題された問題を解いて、その問題のトレースを行える第1のモード(a)と、学習者自作のプログラムがトレースできる第2のモード(b)、の2つのモードが用意されている。第2のモードの場合は、学習者が作成したソースプログラムをサーバ(10)のコンパイラーモジュール(3)に渡す。学習者クライアント端末(30)としても、たとえばPC本体とキーボード、マウス、ディスプレイ等の周辺機器を接続した通常のパーソナルコンピュータを用いることができるが、これに限定されない。
以下、この実施形態のプログラミング学習支援システムにおける学習支援動作について図2のフローチャートを参照しながら説明する。
先ず、教員クライアント端末(20)におけるデータ入力の受け付けについて述べる。教員クライアント端末(20)の画面レイアウトを図3に示す。教員は「問題文およびソースプログラム入力画面」で問題文とソースプログラムを入力し、その後、類似問題を複数出題可能とするために、「複数問題設定画面」に移り設定を行う。以下に各サブウィンドウの説明を行う。
[1]問題文入力
学習者クライアント端末(30)に表示されるべき問題文を、このサブウィンドウに入力する。たとえば、対象となる言語がC++の場合は、次のような内容となる。
[2]ソースプログラム入力
学習者クライアント端末(30)に表示されるべきソースプログラムを、このサブウィンドウに入力する。たとえば、対象となる言語がC++の場合は、次のような内容となる。
[3]変更項目選択
「変更項目選択」のサブウィンドウは、サーバ(10)の問題生成モジュール(2)において複数の類似問題を半自動的に作るために、ソースプログラムのどの内容を変更するかを選択するサブウィンドウである。たとえば、[2]のソースプログラムにおいて、繰り返しの条件とループカウンタの刻みを変更した場合は、次のように選択する。(四角で囲った部分が選択項目)
[4]変更項目設定
[3]のサブウィンドウで選択した項目に対して、どのような内容に変更するかを設定するサブウィンドウである。入力後、問題生成モジュール(2)は、ソースプログラムを、ここで設定した項目に書き換えて、複数の問題を生成する。たとえば、類似問題を3つ作成する場合には、次のように3つの条件を設定する。(四角で囲った部分が入力部分)
また、教師クライアント端末(20)は、解答選択肢の記述等も受け付ける。
以上のようにして教師クライアント端末(20)で受け付けたデータはインターネットを通じてサーバ(10)に送られ、入出力インターフェース(6)により受け取られる(ステップS1)。
問題生成モジュール(2)は、主記憶部()が有する制御プログラムに基づき制御部()の制御のもとで、教員が出題したデータを元に、半自動的に類似問題を複数生成する(ステップS2)。生成された類似問題のソースプログラムは、出題問題のソースプログラムとともにコンパイラーモジュール(3)に渡される。コンパイラーモジュール(3)の字句解析および構文解析部は、受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの説明、制御構造記述を問題生成モジュール(2)に返す(ステップS3)。また、コンパイラーモジュール(3)の機械語翻訳部は、構文エラーのチェックを行い、構文エラーがない場合は、プログラムを実行して、実行結果(正答)を問題生成モジュール(2)に返す。構文エラーがない場合、問題生成モジュール(2)は、コンパイラーモジュール(3)から、ソースプログラムの説明、実行結果(正答)、制御構造記述を受け取り、それらのデータに問題識別子、キーワード、問題文、ソースプログラムを加えて、問題データベース(1)へ格納する(ステップS4)。構文エラーがあった場合は、教員クライアント端末(20)または学習者クライアント端末(30)にエラーを表示し、教員または学習者は、表示されたエラーを元にソースプログラムを書き換える。
可視化モジュール(4)は、問題データベース(1)にアクセスし、学習者クライアント端末(30)のディスプレイに画面表示を行うため、制御構造記述を用いて、チャートを生成し、ソースプログラム、チャート、説明文を同期させ、変数の内容を得る(ステップS5)。そして学習者クライアント端末(30)から要求があれば、画面を生成し(ステップS6)、入出力インターフェース()よりインターネットを介して学習者クライアント端末(30)の表示データを送るようになっている。
一方、学習者クライアント端末(30)では、上記のように第1のモード(a)と第2のモード(b)がある。
第1のモード(a)における学習者クライアント端末(30)の画面のレイアウトを図4に示す。学習者は、問題提示画面で解答を行い(ステップS7)、トレース実行画面に進むことができるようになっている。解答は、問題データベース(1)に保存されている正答データを参照して、可視化モジュール(2)が評価する。問題は、ソースプログラムをトレースして、実行結果を問うような内容とすることができる。トレース実行画面では、学習者がボタンをクリックすると、プログラムが1行1行実行され、実行されている命令に応じた命令の説明、変数の内容、制御構造の内容が表示される。
ここで、学習者クライアント端末の画面のサブウィンドウについて述べる。
[1]問題文
出題する問題文を表示する。「問題提示画面」の内容と同一内容が「トレース実行画面」にも表示される。たとえば、問題文は次のような内容となる。
[2]ソースプログラム表示
学習者クライアント端末(30)では、サーバ(10)から送られてきたソースプログラムを画面表示する。「問題提示画面」の内容と同一内容が「トレース実行画面」にも表示される。このとき「トレース実行画面」では、現在実行している命令の色を変えて、どこを実行しているのか理解しやすいようにすることが望ましい。たとえば、対象となる言語がC++の場合は、次のような内容となる。
[3]解答選択肢または解答入力欄
選択式問題の場合は、解答群を表示し選択し、記述式問題の場合は、解答をキーボードから入力する。たとえば、[1][2]の例において、選択問題とする場合は、解答群として次のような内容となる。
[4]命令の説明
現在実行している命令の解説を画面表示する。たとえば、[2]のソースプログラムの4行目int i=1, x=1;を実行している時には、次のような内容となる。
[5]変数の内容
現在実行している命令を行った後の変数の内容を表示する。[2]のソースプログラムの4行目int i=1, x=1;を実行している時には、次のような内容となる。
[6]制御構造の図
ソースプログラムに対応した制御構造を下記のように図で表示する。このとき現在実行している場所の色を変えて、どこを実行しているのか理解しやすいようにすることが望ましい。
[7]各種ボタン
画面上の「各種ボタン」は、次の命令を実行、命令を1つ戻す、一時停止などを可能とするためのボタンである。
以上のようにして学習者は、この実施形態のプログラミング学習支援システムを利用して、ソースプログラムの学習を行うことができる(ステップS8)。
この実施形態のプログラミング学習支援システムでは、学習者が自作したソースプログラムにより学習を行うこともできる。
この場合、学習者クライアント端末(30)のディスプレイには、図4の左に示すような学習者が自作のソースプログラムを入力する画面となる。ただし、同画面中、「[1]問題文」のサブウィンドウには、何も表示されない。
学習者クライアント端末(30)がソースプログラムの入力を受け付けると、そのデータはインターネットを介してサーバ(10)に送られ、コンパイラーモジュール()により上記と同様な処理が行われる。その後、図4の右のトレース実行画面に推移し、上記と同様にしてソフトプログラムのトレースが行われる。
以上、この出願の発明を一実施形態に基づいて説明したが、この出願の発明はこの実施形態に限定されるものではなく、種々の変形、変更が可能である。
たとえば、上記実施形態では、インターネットを利用したがLAN等を利用してもよい。
また、システムに必要なデータは上記のものに限らず、必要に応じて各種データを用いることができる。
ここで、この出願の発明に係るプログラミング学習支援システムによる手法を従来手法と比較してみる。
ソフトウェアの可視化に関する研究は、アルゴリズムアニメーションとプログラムビジュアライゼーションの2つに大きく分類される。アルゴリズムアニメーションは、アルゴリズムを動画または静止画を用いて可視化する研究であり、主に情報処理教育におけるアルゴリズムの学習を目的としている。
最もよく知られているアルゴリズムアニメーションシステムとして、Balsa (非特許文献1)、 Zeus (非特許文献2), Tango (非特許文献3)がある。もう一方のプログラムビジュアライゼーションは、プログラムの振る舞いを可視化する研究であり、主に情報処理教育におけるプログラミングの学習を目的としている。また、プログラムの理解を助けるため、ソフトウェアのテストやデバッグ作業にも使用できる。
プログラムビジュアライゼーションは、さらにビジュアルデバッガとビジュアルプログラムトレーシングに分類することができる。ビジュアルトレーシングで広く知られているものとして、IBMのJinsight (非特許文献4)がある。Jinsightは、実行するプログラムから多くの情報を集め、その情報を図式化する。プログラマは、これらの図式化された情報からプログラムの振る舞いを理解する。しかし、図式化された情報は経験を積んだプログラマ向けの情報なので、ソースプログラムレベルにいたるほど詳細なものではない。プログラミング初学者がこれらの情報でプログラムの振る舞いを理解するのは困難と考えられる。
この出願の発明に係るプログラミング学習支援システムは、プログラムビジュアライゼーションの中のビジュアルプログラムトレーシングに分類されるものである。既存のシステムと異なる点は、プログラミング初学者向けであり、初学者に重要と考えられる制御構造、変数の内容、入出力データ等の情報を可視化し、それらの情報がソースプログラムと連動して、ソースプログラムレベルで学習できるところである。
この出願の発明に係るプログラミング学習支援システムの構成を示すブロック図である。 この出願の発明に係るプログラミング学習支援システムの主たる動作を示すフローチャートである。 学習者クライアント端末における、出題された問題を解いて、その問題のトレースを行える第1のモードの場合の画面のレイアウトを示す図である。 教員クライアント端末の画面のレイアウトを示す図である。
符号の説明
10 サーバ
20 教員クライアント端末
30 学習者クライアント端末
1 問題データベース
2 問題生成モジュール
3 コンパイラーモジュール
4 可視化モジュール
制御部
主記憶部
入出力インターフェース

Claims (6)

  1. サーバに教員クライアント端末と学習者クライアント端末が接続されてなるプログラミング学習支援システムにおいて、
    サーバは、問題データベース、問題生成モジュール、コンパイラーモジュールおよび可視化モジュールを備え、
    問題データベースは、問題識別子、ソースプログラムを実行したときの実行結果を問うものとする問題文、ソースプログラム、制御構造記述、ソースプログラムの各命令の解説の説明文および問題の正答を含むシステムに必要なデータを管理し、
    問題生成モジュールは、教員クライアント端末から入力された、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データを受け取り、受け取った出題データをもとに、そのソースプログラムのどの内容を変更するかについての教員クライアント端末からのデータを受けて、類似問題のソースプログラムを生成した後、出題問題のソースプログラムと生成した類似問題のソースプログラムをコンパイラーモジュールに渡し、コンパイラーモジュールから出題問題および類似問題のソースプログラムの各命令の解説の説明文、正答である実行結果および制御構造記述を受け取り、これらのデータに問題識別子、問題文ならびに出題問題および類似問題のソースプログラムを加えて問題データベースに渡し、
    コンパイラーモジュールは、字句解析および構文解析部と機械語翻訳部を有し、字句解析および構文解析部は、問題データベースより受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの各命令の解説の説明文および制御構造記述を問題生成モジュールに返し、機械語翻訳部は、コンパイラーによりコンパイルを行い、ソースプログラムを実行して、正答である実行結果を問題生成モジュールに返し、
    可視化モジュールは、問題データベースのデータを用い、制御構造記述よりチャートを作成し、ソースプログラム、チャートおよびソースプログラムの各命令の解説の説明文を同期させ、変数の内容を得て、学習者クライアント端末からの要求を受けて表示画面を生成し、
    教員クライアント端末は、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データ、解答選択肢の記述または解答欄の設定のデータ、類似問題作成のために出題データのソースプログラムのどの内容を変更するかについてのデータの入力を受け付け、
    学習者クライアント端末は、問題提示画面を表示し、その問題の解答を受け付けた後、ソースプログラムのトレース実行画面を表示することを特徴とするプログラミング学習支援システム。
  2. 学習者クライアント端末は、学習者が作成したソースプログラムを受け付け、そのソースプログラムをコンパイラーモジュールに渡し、サーバの各モジュールは教員作成ソースプログラムに代えて学習者自作のソースプログラムをもとに各処理を行うことを特徴とする請求項1に記載のプログラミング学習支援システム。
  3. サーバと教員クライアント端末および学習者クライアント端末がインターネットにより接続されていることを特徴とする請求項1または2に記載のプログラミング学習支援システム。
  4. 教員クライアント端末の画面レイアウトが、ソースプログラムを実行したときの実行結果を問うものとする問題文および問題の内容であるソースプログラムからなる出題データを入力するための出題データ入力画面と、類似問題を出題可能にするために出題データのどの内容を変更するかについての変更項目選択および変更項目設定を行う複数問題設定画面を有することを特徴とする請求項1から3のいずれかに記載のプログラミング学習支援システム。
  5. 問題識別子、ソースプログラムを実行したときの実行結果を問うものとする問題文解答を施す問題文、ソースプログラム、制御構造記述、ソースプログラムの各命令の解説の説明文および問題の正答を含むシステムに必要なデータを管理する問題データベースを有するとともに問題生成モジュール、コンパイラーモジュールおよび可視化モジュールを備えたサーバに、教員クライアント端末と学習者クライアント端末が接続されたシステムにおけるプログラミング学習支援方法であって、
    前記サーバの問題生成モジュールが、教員クライアント端末から入力された、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データを受け取り、受け取った出題データをもとに、そのソースプログラムのどの内容を変更するかについての教員クライアント端末からのデータを受けて、類似問題のソースプログラムを生成した後、出題問題のソースプログラムと生成した類似問題のソースプログラムをコンパイラーモジュールに渡し、コンパイラーモジュールから出題問題および類似問題のソースプログラムの各命令の解説の説明文、正答である実行結果および制御構造記述を受け取り、これらのデータに問題識別子、問題文ならびに出題問題および類似問題のソースプログラムを加えて問題データベースに渡し、
    前記サーバのコンパイラーモジュールが、字句解析および構文解析部と機械語翻訳部を有し、字句解析および構文解析部は、問題データベースより受け取ったソースプログラムの字句解析および構文解析を行い、ソースプログラムの各命令の解説の説明文および制御構造記述を問題生成モジュールに返し、機械語翻訳部は、コンパイラーによりコンパイルを行い、ソースプログラムを実行して、正答である実行結果を問題生成モジュールに返し、
    前記サーバの可視化モジュールが、問題データベースのデータを用い、制御構造記述よりチャートを作成し、ソースプログラム、チャートおよびソースプログラムの各命令の解説の説明文を同期させ、変数の内容を得て、学習者クライアント端末からの要求を受けて表示画面を生成し、
    教員クライアント端末が、ソースプログラムを実行したときの実行結果を問うものとする問題文と問題の内容であるソースプログラムからなる出題データ、解答選択肢の記述または解答欄の設定のデータ、類似問題作成のために出題データのソースプログラムのどの内容を変更するかについてのデータの入力を受け付け、
    学習者クライアント端末が、問題提示画面を表示し、その問題の解答を受け付けた後、ソースプログラムのトレース実行画面を表示することを特徴とするプログラミング学習支援方法。
  6. 学習者クライアント端末が、学習者が作成したソースプログラムを受け付け、そのソースプログラムをコンパイラーモジュールに渡し、サーバの各モジュールは教員作成ソースプログラムに代えて学習者自作のソースプログラムをもとに各処理を行うことを特徴とする請求項5に記載のプログラミング学習支援方法。
JP2006044452A 2006-02-21 2006-02-21 プログラミング学習支援システムおよびプログラミング学習支援方法 Expired - Fee Related JP4808041B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006044452A JP4808041B2 (ja) 2006-02-21 2006-02-21 プログラミング学習支援システムおよびプログラミング学習支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006044452A JP4808041B2 (ja) 2006-02-21 2006-02-21 プログラミング学習支援システムおよびプログラミング学習支援方法

Publications (2)

Publication Number Publication Date
JP2007225726A JP2007225726A (ja) 2007-09-06
JP4808041B2 true JP4808041B2 (ja) 2011-11-02

Family

ID=38547640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006044452A Expired - Fee Related JP4808041B2 (ja) 2006-02-21 2006-02-21 プログラミング学習支援システムおよびプログラミング学習支援方法

Country Status (1)

Country Link
JP (1) JP4808041B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150694B (zh) * 2013-02-05 2016-08-03 北京优才创智科技有限公司 一种远程教学数据的处理方法和装置
JP6176870B2 (ja) * 2016-01-05 2017-08-09 株式会社セガ トイズ コーディング玩具、ブロック、ステージ、形象体玩具及びコーディング方法
JP2017219718A (ja) * 2016-06-08 2017-12-14 大日本印刷株式会社 プログラミング学習装置及びプログラム
KR101963016B1 (ko) * 2017-01-31 2019-03-27 계명대학교 산학협력단 지능형 컴퓨터 프로그래밍 언어 학습기 및 그것을 이용한 학습 방법
KR102069096B1 (ko) 2018-04-17 2020-01-22 (주)블루커뮤니케이션 피지컬 디바이스의 직접적 원격 제어 장치
KR20200068159A (ko) * 2018-12-04 2020-06-15 순천향대학교 산학협력단 프로그래밍 실습 시스템 및 방법
CN110378820B (zh) * 2019-07-25 2022-08-23 上海商汤智能科技有限公司 教学系统及方法、电子设备和存储介质
CN114020369A (zh) * 2021-10-29 2022-02-08 上海商汤科技开发有限公司 编程教育实验方法及装置、电子设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08152843A (ja) * 1994-11-28 1996-06-11 Matsushita Electric Ind Co Ltd 作文問題生成方法および装置
JP2002268536A (ja) * 2001-03-07 2002-09-20 Tsubota Toru 問題作成装置、問題作成方法及び問題作成処理をコンピュータに実行させるためのプログラム
JP3493609B1 (ja) * 2003-08-13 2004-02-03 有限会社快適ソフト コンピュータを利用した選択肢問題形式の学習用プログラム

Also Published As

Publication number Publication date
JP2007225726A (ja) 2007-09-06

Similar Documents

Publication Publication Date Title
JP4808041B2 (ja) プログラミング学習支援システムおよびプログラミング学習支援方法
Koorsse et al. Programming assistance tools to support the learning of IT programming in South African secondary schools
Ruthven et al. Using graphing software to teach about algebraic forms: A study of technology-supported practice in secondary-school mathematics
Sánchez et al. The learning of control concepts using interactive tools
Buteau et al. University students turning computer programming into an instrument for ‘authentic’mathematical work
Ishizue et al. PVC. js: visualizing C programs on web browsers for novices
Kearney-Volpe et al. Accessible web development: Opportunities to improve the education and practice of web development with a screen reader
Arnaiz‐González et al. Seshat—a web‐based educational resource for teaching the most common algorithms of lexical analysis
Song A review of how class orchestration with technology has been conducted for pedagogical practices
Bartzia et al. Proof assistants for undergraduate mathematics and computer science education: elements of a priori analysis
Matayoshi et al. Abstract thinking description system for programming education facilitation
Korhonen et al. Interaction and feedback in automatically assessed algorithm simulation exercises
Staub xLogo online-a web-based programming IDE for Logo
Radaković Visualization of Formal Semantics-Possibilities of Attracting Formal Methods in Teaching
Batiha et al. Adoption of visual programming environments in programming learning
Barbosa et al. Introducing testing practices into objects and design course
Devasani et al. Evaluation of two intelligent tutoring system authoring tool paradigms: Graphical user interface-based and text-based
Pedron An innovative tool for teaching structural analysis and design
Helic Formal Representations of Learning Scenarios: A Methodology to Configure E-Learning Systems.
Kiesler An Exploratory Analysis of Feedback Types Used in Online Coding Exercises
Kono et al. Development and Evaluation of Functions for Elementary/Secondary Programming Education: The Visual Programming Environment “AT”
Chiarelli et al. Evaluating the Utility of Notional Machine Representations to Help Novices Learn to Code Trace
Bravo et al. Group learning of programming by means of real time distributed collaboration techniques
Pareja-Flores et al. Program execution and visualization on the Web
Mogi et al. Proposal for Automatic Problem and Feedback Generation for Use in Trace Learning Support Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees