ABSTRACT
CS students can typically reason about what a piece of code does on specific inputs. While this is a useful starting point, graduates must also be able to logically analyze, comprehend, and predict the behavior of their code in more general terms, no matter what the inputs are. Results of data collection and analysis from an online educational system show it can help to pinpoint the difficulties in doing this for individual students and groups, and to partition the groups in terms of their difficulties so that instructional interventions may be better targeted. Unlike traditional debugging, this online system helps reveal difficulties in reasoning in more general terms because it is equipped with a verification engine.
- V. Aleven, B. M. McLaren, and J. Sewall. 2009. Scaling Up Programming by Demonstration for Intelligent Tutoring Systems Development: An Open-Access Web Site for Middle School Mathematics Learning. IEEE Trans. on Learning Technologies 2, 64-78. Google ScholarDigital Library
- B. S. Alqadi and J. I. Maletic. 2017. An Empirical Study of Debugging Patterns Among Novices Programmers. In Procs. SIGCSE ‘17, ACM, NY, USA, 15-20. Google ScholarDigital Library
- J. R. Anderson, A. T. Corbett, K. R. Koedinger, and R. Pelletier. 1995. Cognitive Tutors: Lessons Learned, The Journal of the Learning Sciences 4, 167-207.Google ScholarCross Ref
- R. Azevedo and R. M. Bernard. 1995. A Meta-Analysis of the Effects of Feedback in Computer-Based Instruction. Journal of Educational Computing Research 13, 2, 111 – 127.Google ScholarCross Ref
- N. Brown and A. Altadmri. 2014. Investigating novice programming mistakes: educator beliefs vs. student data. In Procs. ICER '14. ACM, NY, USA, 43-50. Google ScholarDigital Library
- P. Bhattacharya, L. Tao, B. W. Kai Qian, and E. K. Palmer. 2011. A Cloud-based Cyberlearning Environment for Introductory Computing Programming Education. In Procs. 11th ICALT, 12-13. Google ScholarDigital Library
- B. S. Bloom, et al. (Eds.) 1956. Taxonomy of Educational Objectives. The Classification of Educational Goals, Handbook I: Cognitive Domain. David McKay Company, Inc., NY, USA.Google Scholar
- M. P. Cook. 2006. Visual representations in science education: The influence of prior knowledge and cognitive load theory on instructional design principles. Science Education 90, 6, 1073-1091.Google ScholarCross Ref
- C. T. Cook, H. Harton, H. Smith, and M. Sitaraman. 2012. Specification Engineering and Modular Verification Using a Web-Integrated Verifying Compiler. Proc. 34th ICSE, IEEE/ACM, NY, USA, 1379-1382. Google ScholarDigital Library
- C. T. Cook, S. Drachova, Y-S. Sun, M. Sitaraman, J. Carver, and J. E. Hollingsworth. 2013. Specification and Reasoning in SE Projects Using a Web-IDE. In Procs. 26th CSEE&T, IEEE, NY, USA.Google Scholar
- D. De Bock, J. Deprej, W. van Duren, M. Roelens, and L. Verschaffel. 2011. Abstract or Concrete Examples in Learning Mathematics? A Replication an Elaboration of Kaminsky, Stoutsky, and Heckler’s Study. Journal for Research in Mathematics Education 42, 2, 109-126.Google ScholarCross Ref
- S. V. Drachova, J. O. Hallstrom, J. E. Hollingsworth, J. Krone, R. Pak, and M. Sitaraman. 2015. Teaching Mathematical Reasoning Principles for Software Correctness and Its Assessment. ACM Trans. Comput. Education 15, 3, 1-22. Google ScholarDigital Library
- K. A. Ericsson and H. A. Simon. 1998. How to study thinking in everyday life: Contrasting think-aloud protocols with descriptions and explanations of thinking. Mind, Culture, and Activity 5, 3, 178-186.Google ScholarCross Ref
- S. Fitzgerald, B. Simon, and L. Thomas. 2005. Strategies that students use to trace code: an analysis based in grounded theory. ICER '05 ACM, NY, 69-80. Google ScholarDigital Library
- K. Goldman, et al. 2008. Identifying important and difficult concepts in introductory computing courses using a Delphi process,” In Procs. 39th SIGCSE ’08, ACM, 256-260. Google ScholarDigital Library
- J. O. Hallstrom, C. Hochrine, J. Sorber, and M. Sitaraman. 2014. An ACM 2013 exemplar course integrating fundamentals, languages, and software engineering. In Procs. 45th SIGCSE '14. ACM, NY, USA, 211-216. Google ScholarDigital Library
- P. B. Henderson. 2003. Mathematical Reasoning in Software Engineering Education. Communications of the ACM 46, 9, 45-50. Google ScholarDigital Library
- C. D. Hundhausen, J. L. Brown, S. Farley, and D. Skarpas. 2006. A methodology for analyzing the temporal evolution of novice programs based on semantic components. In Procs. ICER '06. ACM, NY, USA, 59-71. Google ScholarDigital Library
- T. Kohn. 2017. Variable Evaluation: An Exploration of Novice Programmers' Understanding and Common Misconceptions. In Procs. ACM SIGCSE '17, NY, USA, 345-350. Google ScholarDigital Library
- Y. B-D. Kolikant. 2005. Students' alternative standards for correctness. In Procs. First ICER '05. ACM, NY, USA, 37-43. Google ScholarDigital Library
- R. Kumar, C. P. Rose, Y. Wang, M. Joshi, and A. Robinson. 2007. Tutorial Dialog as Adaptive Collaborative Learning Support. In Procs. Conference on Artificial Intelligence in Education: Building Technology Rich Contexts That Work, IOS Press, 383-390. Google ScholarDigital Library
- C. M. Lewis. 2014. Exploring variation in students' correct traces of linear recursion. In Procs. ICER '14. ACM, NY, USA, 67-74. Google ScholarDigital Library
- C. Li, Z. Dong, R. Untch, Chasteen, and N. Reale. 2011. PeerSpace—An Online Collaborative Learning Environment for Computer Science Students. In Procs. 11th ICALT, 409-411. Google ScholarDigital Library
- K. Martinez and M. Eisenhart. 2004. L.E.A.P. – Literature Review of Best Practices in College Physics and Best Practices for Women in College Physics, January 2004.Google Scholar
- R. Moreno. 2004. Decreasing Cognitive Load for Novice Students: Effects of Explanatory versus Corrective Feedback in Discovery-Based Multimedia. Instructional Science 32, 99-113.Google ScholarCross Ref
- T. Price, Y. Dong, and D. Lipovac. 2017. iSnap: Towards Intelligent Tutoring in Novice Programming Environments. SIGCSE '17, ACM, NY, 483-488. Google ScholarDigital Library
- A. L. Santos. 2015. Collaborative course project for practicing componentbased software engineering, In Procs. 15th Koli Calling Conference on Computing Education Research, ACM, NY, 142-146. Google ScholarDigital Library
- M. Sitaraman, et al. 2011. Building a Push-Button RESOLVE Verifier: Progress and Challenges. Springer Formal Aspects of Computing 23, 607-626. Google ScholarCross Ref
- J. C. Spohrer, and E. Soloway. 1986. Novice mistakes: are the folk wisdoms correct? Communications of the ACM 29, 7, 624-632. Google ScholarDigital Library
- A. L. Strauss and J. Corbin. 1998. Basics of qualitative research: Techniques and procedures for developing grounded theory. Sage Publications, Thousand Oaks, CA.Google Scholar
- J. Sweller, P. Ayres, and S. Kalyuga, 2011. Cognitive load theory. Springer, NY,.Google Scholar
- A. E. Tew. 2010. Assessing fundamental introductory computing concept knowledge in a language independent manner, Ph.D. Dissertation, Georgia Institute of Technology, 146 pages. Google ScholarDigital Library
- Web-CAT is an advanced automated grading system that can grade students on how well they test their own code. http://web-cat.org/homeGoogle Scholar
- J. B. Wiggins, et al. 2015. JavaTutor: An Intelligent Tutoring System that Adapts to Cognitive and Affective States during Computer Programming. In Procs. SIGCSE ’15, ACM, NY, USA, 599-599. Google ScholarDigital Library
- P. Wouters, F. Paas, and J. J. G. van Merriënboer. 2008. How to Optimize Learning from Animated Models: A Review of Guidelines Based on Cognitive Load. Review of Educational Research.Google Scholar
Index Terms
- Where exactly are the difficulties in reasoning logically about code? experimentation with an online system
Recommendations
Impact of Steps, Instruction, and Motivation on Learning Symbolic Reasoning Using an Online Tool
SIGCSE '19: Proceedings of the 50th ACM Technical Symposium on Computer Science EducationSeveral research studies have shown the benefits of code tracing to promote student understanding of program behavior. While code tracing on specific input values is a useful starting point, students ultimately need to be able to reason rigorously and ...
Tool-Aided Assessment of Difficulties in Learning Formal Design-by-Contract Assertions
ECSEE '20: Proceedings of the 4th European Conference on Software Engineering EducationObject-based development using design-by-contract (DbC) is broadly taught and practiced. Students must be able to read and write symbolic DbC assertions that are sufficiently precise and be able to use these assertions to trace program code. This paper ...
Comments