The beginning of a first programming course is often overwhelming for students, with the cognitive load of the programming itself compounded by the need to install and configure compilation tools and become accustomed to the build process. Students who develop code on their own machines might have extra difficulty if their environment does not match the environment used by their instructors or in lab sessions. This article discusses the experience of the authors using the cloud-based JupyterHub platform, which provides each student a private Linux VM, to provide a uniform environment for introductory C programming.
{"title":"Cloud-based Computer Labs and Their Silver Linings","authors":"William H. Bird","doi":"10.1145/3593342.3593345","DOIUrl":"https://doi.org/10.1145/3593342.3593345","url":null,"abstract":"The beginning of a first programming course is often overwhelming for students, with the cognitive load of the programming itself compounded by the need to install and configure compilation tools and become accustomed to the build process. Students who develop code on their own machines might have extra difficulty if their environment does not match the environment used by their instructors or in lab sessions. This article discusses the experience of the authors using the cloud-based JupyterHub platform, which provides each student a private Linux VM, to provide a uniform environment for introductory C programming.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"161 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121513454","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 a just-in-time strategy for prerequisite review in an upper-year machine learning course. This course has a range of prerequistes in math, computer science, and statistics. Prerequisite review is not new, and instructors of this course have historically presented prerequisite resources at the beginning of term. However, some of the materials in these resources are not used until later in the term. With our just-in-time strategy for prerequisite review, we tie prerequisite concepts to each lecture. Before each lecture, students complete 2-4 multiple choice review questions covering these concepts. A short, instructional video is provided with each question, so that if a student is unable to complete the question, they can review the relevant concept by watching the video.
{"title":"Just-In-Time Prerequisite Review for a Machine Learning Course","authors":"Lisa Zhang, S. Allin","doi":"10.1145/3593342.3593356","DOIUrl":"https://doi.org/10.1145/3593342.3593356","url":null,"abstract":"We present a just-in-time strategy for prerequisite review in an upper-year machine learning course. This course has a range of prerequistes in math, computer science, and statistics. Prerequisite review is not new, and instructors of this course have historically presented prerequisite resources at the beginning of term. However, some of the materials in these resources are not used until later in the term. With our just-in-time strategy for prerequisite review, we tie prerequisite concepts to each lecture. Before each lecture, students complete 2-4 multiple choice review questions covering these concepts. A short, instructional video is provided with each question, so that if a student is unable to complete the question, they can review the relevant concept by watching the video.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132628719","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}
Kezia Devathasan, J. Kepler, J. Warawa, Amy Penney, Isabella Tsui, Celina Berg
In an attempt to improve students’ learning experiences in early computer science, we pilot the use of PrairieLearn, a mastery-based learning platform in a CS1 course at our institution. The following experience report outlines the benefits and challenges of integrating this platform into various course components, alongside a brief analysis of students’ performance in the course.
{"title":"PrairieLearn in CS1: An Experience Report","authors":"Kezia Devathasan, J. Kepler, J. Warawa, Amy Penney, Isabella Tsui, Celina Berg","doi":"10.1145/3593342.3593344","DOIUrl":"https://doi.org/10.1145/3593342.3593344","url":null,"abstract":"In an attempt to improve students’ learning experiences in early computer science, we pilot the use of PrairieLearn, a mastery-based learning platform in a CS1 course at our institution. The following experience report outlines the benefits and challenges of integrating this platform into various course components, alongside a brief analysis of students’ performance in the course.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122228330","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 assignment guides students through the creation of a snake-style game. A substantial code base is provided which includes the user interface and computer-controlled opponents. Students extend the provided code by implementing the functionality required for a human player. The assignment focuses on the use of lists (both one and two-dimensional) and the creation of new functions. It assumes that students have prior experience with elementary programming, decision making, and repetition constructs. The result of this assignment is a complete, playable game with AI players that provide an appropriate challenge for reasonably novice players.
{"title":"Nifty Assignment: Viper","authors":"Ben Stephenson","doi":"10.1145/3593342.3593343","DOIUrl":"https://doi.org/10.1145/3593342.3593343","url":null,"abstract":"This assignment guides students through the creation of a snake-style game. A substantial code base is provided which includes the user interface and computer-controlled opponents. Students extend the provided code by implementing the functionality required for a human player. The assignment focuses on the use of lists (both one and two-dimensional) and the creation of new functions. It assumes that students have prior experience with elementary programming, decision making, and repetition constructs. The result of this assignment is a complete, playable game with AI players that provide an appropriate challenge for reasonably novice players.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131354905","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}
Recent developments in AI-generated code are merely the latest in a series of challenges to traditional computer science education. AI code generators, along with the plethora of available code on the Internet and sites that facilitate contract cheating, are a striking contrast to the heroic notion of programmers toiling away to create artisanal code from whole cloth. We need not interpret this to mean that more, potentially automated, policing of student assignments is necessary: automated policing of student work is already fraught with complications and ethical concerns. We argue that instructors should instead reconsider assessment design in their pedagogy in light of recent developments, with a focus on how students build knowledge, practice skills, and develop processes. How can these new tools support students and the way they learn, and support the way that computer scientists will work in the years to come? This is an opportunity to revisit how computer science is taught, how it is assessed, how we think about and present academic integrity, and the role of the computer scientist in general.
{"title":"AI-Generated Code Not Considered Harmful","authors":"Tyson Kendon, Leanne Wu, John Aycock","doi":"10.1145/3593342.3593349","DOIUrl":"https://doi.org/10.1145/3593342.3593349","url":null,"abstract":"Recent developments in AI-generated code are merely the latest in a series of challenges to traditional computer science education. AI code generators, along with the plethora of available code on the Internet and sites that facilitate contract cheating, are a striking contrast to the heroic notion of programmers toiling away to create artisanal code from whole cloth. We need not interpret this to mean that more, potentially automated, policing of student assignments is necessary: automated policing of student work is already fraught with complications and ethical concerns. We argue that instructors should instead reconsider assessment design in their pedagogy in light of recent developments, with a focus on how students build knowledge, practice skills, and develop processes. How can these new tools support students and the way they learn, and support the way that computer scientists will work in the years to come? This is an opportunity to revisit how computer science is taught, how it is assessed, how we think about and present academic integrity, and the role of the computer scientist in general.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116997233","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}
Mustafa Hafeez, Anand Karki, Yara Radwan, A. Saha, Angela Zavaleta Bernuy
With the increase in online learning, instructors are looking for novel ways of supporting student learning and getting students to collaborate in online environments. Pair programming allows students to brainstorm and problem-solve in teams and has been found to help with improving code design, attitudes toward computer science, productivity, and performance. However, past work has focused on face-to-face, in-person collaboration, and it is unclear whether these benefits will translate to an online context. This work replicates several studies evaluating the effects and benefits of in-person pair programming in an online environment. In an introduction to programming course, students participated in weekly online sessions where they were asked to solve a set of exercises in pairs or individually. We measure task performance and student opinions on the activities and perceptions of remote pair programming. Our study found that remote pair programming had little to no impact on the time taken, promising but not statistically significant impacts on code correctness, and statistically significant impacts on students’ perceptions of both their own experience and the efficiency and efficacy of pair programming. Our findings show that some, but not all, of the benefits of pair programming can be replicated in an online context.
{"title":"Evaluating the Efficacy and Impacts of Remote Pair Programming for Introductory Computer Science Students","authors":"Mustafa Hafeez, Anand Karki, Yara Radwan, A. Saha, Angela Zavaleta Bernuy","doi":"10.1145/3593342.3593351","DOIUrl":"https://doi.org/10.1145/3593342.3593351","url":null,"abstract":"With the increase in online learning, instructors are looking for novel ways of supporting student learning and getting students to collaborate in online environments. Pair programming allows students to brainstorm and problem-solve in teams and has been found to help with improving code design, attitudes toward computer science, productivity, and performance. However, past work has focused on face-to-face, in-person collaboration, and it is unclear whether these benefits will translate to an online context. This work replicates several studies evaluating the effects and benefits of in-person pair programming in an online environment. In an introduction to programming course, students participated in weekly online sessions where they were asked to solve a set of exercises in pairs or individually. We measure task performance and student opinions on the activities and perceptions of remote pair programming. Our study found that remote pair programming had little to no impact on the time taken, promising but not statistically significant impacts on code correctness, and statistically significant impacts on students’ perceptions of both their own experience and the efficiency and efficacy of pair programming. Our findings show that some, but not all, of the benefits of pair programming can be replicated in an online context.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130072096","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}
Simple Python 3, or spy3, is a system for CS1 that filters students’ Python code and limits it to a subset of the Python language matching what is taught in the course. At the same time, spy3 provides improved error diagnostics for common novice problems, along with enhanced features for CS1 use, like the ability to see an execution trace of a running Python program. A web-based turtle graphics module added to spy3 made the system feasible for remote use by students, regardless of their computing device. We describe spy3’s features, its implementation, and our experience using it with a large introductory Python class.
{"title":"spy3: A Python Subset for CS1","authors":"John Aycock","doi":"10.1145/3593342.3593352","DOIUrl":"https://doi.org/10.1145/3593342.3593352","url":null,"abstract":"Simple Python 3, or spy3, is a system for CS1 that filters students’ Python code and limits it to a subset of the Python language matching what is taught in the course. At the same time, spy3 provides improved error diagnostics for common novice problems, along with enhanced features for CS1 use, like the ability to see an execution trace of a running Python program. A web-based turtle graphics module added to spy3 made the system feasible for remote use by students, regardless of their computing device. We describe spy3’s features, its implementation, and our experience using it with a large introductory Python class.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132863309","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}
Many instructors want their students to focus on learning instead of grades. However, our systems, structures, and policies are heavily centred around grades and the fallacies of their inherent fairness. In these settings, it is hard to expect students to keep their attention on the material and not get distracted by the frequent input of various grades. Alternatives to traditional grading, such as standards or competency-based grading, specifications-based grading, and ungrading, allow instructors to change the conversation and redirect the focus on learning. In this interactive panel, we will begin with a description of some of the most common alternative grading practices: standards, specifications, competency, contract, portfolio, labour, and ungrading. Then, the panellists will share their experiences on adopting these alternative grading systems in courses with some implementation details. Attendees will have plenty of opportunities to ask questions and panellists will also share their experiences on how we refocused students’ attention on rich, high-quality feedback instead of grades. We will also discuss the challenges and opportunities of these systems, and facilitate a discussion on how we can start working on broader structural changes to recentre higher education on learning, rather than points and grades. The primary goal of this session is to examine different forms of alternative grading practices that inform formative and summative assessments, which in turn impact students’ motivation, self-efficacy and course success.
{"title":"Demystifying Alternative Grading Systems","authors":"F. Moosvi, Giulia Toti, E. Baniassad","doi":"10.1145/3593342.3593358","DOIUrl":"https://doi.org/10.1145/3593342.3593358","url":null,"abstract":"Many instructors want their students to focus on learning instead of grades. However, our systems, structures, and policies are heavily centred around grades and the fallacies of their inherent fairness. In these settings, it is hard to expect students to keep their attention on the material and not get distracted by the frequent input of various grades. Alternatives to traditional grading, such as standards or competency-based grading, specifications-based grading, and ungrading, allow instructors to change the conversation and redirect the focus on learning. In this interactive panel, we will begin with a description of some of the most common alternative grading practices: standards, specifications, competency, contract, portfolio, labour, and ungrading. Then, the panellists will share their experiences on adopting these alternative grading systems in courses with some implementation details. Attendees will have plenty of opportunities to ask questions and panellists will also share their experiences on how we refocused students’ attention on rich, high-quality feedback instead of grades. We will also discuss the challenges and opportunities of these systems, and facilitate a discussion on how we can start working on broader structural changes to recentre higher education on learning, rather than points and grades. The primary goal of this session is to examine different forms of alternative grading practices that inform formative and summative assessments, which in turn impact students’ motivation, self-efficacy and course success.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2023-05-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129077202","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}
Welcome to the 14th Western Canadian Conference on Computing Education (WCCCE 2009)! Thanks to Simon Fraser University for hosting the Western Canadian Conference on Computing Education for the first time. I would like to thank all members of the WCCCE 2009 Steering Committee, all members of the Conference Committee, all members of the Local Organizing Committee, as well as all authors and panelists, reviewers, session chairs, exhibitors, workshop organizers, sponsors, keynote speakers, and the invited speakers for their constant support in organizing this conference. It was very encouraging to receive a large number of high quality submissions for papers, panel discussions, and workshops from all over Canada, USA, and the rest of the world. The Conference Committee members and the reviewers faced quite a challenge deciding what to accept/reject for presentation. It gives me a lot of pleasure that we will be joined by four speakers of national and international fame. I am sure that all delegates will enjoy the very informative presentations by our two keynote speakers (Dr. Bjarne Stroustrup & Dr. Gary Poole) and two invited speakers (Dr. Yan Xu and Mr. Paul Denny) on Friday and Saturday. Thanks to all speakers, once again! We are delighted that for the first time in the history of this conference, WCCCE will run in cooperation with ACM and SIGCSE. As part of this in cooperation status, the proceedings will be included in the ACM Digital Library.
{"title":"Proceedings of the 25th Western Canadian Conference on Computing Education","authors":"R. Brouwer, D. Cukierman, George K. Tsiknis","doi":"10.1145/1536274","DOIUrl":"https://doi.org/10.1145/1536274","url":null,"abstract":"Welcome to the 14th Western Canadian Conference on Computing Education (WCCCE 2009)! \u0000 \u0000Thanks to Simon Fraser University for hosting the Western Canadian Conference on Computing Education for the first time. \u0000 \u0000I would like to thank all members of the WCCCE 2009 Steering Committee, all members of the Conference Committee, all members of the Local Organizing Committee, as well as all authors and panelists, reviewers, session chairs, exhibitors, workshop organizers, sponsors, keynote speakers, and the invited speakers for their constant support in organizing this conference. \u0000 \u0000It was very encouraging to receive a large number of high quality submissions for papers, panel discussions, and workshops from all over Canada, USA, and the rest of the world. The Conference Committee members and the reviewers faced quite a challenge deciding what to accept/reject for presentation. \u0000 \u0000It gives me a lot of pleasure that we will be joined by four speakers of national and international fame. I am sure that all delegates will enjoy the very informative presentations by our two keynote speakers (Dr. Bjarne Stroustrup & Dr. Gary Poole) and two invited speakers (Dr. Yan Xu and Mr. Paul Denny) on Friday and Saturday. Thanks to all speakers, once again! \u0000 \u0000We are delighted that for the first time in the history of this conference, WCCCE will run in cooperation with ACM and SIGCSE. As part of this in cooperation status, the proceedings will be included in the ACM Digital Library.","PeriodicalId":378747,"journal":{"name":"Proceedings of the 25th Western Canadian Conference on Computing Education","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128329217","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}