Professional and Academic Publications of Josh Cogliati

Thesis: Visualizing the Pumping Lemma for Regular Languages

PDF Thesis at Montana State University, Bozeman, July, 2004.

Abstract: The pumping lemma for regular languages and its application are among the more difficult concepts students encounter in an introductory theory of computing course. The pumping lemma is used to prove that particular languages are not regular. Traditional methods of teaching the pumping lemma seem inadequate for helping average students learn this concept.
In this thesis we describe a set of software tools that help students visualize the pumping lemma for regular language. The Java programming language was used to create active learning animations of various aspects of the pumping lemma that run as applets in web browsers. Each of the steps in the proof of the pumping lemma is animated. The finite state automaton animations can be manipulated so that the concepts can be tried easily. With the feedback provided, student mistakes in understanding the concept can be discovered and quickly corrected.
New methods for teaching the pumping lemma are considered. These allow stu- dents to proceed at their own pace while learning about the pumping lemma through interactive animations. These methods can be used to augment or replace traditional teaching approaches. The pumping lemma animator will be included in an ongoing project designed to create animations and interactive tools for a complete course on theory of computing.

Dissertation: Pebble bed pebble motion: Simulation and Applications

PDF HTML Dissertation at Idaho State University, Pocatello, November, 2010.

Abstract: Pebble bed reactors (PBR) have moving graphite fuel pebbles. This unique feature provides advantages, but also means that simulation of the reactor requires understanding the typical motion and location of the granular flow of pebbles.
This dissertation presents a method for simulation of motion of the pebbles in a PBR. A new mechanical motion simulator, PEBBLES, efficiently simulates the key elements of motion of the pebbles in a PBR. This model simulates gravitational force and contact forces including kinetic and true static friction. It's used for a variety of tasks including simulation of the effect of earthquakes on a PBR, calculation of packing fractions, Dancoff factors, pebble wear and the pebble force on the walls. The simulator includes a new differential static friction model for the varied geometries of PBRs. A new static friction benchmark was devised via analytically solving the mechanics equations to determine the minimum pebble-to-pebble friction and pebble-to-surface friction for a five pebble pyramid. This pyramid check as well as a comparison to the Janssen formula was used to test the new static friction equations.
Because larger pebble bed simulations involve hundreds of thousands of pebbles and long periods of time, the PEBBLES code has been parallelized. PEBBLES runs on shared memory architectures and distributed memory architectures. For the shared memory architecture, the code uses a new O(n) lock-less parallel collision detection algorithm to determine which pebbles are likely to be in contact. The new collision detection algorithm improves on the traditional non-parallel O(n log(n)) collision detection algorithm. These features combine to form a fast parallel pebble motion simulation.
The PEBBLES code provides new capabilities for understanding and optimizing PBRs. The PEBBLES code has provided the pebble motion data required to calculate the motion of pebbles during a simulated earthquake. The PEBBLES code provides the ability to determine the contact forces and the lengths of motion in contact. This information combined with the proper wear coefficients can be used to determine the dust production from mechanical wear. These new capabilities enhance the understanding of PBRs, and the capabilities of the code will allow future improvements in understanding.

The Marbles code is an open source derivative of the PEBBLES code.