プログラミングの初心者によくある問題として,あるアルゴリズムの概念的な説明は理解できていても,プログラムに実装しようとすると行き詰まってしまう場合があります.多くの学習者は何度も試行錯誤する中でプログラミングできるようになっていきますが,それはなぜでしょうか? もう少し明示的に概念レベル理解と実装レベルの理解を結びつけて明示的に学習する方法はないでしょうか?
本研究では,プログラミング学習者自身が開発しているプログラムの機能・構造・振る舞いを熟練プログラマの視点に基いてリアルタイムに可視化することでプログラミング学習を支援するシステムを実現します.また,熟練したプログラマ(プログラミングできる人)は,開発状況や障害に応じて注目する範囲や抽象度を切り替えて開発対象を分析することができますが,プログラミング初心者はこれができないため演習の段階で躓いてしまうことが多いため,適宜アシストする必要もあります.
プログラミングを学習する段階で躓いて諦めてしまう人を 0 にするために研究を進めています.
References
- 瀧 嘉人, 他. (2019.09) 視覚化に基づくプログラムの脆弱性学習支援システムの構築, 第44回教育システム情報学会全国大会予稿集, pp.45-56. (静岡大学)
- K. Yamashita, et al. (2017) “Classroom practice for understanding pointers using learning support system for visualizing memory image and target domain world,” Research and Practice in Technology Enhanced Learning (RPTEL), 12:17, pp.1-16, doi:10.1186/s41039-017-0058-4
- K. Yamashita, et al. (2016.08). Practices of Algorithm Education based on Discovery Learning using a Program Visualization System, Research and Practice in Technology Enhanced Learning (RPTEL), 11(15), pp.1-19, DOI: 10.1186/s41039-016-0041-5
- K. Yamashita, et al. (2016.01). Code-Reading Support Environment Visualizing Three Fields and Educational Practice to Understand Nested Loops, Research and Practice in Technology Enhanced Learning (RPTEL), 11:3, pp.1-22, DOI: 10.1186/s41039-016-0027-3
- K. Yamashita, et al., Educational Practice of Algorithm using Learning Support System with Visualization of Program Behavior, Proceedings of the 23rd International Conference on Computers in Education, pp.632-640 2015.11. (Hangzhou, China) (Best Technical Design Paper Award Nominee)