skip to main content
10.1145/3563767.3568127acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Mio: A Block-Based Environment for Program Design

Published: 01 December 2022 Publication History

Abstract

Program design should be taught with a comprehensible guideline and appropriate tool support. While Felleisen et al.'s program design recipe serves as a good guideline for novice learners, no existing tool provides sufficient support for step-by-step design. We propose Mio, an environment for designing programs based on the design recipe. In Mio, the programmer uses blocks to express design artifacts, such as examples of input and output data. The system checks the consistency of the design, gives feedback to the programmer, and produces a half-completed program for use in steps after designing. A preliminary experiment in the classroom showed its ability to make program design easier for novices, and to encourage programmers to follow the design recipe. In this paper, we demonstrate the core features of Mio, report the results of the experiment, and discuss our plans for extensions.

References

[1]
Austin Cory Bart, Javier Tibau, Eli Tilevich, Clifford A Shaffer, and Dennis Kafura. 2017. BlockPy: An open access data-science environment for introductory programmers. Computer, 50, 5 (2017), 18–26.
[2]
Francisco Enrique Vicente G Castro. 2020. Development of a Data-Grounded Theory of Program Design in HTDP. Ph. D. Dissertation. Ph.D. Dissertation. Worcester Polytechnic Institute. https://digitalcommons.wpi.edu/etd-dissertations/595
[3]
Molly Q Feldman, Yiting Wang, William E. Byrd, François Guimbretière, and Erik Andersen. 2019. Towards Answering “Am I on the Right Track?” Automatically Using Program Synthesis. In Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E (SPLASH-E 2019). Association for Computing Machinery, New York, NY, USA. 13–24. isbn:9781450369893 https://doi.org/10.1145/3358711.3361626
[4]
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2004. The structure and interpretation of the computer science curriculums. Journal of Functional Programming, 14, 4 (2004), 365–378. https://doi.org/10.1017/S0956796804005076
[5]
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2018. How to Design Programs: An Introduction to Programming and Computing. MIT Press.
[6]
Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi, and Viera K. Proulx. 2012. How to Design Classes - Data: Structure and Organization. https://felleisen.org/matthias/HtDC/htdc.pdf
[7]
Xingjian Gu, Max A. Heller, Stella Li, Yanyan Ren, Kathi Fisler, and Shriram Krishnamurthi. 2020. Using Design Alternatives to Learn About Data Organizations. In Proceedings of the 2020 ACM Conference on International Computing Education Research (ICER ’20). Association for Computing Machinery, New York, NY, USA. 248–258. isbn:9781450370929 https://doi.org/10.1145/3372782.3406267
[8]
Brian Harvey, Daniel Garcia, Josh Paley, and Luke Segars. 2012. Snap! (Build Your Own Blocks) (Abstract Only). In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE ’12). Association for Computing Machinery, New York, NY, USA. 662. isbn:9781450310987 https://doi.org/10.1145/2157136.2157351
[9]
Hazel Levine and Sam Tobin-Hochstadt. 2022. Automating the Design Recipe. Presented at the Scheme and Functional Programming Workshop (Scheme ’22).
[10]
Norman Ramsey. 2014. On Teaching How to Design Programs: Observations from a Newcomer. In Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming (ICFP ’14). Association for Computing Machinery, New York, NY, USA. 153–166. isbn:9781450328739 https://doi.org/10.1145/2628136.2628137
[11]
Elijah Rivera, Shriram Krishnamurthi, and Robert Goldstone. 2022. Plan Composition Using Higher-Order Functions. In Proceedings of the 2022 ACM Conference on International Computing Education Research V. 1. Association for Computing Machinery, 84–104.
[12]
Mike Dongyub Ryu. 2018. Improving Introductory Computer Science Education with DRaCO. Master’s thesis. California Polytechnic State University.
[13]
David Weintrop and Uri Wilensky. 2018. How block-based, text-based, and hybrid block/text modalities shape novice programming practices. International Journal of Child-Computer Interaction, 17 (2018), 83–92.
[14]
John Wrenn and Shriram Krishnamurthi. 2019. Executable examples for programming problem comprehension. In Proceedings of the 2019 ACM Conference on International Computing Education Research (ICER ’19). Association for Computing Machinery, 131–139.
[15]
Danny Yoo, Emmanuel Schanzer, Shriram Krishnamurthi, and Kathi Fisler. 2011. WeScheme: the browser is your programming environment. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education (ITiCSE ’11). Association for Computing Machinery, 163–167.

Index Terms

  1. Mio: A Block-Based Environment for Program Design

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      SPLASH-E 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on SPLASH-E
      November 2022
      69 pages
      ISBN:9781450399005
      DOI:10.1145/3563767
      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: 01 December 2022

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. block-based programming
      2. pedagogic programming environment
      3. program design recipe

      Qualifiers

      • Research-article

      Funding Sources

      Conference

      SPLASH-E '22
      Sponsor:

      Upcoming Conference

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 110
        Total Downloads
      • Downloads (Last 12 months)30
      • Downloads (Last 6 weeks)2
      Reflects downloads up to 07 Mar 2025

      Other Metrics

      Citations

      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