Powered by
2023 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2023),
October 25, 2023,
Cascais, Portugal
2023 ACM SIGPLAN International Symposium on SPLASH-E (SPLASH-E 2023)
Frontmatter
Papers
Teaching Programming with Graphics: Pitfalls and a Solution
Luca Chiodini

, Juha Sorva

, and Matthias Hauswirth
(USI Lugano, Switzerland; Aalto University, Finland)
Many introductory programming courses employ graphics
libraries that promote engagement and enable fun visuals.
However, student excitement over graphical outputs is not a
guarantee of conceptual understanding of programming, and
graphics may even distract from intended learning outcomes.
Our contribution is twofold. First, we analyze a selection of
existing graphics libraries designed for novice programmers.
We consider how these libraries foster clean decomposition,
direct students’ attention to key content, and manage complexity; we find shortcomings in these respects. These shortcomings involve the libraries’ support for global coordinates
and external graphics, as well as their rich APIs; we argue
that these features, although powerful, are also potential
pitfalls in student learning. Second, we present the design of
a new graphics library, PyTamaro, which avoids the pitfalls
with a minimalist design that eschews coordinates; we also
outline a pedagogical approach that builds on PyTamaro’s
strengths and deliberate limitations. We briefly discuss PyTamaro’s trade-offs in comparison to coordinate-based libraries.
The work reported here paves the way for future empirical
evaluations of PyTamaro and associated teaching practices.
Article Search
Centering Humans in the Programming Languages Classroom: Building a Text for the Next Generation
Rose Bohrer
(Worcester Polytechnic Institute, USA)
This paper is a companion to the author's open-access textbook, "Human-Centered Programming Languages." Beyond the contributions of the textbook itself, this paper contributes a set of textbook design principles for overcoming those limitations and an analysis of students' stated needs and preferences drawn from anonymous course report data for three courses, the last of which was based on notes that became the basis of the textbook. The textbook is intended to be multi-purpose, with its primary audiences being undergraduate and master's-level elective courses on programming languages within computer science, but significant opportunity for cross-use in disciplines ranging from human-computer interaction and software engineering to gender studies and disability studies. The book is intended to be language-agnostic, but the course in which it will be used first is Rust-based.
Article Search
Composing Turing Machines in FSM
Marco T. Morazán
(Seton Hall University, USA)
For Computer Science students, designing Turing machines is a Herculean task. Formal Languages and Automata Theory textbooks aid students by introducing a graphical notation for Turing machine composition. The difficulty of the task remains unchanged, because design principles are not emphasized and students rarely have the opportunity to program their designs in a textual programming language which allows them to write unit tests. To aid students that are trained as programmers, FSM--a domain-specific language for the Automata Theory classroom--has been developed. Using FSM, students design, program, validate, and establish the correctness of their Turing machines. Once they are familiar with Turing machines, students are introduced to Turing machine composition much like they are introduced to function composition when they learn to design programs. To compose Turing machines in FSM, there is an embedded domain-specific language that students may use. In this manner, students' training in programming is made relevant in the course. This article discusses how students are taught to design, program, validate, and establish the correctness of composed Turing machines.
Article Search
Exploring Engagement and Self-Efficacy in an Introductory Computer Science Course
Rory Kelly

and Meghan Allen
(University of British Columbia, Canada)
Introductory computer science courses often pose unique challenges for non-computer science majoring students, and understanding the factors that contribute to these struggles is crucial for enhancing students' learning experiences. This research delves into the engagement and self-efficacy of 14 international undergraduate students enrolled in an introductory computer science course tailored for non-CS majors. We use a combination of an initial online survey and the Experience Sampling Method (ESM) to gather data on students' experiences and perceptions throughout the course. The ESM interviews conducted during students' tutorials offer real-time insight into the fluctuations of their engagement and self-efficacy. Findings reveal a positive correlation between aspects of engagement and self-efficacy, indicating that students' higher levels of engagement coincide with stronger beliefs in their capabilities to succeed in the course. Moreover, we identified course topics with which students were disengaged and that corresponded to lower self-efficacy. By recognizing the challenges faced by non-CS majoring students and the impact of specific course topics and teaching styles on their engagement and self-efficacy, we provide advice for designing tailored interventions and instructional strategies.
Article Search
Witter: A Library for White-Box Testing of Introductory Programming Algorithms
Afonso Caniço

and André L. Santos
(ISCTE-IUL, Portugal)
Software testing is mostly performed in a black-box manner, that is, without incorporating any knowledge of the internal workings of programs into the tests. This practice usually suffices for enterprises and general practitioners, where the focus lies on producing reliable results while most algorithmic tasks are provided by third-party libraries. However, for computer science students and the like, it might not be straightforward to discern the underlying causes of an incorrect test result or to understand why certain algorithmic goals are not met. We present Witter, a software testing library that allows programming educators to define white-box tests for Java source code. Our tests analyze the execution of a method against a reference solution, to verify that the code not only produces correct results but is also in accordance with a desired algorithm behavior.
Article Search
proc time: 1.68