Browsing by Author "Bidlake, Leah"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
Item Examining the mental representations formed by programmers during parallel program comprehension(University of New Brunswick, 2024-06) Bidlake, Leah; Aubanel, Eric; Voyer, DanielModifying, debugging, optimizing, and extending existing code are common tasks programmers perform that require them to understand code by forming mental representations. Understanding these mental representations is important for informing instructional practices and the development of visualizations and tools that are effective in assisting programmers with these tasks. This work represents the first published empirical research on mental representations formed during program comprehension using parallel code. The systematic literature review conducted in Article I found that no empirical research on mental representations formed during program comprehension had previously been conducted using parallel code. Prior work on mental representations using sequential code found that programmers form a program model and a situation model of varying strengths depending on the task, expertise, and programming language. Given the considerable differences between sequential and parallel programming, it was not possible to determine if the results of the research using sequential code would resemble the mental representations formed during parallel program comprehension. An execution model had been proposed but had not previously been empirically studied. Due to the lack of prior work on program comprehension using parallel code, a pilot study was conducted in Article II involving expert parallel programmers. The pilot study determined that the level of difficulty of the stimuli and parameters of the study were appropriate for the target population. The pilot study was followed by the main study in Article III. The results of this study provided the first empirical evidence that programmers form an execution model during the comprehension of parallel code. Article IV studied the progression of mental representations of experienced programmers while they were learning parallel programming. This study also introduced a novel method for externalizing and analyzing mental representations formed during program comprehension. Article IV found that as programmers learn parallel programming they form a stronger execution model while their situation model becomes weaker. Article III and IV also identified themes related to the components of code programmers use to determine the presence of data races in parallel code. This work forms a basis for future research on program comprehension in the parallel programming paradigm.Item Grailog KS Viz 2.0: graph-logic knowledge visualization by XML-based translation(University of New Brunswick, 2016) Bidlake, Leah; Boley, Harold; Baker, ChrisKnowledge visualization is the expression of knowledge through graphical presentations with the goal of validating or communicating knowledge. Formal knowledge, which is used in Data Modeling, the Semantic Web, etc., is based on ontologies and rules, which can be represented in (Description and Horn) logics and presented as (generalized) graphs. Graph Inscribed Logic (Grailog) can be used to visualize RuleML knowledge. The earlier Grailog KS Viz transforms Datalog RuleML to Grailog visualizations in Scalable Vector Graphics (SVG). This thesis develops a tool, Grailog KS Viz 2.0, that is able to visualize Horn Logic (Hornlog) with Equality. It uses XSLT 2.0 with internal JavaScript to process arbitrary levels of function nesting in a recursive manner. The tool has also been extended from n-ary relations with n ≥ 2 to those with n ≥ 1 (including classes as unary relations), based on the labelnode normal form of Grailog. JavaScript is used to calculate the coordinates for positioning, and determines the dimensions of, the SVG elements and viewport, but is no longer required in the static image. Our Purifier thus removes the internal JavaScript from the static Grailog/SVG visualization generated by the tool. This assures that there are no malicious scripts, reduces the time required to render the Grailog/SVG visualization, and greatly reduces the final file size. The visualization of function applications with multiple levels of nesting generated by Grailog KS Viz 2.0 was evaluated using test cases that illuminate knowledge about graph-theoretical definitions. A larger use case was developed for teaching the business rules of managing the financial aspect of a non-profit organization. The processing speed as well as quality and accuracy of the rendered SVG are consistently high across common modern Web browsers. Grailog KS Viz 2.0 thus provides increased security, expressivity, and efficiency for viewing, sharing, and storing Grailog/SVG visualizations.