研究生: |
許信育 Hsu, Hsin-Yu |
---|---|
論文名稱: |
2000年至2009年發表於ACM SIGCSE Bulletins 之程式設計教學法相關文獻之系統性分析 Teaching Methods for Programming Instruction: A Systematic Review of Literature Published in ACM SIGCSE Bulletins between 2000 and 2009 |
指導教授: | 林美娟 |
學位類別: |
碩士 Master |
系所名稱: |
資訊教育研究所 Graduate Institute of Information and Computer Education |
論文出版年: | 2015 |
畢業學年度: | 103 |
語文別: | 中文 |
論文頁數: | 83 |
中文關鍵詞: | 程式設計 、教學方法 、系統性文獻分析 |
英文關鍵詞: | programming, Instructional Methods, Systematic Review |
論文種類: | 學術論文 |
相關次數: | 點閱:104 下載:26 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
本研究旨在系統性地收集2000年至2009年間發表於ACM SIGCSE Bulletin季刊(其中包含The SIGCSE Technical Symposium及International Conference on Innovation and Technology in Computer Science Education兩研討會之論文集),關於程式設計教學之論文,將論文中所報導之程式設計教學法加以彙整、分析,並將分析結果分類呈現與闡述。本研究根據八項篩選準則,以人工方式從上述文獻來源中篩選出79篇論文,並以自行設計之文獻資料萃取表,記錄各篇論文中為本研究分析所需之重要內容。研究者接著使用敘述性綜合法進行資料分析,重點在於整理各文獻所報導之教學活動及其所使用之教學工具。分析結果顯示,程式設計教學中較常使用之教學工具可大別為七類:程式開發環境(如Jython、M.U.P.P.E.T.S、CS1 Sandbox、Bricklayer、及JPie)、合作學習工具(如CoWeb、IMinds、及Praktomat)、遊戲開發工具(如GBA and NDS Development Tools和OpenGL)、視覺化工具(如EROSI Tutor、PlanAni、及Jeliot)、教學回饋工具(如Personal Response System和個別輔導教學軟體)、機器人程式開發工具(如LEGO Mindstorms、及Parallax Scribbler)、及其他工具。在教學活動方面,則可分為以下七類:(1)教學範例或作業結合特定主題之教學活動、(2)提供學生彈性選擇不同範例或作業之教學活動、(3)以培養學生問題解決能力為重點之教學活動、(4)合作學習、(5)強調教學者對學生提供回饋之教學活動、(6)以視覺化工具輔助之教學活動、及(7)不屬於上述六類之其他教學活動。本研究以案例闡釋各類教學活動之特色及其所帶來之學習效益,期能提供程式設計教學者參考採用之。
The purpose of this study was to systematically review research findings published between 2000 and 2009 in ACM SIGCSE Bulletins (including papers presented at the SIGCSE Technical Symposium and International Conference on Innovation and Technology in Computer Science Education) with respect to programming instruction for beginners. After manually reviewing the articles published in SIGCSE Bulletins according to eight screening criteria, we selected 79 articles for synthesis. Important information contained in each of those 79 articles, particularly the instructional activities and tools used in each study, was extracted using a data extraction form. Narrative synthesis was then conducted to analyze information recorded in those extraction forms. The results of our data synthesis indicated that there are seven categories of instructional tools used most often in programming classrooms: (a) Program development environments (e.g., Jython, M.U.P.P.E.T.S, CS1 Sandbox, Bricklayer, and JPie); (b) collaborative learning tools (e.g., CoWeb, IMinds, and Praktomat); (c) game development tools (e.g., GBA and NDS Development Tools, OpenGL); (d) visualization tools (e.g., EROSI Tutor, PlanAni, and Jeliot); (e) feedback/response tools (e.g., personal response systems and individualized guidance systems); (f) Tools for building and programming robots (e.g., LEGO Mindstorms and Parallax Scribbler); and (g) Other tools. Instructional activities were also grouped into seven categories: (1) Activities that integrated specially designed examples or projects; (2) activities that provided students with flexibility in choosing different examples or assignments; (3) activities that focused on learning of problem-solving skills; (4) collative-learning activities; (5) activities that emphasized teacher-student feedback-response; (6) activities that involved the use of visualization tools; and (7) other activities. We exemplified each category of instructional activities and discussed their effects on learning. It is hoped that what is synthesized in this research would provide programming instructors with useful instructional activities/tools to adopt in their teaching.
Bishop-Clark, C. (1992). Protocol analysis of a novice programmer. ACM SIGCSE Bulletin, 24(3), 14-18.
Bower, M., & Richards, D. (2006). Collaborative learning: Some possibilities and limitations for students and teachers. ACM Transactions on Computing Education, 9 (1), 79.
Brereton, P., Kitchenham, B. A., Budgen, D., Turner, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of systems and software, 80(4), 571-583.
Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini-languages: a way to learn programming principles. Education and Information Technologies, 2(1), 65-83.
Chen, C.-L., Cheng, S.-Y., & Lin, J. M.-C. (2012). A study of misconceptions and missing conceptions of novice Java programmers. Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS'12).
Clark, R. C., Nguyen, F., & Sweller, J. (2011). Efficiency in learning: Evidence-based guidelines to manage cognitive load: John Wiley & Sons.
Cross, J. H., Hendrix, D., & Umphress, D. A. (2004). jGRASP: an integrated development environment with visualizations for teaching java in CS1, CS2, and beyond. Frontiers in Education, 2004. FIE 2004. 34th Annual.
Goldman, K. J. (2003). A demonstration of JPie: An environment for live software construction in Java. Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications.
Gomes, A., & Mendes, A. J. (2007). Learning to program-difficulties and solutions. International Conference on Engineering Education.
Hannay, J. E., Dybå, T., Arisholm, E., & Sjøberg, D. I. (2009). The effectiveness of pair programming: A meta-analysis. Information and software technology, 51(7), 1110-1122.
Hundhausen, C., Agrawal, A., Fairbrother, D., & Trevisan, M. (2009). Integrating pedagogical code reviews into a CS 1 course: an empirical study. Paper presented at the ACM SIGCSE Bulletin.
Jenkins, T. (2002). On the difficulty of learning to program. Paper presented at the Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences.
Jones, C. G. (2004). Test-driven development goes to school. Journal of Computing Sciences in Colleges, 20(1), 220-231.
Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ system and its pedagogy. Computer Science Education, 13(4), 249-268.
Kay, J., Barg, M., Fekete, A., Greening, T., Hollands, O., Kingston, J. H., & Crawford, K. (2000). Problem-based learning for foundation computer science courses. Computer Science Education, 10(2), 109-128.
King, W. R., & He, J. (2005). Understanding the role and methods of meta-analysis in IS research. Communications of the Association for Information Systems, 16(1), 32.
Kinnunen, P., & Malmi, L. (2006). Why students drop out CS1 course? Proceedings of the second international workshop on Computing education research.
Kitchenham, B. (2004). Procedures for performing systematic reviews. Keele, UK, Keele University, 33(2004), 1-26.
Lahtinen, E., Ala-Mutka, K., & Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. In ACM SIGCSE Bulletin (Vol. 37, No. 3, pp. 14-18). ACM.
Linn, M. C., & Dalbey, J. (1989). Cognitive consequences of programming instruction. Studying the novice programmer, 57-81.
Lister, R. (2011). COMPUTING EDUCATION RESEARCH: Programming, syntax and cognitive load. ACM Inroads, 2(2), 21-22.
Littell, J. H., Corcoran, J., & Pillai, V. (2008). Systematic reviews and meta-analysis.: Oxford University Press.
Luxton-Reilly, A. (2009). A systematic review of tools that support peer assessment. Computer Science Education, 19(4), 209-232.
Major, L., Kyriacou, T., & Brereton, O. P. (2012). Systematic literature review: teaching novices programming using robots. IET software, 6(6), 502-513.
Mason, R., Cooper, G., & de Raadt, M. (2012). Trends in introductory programming courses in Australian universities: languages, environments and pedagogy. In Proceedings of the Fourteenth Australasian Computing Education Conference-Volume 123 (pp. 33-42). Australian Computer Society, Inc..
McIver, L., & Conway, D. (1996). Seven deadly sins of introductory programming language design. In Software Engineering: Education and Practice, 1996. Proceedings. International Conference (pp. 309-316). IEEE.
Monroy-Hernández, A. (2009). Designing a website for creative learning.
Moreno, A., Myller, N., Sutinen, E., & Ben-Ari, M. (2004). Visualizing programs with Jeliot 3. In Proceedings of the working conference on Advanced visual interfaces (pp. 373-376). ACM.
Nuutila, E., Törmä, S., & Malmi, L. (2005). PBL and computer programming—the seven steps method with adaptations. Computer Science Education, 15(2), 123-142.
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M., Paterson, J. (2007). A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin, 39(4), 204-223.
Perkins, D., & Martin, F. (1986). Fragile knowledge and neglected strategies in novice programmers. In first workshop on empirical studies of programmers on Empirical studies of programmers (pp. 213-229).
Popay, J., Roberts, H., Sowden, A., Petticrew, M., Arai, L., Rodgers, M., . . . Duffy, S. (2006). Guidance on the conduct of narrative synthesis in systematic reviews. A product from the ESRC methods programme. Lancaster: Institute of Health Research.
Portsmore, M., & Rogers, C. (2004). Bringing engineering to elementary school. Journal of STEM education, 5.
Putnam, R. T., Sleeman, D., Baxter, J. A., & Kuspa, L. K. (1986). A summary of misconceptions of high school Basic programmers. Journal of Educational Computing Research, 2(4), 459-472.
Ragonis, N., & Ben-Ari, M. (2005). A long-term investigation of the comprehension of OOP concepts by novices. Computer Science Education, 15(3), 203-221. doi: 10.1080/08993400500224310
Salleh, N., Mendes, E., & Grundy, J. (2011). Empirical studies of pair programming for CS/SE teaching in higher education: A systematic literature review. Software Engineering, IEEE Transactions on, 37(4), 509-525.
Siegfried, R. M., Greco, D., Miceli, N., & Siegfried, J. (2012). Whatever Happened to Richard Reid’s List of First Programming Languages? Information Systems Education Journal, 10(4), 24.
Slavin, R. E. (1991). Synthesis of Research of Cooperative Learning. Educational leadership, 48(5), 71-82.
Sleeman, D., Putnam, R. T., Baxter, J., & Kuspa, L. (1986). Pascal and high school students: A study of errors. Journal of Educational Computing Research, 2(1), 5-23.
Soloway, E. (1986). Learning to program= learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850-858.
Spohrer, J., & Soloway, E. (1986). Alternatives to construct-based programming misconceptions. In ACM SIGCHI Bulletin (Vol. 17, No. 4, pp. 183-191). ACM.
Valentine, D. W. (2004). CS educational research: a meta-analysis of SIGCSE technical symposium proceedings. ACM SIGCSE Bulletin, 36(1), 255-259.
Van Eck, R. (2006). Digital game-based learning: It's not just the digital natives who are restless. EDUCAUSE review, 41(2), 16.
Watson, C., & Li, F. W. B. (2014). Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education (pp. 39-44). ACM.
Williams, L., Wiebe, E., Yang, K., Ferzli, M., & Miller, C. (2002). In support of pair programming in the introductory computer science course. Computer Science Education, 12(3), 197-212.
Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22.