In 1995, my research team and I decided to create TeachScheme!, an educational outreach project, with the hope that our work on programming languages could effect a dramatic change in K-12 computer science. Specifically, we envisioned a virtuous cycle of two mutually reinforcing ideas. On the one hand, we would create a design-oriented curriculum path from middle school through college. On the other hand, our approach would help kids with learning school mathematics. Hence a course on programming would benefit every student, not just those who end up choosing computer science as a college major. At this point, we have a new design-oriented curriculum; a pedagogic program development environment to make it fun; and a series of matching programming languages. After focusing at the overlap between high schools and colleges at first, we now use after-school programs to move upstream, and we are working on two major downstream courses for the second semester in college: one on object-oriented design and another on logic in program design. My talk will focus on just one aspect of the project: the design-oriented curriculum and its smooth path from middle school to college. I will first demonstrate how to teach an intellectually interesting and fun course on programming with something that looks like plain school mathematics. For the rest of the talk, I will sketch the path from there through college.
{"title":"TeachScheme!","authors":"M. Felleisen","doi":"10.1145/1953163.1953165","DOIUrl":"https://doi.org/10.1145/1953163.1953165","url":null,"abstract":"In 1995, my research team and I decided to create TeachScheme!, an educational outreach project, with the hope that our work on programming languages could effect a dramatic change in K-12 computer science. Specifically, we envisioned a virtuous cycle of two mutually reinforcing ideas. On the one hand, we would create a design-oriented curriculum path from middle school through college. On the other hand, our approach would help kids with learning school mathematics. Hence a course on programming would benefit every student, not just those who end up choosing computer science as a college major. At this point, we have a new design-oriented curriculum; a pedagogic program development environment to make it fun; and a series of matching programming languages. After focusing at the overlap between high schools and colleges at first, we now use after-school programs to move upstream, and we are working on two major downstream courses for the second semester in college: one on object-oriented design and another on logic in program design. My talk will focus on just one aspect of the project: the design-oriented curriculum and its smooth path from middle school to college. I will first demonstrate how to teach an intellectually interesting and fun course on programming with something that looks like plain school mathematics. For the rest of the talk, I will sketch the path from there through college.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123968206","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}
Good error messages are critical for novice programmers. Re-cognizing this, the DrRacket programming environment provides a series of pedagogically-inspired language subsets with error messages customized to each subset. We apply human-factors research methods to explore the effectiveness of these messages. Unlike existing work in this area, we study messages at a fine-grained level by analyzing the edits students make in response to various classes of errors. We present a rubric (which is not language specific) to evaluate student responses, apply it to a course-worth of student lab work, and describe what we have learned about using the rubric effectively. We also discuss some concrete observations on the effectiveness of these messages.
{"title":"Measuring the effectiveness of error messages designed for novice programmers","authors":"G. Marceau, Kathi Fisler, S. Krishnamurthi","doi":"10.1145/1953163.1953308","DOIUrl":"https://doi.org/10.1145/1953163.1953308","url":null,"abstract":"Good error messages are critical for novice programmers. Re-cognizing this, the DrRacket programming environment provides a series of pedagogically-inspired language subsets with error messages customized to each subset. We apply human-factors research methods to explore the effectiveness of these messages. Unlike existing work in this area, we study messages at a fine-grained level by analyzing the edits students make in response to various classes of errors. We present a rubric (which is not language specific) to evaluate student responses, apply it to a course-worth of student lab work, and describe what we have learned about using the rubric effectively. We also discuss some concrete observations on the effectiveness of these messages.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126329598","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}
Recently, several frameworks have been developed for writing mobile and web applications in Java, making the development of web and mobile applications accessible to HCI students with only a CS1 Java background. In this paper we describe using student projects based on the Google Android mobile platform and Google's Web Toolkit to provide students with experience designing and implementing user interfaces for mobile and web applications. Specific examples demonstrate how programming on these platforms reinforces standard HCI topics. As a result of being able to learn mobile device programming in the context of "cool" Google platforms, students expressed increased interest in studying HCI.
最近,已经开发了几个框架,用于在Java中编写移动和web应用程序,使得只有CS1 Java背景的HCI学生也可以开发web和移动应用程序。在本文中,我们描述了使用基于Google Android移动平台和Google Web Toolkit的学生项目,为学生提供设计和实现移动和Web应用程序用户界面的经验。具体示例演示了在这些平台上编程如何强化标准HCI主题。由于能够在“酷”的谷歌平台上学习移动设备编程,学生们对学习HCI的兴趣增加了。
{"title":"Human computer interaction that reaches beyond desktop applications","authors":"S. Loveland","doi":"10.1145/1953163.1953328","DOIUrl":"https://doi.org/10.1145/1953163.1953328","url":null,"abstract":"Recently, several frameworks have been developed for writing mobile and web applications in Java, making the development of web and mobile applications accessible to HCI students with only a CS1 Java background. In this paper we describe using student projects based on the Google Android mobile platform and Google's Web Toolkit to provide students with experience designing and implementing user interfaces for mobile and web applications. Specific examples demonstrate how programming on these platforms reinforces standard HCI topics. As a result of being able to learn mobile device programming in the context of \"cool\" Google platforms, students expressed increased interest in studying HCI.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126051229","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":"Session details: Teaching and studying novice programmers","authors":"Mark Johnson","doi":"10.1145/3258474","DOIUrl":"https://doi.org/10.1145/3258474","url":null,"abstract":"","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115976903","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}
Traditional Beowulf clusters have been homogeneous platforms for distributed-memory MIMD parallelism. However, the shift to multicore architectures has made shared-memory MIMD parallelism increasingly important, and inexpensive manycore GPGPUs have revived SIMD parallelism. This paper presents a case study in designing and building a heterogeneous cluster as a learning platform for tera-scale distributed- and shared-memory MIMD parallelism, and GPGPU parallelism.
{"title":"A cluster for CS education in the manycore era","authors":"Joel C. Adams, Kathy Hoobeboom, Jonathan Walz","doi":"10.1145/1953163.1953177","DOIUrl":"https://doi.org/10.1145/1953163.1953177","url":null,"abstract":"Traditional Beowulf clusters have been homogeneous platforms for distributed-memory MIMD parallelism. However, the shift to multicore architectures has made shared-memory MIMD parallelism increasingly important, and inexpensive manycore GPGPUs have revived SIMD parallelism. This paper presents a case study in designing and building a heterogeneous cluster as a learning platform for tera-scale distributed- and shared-memory MIMD parallelism, and GPGPU parallelism.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"62 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116349814","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}
We present extensions to the Embedded Xinu educational operating system that, when coupled with a target device like the Cisco-Linksys WRT54GL, provide for an extremely attractive hands-on laboratory platform in network courses. We present classroom and research lab evidence for the usefulness of this platform as a network education tool, and discuss its significance in the context of a wide spectrum of competitor systems. This project is part of a larger effort to bring cost-effective, hands-on embedded system laboratory experiences into systems courses throughout the undergraduate computer science core.
{"title":"Hands-on networking labs with embedded routers","authors":"Dennis Brylow, Kyle Thurow","doi":"10.1145/1953163.1953283","DOIUrl":"https://doi.org/10.1145/1953163.1953283","url":null,"abstract":"We present extensions to the Embedded Xinu educational operating system that, when coupled with a target device like the Cisco-Linksys WRT54GL, provide for an extremely attractive hands-on laboratory platform in network courses. We present classroom and research lab evidence for the usefulness of this platform as a network education tool, and discuss its significance in the context of a wide spectrum of competitor systems. This project is part of a larger effort to bring cost-effective, hands-on embedded system laboratory experiences into systems courses throughout the undergraduate computer science core.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125734499","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}
Ville Isomöttönen, Antti-Jussi Lakanen, V. Lappalainen
Several programming environments have been constructed to facilitate novice programming at K-12 and CS0/CS1 levels. The environments can be roughly divided into those using visual or textual programming. This paper presents a K-12 game programming course concept based on textual programming. The concept is based on an easy-to-use C# library, called Jypeli, built on top of Microsoft XNA Framework. The library tries to maintain advantages of visual programming and avoid challenges of textual programming. In particular, the library helps beginners to program their first games in a short period of time and without a heavy syntactic load. The course concept and an initial evaluation consisting of student feedback and a literature rationale are presented.
{"title":"K-12 game programming course concept using textual programming","authors":"Ville Isomöttönen, Antti-Jussi Lakanen, V. Lappalainen","doi":"10.1145/1953163.1953296","DOIUrl":"https://doi.org/10.1145/1953163.1953296","url":null,"abstract":"Several programming environments have been constructed to facilitate novice programming at K-12 and CS0/CS1 levels. The environments can be roughly divided into those using visual or textual programming. This paper presents a K-12 game programming course concept based on textual programming. The concept is based on an easy-to-use C# library, called Jypeli, built on top of Microsoft XNA Framework. The library tries to maintain advantages of visual programming and avoid challenges of textual programming. In particular, the library helps beginners to program their first games in a short period of time and without a heavy syntactic load. The course concept and an initial evaluation consisting of student feedback and a literature rationale are presented.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125464036","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}
A social robot is a robotic platform that supports natural interaction with people in a human-scale environment. Such a platform allows interesting opportunities for both traditional Computer Science students and students from other disciplines, such as psychology, philosophy, design and communications. In this paper, we describe a new social robotic platform for educational uses that is equipped with a social face, arms for gesturing, advanced sensory, mobile base, and ROS integration. By using off-the-shelf and rapidly prototyped components, together with open source software, this platform is low-cost, easy to use, and easy to reproduce.
{"title":"Nelson: a low-cost social robot for research and education","authors":"Michael Ferguson, N. Webb, T. Strzalkowski","doi":"10.1145/1953163.1953230","DOIUrl":"https://doi.org/10.1145/1953163.1953230","url":null,"abstract":"A social robot is a robotic platform that supports natural interaction with people in a human-scale environment. Such a platform allows interesting opportunities for both traditional Computer Science students and students from other disciplines, such as psychology, philosophy, design and communications. In this paper, we describe a new social robotic platform for educational uses that is equipped with a social face, arms for gesturing, advanced sensory, mobile base, and ROS integration. By using off-the-shelf and rapidly prototyped components, together with open source software, this platform is low-cost, easy to use, and easy to reproduce.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"96 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-03-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127890734","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}