參考文獻 |
[1] A. Robins, J. Rountree, and N. Rountree, “Learning and teaching programming: A review and discussion,” Computer science education, vol. 13, no. 2, pp. 137–172, 2003.
[2] B. Du Boulay, “Some difficulties of learning to program,” Journal of Educational Computing Research, vol. 2, no. 1, pp. 57–73, 1986.
[3] J. Gal-Ezer and D. Harel, “What (else) should cs educators know?” Communications of the ACM, vol. 41, no. 9, pp. 77–84, 1998.
[4] D. D. McCracken, “Ruminations on computer science curricula,” Communications of the ACM, vol. 30, no. 1, pp. 3–6, 1987.
[5] C. Rinderknecht et al., “A survey on teaching and learning recursive programming,” Informatics in Education-An International Journal, vol. 13, no. 1, pp. 87–120, 2014.
[6] D. Ginat and E. Shifroni, “Teaching recursion in a procedural environment—how much should we emphasize the computing model?” ACM SIGCSE Bulletin, vol. 31, no. 1, pp. 127–131, 1999.
[7] J. W. Backus, F. L. Bauer, J. Green, et al., “Report on the algorithmic language algol 60,” Communications of the ACM, vol. 3, no. 5, pp. 299–314, 1960.
[8] J. McCarthy, “Recursive functions of symbolic expressions and their computation by machine, part i,” Communications of the ACM, vol. 3, no. 4, pp. 184–195, 1960.
[9] O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare, Structured programming. Academic Press Ltd., 1972.
[10] E. W. Dijkstra, “Recursive programming,” in Edsger Wybe Dijkstra: His Life, Work, and Legacy, 2022, pp. 291–300.
[11] R. W. Floyd, “The paradigms of programming,” in ACM Turing award lectures, 2007, p. 1978.
[12] J. A. Velazquez-Iturbide, “Recursion in gradual steps (is recursion really that difficult?)” In Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, 2000, pp. 310–314.
[13] K. Hinsen, “The promises of functional programming,” Computing in Science & Engineering, vol. 11, no. 4, pp. 86–90, 2009.
[14] P. Hudak, “Conception, evolution, and application of functional programming languages,” ACM Computing Surveys (CSUR), vol. 21, no. 3, pp. 359–411, 1989.
[15] J. Hughes, “Why functional programming matters,” The computer journal, vol. 32, no. 2, pp. 98–107, 1989.
[16] J. R. Anderson, R. Farrell, and R. Sauers, “Learning to program in lisp,” Cognitive Science, vol. 8, no. 2, pp. 87–129, 1984.
[17] E. W. Dijkstra, “Computing science: Achievements and challenges,” ACM SIGAPP Applied Computing Review, vol. 7, no. 2, pp. 2–9, 1999.
[18] J. Reinfelds, “A three paradigm first course for cs majors,” ACM SIGCSE Bulletin, vol. 27, no. 1, pp. 223–227, 1995.
[19] E. Roberts and E. Roberts, Thinking recursively. J. Wiley, 1986.
[20] G. Ford, “A framework for teaching recursion,” ACM SIGCSE Bulletin, vol. 14, no. 2, pp. 32–39, 1982.
[21] B. Haberman and H. Averbuch, “The case of base cases: Why are they so difficult to recognize? student difficulties with recursion,” in Proceedings of the 7th annual conference on innovation and technology in computer science education, 2002, pp. 84–88.
[22] E. Lahtinen, K. Ala-Mutka, and H.-M. Järvinen, “A study of the difficulties of novice programmers,” Acm sigcse bulletin, vol. 37, no. 3, pp. 14–18, 2005.
[23] P. Dillenbourg, What do you mean by collaborative learning? 1999.
[24] Pogil. process oriented guided inquiry learning. [Online]. Available: https://pogil.org/ (visited on 06/29/2023).
[25] D. M. Hanson, Instructor’s guide to process-oriented guided-inquiry learning. Pacific Crest Lisle, IL, 2006.
[26] T. Myers, R. Monypenny, and J. Trevathan, “Overcoming the glassy-eyed nod: An application of process-oriented guided inquiry learning techniques in information technology,” Journal of learning design, vol. 5, no. 1, pp. 12–22, 2012.
[27] H. H. Hu, C. Kussmaul, B. Knaeble, C. Mayfield, and A. Yadav, “Results from a survey of faculty adoption of process oriented guided inquiry learning (pogil) in computer science,” in Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, 2016, pp. 186–191.
[28] D. R. Hofstadter and E. Sander, Surfaces and essences: Analogy as the fuel and fire of thinking. Basic books, 2013.
[29] M. Er, “On the complexity of recursion in problem-solving,” International Journal of Man-Machine Studies, vol. 20, no. 6, pp. 537–544, 1984.
[30] P. L. Pirolli and J. R. Anderson, “The role of learning from examples in the acquisition of recursive programming skills.,” Canadian Journal of Psychology/Revue canadienne de psychologie, vol. 39, no. 2, p. 240, 1985.
[31] D. M. Kurland and R. D. Pea, “Children’s mental models of recursive logo programs,” Journal of Educational Computing Research, vol. 1, no. 2, pp. 235–243, 1985.
[32] I. Sanders and T. Scholtz, “First year students’ understanding of the flow of control in recursive algorithms,” African Journal of Research in Mathematics, Science and Technology Education, vol. 16, no. 3, pp. 348–362, 2012.
[33] W. Dann, S. Cooper, and R. Pausch, “Using visualization to teach novices recursion,” in Proceedings of the 6th annual conference on Innovation and technology in computer science education, 2001, pp. 109–112.
[34] A. Chaffin, K. Doran, D. Hicks, and T. Barnes, “Experimental evaluation of teaching recursion in a video game,” in Proceedings of the 2009 ACM SIGGRAPH Symposium on Video Games, 2009, pp. 79–86.
[35] J. Tessler, B. Beth, and C. Lin, “Using cargo-bot to provide contextualized learning of recursion,” in Proceedings of the ninth annual international ACM conference on International computing education research, 2013, pp. 161–168.
[36] D. Wilcocks and I. Sanders, “Animating recursion as an aid to instruction,” Computers & Education, vol. 23, no. 3, pp. 221–226, 1994.
[37] C. E. George, “Erosi—visualising recursion and discovering new errors,” ACM SIGCSE Bulletin, vol. 32, no. 1, pp. 305–309, 2000.
[38] O. AlZoubi, D. Fossati, B. Di Eugenio, and N. Green, “Chic) at-tutor: An integrated environment for learning recursion,” 2014.
[39] J. Á. Velázquez-Iturbide, A. Pérez-Carrasco, and J. Urquiza-Fuentes, “Srec: An animation system of recursion for algorithm courses,” Acm sigcse bulletin, vol. 40, no. 3, pp. 225–229, 2008.
[40] W.-J. Hsin, “Teaching recursion using recursion graphs,” Journal of Computing Sciences in Colleges, vol. 23, no. 4, pp. 217–222, 2008.
[41] M. Ben-Ari and N. Reich, “Recursion: From drama to program,” Journal of Computer Science Education, vol. 11, no. 3, pp. 9–12, 1997.
[42] M. Wirth, “Introducing recursion by parking cars,” ACM SIGCSE Bulletin, vol. 40, no. 4, pp. 52–55, 2008.
[43] S. Hamouda, S. H. Edwards, H. G. Elmongui, J. V. Ernst, and C. A. Shaffer, “Recurtutor: An interactive tutorial for learning recursion,” ACM Transactions on Computing Education (TOCE), vol. 19, no. 1, pp. 1–25, 2018.
[44] P. B. Henderson and F. J. Romero, “Teaching recursion as a problem-solving tool using standard ml,” ACM SIGCSE Bulletin, vol. 21, no. 1, pp. 27–31, 1989.
[45] S. Bhuiyan, J. E. Greer, and G. I. McCalla, “Supporting the learning of recursive problem solving,” Interactive Learning Environments, vol. 4, no. 2, pp. 115–139, 1994.
[46] J. Sawyer and R. Obeid, “Cooperative and collaborative learning: Getting the best of both words,” How we teach now: The GSTA guide to student-centered teaching, pp. 163–177, 2017.
[47] M. Deutsch, “An experimental study of the effects of co-operation and competition upon group process,” Human relations, vol. 2, no. 3, pp. 199–231, 1949.
[48] R. E. Slavin, “Cooperative learning,” Review of educational research, vol. 50, no. 2, pp. 315–342, 1980.
[49] R. E. Slavin, “Research on cooperative learning and achievement: What we know, what we need to know,” Contemporary educational psychology, vol. 21, no. 1, pp. 43–69, 1996.
[50] R. M. Gillies, “The effects of cooperative learning on junior high school students during small group learning,” Learning and instruction, vol. 14, no. 2, pp. 197–213, 2004.
[51] K. D. Benne and P. Sheats, “Functional roles of group members.,” Journal of social issues, 1948.
[52] D. Craciun, “Role-playing as a creative method in science education,” Journal of Science and Arts, vol. 10, no. 1, p. 175, 2010.
[53] J. D. Chase and E. G. Okie, “Combining cooperative learning and peer instruction in introductory computer science,” in Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, 2000, pp. 372–376.
[54] H.-C. Chu and G.-J. Hwang, “Development of a project-based cooperative learning environment for computer programming courses,” International Journal of Innovation and Learning, vol. 8, no. 3, pp. 256–266, 2010.
[55] W.-Y. Hwang, R. Shadiev, C.-Y. Wang, and Z.-H. Huang, “A pilot study of cooperative programming learning behavior and its relationship with students’ learning performance,” Computers & education, vol. 58, no. 4, pp. 1267–1281, 2012.
[56] M. B. Garcia, “Cooperative learning in computer programming: A quasi-experimental evaluation of jigsaw teaching strategy with novice programmers,” Education and Information Technologies, vol. 26, no. 4, pp. 4839–4856, 2021.
[57] T.-W. Chan and C.-Y. Chou, “Exploring the design of computer supports for reciprocal tutoring,” International Journal of Artificial Intelligence in Education (IJAIED), vol. 8, pp. 1–29, 1997.
[58] Node.js api. api reference documentation for node.js. [Online]. Available: https://nodejs.org/api/net.html (visited on 06/29/2023).
[59] Newtonsoft.json. a json framework for .net. [Online]. Available: https://www.newtonsoft.com/json (visited on 06/29/2023).
[60] 教育部智慧創新跨域人才培育計畫, 大學程式設計先修檢測. [Online]. Available: https://apcs.csie.ntnu.edu.tw/ (visited on 06/29/2023).
[61] Nist. dictionary of algorithms and data structures. [Online]. Available: https://xlinux.nist.gov/dads/ (visited on 06/29/2023). |