M. R. Azadmanesh, Amanj Sherwany, D. Eynard, Matej Vitásek, Matthias Hauswirth
Programming projects are a common component of computer science curricula. In this paper we investigate how the decision of using a mobile and touch versus a desktop platform affected students. We ran two sets of programming projects, one developing desktop applications, the other developing mobile apps. Several months after the conclusion of the projects, we interviewed the students about their experiences. We found that our initial expectations regarding an increased student motivation were not completely met. We discuss the specific issues we uncovered, and the lessons we learned.
{"title":"Mobile vs. Desktop Programming Projects: The Effect on Students","authors":"M. R. Azadmanesh, Amanj Sherwany, D. Eynard, Matej Vitásek, Matthias Hauswirth","doi":"10.1145/2688471.2688479","DOIUrl":"https://doi.org/10.1145/2688471.2688479","url":null,"abstract":"Programming projects are a common component of computer science curricula. In this paper we investigate how the decision of using a mobile and touch versus a desktop platform affected students. We ran two sets of programming projects, one developing desktop applications, the other developing mobile apps. Several months after the conclusion of the projects, we interviewed the students about their experiences. We found that our initial expectations regarding an increased student motivation were not completely met. We discuss the specific issues we uncovered, and the lessons we learned.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"48 9","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114018189","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}
Thierry Renaux, L. Hoste, Christophe Scholliers, W. De Meuter
While many technologies for gesture-based interaction have been proposed and implemented, few focus on core software engineering principles that are commonplace in traditional programming languages. The lack of such principles restricts the applicability of those technologies when developing large scale gesture enabled systems. This paper describes the software engineering challenges associated with developing multi-touch gesture-based interaction, and proposes a solution in the form of the Midas declarative gesture specification language. Midas embeds concepts of logical programming languages and complex event processing to ease the development of gesture based applications. We show how it can be applied to multi-touch gesture recognition, and evaluated our solution in real-world applications.
{"title":"Software Engineering Principles in the Midas Gesture Specification Language","authors":"Thierry Renaux, L. Hoste, Christophe Scholliers, W. De Meuter","doi":"10.1145/2688471.2688478","DOIUrl":"https://doi.org/10.1145/2688471.2688478","url":null,"abstract":"While many technologies for gesture-based interaction have been proposed and implemented, few focus on core software engineering principles that are commonplace in traditional programming languages. The lack of such principles restricts the applicability of those technologies when developing large scale gesture enabled systems. This paper describes the software engineering challenges associated with developing multi-touch gesture-based interaction, and proposes a solution in the form of the Midas declarative gesture specification language. Midas embeds concepts of logical programming languages and complex event processing to ease the development of gesture based applications. We show how it can be applied to multi-touch gesture recognition, and evaluated our solution in real-world applications.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127673850","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}
J. Bishop, Matthias Hauswirth, A. Sillitti, Sam Stokes
Mobile is a tremendous new opportunity to introduce software development because the interaction with the physical world and the social aspects are very attractive for many students. It is likely that in the future there will be different kinds of software needs that could be satisfied by different kinds of developers: traditional and complex applications that require a professional software developer as it happens today; and customized applications targeting a restricted group of users that can be developed using new approaches to the development allowing the general public to create them. The panel analyzed such trends and provided some interesting discussion points.
{"title":"Mobile Computing and Education: (Panel)","authors":"J. Bishop, Matthias Hauswirth, A. Sillitti, Sam Stokes","doi":"10.1145/2688471.2688483","DOIUrl":"https://doi.org/10.1145/2688471.2688483","url":null,"abstract":"Mobile is a tremendous new opportunity to introduce software development because the interaction with the physical world and the social aspects are very attractive for many students. It is likely that in the future there will be different kinds of software needs that could be satisfied by different kinds of developers: traditional and complex applications that require a professional software developer as it happens today; and customized applications targeting a restricted group of users that can be developed using new approaches to the development allowing the general public to create them. The panel analyzed such trends and provided some interesting discussion points.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127248015","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}
Pencil Code is an educational programming tool designed to help students overcome common obstacles to advancing to open-ended work with real world languages and libraries. It transitions from visual code to text code with a dual-mode block and text editor; it smooths the leap from guided to open-ended work by integrating tutorials with a general-purpose programming tool; and it bridges the gap from educational functions to standard APIs by including a turtle library that subclasses jQuery.
{"title":"A Preview of Pencil Code: A Tool for Developing Mastery of Programming","authors":"Davide Baù, Davide Baù","doi":"10.1145/2688471.2688481","DOIUrl":"https://doi.org/10.1145/2688471.2688481","url":null,"abstract":"Pencil Code is an educational programming tool designed to help students overcome common obstacles to advancing to open-ended work with real world languages and libraries. It transitions from visual code to text code with a dual-mode block and text editor; it smooths the leap from guided to open-ended work by integrating tutorials with a general-purpose programming tool; and it bridges the gap from educational functions to standard APIs by including a turtle library that subclasses jQuery.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121523762","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}
Simon Baker, Stoyan Dekov, Fadi Fakih, J. Medvešek, Venus Shum, D. Mohamedally
Teaching programming is fast becoming a fundamental learning practice in schools for Science, Technology, Engineering and Maths (STEM) subjects. Through interactive learning with tangible devices such as Lego Mindstorms, students and teachers can explore ways to collect data, analyse and illustrate core principles in STEM subjects. The majority of such educational programmable devices require the use of a PC to program them. This short paper reports on a development project that demonstrates a STEM situated and wireless method to enable students to learn pro-gramming. It allows students and teachers to create STEM exper-iments though only a Windows phone with TouchDevelop and a programmable device solution. This focuses their Constructionist learning applied to STEM learning when situated with program-ming capabilities via a Bluetooth based library to operate the UCL Engduino, a customised teaching apparatus based on the Arduino platform. We demonstrate a process for integrating teaching devices with TouchDevelop to expand on pedagogical techniques for both student programmers and educators in programming
{"title":"Supporting Situated STEM Learning: TouchDevelop Integration of the UCL Engduino over Bluetooth","authors":"Simon Baker, Stoyan Dekov, Fadi Fakih, J. Medvešek, Venus Shum, D. Mohamedally","doi":"10.1145/2688471.2688477","DOIUrl":"https://doi.org/10.1145/2688471.2688477","url":null,"abstract":"Teaching programming is fast becoming a fundamental learning practice in schools for Science, Technology, Engineering and Maths (STEM) subjects. Through interactive learning with tangible devices such as Lego Mindstorms, students and teachers can explore ways to collect data, analyse and illustrate core principles in STEM subjects. The majority of such educational programmable devices require the use of a PC to program them. This short paper reports on a development project that demonstrates a STEM situated and wireless method to enable students to learn pro-gramming. It allows students and teachers to create STEM exper-iments though only a Windows phone with TouchDevelop and a programmable device solution. This focuses their Constructionist learning applied to STEM learning when situated with program-ming capabilities via a Bluetooth based library to operate the UCL Engduino, a customised teaching apparatus based on the Arduino platform. We demonstrate a process for integrating teaching devices with TouchDevelop to expand on pedagogical techniques for both student programmers and educators in programming","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121756434","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}
J. Schiller, F. Turbak, H. Abelson, J. Domínguez, Andrew McKinney, Johanna Okerlund, Mark Friedman
MIT App Inventor is a programming environment that lowers the barriers to creating mobile apps for Android devices, especially for people with little or no programming experience. App Inventor apps for a mobile device are constructed by arranging components with a WYSIWYG editor in a computer web browser, where the development computer is connected to the device by WiFi or USB. The behavior of the components is specified using a blocks-based graphical programming language. A key feature in making App Inventor accessible to beginning programmers is live programming: developers interact directly with the state of the evolving program as it is being constructed, and changes made in the web browser are realized instantaneously in the running app on the device. This paper describes the live programming features of App Inventor and explains how they are implemented.
MIT App Inventor是一个编程环境,它降低了为Android设备创建移动应用程序的障碍,特别是对于那些很少或没有编程经验的人。用于移动设备的App Inventor应用程序是通过在计算机web浏览器中使用所见即所得编辑器安排组件来构建的,其中开发计算机通过WiFi或USB连接到设备。组件的行为是使用基于块的图形编程语言指定的。让初级程序员可以访问App Inventor的一个关键特性是实时编程:开发人员在构建程序时直接与程序的发展状态进行交互,并且在web浏览器中所做的更改会立即在设备上运行的应用程序中实现。本文描述了App Inventor的实时编程功能,并解释了它们是如何实现的。
{"title":"Live Programming of Mobile Apps in App Inventor","authors":"J. Schiller, F. Turbak, H. Abelson, J. Domínguez, Andrew McKinney, Johanna Okerlund, Mark Friedman","doi":"10.1145/2688471.2688482","DOIUrl":"https://doi.org/10.1145/2688471.2688482","url":null,"abstract":"MIT App Inventor is a programming environment that lowers the barriers to creating mobile apps for Android devices, especially for people with little or no programming experience. App Inventor apps for a mobile device are constructed by arranging components with a WYSIWYG editor in a computer web browser, where the development computer is connected to the device by WiFi or USB. The behavior of the components is specified using a blocks-based graphical programming language. A key feature in making App Inventor accessible to beginning programmers is live programming: developers interact directly with the state of the evolving program as it is being constructed, and changes made in the web browser are realized instantaneously in the running app on the device. This paper describes the live programming features of App Inventor and explains how they are implemented.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123801706","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}
It is our great pleasure to welcome you to the proceedings of the PROMOTO'14. The 2nd Workshop on Programming with Mobile and Touch (PROMOTO'14) was held in Portland, OR on October 22, 2014, in conjunction with SPLASH/OOPSLA 2014. The goals of the workshop were to discuss the issues surrounding touch and mobile programming and to plan future directions. Workshop Overview Today, easy-to-use mobile devices like smartphones and tablets are becoming more prevalent than traditional PCs and laptops. New programming languages are emerging to enable programmers to develop software easily, leveraging the exciting advances in existing hardware, and providing abstractions that fit the capabilities of target platforms with multiple sensors, touch and cloud capabilities. PROMOTO'14 brought together researchers who have been exploring new programming paradigms, embracing the new realities of always connected, touch-enabled mobile devices. Specific areas of interest were the technical aspects of cross-platform computing, cloud computing, social applications, and education. Submissions for this event were invited in the general area of mobile and touch-oriented programming languages and programming environments, and teaching of programming for mobile devices. Topics of interest included: Mobile and touch-oriented programming languages Programming languages using innovative input mechanisms Programming environments on or for mobile devices Teaching of programming on or for mobile devices Programming tools such as debuggers on or for mobiles devices Libraries and programming frameworks that simplify programming for mobile devices The workshop received 11 submissions from all over the world. Each paper was reviewed by three members of the program committee and 6 were chosen for presentation as full papers, short papers or tool demos. We also had three additional stimulating sessions: A keynote on "Programming gadgets with gadgets" presented by Jonathan de Halleux of Microsoft Research. A group hands-on session, were participants were challenged to create an app in an hour, and compare results. A lively panel on "Mobile Computing and Education" The Keynote The keynote by de Halleux son "Programming gadgets with gadgets", not reported on elsewhere, was a lively presentation with an array of gadgets on display. Hardware 2.0 is upon us: cheap micro-controller boards like Arduino have gained massive adoption in recent years. Paired with 3D printers, cheap sensors and actuators, Hardware 2.0 allows anyone to prototype the next hot gadget. And yet, the maker will have to learn a soup of software language and framework to build a connected IoC solution: C++ for the micro controller code, HTML + javascript for the client, some backend language and a communication layer to interact with the devices. In this keynote, de Halleux showed a unified approach for compilation of web server code, rich client and embedded firmware under a simple mobile fri
我们非常高兴地欢迎您参加14年的促销活动。第二届移动和触摸编程研讨会(PROMOTO'14)于2014年10月22日在俄勒冈州波特兰举行,同时举办了SPLASH/OOPSLA 2014。研讨会的目标是讨论围绕触摸和移动编程的问题,并规划未来的方向。如今,智能手机和平板电脑等易于使用的移动设备正变得比传统的个人电脑和笔记本电脑更普遍。新的编程语言正在出现,使程序员能够轻松地开发软件,利用现有硬件中令人兴奋的进步,并提供适合具有多个传感器、触摸和云功能的目标平台功能的抽象。PROMOTO'14汇集了一直在探索新的编程范式的研究人员,拥抱始终连接的触控移动设备的新现实。他们感兴趣的具体领域是跨平台计算、云计算、社会应用程序和教育的技术方面。本次活动邀请在移动和面向触摸的编程语言和编程环境,以及移动设备编程教学的一般领域提交作品。感兴趣的主题包括:面向移动和触摸的编程语言使用创新输入机制的编程语言在移动设备上或为移动设备编程的编程环境在移动设备上或为移动设备编程的教学在移动设备上或为移动设备编程的编程工具,如调试器在移动设备上或为移动设备编程的库和编程框架。研讨会收到了来自世界各地的11份提交。每篇论文由三名项目委员会成员审查,其中6篇论文被选为全文、短文或工具演示。我们还有另外三个令人兴奋的会议:微软研究院的Jonathan de Halleux发表了关于“用小工具编程小工具”的主题演讲。在小组实践环节,参与者被要求在一小时内创建一个应用程序,并比较结果。de Halleux的主题演讲是“用小工具编程小工具”,在其他地方没有报道过,这是一场生动的展示,展示了一系列小工具。硬件2.0即将到来:像Arduino这样的廉价微控制器板近年来获得了大量采用。再加上3D打印机、便宜的传感器和执行器,硬件2.0让任何人都能制造出下一个热门产品的原型。然而,开发者必须学习大量的软件语言和框架来构建一个连接的IoC解决方案:c++用于微控制器代码,HTML + javascript用于客户端,一些后端语言和与设备交互的通信层。在这次主题演讲中,de Halleux展示了一种统一的方法,可以在简单的移动友好语言和IDE下编译web服务器代码、富客户端和嵌入式固件。
{"title":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","authors":"J. Bishop, A. Puder, N. Tillmann","doi":"10.1145/2688471","DOIUrl":"https://doi.org/10.1145/2688471","url":null,"abstract":"It is our great pleasure to welcome you to the proceedings of the PROMOTO'14. The 2nd Workshop on Programming with Mobile and Touch (PROMOTO'14) was held in Portland, OR on October 22, 2014, in conjunction with SPLASH/OOPSLA 2014. The goals of the workshop were to discuss the issues surrounding touch and mobile programming and to plan future directions. \u0000 \u0000Workshop Overview Today, easy-to-use mobile devices like smartphones and tablets are becoming more prevalent than traditional PCs and laptops. New programming languages are emerging to enable programmers to develop software easily, leveraging the exciting advances in existing hardware, and providing abstractions that fit the capabilities of target platforms with multiple sensors, touch and cloud capabilities. PROMOTO'14 brought together researchers who have been exploring new programming paradigms, embracing the new realities of always connected, touch-enabled mobile devices. Specific areas of interest were the technical aspects of cross-platform computing, cloud computing, social applications, and education. \u0000 \u0000Submissions for this event were invited in the general area of mobile and touch-oriented programming languages and programming environments, and teaching of programming for mobile devices. Topics of interest included: \u0000Mobile and touch-oriented programming languages \u0000Programming languages using innovative input mechanisms \u0000Programming environments on or for mobile devices \u0000Teaching of programming on or for mobile devices \u0000Programming tools such as debuggers on or for mobiles devices \u0000Libraries and programming frameworks that simplify programming for mobile devices \u0000 \u0000 \u0000 \u0000The workshop received 11 submissions from all over the world. Each paper was reviewed by three members of the program committee and 6 were chosen for presentation as full papers, short papers or tool demos. We also had three additional stimulating sessions: \u0000A keynote on \"Programming gadgets with gadgets\" presented by Jonathan de Halleux of Microsoft Research. \u0000A group hands-on session, were participants were challenged to create an app in an hour, and compare results. \u0000A lively panel on \"Mobile Computing and Education\" \u0000 \u0000 \u0000 \u0000The Keynote The keynote by de Halleux son \"Programming gadgets with gadgets\", not reported on elsewhere, was a lively presentation with an array of gadgets on display. Hardware 2.0 is upon us: cheap micro-controller boards like Arduino have gained massive adoption in recent years. Paired with 3D printers, cheap sensors and actuators, Hardware 2.0 allows anyone to prototype the next hot gadget. And yet, the maker will have to learn a soup of software language and framework to build a connected IoC solution: C++ for the micro controller code, HTML + javascript for the client, some backend language and a communication layer to interact with the devices. In this keynote, de Halleux showed a unified approach for compilation of web server code, rich client and embedded firmware under a simple mobile fri","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114434991","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}
Porting mobile applications (apps) from one platform to another is one strategy used by developers to write cross-platform apps. One challenging task in porting is transforming the app so as to use the appropriate platform-specific APIs. We have proposed a novel approach to extract functionally equivalent API methods of two platforms that simplifies this task. Our approach is inspired by a technique in natural language processing domain which extracts a translation dictionary from non-parallel corpora of two natural languages. We demonstrate a prototype implementation of the proposed approach.
{"title":"Data-Driven Inference of API Mappings","authors":"A. Gokhale, Daeyoung Kim, V. Ganapathy","doi":"10.1145/2688471.2688480","DOIUrl":"https://doi.org/10.1145/2688471.2688480","url":null,"abstract":"Porting mobile applications (apps) from one platform to another is one strategy used by developers to write cross-platform apps. One challenging task in porting is transforming the app so as to use the appropriate platform-specific APIs. We have proposed a novel approach to extract functionally equivalent API methods of two platforms that simplifies this task. Our approach is inspired by a technique in natural language processing domain which extracts a translation dictionary from non-parallel corpora of two natural languages. We demonstrate a prototype implementation of the proposed approach.","PeriodicalId":339630,"journal":{"name":"Proceedings of the 2nd Workshop on Programming for Mobile & Touch","volume":"85 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-10-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134153510","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}