Scott A. Turner, Manuel A. Pérez-Quiñones, S. Edwards, Joe D. Chase
Computer science students need experience with essential concepts and professional activities. Peer review is one way to meet these goals. In this work, we examine the students' attitudes towards and engagement in the peer review process, in early, object-oriented, computer science courses. To do this, we used peer review exercises in two CS2 classes at neighboring universities over the course of a semester. Using three groups (one reviewing their peers, one reviewing the instructor, and one completing small design or coding exercises), we measured the students' attitudes, their perceptions of their abilities, and how many of the reviews they completed. We found moderately positive attitudes that generally increased over time but were not significantly different between groups. We also saw a lower completion rate for students reviewing peers than for the other groups. The students' internal motivation, as measured by their need for cognition, was not shown to be strongly related to their attitudes nor to the number of assignments completed. Overall, our results show a strong need for external motivation to help engage students in peer reviews.
{"title":"Student attitudes and motivation for peer review in CS2","authors":"Scott A. Turner, Manuel A. Pérez-Quiñones, S. Edwards, Joe D. Chase","doi":"10.1145/1953163.1953268","DOIUrl":"https://doi.org/10.1145/1953163.1953268","url":null,"abstract":"Computer science students need experience with essential concepts and professional activities. Peer review is one way to meet these goals. In this work, we examine the students' attitudes towards and engagement in the peer review process, in early, object-oriented, computer science courses. To do this, we used peer review exercises in two CS2 classes at neighboring universities over the course of a semester. Using three groups (one reviewing their peers, one reviewing the instructor, and one completing small design or coding exercises), we measured the students' attitudes, their perceptions of their abilities, and how many of the reviews they completed. We found moderately positive attitudes that generally increased over time but were not significantly different between groups. We also saw a lower completion rate for students reviewing peers than for the other groups. The students' internal motivation, as measured by their need for cognition, was not shown to be strongly related to their attitudes nor to the number of assignments completed. Overall, our results show a strong need for external motivation to help engage students in peer reviews.","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":"131262410","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}
Briana B. Morrison, Mike Clancy, R. McCartney, Brad Richards, Kate Sanders
It is important for students to be able to select and apply the appropriate data structure for the problem to be solved. Testing this knowledge on exams can be difficult, however. We examined 59 data structures final exams and found only 36 that contained questions involving the application of data structures. To promote assessment of this knowledge in the data structures course, we present a framework for classifying apply exam questions, with illustrations from the exams collected. We then show how a number of questions can be developed by varying a single rich apply question along the dimensions of this framework
{"title":"Applying data structures in exams","authors":"Briana B. Morrison, Mike Clancy, R. McCartney, Brad Richards, Kate Sanders","doi":"10.1145/1953163.1953269","DOIUrl":"https://doi.org/10.1145/1953163.1953269","url":null,"abstract":"It is important for students to be able to select and apply the appropriate data structure for the problem to be solved. Testing this knowledge on exams can be difficult, however. We examined 59 data structures final exams and found only 36 that contained questions involving the application of data structures. To promote assessment of this knowledge in the data structures course, we present a framework for classifying apply exam questions, with illustrations from the exams collected. We then show how a number of questions can be developed by varying a single rich apply question along the dimensions of this framework","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"32 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":"114545741","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: Parallel/concurrent programming: tools and languages","authors":"L. Cassel","doi":"10.1145/3258445","DOIUrl":"https://doi.org/10.1145/3258445","url":null,"abstract":"","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":"117329924","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}
Experience with the first offering of a computational thinking course for computer science (CT4CS) students is reported. The course is grounded in student interaction with fundamental, recurring concepts suggested by comparison with two sets of computer science principles. By using specialized, freely available tools and physical simulations it is possible to provide concrete, tangible learning experiences that neither require knowledge of nor the overhead of programming. Student end-of-term reflections indicate that the course deepened and broadened their understanding of computer science even when they had previously encountered a topic, and improved their computer science vocabulary.
{"title":"Initial experience with a computational thinking course for computer science students","authors":"D. Kafura, D. Tatar","doi":"10.1145/1953163.1953242","DOIUrl":"https://doi.org/10.1145/1953163.1953242","url":null,"abstract":"Experience with the first offering of a computational thinking course for computer science (CT4CS) students is reported. The course is grounded in student interaction with fundamental, recurring concepts suggested by comparison with two sets of computer science principles. By using specialized, freely available tools and physical simulations it is possible to provide concrete, tangible learning experiences that neither require knowledge of nor the overhead of programming. Student end-of-term reflections indicate that the course deepened and broadened their understanding of computer science even when they had previously encountered a topic, and improved their computer science vocabulary.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"17 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":"117340798","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}
Linux has emerged as a widely-used platform for enabling hands-on kernel programming experience to learn about operating system concepts. However, developing pedagogically-effective programming projects in the context of a complex, production operating system can be a challenge. We present a structured series of five Linux kernel programming projects suitable for a one semester introductory operating systems course to address this issue. Each assignment introduces students to a core topic and major component of an operating system while implicitly teaching them about various aspects of a real-world operating system. Projects are of modest coding complexity, but require students to understand and leverage core components of the Linux operating system. The learning benefits for students from this approach include learning from real-world operating system code examples by expert kernel designers and gaining software engineering experience managing production code complexity. We have successfully used these structured Linux kernel projects to teach over a thousand students in the introductory operating systems course at Columbia University.
{"title":"Structured linux kernel projects for teaching operating systems concepts","authors":"Oren Laadan, Jason Nieh, N. Viennot","doi":"10.1145/1953163.1953250","DOIUrl":"https://doi.org/10.1145/1953163.1953250","url":null,"abstract":"Linux has emerged as a widely-used platform for enabling hands-on kernel programming experience to learn about operating system concepts. However, developing pedagogically-effective programming projects in the context of a complex, production operating system can be a challenge. We present a structured series of five Linux kernel programming projects suitable for a one semester introductory operating systems course to address this issue. Each assignment introduces students to a core topic and major component of an operating system while implicitly teaching them about various aspects of a real-world operating system. Projects are of modest coding complexity, but require students to understand and leverage core components of the Linux operating system. The learning benefits for students from this approach include learning from real-world operating system code examples by expert kernel designers and gaining software engineering experience managing production code complexity. We have successfully used these structured Linux kernel projects to teach over a thousand students in the introductory operating systems course at Columbia University.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"51 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":"116000539","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 the design, implementation, and evaluation of a course teaching Computer Science majors about teaching Computer Science. The course was designed to address the need for teachers and resources to support rapid changes in topics being taught in high schools. It also helped prepare students for research in Computer Science Education, and for careers involving computing and education. The course is described in detail, and is evaluated based on student feedback and the outcomes from the course.
{"title":"Teaching computer science majors about teaching computer science","authors":"T. Bell, Lynn Lambert","doi":"10.1145/1953163.1953317","DOIUrl":"https://doi.org/10.1145/1953163.1953317","url":null,"abstract":"This paper describes the design, implementation, and evaluation of a course teaching Computer Science majors about teaching Computer Science. The course was designed to address the need for teachers and resources to support rapid changes in topics being taught in high schools. It also helped prepare students for research in Computer Science Education, and for careers involving computing and education. The course is described in detail, and is evaluated based on student feedback and the outcomes from the course.","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"103 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":"124731117","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: Special session","authors":"R. Beck","doi":"10.1145/3258429","DOIUrl":"https://doi.org/10.1145/3258429","url":null,"abstract":"","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"35 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":"128237295","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}
Games assignments are increasingly popular in computer science education. This paper advocates and analyzes the inclusion of board, card, and dice games as programming assignments in introductory programming courses (CS1/2). The simple interface and strategy-based play of these types of games complement the immersive multimedia and agility-based play of video games. The implementation of board, card, and dice games typically demands less background knowledge from the instructor and offers fewer opportunities for extraneous work by the students. The paper lists 32 specific games that are suitable for teaching the major topics in CS1/2 and discusses the implementation of some of these games and their successful use as programming projects.
{"title":"Teaching introductory programming with popular board games","authors":"P. Drake, Kelvin Sung","doi":"10.1145/1953163.1953338","DOIUrl":"https://doi.org/10.1145/1953163.1953338","url":null,"abstract":"Games assignments are increasingly popular in computer science education. This paper advocates and analyzes the inclusion of board, card, and dice games as programming assignments in introductory programming courses (CS1/2). The simple interface and strategy-based play of these types of games complement the immersive multimedia and agility-based play of video games. The implementation of board, card, and dice games typically demands less background knowledge from the instructor and offers fewer opportunities for extraneous work by the students. The paper lists 32 specific games that are suitable for teaching the major topics in CS1/2 and discusses the implementation of some of these games and their successful use as programming projects.","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":"129839742","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: Special session","authors":"Nick Parlante","doi":"10.1145/3258471","DOIUrl":"https://doi.org/10.1145/3258471","url":null,"abstract":"","PeriodicalId":137934,"journal":{"name":"Proceedings of the 42nd ACM technical symposium on Computer science education","volume":"121 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":"129980362","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}