プログラムを《設計すること》の教育
計算機プログラムによって多くの問題を解決することができます。問題解決には、問題の本質を理解し、問題として解くべき仕様を明確にし、その仕様を満たすプログラムを作ることが必要です。多くのプログラミング教育では、このうちの最後の段階―プログラムを書く―ことに重点を置いています。しかし問題解決全体―我々はこれをプログラムを設計することと呼んでいます―を教えることは、プログラムを書くことと同じくらい重要なことです。
我々はプログラムを設計することの教育方法、特に教育のためのツールを研究しています。具体的にはFelleisenらが提唱するデザインレシピに基づくプログラム設計を支援するような開発環境を試作しています。
デザインレシピとは、プログラミングによる問題解決の際に行うべき一連の手順です。これは、白紙症候群(初心者が与えられた問題にどうアプローチしたら良いか分からず、手が止まってしまう現象)の解決策として、Felleisenらによって提唱されたもので、実際にコードを書く前に入出力の分析や計算構造の下書きを行うことが特徴です。デザインレシピを授業で採用している大学は数多く存在しますが、コーディング前に行う作業を学習者が独力で行うことは容易でありません。
本プロジェクトでは、デザインレシピのコーディングより前の段階を行うためのプログラミング環境を作成しています。これまでに、構造的帰納法に基づいた関数を定義するための環境を実装しています。今後は、より複雑な関数定義(ネストしたデータ構造や一般的な再帰、アキュムレータを使用したもの)にも対応できるよう、拡張していく予定です。
お知らせ
- 熊本による対話型プログラミング学習環境に関するソフトウェア科学会大会ポスター発表
- CPS変換・限定継続・プログラミング教育に関するIFL発表
- PPL 2024 ポスター発表
- メンバー5名が学士論文を発表
- 酒井が日本ソフトウェア科学会第40回大会学生奨励賞を受賞
- 日本ソフトウェア科学会大会でコンピュータと教育に関する2件の発表
- 木内、酒井による学士論文発表
- SPLASH-Eにおいてブロック型プログラム設計学習環境に関する論文発表
- PPL2022にてモナディック等式推論に関する論文(といくつかの論文・ポスター・デモ)発表
- Fathul、荒井、能勢による修士論文発表
- ハイブリッドプログラミング環境に関する発表(@ Scheme 2021)
- PPL’21にて論文・ポスター発表
- 初心者向けプログラミング環境に関する Lambda Days 2021 での発表
- プログラミング教育に関する2件のScheme’20発表
- PPL2020でのポスターとデモ発表
- 第7回SIGPXにてキーワードプログラミング・グラフレイアウト・教育用プログラミングの研究発表
- 能勢による学士論文発表