skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Visualizing Classic Synchronization Problems: Dining Philosophers, Producers-Consumers, and Readers-Writers
Classic synchronization problems are often used to introduce students to the subtleties of concurrency and synchronization mechanisms, such as semaphores, monitors, locks, and condition variables. The Dining Philosophers, Producers-Consumers, and Readers-Writers are all classic problems in which a correct solution requires the actions of multiple processes or threads to be synchronized. In this paper, we present visualizations for these three problems and describe their use as pedagogical tools to help students build accurate mental models of concurrency abstractions such as starvation, deadlock, livelock, and correct execution. We also present the results of an experiment that indicate students find using these visualizations to be significantly more engaging than reading a textbook, with no significant difference in learning. We do not claim that our visualizations should replace a course text; rather we present them as engaging pedagogical tools to complement the textbook in courses on Operating Systems, Programming Languages, and other courses where concurrency and synchronization are covered.  more » « less
Award ID(s):
1822486
PAR ID:
10113207
Author(s) / Creator(s):
; ;
Date Published:
Journal Name:
Proceedings of the 2019 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE’19).
Page Range / eLocation ID:
934 to 940
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Today, AI tools are generally considered as education disrupters. In this paper, we put them in context with more traditional tools, showing how they complement the pedagogical potential of the former. We motivate a set of specific novel ways in which state-of-the-art tools, individually and together, can influence the teaching of concurrency. The pedagogy tasks we consider are illustrating concepts, creating motivating and debuggable assignments, assessing the runtime behavior and source code of solutions manually and automatically, generating model solutions for code and essay questions, discussing conceptual questions in class, and being aware of in-progress work. We use examples from past courses and training sessions in which we have been involved to illustrate the potential and actual influence of tools on these tasks. Some of the tools we consider are popular tools such as interactive programming environments and chat tools - we show novel uses of them. Some of the others such as testing and visualization tools are in-use novel tools - we discuss how they been used. The final group consists of AI tools such as ChatGPT 3.5 and 4.0 - we discuss their potential and how they can be integrated with traditional tools to realize this potential. We also show that version 4.0 has a better understanding of advanced concepts in synchronization and coordination than version 3.5, and both have a remarkable ability to understand concepts in concurrency, which can be expected to grow with advances in AI. 
    more » « less
  2. This work in progress research paper considers the question, what kind of problems do engineering students commonly solve during their education? Engineering problems have been generally classified as ill-structured/open-ended or well-structured/closed-ended. Various authors have identified the characteristics of ill-structured problems or presented typologies of problems. Simple definitions state that well-structured problems are simple, concrete, and have a single solution, while ill-structured problems are complex, abstract, and have multiple possible solutions (Jonassen, 1997, 2000). More detailed classifications have been provided by Shin, Jonassen, and McGee (2003), Voss (2006), and Johnstone (2001). It is commonly understood that classroom problems are well-structured while workplace problems are ill-structured, but we cannot find any empirical data to confirm or deny this proposition. Engineers commonly encounter ill-structured problems such as design problems in the field therefore problem-solving skills are invaluable and should be taught in engineering courses. This research specifically looks at the types of problems present in the two most commonly used statics textbooks (Hibbeler, 2016; Beer, et al., 2019). All end-of-chapter problems in these textbooks were classified using Jonassen’s (2000) well-known typology of problem types. Out of 3,387 problems between both books, 99% fell into the algorithmic category and the remaining fell into the logic category. These preliminary results provide an understanding of the types of problems engineering students most commonly encounter in their classes. Prior research has documented that textbook example problems exert a strong influence on students' problem-solving strategies (Lee et al., 2013). If instructors only assign textbook problems, students in statics courses do not see any ill-structured problems at that stage in their education. We argue that even in foundational courses such as statics, students should be exposed to ill-structured problems. By providing opportunities for students to solve more ill-structured problems, students can become more familiar with them and become better prepared for the workforce. Moving forward, textbooks from several other courses will be analyzed to determine the difference between a fundamental engineering course such as statics and upper-level courses. This research will allow us to determine how the problem types differ between entry level and advanced classes and reveal if engineering textbooks primarily contain well-structured problems. Keywords: problem solving, textbooks, ill-structured problems 
    more » « less
  3. Novice programmers need to write basic code as part of the learning process, but they often face difficulties. To assist struggling students, we recently implemented personalized Parsons problems, which are code puzzles where students arrange blocks of code to solve them, as pop-up scaffolding. Students found them to be more engaging and preferred them for learning, instead of simply receiving the correct answer, such as the response they might get from generative AI tools like ChatGPT. However, a drawback of using Parsons problems as scaffolding is that students may be able to put the code blocks in the correct order without fully understanding the rationale of the correct solution. As a result, the learning benefits of scaffolding are compromised. Can we improve the understanding of personalized Parsons scaffolding by providing textual code explanations? In this poster, we propose a design that incorporates multiple levels of textual explanations for the Parsons problems. This design will be used for future technical evaluations and classroom experiments. These experiments will explore the effectiveness of adding textual explanations to Parsons problems to improve instructional benefits. 
    more » « less
  4. Although undergraduate enrollment in Computer Science has remained strong and seen substantial increases in the past decade, retention of majors remains a significant concern, particularly for students at the freshman and sophomore level that are tackling foundational courses on algorithms and data structures. In this work, we present BRIDGES, a software infrastructure designed to enable the creation of more engaging assignments in introductory data structures courses by providing students with a simplified API that allows them to populate their own data structure implementations with live, real-world, and interesting data sets, such as those from popular social networks (e.g., Twitter, Facebook). BRIDGES also provides the ability for students to create and explore {\em visualizations} of the execution of the data structures that they construct in their course assignments, which can promote better understanding of the data structure and its underlying algorithms; these visualizations can be easily shared via a weblink with peers, family, and instructional staff. In this paper, we present the BRIDGES system, its design, architecture and its use in our data structures course over two semesters. 
    more » « less
  5. Gardner, Stephanie (Ed.)
    Anxiety can impact overall performance and persistence in college. Student response systems (SRSs), real-time active-learning technologies used to engage students and gauge their understanding, have been shown to elicit anxiety for some students. Kahoot! is an SRS technology that differs from others in that it involves gamification, the use of gamelike elements. Recent studies have explored the impact of active-learning strategies on student anxiety across different institutions, but there is little known about how Kahoot! impacts student perceived anxiety, especially in comparison with other active-learning strategies. In two complementary yet parallel studies of introductory biology courses at a western research-intensive institution ( n = 694) and a southeastern research-intensive institution ( n = 60), we measured students’ perceived anxiety. We then explored how students were influenced by nongraded Kahoot! play and other elements of instruction. Using previously developed and course-specific pre- and post-course surveys, we found students at both universities agreed that nongraded Kahoot! play caused less anxiety compared with other pedagogical practices, such as working in small groups or reading the textbook. After playing Kahoot!, lower-performing students demonstrated greater engagement and lower levels of anxiety compared with their peers, suggesting that Kahoot! may be a particularly engaging active-learning strategy for these students. 
    more » « less