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}
In this paper, we present the VIREOS project, a new operating system designed specifically for the classroom. VIREOS is a simple, Unix-like, operating system, which runs on the Larc educational architecture. A VIREOS/Larc system can either be simulated or run on a pre-configured FPGA. The VIREOS project is well integrated with an introductory computer architecture course using Larc and the assignments are structured in a similar fashion: using a bottom-up approach. We have several resources available on the Web, which help reduce the overhead of adopting VIREOS. Finally, VIREOS has been used in one operating systems course already, and the feedback from students was generally favorable.
{"title":"VIREOS: an integrated, bottom-up, educational operating systems project with FPGA support","authors":"Marc L. Corliss, Marcela S. Melara","doi":"10.1145/1953163.1953179","DOIUrl":"https://doi.org/10.1145/1953163.1953179","url":null,"abstract":"In this paper, we present the VIREOS project, a new operating system designed specifically for the classroom. VIREOS is a simple, Unix-like, operating system, which runs on the Larc educational architecture. A VIREOS/Larc system can either be simulated or run on a pre-configured FPGA. The VIREOS project is well integrated with an introductory computer architecture course using Larc and the assignments are structured in a similar fashion: using a bottom-up approach. We have several resources available on the Web, which help reduce the overhead of adopting VIREOS. Finally, VIREOS has been used in one operating systems course already, and the feedback from students was generally favorable.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"73 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":"122135679","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}
This paper describes a collaboration between computer science and journalism students and professors at our small, primarily undergraduate college, and a large metropolitan newspaper. Our students' work was a catalyst for a hard-hitting series of investigative stories, with far-reaching consequences. The Gumshoe project is a model for computational journalism at an undergraduate institution. The project demonstrates that when computer scientists and journalists reach out across disciplinary boundaries, computational thinking and collaboration can solve a real problem, and have a substantive impact on society.
{"title":"Gumshoe: a model for undergraduate computational journalism education","authors":"S. M. Pulimood, D. Shaw, E. Lounsberry","doi":"10.1145/1953163.1953314","DOIUrl":"https://doi.org/10.1145/1953163.1953314","url":null,"abstract":"This paper describes a collaboration between computer science and journalism students and professors at our small, primarily undergraduate college, and a large metropolitan newspaper. Our students' work was a catalyst for a hard-hitting series of investigative stories, with far-reaching consequences. The Gumshoe project is a model for computational journalism at an undergraduate institution. The project demonstrates that when computer scientists and journalists reach out across disciplinary boundaries, computational thinking and collaboration can solve a real problem, and have a substantive impact on society.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"11 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":"122206481","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}
S. Rodger, Mark Stehlik, C. Stephenson, Cameron Wilson
As the Science, Technology, Engineering, and Mathematics (STEM) education reform wave has swept the United States, ACM and CSTA, among other organizations, have worked to push K-12 computer science toward the “core” of a student’s education. We are at a critical point for K12 computer science education particularly with a potential new AP course called CS Principles [2] being designed and piloted for introduction into secondary schools in the next few years. Significant questions remain as to whether computer science is really at the table when key decisions are made about how schools and states allocate their education resources. Major policy issues still exist for K-12 computer science education. There is deep confusion about computer science teacher certification, courses, gender and diversity gaps in students, and whether computer science courses “count” toward a student’s graduation requirements. This special session will present groundbreaking research reflecting how computer science education is treated in each of the 50 states coupled with initiatives to transform the national education policy landscape for K-12 computer science education. It will connect the broad SIGCSE community by giving them new data and a call to action to get involved in a new coalition called “Computing in the Core.” This new coalition seeks to ensure computer science is at the core of education for all students.
{"title":"Progress in surfacing computer science in STEM","authors":"S. Rodger, Mark Stehlik, C. Stephenson, Cameron Wilson","doi":"10.1145/1953163.1953334","DOIUrl":"https://doi.org/10.1145/1953163.1953334","url":null,"abstract":"As the Science, Technology, Engineering, and Mathematics (STEM) education reform wave has swept the United States, ACM and CSTA, among other organizations, have worked to push K-12 computer science toward the “core” of a student’s education. We are at a critical point for K12 computer science education particularly with a potential new AP course called CS Principles [2] being designed and piloted for introduction into secondary schools in the next few years. Significant questions remain as to whether computer science is really at the table when key decisions are made about how schools and states allocate their education resources. Major policy issues still exist for K-12 computer science education. There is deep confusion about computer science teacher certification, courses, gender and diversity gaps in students, and whether computer science courses “count” toward a student’s graduation requirements. This special session will present groundbreaking research reflecting how computer science education is treated in each of the 50 states coupled with initiatives to transform the national education policy landscape for K-12 computer science education. It will connect the broad SIGCSE community by giving them new data and a call to action to get involved in a new coalition called “Computing in the Core.” This new coalition seeks to ensure computer science is at the core of education for all students.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"40 4 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":"115849807","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}
The Library for Interface Testing (LIFT) supports writing unit tests for Java applications with graphical user interfaces (GUIs). Current frameworks for GUI testing provide the necessary tools, but are complicated and difficult to use for beginners, often requiring a significant amount of time to learn. LIFT takes the approach that unit testing GUIs should be no different than testing any other type of code. By providing a set of frequently used filters for identifying GUI components and a set of operations for acting on those components, LIFT lets programmers quickly and easily test their GUI applications.
{"title":"LIFT: taking GUI unit testing to new heights","authors":"J. Snyder, S. Edwards, Manuel A. Pérez-Quiñones","doi":"10.1145/1953163.1953343","DOIUrl":"https://doi.org/10.1145/1953163.1953343","url":null,"abstract":"The Library for Interface Testing (LIFT) supports writing unit tests for Java applications with graphical user interfaces (GUIs). Current frameworks for GUI testing provide the necessary tools, but are complicated and difficult to use for beginners, often requiring a significant amount of time to learn. LIFT takes the approach that unit testing GUIs should be no different than testing any other type of code. By providing a set of frequently used filters for identifying GUI components and a set of operations for acting on those components, LIFT lets programmers quickly and easily test their GUI applications.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"52 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":"116893404","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: Learning objects and modules","authors":"E. Shoop","doi":"10.1145/3258432","DOIUrl":"https://doi.org/10.1145/3258432","url":null,"abstract":"","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"6 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":"116916055","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}
This paper explores the issue of what kind of evidence triggers changes in the teaching practice of Computer Science educators, and how educators evaluate the effectiveness of those changes. We interviewed 14 Computer Science instructors from three different institutions. Our study indicates that changes are mostly initiated from instructors' intuition, informal discussion with students, and anecdotal evidence.
{"title":"The use of evidence in the change making process of computer science educators","authors":"Davide Fossati, M. Guzdial","doi":"10.1145/1953163.1953352","DOIUrl":"https://doi.org/10.1145/1953163.1953352","url":null,"abstract":"This paper explores the issue of what kind of evidence triggers changes in the teaching practice of Computer Science educators, and how educators evaluate the effectiveness of those changes. We interviewed 14 Computer Science instructors from three different institutions. Our study indicates that changes are mostly initiated from instructors' intuition, informal discussion with students, and anecdotal evidence.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"8 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":"114639183","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}
The "Computer Systems" course at Northeastern University is an MS-level core course which attempts to teach students how computers work, through a behavioral approach to the concepts involved in operating systems and their interface to the hardware. As an operating system is typically the first reactive system which students encounter in their studies, the goal of the class is to develop an understanding of the tools and reasoning which are involved in understanding and working with the internals of such a system, whether it be a conventional operating system or (as is more commonly found in industry) a consumer product, networking device, or other embedded system. This course is currently in its third year with enthusiastic responses from students, especially those who have been able to apply its lessons in co-operative work assignments, and an undergraduate class teaching substantially the same material is currently underway.
{"title":"Teaching operating systems as how computers work","authors":"P. Desnoyers","doi":"10.1145/1953163.1953249","DOIUrl":"https://doi.org/10.1145/1953163.1953249","url":null,"abstract":"The \"Computer Systems\" course at Northeastern University is an MS-level core course which attempts to teach students how computers work, through a behavioral approach to the concepts involved in operating systems and their interface to the hardware. As an operating system is typically the first reactive system which students encounter in their studies, the goal of the class is to develop an understanding of the tools and reasoning which are involved in understanding and working with the internals of such a system, whether it be a conventional operating system or (as is more commonly found in industry) a consumer product, networking device, or other embedded system. This course is currently in its third year with enthusiastic responses from students, especially those who have been able to apply its lessons in co-operative work assignments, and an undergraduate class teaching substantially the same material is currently underway.","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":"114697205","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}
Requirements engineering, an integral part of the life of a software engineer, often receives little or no attention in the education of a computer science student. We report on our experiences in constructing an innovative curriculum that utilizes a three tier model of learning that provides students with hands-on experience on the various facets of requirements elicitation and management. This curriculum can be integrated into an existing course on software engineering, software requirements or the senior capstone experience. We believe our experience will be of use to other computer science and software engineering programs that are aiming at introducing requirements in the undergraduate curriculum.
{"title":"Teaching requirements engineering to undergraduate students","authors":"Sriram Mohan, S. Chenoweth","doi":"10.1145/1953163.1953207","DOIUrl":"https://doi.org/10.1145/1953163.1953207","url":null,"abstract":"Requirements engineering, an integral part of the life of a software engineer, often receives little or no attention in the education of a computer science student. We report on our experiences in constructing an innovative curriculum that utilizes a three tier model of learning that provides students with hands-on experience on the various facets of requirements elicitation and management. This curriculum can be integrated into an existing course on software engineering, software requirements or the senior capstone experience. We believe our experience will be of use to other computer science and software engineering programs that are aiming at introducing requirements in the undergraduate curriculum.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"20 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":"127572429","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}