{"title":"野性的呼唤:探索应用程序的程序抽象","authors":"Isabelle Li, F. Turbak, Eni Mustafaraj","doi":"10.1109/BLOCKS.2017.8120417","DOIUrl":null,"url":null,"abstract":"One of the most important computational concepts in any programming language is procedural abstraction. We investigate the use of procedures in MIT App Inventor, a web-based blocks programming environment for creating Android mobile apps. We explore how procedures are used “in the wild” by examining two datasets of App Inventor projects: all projects of ten thousand randomly chosen users and all projects of all prolific users (those users with 20 or more projects). Our data analysis indicates that procedural abstraction is a concept that is learned over time by some App Inventor users, but it is used relatively infrequently, and features like parameters and returning values are used even more rarely. Procedures are most frequently called only once, indicating that they are often used to organize code rather than to reuse it. Surprisingly, 10% of declared procedures are never called, suggesting that this situation should be flagged by the environment.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":"{\"title\":\"Calls of the wild: Exploring procedural abstraction in app inventor\",\"authors\":\"Isabelle Li, F. Turbak, Eni Mustafaraj\",\"doi\":\"10.1109/BLOCKS.2017.8120417\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"One of the most important computational concepts in any programming language is procedural abstraction. We investigate the use of procedures in MIT App Inventor, a web-based blocks programming environment for creating Android mobile apps. We explore how procedures are used “in the wild” by examining two datasets of App Inventor projects: all projects of ten thousand randomly chosen users and all projects of all prolific users (those users with 20 or more projects). Our data analysis indicates that procedural abstraction is a concept that is learned over time by some App Inventor users, but it is used relatively infrequently, and features like parameters and returning values are used even more rarely. Procedures are most frequently called only once, indicating that they are often used to organize code rather than to reuse it. Surprisingly, 10% of declared procedures are never called, suggesting that this situation should be flagged by the environment.\",\"PeriodicalId\":424744,\"journal\":{\"name\":\"2017 IEEE Blocks and Beyond Workshop (B&B)\",\"volume\":\"10 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"10\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2017 IEEE Blocks and Beyond Workshop (B&B)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/BLOCKS.2017.8120417\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE Blocks and Beyond Workshop (B&B)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/BLOCKS.2017.8120417","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Calls of the wild: Exploring procedural abstraction in app inventor
One of the most important computational concepts in any programming language is procedural abstraction. We investigate the use of procedures in MIT App Inventor, a web-based blocks programming environment for creating Android mobile apps. We explore how procedures are used “in the wild” by examining two datasets of App Inventor projects: all projects of ten thousand randomly chosen users and all projects of all prolific users (those users with 20 or more projects). Our data analysis indicates that procedural abstraction is a concept that is learned over time by some App Inventor users, but it is used relatively infrequently, and features like parameters and returning values are used even more rarely. Procedures are most frequently called only once, indicating that they are often used to organize code rather than to reuse it. Surprisingly, 10% of declared procedures are never called, suggesting that this situation should be flagged by the environment.