skip to main content
10.1145/3430665.3456360acmconferencesArticle/Chapter ViewAbstractPublication PagesiticseConference Proceedingsconference-collections
research-article

PDL: Scaffolding Problem Solving in Programming Courses

Published: 26 June 2021 Publication History

Abstract

Programming tasks provide an opportunity for students to improve their problem-solving skills (PSS). However, when programming tasks are challenging, students could become demotivated and lose the opportunity to improve PSS in the process. To scaffold the difficulty of programming tasks and better motivate students to enhance PSS via coding, this paper introduces PDL (Problem Description Language). Given the natural-language description of a combinatorial optimization problem (COP), PDL requires students to describe (i) inputs, (ii) constraints, (iii) the optimization objective, and (iv) outputs, based on their problem comprehension. PDL then validates each problem description by (1) compiling a solution program from the description and (2) executing the generated program with predefined test cases. Based on the compiling and testing results, PDL provides feedback to students, and assists students to adjust their problem comprehension and improve problem descriptions.
To evaluate PDL's effectiveness in motivating students to fulfill challenging programming tasks, we conducted a user study with 185 undergraduates and asked the students to solve COPs with or without PDL. We found that the students with PDL were less likely to give up than students without PDL. By using PDL, students solved more COPs and spent less time on each problem; they became more confident and motivated in handling COPs after using PDL.

References

[1]
I.E. Allen and C.A. Seaman. 2007. Likert scales and data analyses. Quality Progress 40 (07 2007), 64--65.
[2]
A. Bart, J. Tibau, E. Tilevich, C. A. Shaffer, and D. Kafura. 2017. BlockPy: An Open Access Data-Science Environment for Introductory Programmers. Computer 50, 05 (may 2017), 18--26. https://doi.org/10.1109/MC.2017.132
[3]
Theresa Beaubouef and John Mason. 2005. Why the High Attrition Rate for Computer Science Students: Some Thoughts and Observations. SIGCSE Bull. 37, 2 (June 2005), 103--106. https://doi.org/10.1145/1083431.1083474
[4]
Pietro Belotti, Sonia Cafieri, Jon Lee, and Leo Liberti. 2010. Feasibility-based bounds tightening via fixed points. In International Conference on Combinatorial Optimization and Applications. Springer, 65--76.
[5]
Matthew Butler and Michael Morgan. 2007. Learning challenges faced by novice programming students studying high level and low feedback concepts. In Proceedings of ASCILITE - Australian Society for Computers in Learning in Tertiary Education Annual Conference 2007. Australasian Society for Computers in Learning in Tertiary Education, 99--107. https://www.learntechlib.org/p/46043
[6]
William J. Cook, William H. Cunningham, William R. Pulleyblank, and Alexander Schrijver. 1998. Combinatorial Optimization. John Wiley & Sons, Inc., New York, NY, USA.
[7]
Michael De Raadt. 2008.Teaching programming strategies explicitly to novice programmers. Ph.D. Dissertation.
[8]
Christian DeLozier, Richard Eisenberg, Santosh Nagarakatte, Peter-Michael Osera, Milo Martin, and S. Zdancewic. 2013. Ironclad C++ A Library-Augmented Type-Safe Subset of C++. ACM SIGPLAN Notices 48, 287--304. https://doi.org/10.1145/2509136.2509550
[9]
Hammond Ed. 2001. Scaffolding: Teaching and Learning in Language and Literacy Education. (01 2001).
[10]
Francisco Buitrago Flórez, Rubby Casallas, Marcela Hernández, Alejandro Reyes, Silvia Restrepo, and Giovanna Danies. 2017. Changing a Generation's Way of Thinking: Teaching Computational Thinking Through Programming. Review of Educational Research 87, 4 (2017), 834--860. https://doi.org/10.3102/0034654317710096 arXiv: https://doi.org/10.3102/0034654317710096
[11]
Wellesley Foshay and Jamie Kirkley. 1998. Principles for Teaching Problem Solving.
[12]
Felienne Hermans and Efthimia Aivaloglou. 2017. To Scratch or Not to Scratch? A Controlled Experiment Comparing Plugged First and Unplugged First Programming Lessons. In Proceedings of the 12th Workshop on Primary and Secondary Computing Education(Nijmegen, Netherlands)(WiPSCE '17). Association for Computing Machinery, New York, NY, USA, 49--56. https://doi.org/10.1145/3137065.3137072
[13]
Mohd Ismail, Nor Ngah, and Irfan Umar. 2010. Instructional strategy in the teaching of computer programming: A need assessment analyses.The Turkish Online J Edu Technol 9 (04 2010).
[14]
Mohd Nasir Ismail, Nor Azilah Binti Ngah, and Irfan Naufal Umar. 2010. INSTRUCTIONAL STRATEGY IN THE TEACHING OF COMPUTER PROGRAMMING: A NEED ASSESSMENT ANALYSES.
[15]
Andrew J. Ko, Thomas D. LaToza, Stephen Hull, Ellen A. Ko, William Kwok,Jane Quichocho, Harshitha Akkaraju, and Rishin Pandit. 2019. Teaching Explicit Programming Strategies to Adolescents. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education(Minneapolis, MN, USA)(SIGCSE '19). Association for Computing Machinery, New York, NY, USA, 7 pages. https://doi.org/10.1145/3287324.3287371
[16]
Thomas D. LaToza, Maryam Arab, Dastyni Loksa, and Amy J. Ko. 2020. Explicit Programming Strategies. Empirical Software Engineering(2020), 1--34.
[17]
Irene Lee, Fred Martin, Jill Denner, Bob Coulter, Walter Allan, Jeri Erickson, Joyce Malyn-Smith, and Linda Werner. 2011. Computational thinking for youth in practice. ACM Inroads2 (02 2011), 32--37. https://doi.org/10.1145/1929887.1929902
[18]
Dastyni Loksa, Andrew J. Ko, Will Jernigan, Alannah Oleson, and Margaret M.Burnett. 2016. Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance. Inthe 2016 CHI Conference.
[19]
John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn East-mond. 2010. The Scratch Programming Language and Environment. ACM Trans. Comput. Educ.10, 4, Article 16 (Nov. 2010), 15 pages. https://doi.org/10.1145/1868358.1868363
[20]
MIT App Inventor 2020. MIT App Inventor. https://appinventor.mit.edu.
[21]
PDLManual 2020. PDL Manual. Retrieved January 7, 2020 from https://github.com/pdlteam/pdl-manual/blob/master/pdlmanual.pdf
[22]
Frank Pfenning. 2010. C0 Reference. https://www.cs.cmu.edu/~fp/courses/15122-f10/misc/c0-reference.pdf.
[23]
Alex Ruthmann, Jesse M. Heines, Gena R. Greher, Paul Laidler, and Charles Saulters. 2010. Teaching Computational Thinking through Musical Live Codingin Scratch. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education(Milwaukee, Wisconsin, USA) (SIGCSE '10). Association for Computing Machinery, New York, NY, USA, 351--355. https://doi.org/10.1145/1734263.1734384
[24]
Shima Salehi, Karen D. Wang, Ruqayya Toorawa, and Carl Wieman. 2020. Can Majoring in Computer Science Improve General Problem-Solving Skills?. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education(Portland, OR, USA)(SIGCSE '20). Association for Computing Machinery, New York, NY, USA, 156--161. https://doi.org/10.1145/3328778.3366808
[25]
Jho-Ju Tu and John R. Johnson. 1990. Can Computer Programming Improve Problem-Solving Ability? SIGCSE Bull. 22, 2 (June 1990), 30--33. https://doi.org/10.1145/126445.126451

Cited By

View all
  • (2025)Student Utilization of Metacognitive Strategies in Solving Dynamic Programming ProblemsProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701888(687-693)Online publication date: 12-Feb-2025
  • (2025)Towards Integrating Behavior-Driven Development in Mobile Development: An Experience ReportProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701875(450-456)Online publication date: 12-Feb-2025
  • (2023)Helping to provide adaptive feedback to novice programmers: a framework to assist the Teachers2023 18th Iberian Conference on Information Systems and Technologies (CISTI)10.23919/CISTI58278.2023.10212000(1-6)Online publication date: 20-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ITiCSE '21: Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1
June 2021
611 pages
ISBN:9781450382144
DOI:10.1145/3430665
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 June 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. problem description
  2. problem understanding
  3. problem-solving skill
  4. program generation
  5. student assessment

Qualifiers

  • Research-article

Funding Sources

  • Science and Technology Innovation 2030 The New Generation of Artificial Intelligence Major Project

Conference

ITiCSE 2021
Sponsor:

Acceptance Rates

Overall Acceptance Rate 552 of 1,613 submissions, 34%

Upcoming Conference

ITiCSE '25
Innovation and Technology in Computer Science Education
June 27 - July 2, 2025
Nijmegen , Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)50
  • Downloads (Last 6 weeks)6
Reflects downloads up to 02 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Student Utilization of Metacognitive Strategies in Solving Dynamic Programming ProblemsProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701888(687-693)Online publication date: 12-Feb-2025
  • (2025)Towards Integrating Behavior-Driven Development in Mobile Development: An Experience ReportProceedings of the 56th ACM Technical Symposium on Computer Science Education V. 110.1145/3641554.3701875(450-456)Online publication date: 12-Feb-2025
  • (2023)Helping to provide adaptive feedback to novice programmers: a framework to assist the Teachers2023 18th Iberian Conference on Information Systems and Technologies (CISTI)10.23919/CISTI58278.2023.10212000(1-6)Online publication date: 20-Jun-2023
  • (2023)Bug-eecha 2.0: An Educational Game for CS1 Students and InstructorsProceedings of the 16th Annual ACM India Compute Conference10.1145/3627217.3627236(61-65)Online publication date: 9-Dec-2023
  • (2023)GuardRails: Automated Suggestions for Clarifying Ambiguous Purpose StatementsProceedings of the 16th Annual ACM India Compute Conference10.1145/3627217.3627234(55-60)Online publication date: 9-Dec-2023
  • (2023)A Taxonomy to Assist TAs in Providing Adaptive Feedback to Novice Programmers2023 IEEE Frontiers in Education Conference (FIE)10.1109/FIE58773.2023.10343309(1-9)Online publication date: 18-Oct-2023
  • (2023)The Importance of Project-Scale Scaffolding for Retention and Experience in Computing Courses2023 IEEE Frontiers in Education Conference (FIE)10.1109/FIE58773.2023.10343225(01-09)Online publication date: 18-Oct-2023
  • (2023)Understanding U.S. secondary computer science teachers’ challenges and needsComputer Science Education10.1080/08993408.2023.220947434:2(252-284)Online publication date: 4-May-2023
  • (2022)A Comparative Evaluation on Methods of Teaching Computer ProgrammingAdvances on Intelligent Informatics and Computing10.1007/978-3-030-98741-1_47(571-582)Online publication date: 30-Mar-2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media