{"title":"Enhancing block-based programming pedagogy to promote the culture of quality from the ground up a position paper","authors":"Peeratham Techapalokul, E. Tilevich","doi":"10.1109/BLOCKS.2017.8120420","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120420","url":null,"abstract":"Block-based programming has proven extraordinarily successful as a pedagogical tool for learning the fundamentals of computing via an exploratory, unconstrained, and hands-on approach. One would think that the issue of software quality is inapplicable in this programming domain. Nevertheless, as recent research shows, block-based programs, written by novice programmers, exhibit recurring quality problems. Although block-based software is not intended for production environments, poor quality can be detrimental to achieving the educational objectives the very use of blocks aims for. Specifically, as we and other researchers have been discovering, introductory programmers, as they gain proficiency, tend to retain poor programming habits, thus continuing to introduce recurring quality problems into their programs. Evidence also indicates that poorly written code is less likely to be reused, thus hindering the potential benefits of this peer-learning mechanism. These findings call for a synergistic effort from educators and tool developers to address the issue of software quality in the context of block-based programming. This effort will require innovating both in the realm of introductory computing curricula and software infrastructure to improve software quality.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127804097","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Towards blocks-based prototyping of web applications","authors":"R. Holwerda, F. Hermans","doi":"10.1109/BLOCKS.2017.8120408","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120408","url":null,"abstract":"The current generation of block languages, with its focus on teaching programming to novices, has not been designed for professionals. In this paper, we argue that blocks-based languages aimed at professional end-user developers face requirements that present challenges to the user interface design of such languages. We discuss three aspects that set potential professional use of block interfaces apart from educational use with children and students, and their implications for the design of blocks-based language editors. These aspects are that professionals: (1) require the editor to support high-productivity, (2) should not be limited by a simplified run-time environment, and (3) need the blocks editor to provide support for working with large programs. These three aspects provide research avenues for extending the usefulness of blocks-based language interfaces. We intend to explore these aspects with the design and development, of a blocks-based prototyping system for web designers. We report some preliminary results from an initial user experience-study in which 4th-year web design students were exposed to a blocks-based version of a language they already knew.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130385129","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jennifer L. Tsan, Fernando J. Rodríguez, K. Boyer, Collin Lynch
{"title":"Let's work together: Improving block-based environments by supporting synchronous collaboration","authors":"Jennifer L. Tsan, Fernando J. Rodríguez, K. Boyer, Collin Lynch","doi":"10.1109/BLOCKS.2017.8120411","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120411","url":null,"abstract":"Block-based programming environments are a good way to teach beginners how to code, in part because they eliminate syntax errors and provide visual feedback. However, many of the existing environments do not explicitly support synchronous collaboration. Collaboration is a critical component of computer science practice and CS education. We therefore argue that features to support collaboration could significantly enhance existing and new block-based programming environments. We review existing block-based programming environments, suggest design ideas for supporting synchronous collaboration, and evaluate environments that currently support some of these features.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114811192","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"The freecoffee editor: Using natural language sentence structure to make blocks more readable","authors":"R. Holwerda","doi":"10.1109/BLOCKS.2017.8120425","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120425","url":null,"abstract":"One aspect that increases the accessibility of many blocks-based languages is their use of labels to tell users the meaning of the input-slots in the blocks. In this regard, every block is a little form. FreeCoffee is a blocks-based language whose editor goes well beyond terse slot labels and communicates the meaning of a block using complete grammatical sentences. These sentence-blocks still contain input-fields and drop-down menus for user-input, and will, in response to user input, adapt both their structure and their wording to keep the sentence grammatically correct. Sentences structure can also be changed in order to add optional features to the block. This sentence-oriented blocks-editor was designed for a domain specific language used in a multimedia design course. The abstractions and semantics of this language are far removed from mainstream scripting languages, and some of its structures were complex. Still, the language interface helped to enable students with almost no training to create interactive multimedia productions.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131828827","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Promoting unruly programming with random blocks and physical play","authors":"Amon Millner, Allison Busa, Bryanne Leeming","doi":"10.1109/BLOCKS.2017.8120428","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120428","url":null,"abstract":"This paper presents the Unruly Splats platform designed to promote active STEM play. We summarize design considerations that shaped its current prototype. Unruly Splats are a set of foot-sized floor buttons that light up, sense pressure, and make sounds, according to programs that learners age 6 and up create using a blocks-based programming environment on their tablets or computers. We discuss how the system works using a game in the whack-a-mole genre. The paper illustrates the ways in which programs and Splats connect, to allow for a low-barrier to entry into coding experiences while supporting a myriad of programming possibilities. We discuss the role that the “pick random number” block plays in creating challenging and collaborative experiences and conclude with observations from interactions with early users.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125695509","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Grasshopper's event system defining and reacting to noteworthy features of student code","authors":"Yana Malysheva","doi":"10.1109/BLOCKS.2017.8120427","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120427","url":null,"abstract":"Grasshopper is an Android application which teaches users JavaScript through a series of coding puzzles. Grasshopper is able to make two types of real-time decisions based on the user's current performance: selecting an appropriate piece of feedback when the student is in the middle of solving a puzzle; and selecting the most appropriate next puzzle when the student is done with the current puzzle. For both of these decisions, Grasshopper relies on “student events”: definitions of things that are noteworthy when present in student code. This poster presentation illustrates the student event system, and how it is used to make these decisions, through an example of a hypothetical student going through the process of selecting and solving a single puzzle (“Dash of Random”). It also briefly demonstrates how the events are used to define the space of possible user knowledge states, and how the Dash of Random puzzle fits into that space.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123492987","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"CloudDB: Components for exploring shared data with MIT app inventor","authors":"Natalie Lao","doi":"10.1109/BLOCKS.2017.8120426","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120426","url":null,"abstract":"Data sharing through Cloud technology is one of the most powerful new computer science concepts of the past few decades. As such, developing powerful and easy-to-use tools for incremental learning and application of shared data concepts is an important endeavor. My work focuses on using MIT App Inventor, a popular blocks-based mobile application development tool for teaching computational thinking to young students, to make shared data technology understandable and usable by anyone without the need for extensive computer science training. I present the ongoing development of CloudDB, a set of coding blocks for MIT App Inventor that allows users to store, retrieve, and share various types of data in tag-value pairs on a Redis server for their mobile applications.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130776908","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Computational thinking and mental models: From kodu to calypso","authors":"D. Touretzky","doi":"10.1109/BLOCKS.2017.8120416","DOIUrl":"https://doi.org/10.1109/BLOCKS.2017.8120416","url":null,"abstract":"Reasoning about programs is an important component of computational thinking. Laws of computation give meaning to the formalisms in which programs are expressed, and can be used to predict or explain program behavior, or to uncover bugs. This paper presents Calypso, a language inspired by Microsoft's Kodu Game Lab but designed for programming actual mobile robots rather than characters in a virtual world. The initial implementation of Calypso uses the Cozmo robot by Anki. Like Kodu, the Calypso interpreter can be described by five key laws. An understanding of the laws and how to apply them constitutes a mental model of computation. Calypso provides a variety of affordances and scaffolding techniques to foster development of effective mental models and facilitate computational thinking.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121409311","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}