SIGCSE 2020 Online -
ACM Student Research Competition


SRC #1: A Modular Ethics Curriculum for Computer Science

Authors: Whitney Featherston; Morgan Wheeler


To address the challenging issues presented to a technology-driven generation, we have been designing and testing 15-20 minute modules with conversations surrounding ethical issues in computing and data science. The goal is to meet the needs of current students by incorporating engaging activities, including demonstrations, debates, and interactive quizzes, to maintain their interest and promote critical thinking. The short length of the modules allows them to fit with packed courses and short attention spans. The curriculum is designed to lay the groundwork in the first year, giving a basic understanding of four ethical frameworks. In years two through four, students gain practice in recognizing course material-related dilemmas and in applying these frameworks to find ethical solutions. Additionally, we are developing comprehensive background materials so that professors with limited experience in ethics can easily implement the modules in their classrooms, and students who do not experience the foundational modules will not feel lost. Through workshops, focus groups, and in-class testing of the materials, teachers and students have shown excitement and support for the curriculum, and students not typically engaged in class have found their voice. Verbal and written feedback have shown that the module activities have been successful in helping students evaluate the ethicality of challenging computing-related situations and in effectively articulating their conclusions. To date, twelve modules have been tested, modified, and in some cases re-tested. We are looking forward to sharing our results. Many of the materials created will be available for examination.

SRC #2: Regenerator Placement in Survivable Optical Networks Using Deep Tensor Neural Network

Authors: Derek Wong; Shaun Tseng; Hally Mao; Michal Aibin


With the rapid adoption of the Internet of Things and mobile devices, the global Internet traffic is estimated to increase by nearly three times from 2017 to 2022. Hence, the demand for higher bit rates is necessary to support massive data transfers over optical networks. Ideally, a network that is able to handle many long distance requests at high transmission speeds is preferable. However, given limited spectrum resources, a trade-off is inevitable when selecting the correct routing parameters. On the one hand, we can minimize the usage of resources using spectrally efficient modulation formats. As a result the effective transmission distance of the signal will be reduced. Similarly, if we are to use a low-level modulation format, we can increase the effective range of transmission, but the amount of the used spectrum will also increase. It is in these scenarios where the importance of regenerators become apparent. When the link distance between two nodes is too large, a regenerator is required to regenerate the signal strength. However, regenerators are expensive to install. Additionally, given that the regenerator number needs to be set during the design of the network architecture, efficient calculation of their allocation is required to reduce each node's limitations, thus optimizing the network CAPEX and OPEX. In this paper, we demonstrated the feasibility of using deep tensor neural network to optimize regenerator placement in optical networks. Our approach brings significant improvements over the results achieved by the currently deploying techniques and can be used in the real-life networks.

SRC #3: The AP Computer Science Principles Exam: Teacher Reflections

Authors: Hannah Chipman; Marnie Hill; Tiffany Barnes


While AP Computer Science Principles (CSP) has made great strides in increasing the number of women and underrepresented minorities (URM) taking an AP Computer Science course, the percentage of women and URM passing the AP CSP Exam remains lower than that of non-minority males. The AP CSP Exam consists of two performance-based tasks, create and explore, in addition to a multiple-choice section. We conducted one-on-one interviews with Beauty and Joy of Computing (BJC) Master Teachers to find what they like about the exam, what they do not like, and potential barriers to passing. The teachers mentioned preparedness, including test taking skills, and motivation, specifically to complete the tasks, as reasons for their students' performance on the AP Exam. Community mindset was mentioned as a possible reason for lack of motivation and engagement. Some potential barriers to passing, expressed by teachers, are access to technology, job obligations, and languages in which the AP Exam is offered. Although the create task was well liked by the teachers, some thought the scoring could be improved. In addition, teachers detail how their own assessments compare to the AP CSP Exam, with the majority using programming projects as their main way to assess for student understanding. Half of the teachers cited the amount of time for performance tasks and multiple-choice questions as components of the exam they would change. These findings provide insight into AP CSP Exam performance, teacher suggestions for exam improvements, and details on CS classroom assessments.

SRC #4: Increasing Understanding of Students' Programming Process through Scratch Programming Event Data Analysis

Authors: Minji Kong


Computational thinking (CT) is a problem solving approach that is becoming prominent in educational settings. To help ease students into the world of programming, visual programming tools such as Scratch are used. Researchers are also developing various tools in an attempt to assess students' proficiency in thought processes that make up CT. However, current existing tools mainly utilize students' final code products when evaluating their demonstration of CT, losing their opportunity to understand students' actual learning and programming procedures.

This work presents a logging methodology that records programming actions of students in the Scratch block coding environment to enable an in-depth analysis of students' programming process. With this logging methodology, we conducted a case study with introductory programmers to study how the logs of students' programming processes can provide insight into how they practice CT during programming.

SRC #6: Exploring the Impact of Exposing CS Majors to Programming Concepts using IDE Programming vs. non-IDE Programming in the Classroom

Authors: Sarah Cooper; Ben Clinkscale; Briana Williams; Myles Lewis


Due to the increased demand for computer scientists in the, the importance to improve the retention rate of CS majors who could potentially fill such positions has been ongoing. Literature has produced many efforts for increasing the engagement of CS majors in the field while also exploring ways to improve their ability to develop the ideal skill sets for success. In such efforts, our research explores the impact of visual and/or command-line based programming editors and their ability to shape the students' mental model as they learn to program. This abstract discusses a "think-aloud" protocol assessment that was conducted on two entry level programming courses at a university in the United States during the 2018-2019 school year. The objective of this assessment was to determine whether Repl.IT, a web-based IDE, and Cygwin/Nano Editor, a command line-based tool, impacted student performance while being used for programming. Our preliminary results showed that 41% of the students using Repl.IT completed the assigned task for the assessment, while 53% of the students using the Cygwin/Nano editor did the same. The results concerning assignment incompletion revealed that students who did not complete their assignment and used Repl.IT did so because of assignment complexity and programming language difficulty, whereas assignment complexity and tool usage difficulty lead to assignment incompletion for students using Cygwin/Nano. This assessment also revealed that Repl.IT students exhibited a higher comfort, confidence, and fondness for using their editor than the Cygwin/Nano students.

SRC #7: Using Parsons Problems to Scaffold Metacognitive Awareness

Authors: John Marsden


After novice programmers learn to code, they ideally move directly through a six-stage programming problem-solving process when programming. However, they are usually unaware of this process and often skip stages in the problem-solving process or move through these stages in a sub-optimal order. Avoiding those errors requires a metacognitive awareness of their problem-solving process, which novices often lack. This paper reports on the results of an intervention, which utilizes a Parsons Problem, designed to determine if implicit guidance up through the solution search stage of the problem-solving process will lead to better outcomes for the students as they build a metacognitive scaffolding to support their problem-solving process.

SRC #8: Exploring the Use of Coding Reviews in Early Programming Courses to Gauge Student Learning

Authors: Joshua Olumese; Chauncey Rogers; Donald Conteh; Morgan Whitaker


Programming is a skill that many individuals in tech-related fields have to develop. It is an essential component to all Computer Science (CS) majors' development and learning. Literature show that there is a consistent percentage of CS majors that become stuck and discouraged while learning to program, which sometimes deter them from the major as a whole. Coding reviews are one potential practice that could combat this learning barrier. This practice is common in industry settings and is used by professionals to solve major computational problems. Likewise, in the classroom, coding review practices could be used to help students identify both syntax and semantic flaws, and related code defects of developed solutions. Literature also show that modest attention has been placed on the exploration of coding reviews in early stages of a CS course curriculum. Therefore, more attention could be given to this particular topic. To personally explore this topic in more detail, we analyzed the outcomes from coding review assessments that were conducted on two programming courses at a Mid-Atlantic University in the United States during the 2018-2019 school year. These assessments were embedded into the periodical exams administered in these two courses that taught either Python or C++ programming concepts. The data structures imposed for these reviews ranged from simple function usage to advanced class & object-oriented programming paradigms. The results revealed that students in these respective courses on average were able to analyze the behavior of the code effectively for most of the employed data structures.

SRC #9: Automatically Merging Evolving Goal Models

Authors: Yilin (Lucy) Wang


Goal models helped stakeholders make trade-off decisions in the early stages of project development. While these models were well studied within the academy they had yet to see broad industrial adoption, with the construction of large realistic goal models acting as a significant barrier. Recent work suggested creating models piecemeal, and then merging them together. This merge algorithm had only been demonstrated manually and was time consuming due to unnecessary repetition, as well as deferring all decisions to the user. We aimed to automate the majority of the merge algorithm. We divided this project into two parts: (1) merging the content of goal models, and (2) creating a visual representation of the merged model. Since this work extended prior work on evolving goal models we also considered merging timing information. Using a motivating example, we discussed how we handled conflicts between node names and types, as will as conflicts across multiple time scales. We improved the original algorithm by simplifying evolving functions described over multiple intervals, where possible, and proved the correctness of these changes. We extended a force-directed algorithm to include goal model heuristics to alter the relative position of node types, which made for an aesthetically pleasing layout. To demonstrate effectiveness and scalability of the algorithm, we implemented our automated algorithm in BloomingLeaf, an analysis and modeling tool that allows stakeholders to model goals and intentions.

SRC #10: What are We Asking our Students?

Authors: Angela M Zavaleta Bernuy


Many CS education research papers pull data from student surveys. But are those surveys well designed? Are the questions used validated? Are the results comparable across studies? What exactly are we asking our students? In this work, we performed a systematic literature review of the past 15 years of papers in the three main conferences sponsored by the ACM Special Interest Group on Computer Science Education. Out of 1313 papers analyzed, 44 papers referred to general questions applicable to many or all computer science students. Our analysis showed that many papers were using surveys to extract similar types of information, such as demographics, prior experience or motivation to study computer science. However, the questions were being asked in different ways, using different scales, thus making it difficult or impossible to compare survey results between studies. We further found that while some studies based their questions on well-validated surveys, or shared their questions for possible later validation, approximately half of the papers retrieved neither validated their questions nor shared them to allow for post-hoc validation.

SRC #11: Bias Clustering for Online Political Articles

Authors: Lauren Alvarez; Sofia Ruiz; Sureena Hukkoo; Andrew Forney


News articles can have a profound influence on voter opinions and preferences according to studies conducted on the effects of bias in political news coverage. Because political opinions and preferences can be persuaded, it is important that readers are aware of biases embedded within a story, as it may be perceived differently by others and motivate readers to find different sources to inform their opinions. Whereas previous research has attempted to characterize bias strictly from article text, ours examines the subjective perception of it as a function of the reader's political leanings and salience of the article's source. Our research seeks to determine if we can empirically verify in-group out-group bias in news sources rather than news article content. We present Mechanical Turk participants with a neutral definition of bias and administer a survey that collects data on whether or not readers believe the given definition of bias applies to the given article. The three news sources (CNN, Fox News, and BBC) are randomly displayed as the authoring body on the same article content. Afterward, participants answer demographic questions including their own political leanings. Furthermore, we will discuss the perceived bias by political camp, implications for news source bias, and our goal to harness the results of this experiment in pursuit of training machine learning models that can detect bias from the perspectives of members belonging to particular political leanings.

SRC #12: Analyzing Data Consistency in Smart Home Applications

Authors: Lanqin Wang; Kelly Shaw


Smart Home applications are a quickly growing segment of the Internet of Things (IoT) domain. Many companies offer cloud platforms that enable developers to create and run applications that provide specific Smart Home functions for physical devices installed and connected to the Internet in people's homes. Unfortunately, problems and vulnerabilities relating to data consistency have emerged for these Smart Home platforms, stemming from interfaces that have limited and varied guarantees with respect to atomicity, data consistency, and event ordering. These data consistency concerns are important because many applications are related to devices used for home security and control systems, like smart locks. The Amazon AWS IoT platform enables Internet-connected devices to connect to the AWS Cloud and lets applications in the cloud interact with Internet-connected devices. Because of its many configurable options, the AWS IoT API makes it easy for developers to write applications that do not correctly handle concurrency and data consistency issues, resulting in lost or incorrect state updates. We have developed a static analysis tool for AWS IoT JavaScript applications that detects when software may experience data consistency issues due to how the AWS IoT API was configured and used. We deployed our tool on 10 JavaScript applications in our preliminary analysis; most of these applications could experience erroneous updates of state in the cloud.

SRC #13: A Game Theoretic Analysis of Improvements to Tor's Resilience to Entry-Exit and End-to-End Attacks

Authors: Krisztian Gado; Jens Mache; Alexander Lotero; Lana Parezanin


Tor is among the most used overlay networks for anonymous communication. This anonymity can be undermined via entry-exit and end-to-end attacks. Using Game Theory, we analyze the viability of several methods for reducing Tor's vulnerability to such attacks. Entry-exit attacks rely upon controlling entry and exit nodes -- internal elements within the Tor Network, while end-to-end attacks utilize Autonomous Systems (internet service providers), elements outside of the Tor Network. Because both types of attacks rely on probability, we use Monte Carlo simulation and model the success probability maximizing strategies of adversaries. We analyze changes to Tor's node selection strategy that decrease the success probability of such attacks. Our goal is to support anonymity preserving systems against large Autonomous Systems providers and attackers with plenty of resources. We build upon previous work, but we also test eliminating the exit node bandwidth threshold and decreasing asymmetric routing to make compromising anonymity less likely. Given our results, we suggest the abandonment of the bandwidth threshold of exit nodes. Abandoning this threshold would not affect the bandwidth of the Tor network much, while it would impair an attacker's success probability significantly. We show that an attackers' success probability can be lowered by ?23% over a year of usage. While prior to our changes (and assuming a large fraction of compromised nodes), anonymity is preserved ~62% of the time over a year, implementing our changes increases anonymity preservation to 85%.

SRC #14: Dynamic Data Visualization for using Tableau and MySQL

Authors: Bishakha Upadhyaya; Monica M. McGill


With the increase in research in the field of computer science education over the last decade, there are datasets with valuable information for researchers, educators and policy makers. Oftentimes in large datasets, it can be difficult to tell what the data represents and this can get more difficult as the datasets grow every year. To help people understand and interpret what is happening in the landscape of computing education research, data visualization can be an important tool. For this study, we used Tableau with's database to show how effective data visualization can be to understand the data. We first used data curated from over 500 articles across 10 publication venues (2012-2018) to analyze the research trends in K-12 computing education in the United states as a sample case. We then expanded the dataset to include 2019 data and created a separate page on the site that presents a portion of this data visually. We then used JavaScript and Tableau "short codes" to provide the capability for users to customize the data represented in the visuals. Data now presented on the site includes a heatmap of the locations of students involved as participants in research studies, the types of research reports provided, and the grade levels, gender, race/ethnicity, and other demographic data. This research provides a glimpse of our techniques and outcomes in working toward the ultimate goal of generating a visual representation of data on the website.

SRC #15: How do Non-Majors Approach a CS1 Course?

Authors: Caleb O'Malley


As CS1 enrollment continues to grow, the challenge to address all students' learning preferences grows as well. Accounting for the needs of larger and more diverse populations of students requires innovation in the realms of course design and structure. In a non-major context, these challenges are made even more explicit. By studying the manner in which non-major engineering students approach an introductory programming course, revisions to existing course designs may be better informed. This study presents the analysis of one semester of qualitative data provided by 237 students via survey about their approach to an introductory programming course designed for engineering students. By clustering students into groups based on factors such as their usage of different study materials and prior programming experience, trends in student engagement are observed. We find that students with significant levels of prior programming experience exhibit higher levels of confidence and enjoyment in programming, as well as satisfaction with overall performance. However, these students make less use of available study materials. Students entering the course without any prior experience are more frequently utilize the available course resources. This contrast in approaches and attitudes demonstrates the need for flexibility within CS1 courses that face large, diverse enrollment populations. In order to ensure that all students receive a positive learning experience, many learning pathways must be made available. Therefore, knowledge of student behavior can help to guide instructors in the creation of course content which is more closely focused on what students use to succeed.

SRC #16: Learning Loop Invariants

Authors: Megan Fowler


One aspect of developing correct code, code that functions as specified, is annotating loops with suitable invariants. Loop invariants are useful for human reasoning and are necessary for tool-assisted automated reasoning. Writing loop invariants can be a difficult task for all students, especially beginning software engineering students. In helping students learn to write adequate invariants, we need to understand not only what errors they make, but also why they make them. This poster discusses the use of a Web IDE backed by the RESOLVE verification engine to aid students in developing loop invariants and to collect performance data. In addition to collecting submitted invariant answers, students are asked to provide their steps or thought processes regarding how they arrived at their answers for each submission. The answers and reasons are then analyzed using a mixed-methods approach. Resulting categories of answers indicate that students are able to use formal method concepts with which they are already familiar, such as, pre and post-conditions as a starting place to develop adequate loop invariants. Additionally, some common trouble spots in learning to write invariants are identified. The results will be useful to guide classroom instruction and automated tutoring.

SRC #101: The Data Gap: A Potential Barrier to Gender Equity in Computer Science Education

Authors: Julie Smith


The substantial decline in female enrollment in computer science programs has been a cause of concern, especially as the application of computer technology to an ever-wider range of human endeavor expands. While many studies have examined the attitudes and perceptions of female computer science students, little attention has been paid to studying empirically how classroom interventions-such as curricular choices and pedagogical approaches-may result in disparate impacts in the learning outcomes of male and female students. This study examines recent research articles in leading journals and conference proceedings of computer science education to analyze the gender composition of the subject pool, the extent to which cognitive learning results are disaggregated by gender, and whether there are gender differences in outcomes. This study found that about one-third of studies indicated the gender composition of the subjects, and about one-third of those research subjects were female. About ten percent of papers disaggregated research findings by gender; of those, 30% found differences between male and female subjects. No studies recommended gender disaggregation of data in future work. The lack of data for learning outcomes by gender may be one of the contributors to the paucity of female computer science students; it is possible that interventions found to be more (or less) effective would show different outcomes if the data were considered in light of the gender of the participants. Thus, further research into potential gender differences in the effectiveness of computer science instructional tools is recommended.

SRC #102: Using Augmented Reality to Support Collaborative Problem Solving in Computer Debugging Practice

Authors: Cheng-Yu Chung


Augmented reality (AR) is a visualization technology allowing virtual information to be imposed on physical objects. The contiguity of two-channel representations can enhance understanding of information by reducing extraneous cognitive load resulted by aligning information from different sources. For example, in chemistry, AR can be used to visualize the reaction of catalysts and provides relevant information like molecules and formulas during a lab experiment in real time. AR also makes user interaction with the content more natural compared to traditional computer-based interfaces, e.g., a user can easily share the content with others by pointing a new device to the same target. There has been much research exploring how these AR affordances can support learning of abstract concepts, invisible or unobservable phenomena, and improve interaction. However, the use of AR is less explored in learning computer programming which actually shares similar challenges: the integration of programming logic and the produced outcome is invisible and the interaction between students is usually limited due to the restricted access to computer keyboards and mice. To fill this gap, this study is aimed to explore how AR can support programming problem solving and group collaboration by multimodal analytics including program snapshots and group conversation. I developed a mobile app, Ogmented, which is able to present collaborative programming tasks by AR visualization and meanwhile collect student's conversation during the tasks for multimodal behavior analysis. The result of a pilot study provides an insight into student's reaction on Ogmented and provides a path to further investigation.

SRC #103: Understanding Coding Behaviors in Intermediate CS Students

Authors: Rifat Sabbir Mansur


Gaining proficiency in code design, implementation, testing, and debugging in the context of large projects are essential parts of progressing beyond introductory programming. In intermediate (post CS2) programming courses, many students fail to complete one or more projects on time. The problem starts with poor time-management when developing projects with a 3-5 week lifecycle. These projects become even more difficult to manage if not developed incrementally. Many students neglect to write sufficient test cases and so miss that bugs exist. Then, they have trouble with locating a bug once it is identified. Our goal is to identify bad coding behaviors so that we can provide feedback to students long before the project is due. Therefore, we plan to analyze the time-management, incremental development, testing, and debugging behavior of students to distinguish better coding practice from worse. We have used mixed-method research techniques. First, we collected students' IDE-based clickstream data. From the clickstream data, we deduced the students' personal development process, such as to what extent they use a debugger vs print statements for debugging. We found 90% and 75% of students use print statements and debugger, respectively. We interviewed 12 students to understand their process for time-management, incremental development, testing, and debugging. We also plan to survey 300+ students to see if the interview findings represent the larger population. Our research will be extended to recognize bad coding behaviors in real-time and provide necessary feedback about best coding practices with the help of an intelligent developer assistant.

SRC #104: Evaluating the Effectiveness of Iteration Visualizations

Authors: Molly Domino


Virginia Tech's Introduction to Computational Thinking course is designed for non-majors to learn key concepts in computer science. In an effort to support student reports of struggling with iteration, interactive visualizations have been developed and initial research into their effectiveness is currently under review. While the preliminary data was promising, we are currently conducting interviews with students under IRB to better understand the shorter term gains in student learning. We will be recording these interviews and formally analyzing responses. This poster will present our findings from this analysis and better define the common pitfalls students are experiencing when learning iteration.

SRC #105: The Attrition of Underrepresented Students in Computer Science

Authors: Noura Alba


Recent concern about the underrepresentation of women and racial minorities in computer science (CS) has initiated measures to increase their participation in the field. Unfortunately, these groups remain underrepresented in the undergraduate level of CS. To improve this situation and specifically at the University of Rhode Island, we conducted a study to investigate the attrition rate of underrepresented students who switched to other majors compared to the majority of students. We collected background, demographic, and performance data of all of our students in the first four CS classes for the past four years. We used logistic regression to show any significant effect of gender and/or race on the attrition rate. We also used the Synthetic Minority Oversampling Technique (SMOTE) for oversampling to make up for the small sample of underrepresented students in the major. As a result, we find that underrepresented students are at a higher risk of leaving CS. Another finding of this research is that female students who left CS outperformed male students under the same circumstances, which implies that academic progress is not the main reason that women are changing their majors. Conversely, underrepresented minorities had low grades' averages when they change their majors, which implies that they likely leave CS due to academic struggles.

SRC #106: FLAMES: A Socially Relevant Computing Experience for High School Students

Authors: Amy Isvik


In this poster, I examine a two-pronged, female-oriented, high school computing outreach program, FLAMES, incorporating 1) workshops throughout the school year and 2) an 8-week high school summer intern program run within the Game2Learn lab at North Carolina State University. I focus on examining the effects of the program on students' skills and affect towards computing. Literature has shown that socially relevant themes in computing are engaging for women and underrepresented minorities. Students understanding how these themes connect to computer science helps broaden their view of computing and increases their interest in pursuing a computing career. This initiative uses socially relevant themes, specifically around the context of developing educational tools and block-based programming activities for use in K-12 classrooms. High school students were trained to assist North and South Carolina teachers with the development of Computational Thinking-infused curricula for their science, math, English, and social studies classrooms. Additionally, summer students assisted in research labs alongside undergraduate researchers, aiding in field study observations, software testing, and data classification. This poster presents the design of the program, an overview of the curriculum, and results including both student and teacher feedback. Results show that the outreach program has benefited each of the parties involved, including its student participants, researchers, and the teachers assisted by the participants. I share lessons learned from this experience in order to help other CS departments develop similar broadening participation in computing programs.

SRC #107: Introducing Middle School Students to Programmable Sensor Technologies Through an Immersive Experience

Authors: Alexandra Gendreau Chakarov


Integrating computational thinking into middle school science classes through the use of programmable sensor technologies requires that students are familiar with the sensors and how the sensors can help them figure out the answers to their scientific questions. However current best practice in science education integrates science content and scientific practices (i.e. planning an investigation using the sensors) instead of teaching the practices first. In addition, the goal is to have the students recognize that the sensors would be useful for answering their current questions. To address this issue, I collaboratively designed a week long sensor immersion experience with middle school science teachers as part of a larger design based implementation research project that creates middle school science units that integrate computational thinking using these sensors. Through our observations and reflections with teachers, the necessity of a unit that introduces the students to the sensors became apparent. Working with the teachers, we developed a sensor immersion experience centered around the investigation of a classroom data display that illustrates information about the classroom environment using lights and sound. The data display was constructed using the programmable sensor technologies available to the students and the unit involved them creating and refining a model of how the classroom data display worked. This unit was implemented during the first three months of the 2019/2020 school year and preliminary results suggest that students have a better sense of the capabilities of the sensors and how they can help them in their scientific inquiry.

SRC #108: Teaching Formal Languages through Visualizations, Simulators, Auto-graded Exercises, and Programmed Instruction

Authors: Mostafa Kamel Osman Mohammed


The material taught in a Formal Languages course is mathematical and requires students to practice proofs and algorithms to understand the content. Traditional Formal Languages textbooks are heavy on prose, and homework typically consists of solving many paper exercises. Students need to read a significant amount of text to achieve understanding. Inspired by the principles of the Programmed Instruction (PI) teaching method, we seek to develop a new Formal Languages eTextbook. The PI approach has students read a little, ideally a sentence or a paragraph, and then answer a question or complete an exercise related to that information. Based on the question response, students are permitted to continue to other frames of information or must retry to solve the exercise. However, students need to build Formal Languages models and apply different algorithms. Some instructors make use of Finite State Machine simulators like JFLAP for this purpose. However, JFLAP is built using Java, and it gives no support for auto-grading. We developed an open-access version of JFLAP, called OpenFLAP. OpenFLAP provides proficiency exercises, auto-graded exercises, and visualizations to help students understand and practice Formal Languages contents. To evaluate the pedagogical effectiveness of our new eTextbook, we conduct time and performance evaluations across three offerings of the course CS4114 Formal Languages and Automata at Virginia Tech.

SRC #109: Pin Status: An Arduino Debugging Library for High School E-textile Courses

Authors: Michael Joseph Schneider


When learning to code a student must learn both to create a program and then how to debug said program. Novices often start with print statements to help trace code execution and isolate logical errors. Eventually, they adopt advance debugger practices such as breakpoints, "stepping" through code execution, and "watching" variables as their values are updated. Unfortunately for students working with Arduino devices, there are no debugger tools built into the Arduino IDE. Instead, a student would have to move onto a professional IDE like Atmel Studio and/or acquire a hardware debugger. Except, these options have a steep learning curve and are not intended for a student who has just started to learn how to write code. I am developing an Arduino software library, called Pin Status, to assist novice programmers with debugging common logic errors and provide features specific to the e-textile microcontroller, Adafruit Circuit Playground Classic. These features include a breakpoint method which pauses an Arduino program's execution and offers, via Serial communication, a menu for viewing and/or updating the current value of digital pins and "watched" variables. On the Adafruit Circuit Playground Classic, the library also uses on-board LEDs to show the current value of the digital pins (High/Low). This work has been funded by NSF STEM+C, award #1742081.

SRC #110: A "Low-Floor" Multimeter: Supporting E-textile Debugging by Revealing Voltage and Continuity

Authors: Rona Sadan


STEAM curriculums are widely implemented in K-12 schools as part of the effort to promote computational thinking skills. This, together with increased accessibility of electronic components and kits, has opened the door for novices to engage in physical computing projects. Debugging these projects challenges students to learn and apply electrical concepts together with programming skills. Multimeter, the most common tool for measuring electric circuits, is placing a very high bar for novices to use. This paper presents a work in progress toward the development of a "low floor" multimeter that is designed to be used by novices with no prior electricity knowledge. By providing students the opportunity to form a conceptual understanding of voltage and current flow, we hope to scaffold their exploration and debugging process in a meaningful way.