メニュー

堺市で運営しているプログラミングスクールADVANCEの教室の様子

プログラミング教育を改善する環境:最新研究から学ぶ効果的な学習支援システム

📌 この記事の結論

  • プログラミング学習の困難さは、特に問題解決能力の欠如アルゴリズム設計の難しさに起因することが多い。
  • 従来の教授法では、多くの学生に合わせた個別対応が難しい。
  • 本論文では、学生の問題解決能力を向上させ、学習スタイルに合わせた支援を提供する新しい教育環境を提案している。
  • この環境は、ゲーミフィケーション視覚的アルゴリズム開発ツール(SICAS)を活用し、体験的学習を重視する。

1. プログラミング学習の現状と課題

プログラミング学習は、多くの学生にとって困難なプロセスです。特に、プログラミング言語を使って問題を解決するためのプログラムを作成することに苦戦する学生が少なくありません。学生の失敗や、プログラミング学習でよく聞かれる困難さは、従来の教授法や学習方法が多くの学生にとって最適ではない可能性を示唆しています。本論文は、これらの問題の根本原因を特定し、解決策を提案しています。

2. 紹介する論文の概要

📄 論文情報

タイトル An environment to improve programming education
著者 Anabela Gomes, António José Mendes (University of Coimbra, Coimbra, Portugal)
掲載誌 CompSysTech '07: Proceedings of the 2007 international conference on Computer systems and technologies (June 2007)
研究対象 プログラミング教育における学習支援環境
研究期間 明示されていないが、論文が2007年発表であることからそれ以前に実施された

研究の目的

本研究の主な目的は、プログラミング学習の困難さを軽減するための新しい教育環境を提案することです。特に、学生が直面するアルゴリズム作成の難しさや、一般的な問題解決能力の欠如に焦点を当て、より効果的な学習支援システムを構築することを目指しています。

研究の方法

論文では、新しい環境を定義するために以下のステップを踏んでいます。

  1. 学生の困難さの原因を特定する診断実験の実施。これには、一般的な問題解決、アルゴリズム開発、論理エラーの検出、数学的概念の理解、プログラミング技術に関する誤解などが含まれる。
  2. プログラミング教師の教授戦略の分析。学生の問題解決能力向上への貢献度を評価。
  3. 学生の学習アプローチの調査。プログラミングへの取り組み方、重要性の認識、学習時間、能力開発に用いる活動などを把握。
  4. 情報収集には、観察、インタビュー、アンケートなどの手法を使用。
  5. 既存のプログラミング学習支援ツール(視覚化システム、AIチューター、マイクロワールドなど)の文献レビューを通じて、先行研究の知見を統合。

3. 研究結果のポイント3つ

堺市で運営しているプログラミングスクールADVANCEの教室の様子

本研究は、プログラミング学習における学生の困難の解決策として、特定の教育環境の特性を定義しています。

プログラミング学習における失敗の多くは、単にプログラミング言語の知識不足だけでなく、根本的な問題解決能力の欠如に起因している、と本論文は指摘しています。そのため、提案される環境は、この汎用的な問題解決能力の向上に重点を置いています。

✅ ポイント1:学生の個別最適化された学習支援

環境は、学生一人ひとりの知識レベルを常に分析・更新し、それに基づいて個別化された活動やフィードバックを提供します。これは、過去に解決した問題の例を参照したり、その学生の特定のニーズに合わせた学習パスを提示したりすることで実現されます。

✅ ポイント2:学習スタイルに合わせたアプローチ

学生の優先的な学習スタイル(例: Felder-Silvermanモデル)を考慮し、活動の種類や提示方法を調整します。これにより、視覚的学習者にはアニメーションを多用し、実践的学習者には手を動かす演習を増やすなど、より効果的な学習体験を提供します。

✅ ポイント3:ゲーミフィケーションと実践的なアルゴリズム開発

環境には、論理パズルやゲームなどの遊びの要素が組み込まれ、学生の一般的な問題解決能力を楽しみながら育成します。また、SICASのような視覚的なアルゴリズム開発環境を提供し、学生が自らアルゴリズムを設計、テスト、修正する実践的な学習を可能にします。これにより、Scratchで視覚的にブロックを組み合わせてプログラミングを学ぶように、アルゴリズムの思考プロセスに集中できるようになります。

4. ADVANCEの現場から見た実感

堺市で運営しているプログラミングスクールADVANCEの教室の様子
▲ ADVANCEの教室で学ぶ様子(イメージ)

堺市南区のプログラミングスクールADVANCEで実際にプログラミングを教えている講師としての意見は以下の三つです

🎮 現場で感じる3つの変化

汎用的な問題解決能力の重要性

論文が指摘するように、プログラミングの「構文を覚える」こと以上に、「どうやって問題を分解し、順序立てて解決するか」という汎用的な思考力が圧倒的に重要だと感じます。たとえば、Scratchでキャラクターを動かす際にも、単にブロックを並べるだけでなく、「どの順番で、どのくらいの距離を動かすか」という問題解決のプロセスが不可欠です。この能力が低いと、少し複雑な課題になった途端に手が止まってしまいます。

実践と試行錯誤の価値

「理論を学ぶ」ことと「実際に手を動かして問題を解く」ことの間には大きなギャップがあります。ADVANCEでは、Roblox StudioやUnity (C#) を使ったゲーム開発を通じて、学生たちは自然と多くのエラーに直面し、それを自力で解決する過程で深い学習を経験します。この「自分で試して、失敗して、修正する」というプロセスこそが、プログラミング能力を真に高める鍵だと実感しています。

個別指導と学習スタイルの適応

集団授業では見落とされがちな学生一人ひとりの学習スタイルや進捗は、個別指導において非常に重要です。ある生徒は視覚的な説明で理解が早く、別の生徒は実際にコードを書いてみないとピンとこない、といった違いは日常茶飯事です。ADVANCEでは、PythonやJavaScriptのようなテキストベースの言語を学ぶ際も、生徒の理解度に合わせて、図解を多用したり、小さな課題を繰り返し解かせたりと、柔軟にアプローチを調整しています。

この論文が提案する「問題解決能力の向上」「学習スタイルへの適応」「実践を通じた学習」は、まさにプログラミング教育で最も重視すべき点であり、ADVANCEの指導方針とも強く合致していると再確認できました。

5. 保護者の方へ:家庭でできること

プログラミング学習の成功には、学校やスクールだけでなく、家庭でのサポートも非常に重要です。この論文の知見を踏まえ、保護者の方がご家庭でできることをいくつかご紹介します。

🏠

日常の問題解決を促す

プログラミングの土台となるのは、「目の前の課題をどう解決するか」という思考力です。日常生活の中で、例えば「おもちゃの片付けの順番を考える」「料理の手順を一緒に決める」など、小さな問題解決の機会を意識的に作ってみましょう。これは、Pythonで効率的なデータ処理を考えるような、より高度なアルゴリズム思考にも繋がります。

📅

遊び感覚で論理的思考を養う

論文で強調されているように、パズルゲームやボードゲーム、謎解きなど、遊びを通して論理的思考力や問題解決能力を育むことは非常に有効です。これらは、ゲーム開発でよく使われるJavaScriptの条件分岐やループ処理といった概念を直感的に理解する手助けにもなります。

👏

失敗を恐れず挑戦する環境を作る

プログラミング学習は、エラーや失敗の連続です。お子さんが「間違えても大丈夫」「試してみることが大切」と思えるような安全な環境を提供しましょう。例えば、Scratchで何かを作ってみて期待通りに動かなくても、「どうすれば動くようになるかな?」と一緒に考える姿勢が、SQLのクエリをデバッグするような粘り強さを育みます。

🎮 ADVANCEで一緒にプログラミングを始めませんか?

堺市南区のプログラミングスクールADVANCEでは、Scratchからはじめて、Roblox、Unity(C#)まで段階的に学べます。

研究で効果が実証されたプログラミング教育を、ゲーム制作を通じて楽しく体験できます。

🕹️ ▶ ぼうけんを はじめる 無料体験会に申し込む! 🎮

6. 参考文献

  1. Soloway, E. and J. Spohrer. (1989). Studying the Novice Programmer. Lawrence Erlbaum Associates, Hillsdale, New Jersey.
  2. Jenkins, T. (2002). On the difficulty of learning to program. In Proc. of the 3rd Annual LTSN_ICS Conference (Loughborough University, United Kingdom, August 27-29, 2002). The Higher Education Academy, Pp. 53-58.
  3. Lahtinen, E., Ala-Mutka, K. e Järvinen, H-M. (2005). A study of difficulties of novice programmers. In Proc of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, Monte de Caparica, Portugal, June 27-29, 2005, Pp. 14-18.
  4. Hanciles, B., Shankararaman, V. and Munoz, J. (1997). Multiple representation for understanding data structures. Computers & Education, Vol. 29 No. 1, Pp. 1-11.
  5. Brown, M. (1988). Exploring algorithms using BALSA-II. IEEE Computer, Vol. 21 No. 5, Pp. 14-36.
  6. Mendes, A. and Mendes, T. (1988). VIP - A tool to VIsualize Programming examples. In Proc. of the EACT 88 - Education and Application of Computer Technology, EACT 88, Malta, October 1988.
  7. Stasko, J. (1992). Animating algorithms with XTANGO. SIGACT News, Vol. 23 No. 2, Pp. 67-71.
  8. Levy, R. B., Ben-Ari, M., Uronen, P. A. (2003). The Jeliot 2000 program animation system. Computers & Education, Vol. 40 No.1, Pp. 1–15.
  9. Korhonen, A., Malmi, L., Silvasti, P. (2003). TRAKLA2: a framework for automatically assessed visual algorithm simulation exercises. In Proc. of the 3rd Finnish/Baltic Sea Conference on Computer Science Education, Koli, Finlândia, Pp. 48-56.
  10. Cilliers, C., Calitz, A. and Greyling, J. (2005). The effect of integrating an iconic programming notation in CS1. In Proc of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, Monte de Caparica, Portugal, June 27-29, 2005, Pp. 89-93,
  11. Calloni, B. A. and Bagert, D. J. (1993). BACCII: An iconic syntax-directed system for teaching procedural programming. In Proc. of the 31st ACM Southeast Conference, Birmingham AL, April 15-16, 1993, Pp. 177-183.
  12. Kolling, M., Quig, B., Patterson, A. and Rosenberg, J. (2003). The BlueJ system and its pedagogy. Journal of Computing Science Education, Special Issue of Learning and Teaching Object Technology, Vol. 12, No. 4, Pp. 249–268.
  13. Ellis, G. P. and Lund, G. R. (1994). 2nd AL1-Ireland Conference on teaching of Computing, Dublin City University, Dublin, September 1994.
  14. Naps, T. (2005). Jhavé – Supporting Algorithm Visualization. IEEE Computer Graphics and Applications, Vol. 25 No. 5, Pp. 49-55.
  15. Anderson, J. R. e Reiser, B. J. (1985). The LISP tutor. Byte, Vol. 10 No.4, Pp. 159-175.
  16. Song, J. S., Hahn, S. H., Tak, K. Y. e Kim, J. H. (1997). An intelligent tutoring system for introductory C language course. Computers & Education, Vol. 28 No. 2.
  17. Moritz, S. H., Wei, F., Parvez, S. M., Blank, G. D. (2005) From objects-first to design-first with multimedia and intelligent tutoring. In Proc. of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, Monte de Caparica , Portugal, Vol. 37, No. 3, Pp.99-103.
  18. Papert, S. (1980). Mindstorms, children, computers and powerful ideias. New York: Basic Books.
  19. Pattis, R. (1981). Karel the Robot: A gentle introduction to the art of programming. (2nd Edition), John Wiley & Sons.
  20. Brusilovsky, P. (1994). Program visualization as a debugging tool for novices. In Proc. of INTERCHI'93, Amsterdam, 24-29 April 1993, Pp. 29-30.
  21. Jehng, J., Shih, Y., Liang, S. e Chan, T. (1994). Turtle-Graph: A computer Supported Cooperative learning environment. In Proc. of the ED-MEDIA’94, Pp. 293-298.
  22. Cooper, S., Dann, W., Pausch, R. (2003). Teaching objects-first in introductory computer science. In Proc. of the 34th Annual SIGCSE Technical Symposium on Computer Science Education, Reno, Navada, USA, 2003, Vol. 35, No. 1, Pp. 191-195.
  23. Gomes, A. (2002). Ambiente de suporte à aprendizagem de conceitos básicos de programação. Tese de Mestrado em Engenharia Informática, Faculdade de Ciências e Tecnologia da Universidade de Coimbra.
  24. Myers, I. B. and McCaulley, M.H. (1985). Manual: A Guide to the Development and Use of the Myers-Briggs Type Indicator. Palo Alto, CA: Consulting Psychologists Press.
  25. Kolb, D. A. (1985). Learning Style Inventory: Technical Manual. McBer and Company, Boston.
  26. Felder, R. M. (1988). Learning and Teaching Styles in Engineering Education. Journal of Engineering Education, Vol. 78 No. 7, Pp. 674-681.
  27. Carmo, L., Gomes, A., Pereira, F. and Mendes, A.J. (2006). Learning styles and problem solving strategies. In Proceedings of 3rd E-Learning Conference – Computer Science Education (CD-ROM), Coimbra, Portugal, September 2006.
  28. Delgado, C., Xexeo, J. A., Souza, I. F., Campos, M. F. e Rapkiewicz, C. E. (2004). Uma Abordagem Pedagógica para a Iniciação ao Estudo de Algoritmos. Anais do Curso de Ciência da Computação, Vol. V, Pp. 72-87, Publicação semestral do Curso de Ciência da Computação das Faculdades Integradas Bennett.
  29. Rebelo, B., Marcelino, M. J., Mendes, A. J. (2005). Evaluation and utilization of SICAS – a system to support algorithm learning, In Proceedings of CATE05 – Computers and Advanced Technology in Education, Oranjestad, Aruba, August, 2005.
  30. Marcelino, M.J., Gomes, A., Dimitrov, N. and Mendes, A.J. (2004). Using a computer-based interactive system for the development of basic algorithmic and programming skills. In Proceedings of CompSysTech 2004 - International Conference on Computer Systems and Technologies, Rousse, Bulgaria, June 2004 Pp. IV.8.1-IV.8.6.
👨‍🏫

この記事を書いた人

ADVANCE 講師

堺市南区のプログラミングスクールADVANCEで、Scratch・Roblox・Unity等を用いたプログラミング教育を担当。子どもから大人まで幅広い年齢層への指導経験を持つ。