Powered by
2022 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2022),
December 5, 2022,
Auckland, New Zealand
2022 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2022)
Frontmatter
Welcome from the Chairs
The SPLASH-E symposium is a forum for researchers and educators to discuss
the intersection of education and the core SPLASH research areas: systems, pro-
gramming languages, and their applications. We investigate how to deliver systems
and programming languages concepts to students, how systems and languages can
aid in education broadly, and how to prepare students to apply these concepts to
their later work in industry or academia.
This year's SPLASH-E program includes 8 papers (five long, three
short). This year's program covers a wide gamut of SPLASH-E topics:
various techniques for improving introductory learning; instructor
support for course management; experience reports; general computer
science education; and education in specific languages and programming
language concepts.
Papers
Codehound: Helping Instructors Track Pedagogical Code Dependencies in Course Materials
Sam Lau and
Philip J. Guo
(University of California at San Diego, USA)
Instructors of programming courses must manage a variety of pedagogical dependencies in their teaching materials. For instance, updating the code used in a single lesson can require cascading changes to other lessons in the course. Currently, they must manually maintain these dependencies across many files, which is tedious and error-prone. To help instructors track pedagogical code dependencies, we created a system called Codehound that uses static analysis to automatically detect where functions are introduced and reused through an entire course. To show how Codehound can be used, we present three usage scenarios inspired by our own experiences teaching large data science courses. These scenarios demonstrate how Codehound can help instructors create new content, collaborate with staff to refactor existing content, and estimate the cost of future course changes.
@InProceedings{SPLASH-E22p1,
author = {Sam Lau and Philip J. Guo},
title = {Codehound: Helping Instructors Track Pedagogical Code Dependencies in Course Materials},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {1--6},
doi = {10.1145/3563767.3568126},
year = {2022},
}
Publisher's Version
The Role of Abstraction in Introductory Programming
Kezia Devathasan,
Celina Berg, and
Daniela Damian
(University of Victoria, Canada)
First year computer science (CS) courses have mean failure rates as high as 30.3% [13]. In an attempt to identify and mitigate potential contributing factors to this problem, this study aims to investigate how the understanding of abstraction impacts students’ programming ability and subsequent success in a first-year data structures course. Specifically, we employ the use of videos to explicitly introduce the concept of abstraction and assess understanding through quizzes directly related to concrete programming exercises. Our work is motivated and guided by related work on abstract thinking as it relates to the skillset of a computer scientist, in addition to existing work on the introduction of abstraction as a learning outcome in computer science education. We measure the students’ understanding of abstraction through a series of short weekly quizzes tightly tied to graded programming exercises. Through our analysis we identify specific topics in the introductory CS course that present abstraction difficulties for students, and suggest potential reasons that these topics are particularly challenging. We also evaluate the students’ learning experience when taught abstraction explicitly, discussing both successes and areas in need of improvement. Finally, we recommend introducing abstraction into the early CS curriculum as an explicit learning outcome and treating the topic as a persistent theme throughout courses in order to support students’ understanding of foundational programming.
@InProceedings{SPLASH-E22p7,
author = {Kezia Devathasan and Celina Berg and Daniela Damian},
title = {The Role of Abstraction in Introductory Programming},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {7--13},
doi = {10.1145/3563767.3568125},
year = {2022},
}
Publisher's Version
Crossing Learning Thresholds Progressively via Active Learning
Sarnath Ramnath and
Brahma Dathan
(St. Cloud State University, USA; Metropolitan State University, USA)
Existence of thresholds in learning has been long recognized. Their nature has been well characterized, and it is recognized that they need to be treated differently from other core concepts.
Helping learners cross thresholds has been identified as one of the challenges of course and curriculum design, and best practices for integrating thresholds into the classroom via active learning have been identified. Threshold concepts have been recognized to exist in computing education as well. In this paper we examine two difficult concepts in software development: model selection and substitutability. By treating them as threshold concepts and applying the recommended practices, we have succeeded in spiraling them into a course, with suitable scaffolds, over a period of several weeks. In the course of doing this, we developed examples that enable students to find relevance through a broader view of substitutability, and also developed a novel approach to writing requirements that helped students understand why FSM models are preferred in some situations.
@InProceedings{SPLASH-E22p14,
author = {Sarnath Ramnath and Brahma Dathan},
title = {Crossing Learning Thresholds Progressively via Active Learning},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {14--23},
doi = {10.1145/3563767.3568128},
year = {2022},
}
Publisher's Version
Evaluating the Quality of Student-Written Software Tests with Curated Mutation Analysis
Braxton Hall and
Elisa Baniassad
(University of British Columbia, Canada)
An important learning outcome in software engineering education is the ability to write an effective test suite that rigorously tests a target application. The standard approach for assessing test suites is to check coverage which can be problematic because coverage rewards code invocation, without checking test assertion correctness.
Mutation Analysis (injecting a small fault into a clone of a codebase) has been used in both industry and academia to check test suite quality. A mutant is killed if any tests in the test suite fail on the clone. More mutants killed indicates a stronger suite, as it is more sensitive to defects. Mutation Analysis has been limited in an educational setting because of the prohibitive cost in both time and compute power to run the students’ suites over all generated clones.
We employed Mutation Analysis to assess test suite quality in our upper-year Software Engineering course at a large research intensive university. This paper makes two contributions: (1) We show that it is feasible and effective to use a small sample of hand-written mutants for grading, and (2) We assess effectiveness for promoting student learning by comparing students graded with coverage to those graded with Mutation Analysis.
We found that mutation graded students write more correct tests, check more of the behaviour of invoked code, and more actively seek to understand the project specification.
@InProceedings{SPLASH-E22p24,
author = {Braxton Hall and Elisa Baniassad},
title = {Evaluating the Quality of Student-Written Software Tests with Curated Mutation Analysis},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {24--34},
doi = {10.1145/3563767.3568132},
year = {2022},
}
Publisher's Version
Archive submitted (8.2 kB)
Info
Data Science Pedagogy to Support Industry, Governmental, and Research Initiatives
Kevin Dick,
Hoda Khalil, and
Gabriel A. Wainer
(Carleton University, Canada)
Data Science practices are increasingly leveraged in disparate domains of research, whether as part of industry workflows, governmental department initiatives, or open problems within academic communities. Herein, we describe designing term-projects to introduce senior undergraduate students to applied Data Science research for industry, governmental, or academic "clients" through a series of course assignments and client meetings. We outline the lessons learned and describe how they may be adapted within similar courses. Students are familiarized with data science best practices, obtain applied research experience, and (potentially) professionally benefit from an actual research contribution in the form of a peer-reviewed conference publication; at time of writing, we have published three student-led projects in the proceedings of eminent peer-reviewed conferences. We highly recommend introducing undergraduate students to such client-serving research applications early in their program to encourage them to consider pursuing a research-focused career path.
@InProceedings{SPLASH-E22p35,
author = {Kevin Dick and Hoda Khalil and Gabriel A. Wainer},
title = {Data Science Pedagogy to Support Industry, Governmental, and Research Initiatives},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {35--40},
doi = {10.1145/3563767.3568130},
year = {2022},
}
Publisher's Version
Expressions in Java: Essential, Prevalent, Neglected?
Luca Chiodini,
Igor Moreno Santos, and
Matthias Hauswirth
(USI Lugano, Switzerland)
Expressions are the building blocks of formal languages such as lambda calculus as well as of programming languages that are closely modeled after it. Although expressions are also an important part of programs in languages like Java, that are not primarily functional, teaching practices typically don’t focus as much on expressions.
We conduct both a theoretical analysis of the Java language, as well as an empirical analysis of the use of expressions in Java programs by novices, to understand the role expressions play in writing programs. We then proceed by systematically analyzing teaching materials for Java to characterize how they present expressions.
Our findings show that expressions are an essential construct in Java, that they are prevalent in student code, but that current textbooks do not introduce expressions as the central, general, and compositional concept they are.
@InProceedings{SPLASH-E22p41,
author = {Luca Chiodini and Igor Moreno Santos and Matthias Hauswirth},
title = {Expressions in Java: Essential, Prevalent, Neglected?},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {41--51},
doi = {10.1145/3563767.3568131},
year = {2022},
}
Publisher's Version
Team Harmony before, during, and after COVID-19
Noa Heyl,
Elisa Baniassad, and
Oluwakemi Ola
(University of British Columbia, Canada)
Teamwork is integral to any computer science curriculum because it provides students with experiences that mirror the industry. Some students are resistant to working in teams because of the perceived inequities. Assessing individual participation and team dynamics can provide faculty with valuable information to design and deploy interventions to improve students’ teamwork skills and help dysfunctional teams.
This work looks at the team harmony experience of pairs in a large (300 person) third-year Software Engineering class in a North American research-intensive university. For the last seven semesters, we asked students to regularly report their sense of equity relating to their contributions to group discussions, influence over task assignments, and overall contributions to their course project development.
Based on our analyses, four periods emerged: prior to COVID-19, during the transitional period as restrictions were applied due to the pandemic, during COVID-19, and after the acute COVID-19 period ended and restrictions were lifted. Overall, we saw that students experienced a decrease in team harmony during the transition to lockdown and that harmony recovered in subsequent semesters, with some measures gradually trending worse over time in the post-pandemic period (once the restrictions were lifted).
@InProceedings{SPLASH-E22p52,
author = {Noa Heyl and Elisa Baniassad and Oluwakemi Ola},
title = {Team Harmony before, during, and after COVID-19},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {52--61},
doi = {10.1145/3563767.3568133},
year = {2022},
}
Publisher's Version
Mio: A Block-Based Environment for Program Design
Junya Nose,
Youyou Cong, and
Hidehiko Masuhara
(SoftBank, Japan; Tokyo Institute of Technology, Japan)
Program design should be taught with a comprehensible guideline and
appropriate tool support.
While Felleisen et al.'s program design recipe serves as a good guideline
for novice learners, no existing tool provides sufficient support for
step-by-step design.
We propose Mio, an environment for designing programs based on the design
recipe.
In Mio, the programmer uses blocks to express design artifacts, such as
examples of input and output data.
The system checks the consistency of the design, gives feedback to the
programmer, and produces a half-completed program for use in steps after
designing.
A preliminary experiment in the classroom showed its ability to make
program design easier for novices, and to encourage programmers to follow
the design recipe.
In this paper, we demonstrate the core features of Mio, report the results
of the experiment, and discuss our plans for extensions.
@InProceedings{SPLASH-E22p62,
author = {Junya Nose and Youyou Cong and Hidehiko Masuhara},
title = {Mio: A Block-Based Environment for Program Design},
booktitle = {Proc.\ SPLASH-E},
publisher = {ACM},
pages = {62--69},
doi = {10.1145/3563767.3568127},
year = {2022},
}
Publisher's Version
proc time: 3.25