Table of Contents
Fetching ...

A Learning Support Method for Multi-threaded Programs Using Trace Tables

Takumi Murata, Hiroaki Hashiura

TL;DR

Debugging multi-threaded programs is notoriously time-consuming due to scheduling and race conditions. The paper introduces a learning tool based on enhanced trace tables that visualize inter-thread execution and support trace-based exercises (trace selection and fill-in-the-blank) with interactive answer checking. In experiments, the enhanced trace table did not improve test scores but reduced learning time compared to a text-based trace tool, suggesting improved efficiency though not higher accuracy in this initial study. The work presents a scalable approach to teaching concurrency concepts through trace-driven visualization, with potential for refinement and larger-scale validation.

Abstract

Multi-threaded programs are expected to improve responsiveness and conserve resources by dividing an application process into multiple threads for concurrent processing. However, due to scheduling and the interaction of multiple threads, their runtime behavior is more complex than that of single-threaded programs, making which makes debugging difficult unless the concepts specific to multi-threaded programs and the execution order of instructions can be understood. In this paper, we propose a learning tool for multi-threaded programs using trace tables.

A Learning Support Method for Multi-threaded Programs Using Trace Tables

TL;DR

Debugging multi-threaded programs is notoriously time-consuming due to scheduling and race conditions. The paper introduces a learning tool based on enhanced trace tables that visualize inter-thread execution and support trace-based exercises (trace selection and fill-in-the-blank) with interactive answer checking. In experiments, the enhanced trace table did not improve test scores but reduced learning time compared to a text-based trace tool, suggesting improved efficiency though not higher accuracy in this initial study. The work presents a scalable approach to teaching concurrency concepts through trace-driven visualization, with potential for refinement and larger-scale validation.

Abstract

Multi-threaded programs are expected to improve responsiveness and conserve resources by dividing an application process into multiple threads for concurrent processing. However, due to scheduling and the interaction of multiple threads, their runtime behavior is more complex than that of single-threaded programs, making which makes debugging difficult unless the concepts specific to multi-threaded programs and the execution order of instructions can be understood. In this paper, we propose a learning tool for multi-threaded programs using trace tables.
Paper Structure (16 sections, 13 figures)

This paper contains 16 sections, 13 figures.

Figures (13)

  • Figure 1: Example of trace table
  • Figure 2: Part of the enhanced trace table
  • Figure 3: Part of selection question screen
  • Figure 4: Answer checking screen (selection question)
  • Figure 5: Part of fill-in-the-blank screen
  • ...and 8 more figures