The SPLASH-E symposium is a forum for researchers and educators to discuss the intersection of education and the core SPLASH research areas: systems, programming 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.
Proceeding Downloads
The common coder’s scratch programming idioms and their impact on project remixing
As Scratch has become one of the most popular educational programming languages, understanding its common programming idioms can benefit both computing educators and learners. This understanding can fine-tune the curricular development to help learners ...
“You have said too much”: Java-like verbosity anti-patterns in Python codebases
As a popular language for teaching introductory programming, Java can profoundly influence beginner programmers with its coding style and idioms. Despite its many advantages, the paradigmatic coding style in Java is often described as verbose. As a ...
Course experience report: full-class compiler collaboration
Compilers are large software systems. In course projects it is often a challenge for students to build a significant compiler on their own with features like memory management, closures, inheritance, and more. We report on our experience splitting a ...
Teaching DevOps: a tale of two universities
DevOps is a set of practices in software engineering that is in high demand by industry. It is a dynamic field which constantly adds new methods and tools. Teaching DevOps prepares today’s computer science students for best-practices in a working ...
PaCon: a symbolic analysis approach for tactic-oriented clustering of programming submissions
Enrollment in programming courses increasingly surges. To maintain the quality of education in programming courses, instructors need ways to understand the performance of students and give feedback accordingly at scale. For example, it is important for ...
Machine learning pedagogy to support the research community
Machine learning methods are increasingly leveraged in disparate domains of research. Herein, we describe our curriculum design to introduce undergraduate students to applied research through a series of course assignments and a competition among peers ...
Reframing the Liskov substitution principle through the lens of testing
In this essay, we explore a new pedagogical framing ofway of pedagogically and teaching the Liskov Substitution Principle (LSP). In addition to, or perhaps even in place of, teaching the specifics of the rule itself, we advocatepropose teaching an ...
The efficacy of online office hours: an experience report
To facilitate assisting students while online during the COVID 19 pandemic, we transitioned to online office hours. These were managed by an automated queue which kept track of who was waiting in office hours, and for how long. We combined data about ...
Teachable moments in functional audio processing
The atomic entity of digital audio processing systems is a digital audio signal, i.e. a sequence of sound samples that represent the amplitude of a sound wave at discrete time intervals. Such signals are transformed additively, by combining them into ...
A stepper for a functional JavaScript sublanguage
The first two chapters of the introductory computer science textbook Structure and Interpretation of Computer Programs, JavaScript Adaptation (SICP JS), use a subset of JavaScript called Source §2. The book introduces the reduction-based “substitution ...
Ruggedizing CS1 robotics: tools and approaches for online teaching
First-year students benefit from robotics-based programming exercises by learning how to use sensors to gain information on the (changing) world surrounding the robot, how to model this information using data structures, and how to design algorithms for ...
Shrinking JavaScript for CS1
In teaching and learning programming at first-year-university level, simple languages with small feature sets are preferable over industry-strength languages with extensive feature sets, to reduce the learners' cognitive load. At the same time, there is ...
Index Terms
- Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E