Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3501712.3529733acmconferencesArticle/Chapter ViewAbstractPublication PagesidcConference Proceedingsconference-collections
research-article

CodeStruct: Design and Evaluation of an Intermediary Programming Environment for Novices to Transition from Scratch to Python

Published: 27 June 2022 Publication History

Editorial Notes

The authors have requested minor, non-substantive changes to the Version of Record and, in accordance with ACM policies, a Corrected Version of Record was published on August 5, 2022. For reference purposes, the VoR may still be accessed via the Supplemental Material section on this page.

Abstract

Transitioning from block-based programming environments to conventional text-based programming languages is a challenge faced by many learners as they progress in their computer science education. In this paper, we introduce CodeStruct, a new intermediary programming environment for novices designed to support children who have prior experience with block-based programming to ease the eventual transition to text-based programming. We describe the development of CodeStruct and its key design features. We then present the results from a two-week long programming class with 26 high school students (ages 12-16; M=14 years) investigating how CodeStruct supported learners in transitioning from Scratch to Python. Our findings reveal how learners used the scaffolds designed into CodeStruct to support their transition from blocks to text, and that transitioning to CodeStruct reduced completion time (1.98x) and help requests (4.63x) when compared to transitioning directly to Python. Finally, learners that used CodeStruct, performed equally well (and slightly better in 10/16 programming activities) in their final transition to fully text-based Python programming.

Supplementary Material

3529733-vor (3529733-cvor.pdf)
Version of Record for "CodeStruct: Design and Evaluation of an Intermediary Programming Environment for Novices to Transition from Scratch to Python" by Kazemitabaar et al., Interaction Design and Children (IDC '22).

References

[1]
Amjad Altadmri and Neil C.C. Brown. 2015. 37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE '15), 522-527. https://doi.org/10.1145/2676723.2677258
[2]
Thomas Ball, Abhijith Chatra, Peli de Halleux, Steve Hodges, Micha?Moskal, and Jacqueline Russell. 2019. Microsoft MakeCode: embedded programming for education, in blocks and TypeScript. In Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E (SPLASH-E 2019), 7-12. https://doi.org/10.1145/3358711. 3361630
[3]
M Bannert. 2000. The effects of training wheels and self-learning materials in software training. Journal of Computer Assisted Learning 16, 4: 336-346. https: //doi.org/10.1046/j.1365-2729.2000.00146.x
[4]
A. Cory Bart, J. Tibau, D. Kafura, C. A. Shaffer, and E. Tilevich. 2017. Design and Evaluation of a Block-based Environment with a Data Science Context. IEEE Transactions on Emerging Topics in Computing PP, 99: 1-1. https://doi.org/10. 1109/TETC.2017.2729585
[5]
Austin Cory Bart, Eli Tilevich, Clifford A. Shaffer, and Dennis Kafura. 2015. From interest to usefulness with BlockPy, a block-based, educational environment. In Blocks and Beyond Workshop (Blocks and Beyond), 2015 IEEE, 87-89.
[6]
David Bau, D. Anthony Bau, Mathew Dawson, and C. Sydney Pickens. 2015. Pencil code: block code for a text world. In Proceedings of the 14th International Conference on Interaction Design and Children (IDC ?15), 445-448. https://doi.org/ 10.1145/2771839.2771875
[7]
David Bau, Jeff Gray, Caitlin Kelleher, Josh Sheldon, and Franklyn Turbak. 2017. Learnable programming: blocks and beyond. Communications of the ACM 60, 6: 72-80. https://doi.org/10.1145/3015455
[8]
A. Begel. 1996. LogoBlocks: A graphical programming language for interacting with the world. Electrical Engineering and Computer Science Department. MIT, Cambridge, MA.
[9]
John M. Carroll and Caroline Carrithers. 1984. Training wheels in a user interface. Communications of the ACM 27, 8: 800-806. https://doi.org/10.1145/358198.358218
[10]
Karishma Chadha. 2014. Improving App Inventor through Conversion between Blocks and Text. Wellesley College.
[11]
Andy Cockburn, Carl Gutwin, Joey Scarr, and Sylvain Malacria. 2014. Supporting Novice to Expert Transitions in User Interfaces. ACM Computing Surveys 47, 2: 31:1-31:36. https://doi.org/10.1145/2659796
[12]
S. Cooper, W. Dann, and R. Pausch. 2000. Alice: a 3-D tool for introductory programming concepts. Journal of Computing Sciences in Colleges 15, 5: 107-116.
[13]
Sayamindu Dasgupta and Benjamin Mako Hill. 2018. How ?Wide Walls? Can Increase Engagement: Evidence From a Natural Experiment in Scratch. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems - CHI ?18, 1-11. https://doi.org/10.1145/3173574.3173935
[14]
Paul Denny, Andrew Luxton-Reilly, Ewan Tempero, and Jacob Hendrickx. 2011. Understanding the syntax barrier for novices. In Proceedings of the 16th annual joint conference on Innovation and technology in computer science education, 208- 212.
[15]
Pierre Dragicevic. 2015. HCI Statistics without p-values. Inria.
[16]
D Fields, M Giang, and Y Kafai. 2014. Programming in the wild: trends in youth computational participation in the online Scratch community. In Proceedings of the 9th Workshop in Primary and Secondary Computing Education, 2-11. https: //doi.org/10.1145/2670757.2670768
[17]
Leah Findlater and Joanna McGrenere. 2007. Evaluating reduced-functionality interfaces according to feature findability and awareness. In Proceedings of the 11th IFIP TC 13 international conference on Human-computer interaction (INTERACT'07), 592-605.
[18]
Neil Fraser. 2015. Ten things we?ve learned from Blockly. In 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond), 49-50. https://doi.org/10.1109/BLOCKS. 2015.7369000
[19]
Shuchi Grover, Roy Pea, and Stephen Cooper. 2015. Designing for deeper learning in a blended computer science course for middle school students. Computer Science Education 25, 2: 199-237. https://doi.org/10.1080/08993408.2015.1033142
[20]
Philip J. Guo. 2013. Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM technical symposium on Computer science education (SIGCSE '13), 579-584. https://doi.org/10.1145/ 2445196.2445368
[21]
Michael Homer and James Noble. 2014. Combining Tiled and Textual Views of Code. In IEEE Working Conference on Software Visualisation (VISSOFT), 1-10. https://doi.org/10.1109/VISSOFT.2014.11
[22]
Andri Ioannidou, Alexander Repenning, and David C. Webb. 2009. AgentCubes: Incremental 3D end-user development. Journal of Visual Languages & Computing 20, 4: 236-251.
[23]
Sven Jacobs and Steffen Jaschke. 2021. SQheLper: A block-based syntax support for SQL. In 2021 IEEE Global Engineering Education Conference (EDUCON), 478- 481. https://doi.org/10.1109/EDUCON46332.2021.9453897
[24]
M Kölling, N. C. C. Brown, and A Altadmri. 2017. Frame-Based Editing. Journal of Visual Languages and Sentient Systems 3: 40-67. https://doi.org/10.18293/ VLSS2017
[25]
Michael Kölling, Neil CC Brown, and Amjad Altadmri. 2015. Frame-based editing: Easing the transition from blocks to text-based programming. In Proceedings of the Workshop in Primary and Secondary Computing Education, 29-38.
[26]
Ben Lafreniere and Tovi Grossman. 2018. Blocks-to-CAD: A Cross-Application Bridge from Minecraft to 3D Modeling. In Proceedings of the 31st Annual ACM Symposium on User Interface Software and Technology (UIST '18), 637-648. https: //doi.org/10.1145/3242587.3242602
[27]
Colleen M. Lewis. 2010. How programming environment shapes perception, learning and goals: logo vs. scratch. In Proceedings of the 41st ACM technical symposium on Computer science education (SIGCSE '10), 346-350. https://doi.org/ 10.1145/1734263.1734383
[28]
Yuhan Lin and DavidWeintrop. 2021. The landscape of Block-based programming: Characteristics of block-based environments and how they support the transition to text-based programming. Journal of Computer Languages 67: 101075. https: //doi.org/10.1016/j.cola.2021.101075
[29]
J.H. Maloney, K. Peppler, Y. Kafai, M. Resnick, and N. Rusk. 2008. Programming by choice: Urban youth learning programming with Scratch. ACM SIGCSE Bulletin 40, 1: 367-371.
[30]
Yoshiaki Matsuzawa, Takashi Ohata, Manabu Sugiura, and Sanshiro Sakai. 2015. Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 185-190. https://doi.org/10.1145/2676723. 2677230
[31]
Philip Miller, John Pane, Glenn Meter, and Scott Vorthmann. 1994. Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University. Interactive Learning Environments 4, 2: 140-158. https://doi.org/10. 1080/1049482940040202
[32]
D. Parsons and P. Haden. 2007. Programming osmosis: Knowledge transfer from imperative to visual programming environments. In Procedings of The Twentieth Annual NACCQ Conference, 209-215.
[33]
Thomas W. Price, Neil C.C. Brown, Dragan Lipovac, Tiffany Barnes, and Michael Kölling. 2016. Evaluation of a Frame-based Programming Editor. In Proceedings of the 2016 ACM Conference on International Computing Education Research (ICER'16), 33-42. https://doi.org/10.1145/2960310.2960319
[34]
Yizhou Qian and James Lehman. 2017. Students? Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Transactions on Computing Education 18, 1: 1:1-1:24. https://doi.org/10.1145/3077618
[35]
A Repenning. 1993. Agentsheets: a tool for building domain-oriented visual programming environments. In Proceedings of the INTERACT'93 and CHI'93 conference on Human factors in computing systems, 142-143. Retrieved October 22, 2014 from http://dl.acm.org/citation.cfm?id=169119
[36]
M. Resnick, Brian Silverman, Yasmin Kafai, John Maloney, Andrés Monroy- Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, and Jay Silver. 2009. Scratch: Programming for all. Communications of the ACM 52, 11:60.
[37]
Mitchel Resnick. 2008. Sowing the Seeds for a More Creative Society. Learning & Leading with Technology 35, 4: 18-22.
[38]
Joey Scarr, Andy Cockburn, Carl Gutwin, and Philip Quinn. 2011. Dips and ceilings: understanding and supporting transitions to expertise in user interfaces. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '11), 2741-2750. https://doi.org/10.1145/1978942.1979348
[39]
Ben Shneiderman. 2002. Promoting universal usability with multi-layer interface design. ACM SIGCAPH Computers and the Physically Handicapped, 73-74: 1-8. https://doi.org/10.1145/960201.957206
[40]
Alaaeddin Swidan, Felienne Hermans, and Marileen Smit. 2018. Programming Misconceptions for School Students. In Proceedings of the 2018 ACM Conference on International Computing Education Research (ICER '18), 151-159. https://doi. org/10.1145/3230977.3230995
[41]
Eric Tilley and Jeff Gray. 2017. Dronely: A Visual Block Programming Language for the Control of Drones. In Proceedings of the SouthEast Conference, 208-211.
[42]
DWeintrop, A Afzal, J Salac, P Francis, B Li, D. C Shepherd, and D Franklin. 2018. Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 366:1-12. https://doi.org/10.1145/3173574.3173940
[43]
D Weintrop, A. K Hansen, D. B Harlow, and D Franklin. 2018. Starting from Scratch: Outcomes of Early Computer Science Learning Experiences and Implications for What Comes Next. In Proceedings of the 2018 ACM Conference on International Computing Education Research, 142-150. https://doi.org/10.1145/ 3230977.3230988
[44]
D Weintrop and N Holbert. 2017. From Blocks to Text and Back: Programming Patterns in a Dual-Modality Environment. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17), 633-638. https: //doi.org/10.1145/3017680.3017707
[45]
D Weintrop and U Wilensky. 2017. Between a Block and a Typeface: Designing and Evaluating Hybrid Programming Environments. In Proceedings of the 2017 Conference on Interaction Design and Children (IDC '17), 183-192. https://doi.org/ 10.1145/3078072.3079715
[46]
D Weintrop and U Wilensky. 2019. Transitioning from introductory block-based and text-based environments to professional programming languages in high school computer science classrooms. Computers & Education 142: 103646. https: //doi.org/10.1016/j.compedu.2019.103646
[47]
David Weintrop and Uri Wilensky. 2015. To block or not to block, that is the question: students? perceptions of blocks-based programming. In Proceedings of the 14th international conference on interaction design and children, 199-208.
[48]
David Weintrop and Uri Wilensky. 2015. Using commutative assessments to compare conceptual understanding in blocks-based and text-based programs. In ICER, 101-110.
[49]
David Weintrop and Uri Wilensky. 2017. Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education (TOCE) 18, 1: 1-25.
[50]
David Wolber, Hal Abelson, Ellen Spertus, and Liz Looney. 2014. App Inventor 2: Create Your Own Android Apps. O'Reilly Media, Beijing.
[51]
Zhen Xu, Albert D. Ritzhaupt, Fengchun Tian, and Karthikeyan Umapathy. 2019. Block-based versus text-based programming environments on novice student learning outcomes: a meta-analysis study. Computer Science Education 29, 2-3: 177-204. https://doi.org/10.1080/08993408.2019.1565233
[52]
Grasshopper: the coding app for beginners. Grasshopper. Retrieved January 12, 2022 from https://grasshopper.app/
[53]
Monaco Editor: a Browser-based Code Editor which Powers Visual Studio Code. Retrieved January 28, 2022 from https://microsoft.github.io/monaco-editor/
[54]
Pyodide: a Python distribution for the browser and Node.js based on WebAssembly. Retrieved January 28, 2022 from https://pyodide.org/en/stable/
[55]
W3Schools Free Online Web Tutorials. Retrieved January 13, 2022 from https: //www.w3schools.com/
[56]
Nikolai Tillmann, Michal Moskal, Jonathan de Halleux, and Manuel Fahndrich. 2011. TouchDevelop: programming cloud-connected mobile devices via touchscreen. In Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software (Onward! 2011), 49-60. https://doi.org/10.1145/2048237.2048245

Cited By

View all
  • (2024)Strype: a Versatile Python-like Programming Environment for NovicesProceedings of the 19th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3677619.3678132(1-2)Online publication date: 16-Sep-2024
  • (2024)Pytch - Supporting your Teaching of Coding in the ClassroomProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 210.1145/3649405.3659518(779-780)Online publication date: 8-Jul-2024
  • (2024)Experiences Trialling a Novel Block-to-text Environment in a Summer School ContextProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653585(150-156)Online publication date: 3-Jul-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IDC '22: Proceedings of the 21st Annual ACM Interaction Design and Children Conference
June 2022
718 pages
ISBN:9781450391979
DOI:10.1145/3501712
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: 27 June 2022

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. block-based programming
  2. blocks-to-text transition
  3. high school computer science education

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

IDC '22
Sponsor:
IDC '22: Interaction Design and Children
June 27 - 30, 2022
Braga, Portugal

Acceptance Rates

Overall Acceptance Rate 172 of 578 submissions, 30%

Upcoming Conference

IDC '25
Interaction Design and Children
June 23 - 26, 2025
Reykjavik , Iceland

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)14
Reflects downloads up to 15 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Strype: a Versatile Python-like Programming Environment for NovicesProceedings of the 19th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3677619.3678132(1-2)Online publication date: 16-Sep-2024
  • (2024)Pytch - Supporting your Teaching of Coding in the ClassroomProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 210.1145/3649405.3659518(779-780)Online publication date: 8-Jul-2024
  • (2024)Experiences Trialling a Novel Block-to-text Environment in a Summer School ContextProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653585(150-156)Online publication date: 3-Jul-2024
  • (2024)Pyrates: Design and Evaluation of a Serious Game Aimed at Introducing Python Programming and Easing the Transition from BlocksACM Transactions on Computing Education10.1145/363906124:1(1-24)Online publication date: 19-Feb-2024
  • (2024)High-performing Groups during Children's Collaborative Coding Activities: What Can Multimodal Data Tell Us?Proceedings of the 23rd Annual ACM Interaction Design and Children Conference10.1145/3628516.3655805(533-559)Online publication date: 17-Jun-2024
  • (2024)Investigating the Usability of Coding Applications for Children: Insights from Teacher Interviews2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00016(47-58)Online publication date: 2-Sep-2024
  • (2024)Modeling a Problem-Solving Approach Through Computational Thinking for Teaching ProgrammingIEEE Transactions on Education10.1109/TE.2024.335442567:2(282-291)Online publication date: 13-Feb-2024
  • (2023)Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory ProgrammingProceedings of the 2023 CHI Conference on Human Factors in Computing Systems10.1145/3544548.3580919(1-23)Online publication date: 19-Apr-2023
  • (2022)Review on Challenges and Solutions in Novice Programming Education2022 IEEE International Conference on Computing (ICOCO)10.1109/ICOCO56118.2022.10031657(55-61)Online publication date: 14-Nov-2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media