Quantum mechanical systems exist as superpositions of complementary states that collapse to class... more Quantum mechanical systems exist as superpositions of complementary states that collapse to classical, concrete states upon becoming entangled with the measurement apparatus of observer-participants. A musical composition its performance constitute a quantum system. and Historically, conventional musical notation has presented the appearance of a composition as a deterministic, concrete entity, with interpretation approached as an extrinsic act. This historical perspective inhabits a subspace of the available quantum space. A quantum musical system unifies the composition, instruments, situated performance and perception as a superposition of musical events that collapses to concrete musical events via the interactions and perceptions of performers and audience. A composer captures superposed musical events via implicit or explicit conditional event probabilities, and human and/or machine performers create music by collapsing interrelated probabilities to zeros and ones via observer...
With the advent of high resolution digital video projection and high quality spatial sound system... more With the advent of high resolution digital video projection and high quality spatial sound systems in modern planetariums, the planetarium can become the basis for a unique set of virtual musical instrument capabilities that go well beyond packaged multimedia shows. The dome, circular speaker and circular seating arrangements provide means for skilled composers and performers to create a virtual reality in which attendees are immersed in the composite instrument. This initial foray into designing an audio-visual computerbased instrument for improvisational performance in a planetarium builds on prior, successful work in mapping the rules and state of two-dimensional computer board games to improvised computer music. The unique visual and audio geometries of the planetarium present challenges and opportunities. The game tessellates the dome in mobile, colored hexagons that emulate both atoms and musical scale intervals in an expanding universe. Spatial activity in the game maps to sp...
Hybrid open hashing is a composite algorithm that combines the key-based retrieval properties of ... more Hybrid open hashing is a composite algorithm that combines the key-based retrieval properties of open addressing hash tables with the temporal responsiveness of incremental copy garbage collection. 1 Hybrid open hashing’s table reorganization algorithm alternates between incremental construction of a new table via selective copying of entries, and incremental cleaning of an aged table via emptying of entries. Hybrid open hashing limits worst-case reaction time to an event requiring key-based retrieval, such as state-driven address matching in network packet processing. Emphasis is on predictable retrieval time. This report investigates the drawbacks of conventional hash table algorithms, the properties of open address hashing and incremental garbage collection that the hybrid algorithm combines, performance simulation, and refinements of the basic incremental reorganization algorithm.
extension language, embedded system, debugger, reflection, Tcl/Tk Extension Language Automation o... more extension language, embedded system, debugger, reflection, Tcl/Tk Extension Language Automation of Embedded System Debugging Embedded systems contain several layers of target processing abstraction. These layers include electronic circuit, binary machine code, mnemonic assembly code, and high-level procedural and object-oriented abstractions. Physical and temporal constraints and artifacts within physically embedded systems make it impossible for software engineers to operate at a single layer of processor abstraction. The Luxdbg embedded system debugger exposes these layers to debugger users, and it adds an additional layer, the extension language layer, that
As network traffic throughput requirements continue to increase dramatically, network processors ... more As network traffic throughput requirements continue to increase dramatically, network processors are adding specialized instructions that accelerate the more common arithmetic operations. An example is the checksum, which appears in several popular protocols to guard against using corrupted packets. This paper presents two approaches to checksum calculation that provide significant performance improvement over conventional methods. These approaches use reduction trees similar to those found in parallel multipliers to produce two operands for final summation. Reduction trees are appropriate when an array of words is available to be summed at one time, in contrast to serial summing of word pairs. The two methods vary in the design of the reduction tree. The first approach, leveled reduction based checksumming, uses predefined array sizes of partial sums, leading to a single circuit design. This approach has the benefit of fixed, design-once circuit parameters. The second approach, 3-t...
Parallel coordinate plotting is an established data visualization technique that provides means f... more Parallel coordinate plotting is an established data visualization technique that provides means for graphing and exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like timedomain audio signal waveforms, and they can be translated into audio signals through straightforward mapping algorithms. This study looks at three data sonification algorithms, sonification being the mapping of data into sounds for perceptual exploration, similar to uses of data visualization. Sound-response survey results and subsequent analyses reveal that the most direct method for mapping parallel coordinates of data tuples to audio waveforms is the most accurate for generating sounds that listeners can use to classify data. Future wo...
Parallel coordinate plotting is a data visualization technique that provides means for exploring ... more Parallel coordinate plotting is a data visualization technique that provides means for exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like time-domain audio signal waveforms. This study investigates several timbral data sonification algorithms for classification in which audio waveforms derive from the shapes of parallel coordinate tuple plots of data being classified. Listening-response survey results and analyses reveal that mapping parallel coordinates of data tuples to audio waveforms can be accurate for generating sounds that human listeners can use to classify data. This study also investigates using machine learning algorithms to build a machine listener that approximates human survey taker perfor...
The Model-View-Controller (MVC) is a design pattern for architecting the interactions among human... more The Model-View-Controller (MVC) is a design pattern for architecting the interactions among human users of graphical computing systems with the software Controller that manages user input, the Model that houses system state, and the View that projects the Model state into intelligible graphical form. The present work examines extending MVC into a Distributed Model-View-Controller pattern, starting with a stand-alone MVC system that is amenable to distribution over a local area network (LAN). Distribution takes the form of cloning a stand-alone MVC application into distinct client and server programs, and then altering each for its purpose while maintaining the initial graphical compatibility of the starting, stand-alone system. A graphical client remote control running on a tablet computer sends its Model update events to the server’s Controller via the LAN, acting as a remote input device for the server. The client uses simple, twodimensional graphics for efficiency, while the serv...
Creative coding is the act of computer programming intended to create aesthetic artifacts in one ... more Creative coding is the act of computer programming intended to create aesthetic artifacts in one or more digital media such as graphical images, animated videos, computer games, or musical performances. Visual artists and musicians use computers to compose, to render, and to perform. Algorithms remain as important as they are for any computer program, but their intent is to inspire, or at least to entertain, in contrast to more utilitarian applications of algorithms. This paper outlines the software structures and aesthetic perspectives of two novel algorithms for the creative manipulation of pixels in the Processing language. The first algorithm focuses on manipulating a digital canvas after it has been painted by a set of animated virtual paintbrushes. The metaphor is visual memory, where a digital canvas remembers what was painted during prior animated frames, making manipulation of those memories accessible to the artist. The second algorithm focuses on using an imageprocessing ...
Parallel coordinate plotting is an established data visualization technique that provides means f... more Parallel coordinate plotting is an established data visualization technique that provides means for graphing and exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like timedomain audio signal waveforms, and they can be translated into audio signals through straightforward mapping algorithms. This study looks at three data sonification algorithms, sonification being the mapping of data into sounds for perceptual exploration, similar to uses of data visualization. Sound-response survey results and subsequent analyses reveal that the most direct method for mapping parallel coordinates of data tuples to audio waveforms is the most accurate for generating sounds that listeners can use to classify data. Future wo...
There continue to be underrepresented student populations in undergraduate computer science and i... more There continue to be underrepresented student populations in undergraduate computer science and information technology programs in the United States and Pennsylvania. Despite some enrollment growth, female students in particular continue to be underrepresented. The authors are in the final year of managing a five-year, $614,375 program to support underrepresented student populations in our majors via scholarships and supporting activities, funded by the National Science Foundation. The program has been particularly successful in recruiting and retaining female students. We have discovered several patterns of behavior that provide early warnings for at-risk students. Lack of first-semester contribution to simple activities such as suggested blogging are about 93% accurate in predicting students who will not remain in the program due to lack of motivation and/or reliable work habits. Scholars leave the program because of low grade point averages, changes to non-STEM majors, or droppin...
Sighted people often overestimate the usefulness of tactile diagrams for blind people who need to... more Sighted people often overestimate the usefulness of tactile diagrams for blind people who need to perceive and comprehend entities and relationships in visual structural graphs. Sighted software developers can acquire an overview of the structure of a Unified Modeling Language (UML) design diagram after a quick visual scan. Blind developers using tactile diagrams are impeded by the serial nature of scanning these diagrams with their fingers. However, blind programmers are experts at using text-to-speech screen readers to verbalize lines of existing code at a very rapid rate. Comprehending and debugging code with a screen reader happens extremely quickly because blind developers have a lot of practice using such tools. This paper reports on using a block-structured diagram description language with syntax and keywords similar to modern programming languages to capture and communicate entities and relationships in standard UML diagram types. Prototype software tools include utilities ...
This paper reports the second stage of a study of the correlations between the temporal work patt... more This paper reports the second stage of a study of the correlations between the temporal work patterns of computer programming students and their success or failure as measured by programming project assignment grades and related metrics. The first stage confirmed the importance for most students of getting an early start on a programming project, and it also uncovered the fact that some student groups perform well with late starts, suggesting the likelihood that they engage in the productive practice of active procrastination. The second most important factor for success is the average length of assignment work sessions. Session lengths from 60 to 120 minutes appear to be optimal for most students. Other contributing factors include total time spent on a project and working more day than night sessions. This second stage more than doubles the amount of data collected and analyzed. It finds that procrastination and session length remain prominent, while secondary factors become sligh...
A software interceptor is a procedure or object that interposes itself between an invoking client... more A software interceptor is a procedure or object that interposes itself between an invoking client and an invoked server software entity. Procedural interceptors can redirect procedure invocations to alternative procedures that are selected dynamically at run time. Procedural interceptors are useful for program profiling, tracing, dynamic delegation of operation implementation, and interactive debugging. Distributed interceptors for remote procedure calls support additional capabilities such as protocol bridges, server thread schedulers, fault tolerant replication, security audits and encryption, and performance enhancements such as compression and caching. CORBA, the Common Object Request Broker Architecture, comes with standard portable interceptors, but interceptors are missing from Java Remote Method Invocation (RMI). Java reflection assists adding custom interceptors to RMI by enabling a generator to create interceptor classes automatically. These classes interpose on both the c...
Quantum mechanical systems exist as superpositions of complementary states that collapse to class... more Quantum mechanical systems exist as superpositions of complementary states that collapse to classical, concrete states upon becoming entangled with the measurement apparatus of observer-participants. A musical composition its performance constitute a quantum system. and Historically, conventional musical notation has presented the appearance of a composition as a deterministic, concrete entity, with interpretation approached as an extrinsic act. This historical perspective inhabits a subspace of the available quantum space. A quantum musical system unifies the composition, instruments, situated performance and perception as a superposition of musical events that collapses to concrete musical events via the interactions and perceptions of performers and audience. A composer captures superposed musical events via implicit or explicit conditional event probabilities, and human and/or machine performers create music by collapsing interrelated probabilities to zeros and ones via observer...
With the advent of high resolution digital video projection and high quality spatial sound system... more With the advent of high resolution digital video projection and high quality spatial sound systems in modern planetariums, the planetarium can become the basis for a unique set of virtual musical instrument capabilities that go well beyond packaged multimedia shows. The dome, circular speaker and circular seating arrangements provide means for skilled composers and performers to create a virtual reality in which attendees are immersed in the composite instrument. This initial foray into designing an audio-visual computerbased instrument for improvisational performance in a planetarium builds on prior, successful work in mapping the rules and state of two-dimensional computer board games to improvised computer music. The unique visual and audio geometries of the planetarium present challenges and opportunities. The game tessellates the dome in mobile, colored hexagons that emulate both atoms and musical scale intervals in an expanding universe. Spatial activity in the game maps to sp...
Hybrid open hashing is a composite algorithm that combines the key-based retrieval properties of ... more Hybrid open hashing is a composite algorithm that combines the key-based retrieval properties of open addressing hash tables with the temporal responsiveness of incremental copy garbage collection. 1 Hybrid open hashing’s table reorganization algorithm alternates between incremental construction of a new table via selective copying of entries, and incremental cleaning of an aged table via emptying of entries. Hybrid open hashing limits worst-case reaction time to an event requiring key-based retrieval, such as state-driven address matching in network packet processing. Emphasis is on predictable retrieval time. This report investigates the drawbacks of conventional hash table algorithms, the properties of open address hashing and incremental garbage collection that the hybrid algorithm combines, performance simulation, and refinements of the basic incremental reorganization algorithm.
extension language, embedded system, debugger, reflection, Tcl/Tk Extension Language Automation o... more extension language, embedded system, debugger, reflection, Tcl/Tk Extension Language Automation of Embedded System Debugging Embedded systems contain several layers of target processing abstraction. These layers include electronic circuit, binary machine code, mnemonic assembly code, and high-level procedural and object-oriented abstractions. Physical and temporal constraints and artifacts within physically embedded systems make it impossible for software engineers to operate at a single layer of processor abstraction. The Luxdbg embedded system debugger exposes these layers to debugger users, and it adds an additional layer, the extension language layer, that
As network traffic throughput requirements continue to increase dramatically, network processors ... more As network traffic throughput requirements continue to increase dramatically, network processors are adding specialized instructions that accelerate the more common arithmetic operations. An example is the checksum, which appears in several popular protocols to guard against using corrupted packets. This paper presents two approaches to checksum calculation that provide significant performance improvement over conventional methods. These approaches use reduction trees similar to those found in parallel multipliers to produce two operands for final summation. Reduction trees are appropriate when an array of words is available to be summed at one time, in contrast to serial summing of word pairs. The two methods vary in the design of the reduction tree. The first approach, leveled reduction based checksumming, uses predefined array sizes of partial sums, leading to a single circuit design. This approach has the benefit of fixed, design-once circuit parameters. The second approach, 3-t...
Parallel coordinate plotting is an established data visualization technique that provides means f... more Parallel coordinate plotting is an established data visualization technique that provides means for graphing and exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like timedomain audio signal waveforms, and they can be translated into audio signals through straightforward mapping algorithms. This study looks at three data sonification algorithms, sonification being the mapping of data into sounds for perceptual exploration, similar to uses of data visualization. Sound-response survey results and subsequent analyses reveal that the most direct method for mapping parallel coordinates of data tuples to audio waveforms is the most accurate for generating sounds that listeners can use to classify data. Future wo...
Parallel coordinate plotting is a data visualization technique that provides means for exploring ... more Parallel coordinate plotting is a data visualization technique that provides means for exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like time-domain audio signal waveforms. This study investigates several timbral data sonification algorithms for classification in which audio waveforms derive from the shapes of parallel coordinate tuple plots of data being classified. Listening-response survey results and analyses reveal that mapping parallel coordinates of data tuples to audio waveforms can be accurate for generating sounds that human listeners can use to classify data. This study also investigates using machine learning algorithms to build a machine listener that approximates human survey taker perfor...
The Model-View-Controller (MVC) is a design pattern for architecting the interactions among human... more The Model-View-Controller (MVC) is a design pattern for architecting the interactions among human users of graphical computing systems with the software Controller that manages user input, the Model that houses system state, and the View that projects the Model state into intelligible graphical form. The present work examines extending MVC into a Distributed Model-View-Controller pattern, starting with a stand-alone MVC system that is amenable to distribution over a local area network (LAN). Distribution takes the form of cloning a stand-alone MVC application into distinct client and server programs, and then altering each for its purpose while maintaining the initial graphical compatibility of the starting, stand-alone system. A graphical client remote control running on a tablet computer sends its Model update events to the server’s Controller via the LAN, acting as a remote input device for the server. The client uses simple, twodimensional graphics for efficiency, while the serv...
Creative coding is the act of computer programming intended to create aesthetic artifacts in one ... more Creative coding is the act of computer programming intended to create aesthetic artifacts in one or more digital media such as graphical images, animated videos, computer games, or musical performances. Visual artists and musicians use computers to compose, to render, and to perform. Algorithms remain as important as they are for any computer program, but their intent is to inspire, or at least to entertain, in contrast to more utilitarian applications of algorithms. This paper outlines the software structures and aesthetic perspectives of two novel algorithms for the creative manipulation of pixels in the Processing language. The first algorithm focuses on manipulating a digital canvas after it has been painted by a set of animated virtual paintbrushes. The metaphor is visual memory, where a digital canvas remembers what was painted during prior animated frames, making manipulation of those memories accessible to the artist. The second algorithm focuses on using an imageprocessing ...
Parallel coordinate plotting is an established data visualization technique that provides means f... more Parallel coordinate plotting is an established data visualization technique that provides means for graphing and exploring multidimensional relational datasets on a two-dimensional display. Each vertical axis represents the range of values for one attribute, and each data tuple appears as a connected path traveling left-to-right across the plot, connecting attribute values for that tuple on the vertical axes. Parallel coordinate plots look like timedomain audio signal waveforms, and they can be translated into audio signals through straightforward mapping algorithms. This study looks at three data sonification algorithms, sonification being the mapping of data into sounds for perceptual exploration, similar to uses of data visualization. Sound-response survey results and subsequent analyses reveal that the most direct method for mapping parallel coordinates of data tuples to audio waveforms is the most accurate for generating sounds that listeners can use to classify data. Future wo...
There continue to be underrepresented student populations in undergraduate computer science and i... more There continue to be underrepresented student populations in undergraduate computer science and information technology programs in the United States and Pennsylvania. Despite some enrollment growth, female students in particular continue to be underrepresented. The authors are in the final year of managing a five-year, $614,375 program to support underrepresented student populations in our majors via scholarships and supporting activities, funded by the National Science Foundation. The program has been particularly successful in recruiting and retaining female students. We have discovered several patterns of behavior that provide early warnings for at-risk students. Lack of first-semester contribution to simple activities such as suggested blogging are about 93% accurate in predicting students who will not remain in the program due to lack of motivation and/or reliable work habits. Scholars leave the program because of low grade point averages, changes to non-STEM majors, or droppin...
Sighted people often overestimate the usefulness of tactile diagrams for blind people who need to... more Sighted people often overestimate the usefulness of tactile diagrams for blind people who need to perceive and comprehend entities and relationships in visual structural graphs. Sighted software developers can acquire an overview of the structure of a Unified Modeling Language (UML) design diagram after a quick visual scan. Blind developers using tactile diagrams are impeded by the serial nature of scanning these diagrams with their fingers. However, blind programmers are experts at using text-to-speech screen readers to verbalize lines of existing code at a very rapid rate. Comprehending and debugging code with a screen reader happens extremely quickly because blind developers have a lot of practice using such tools. This paper reports on using a block-structured diagram description language with syntax and keywords similar to modern programming languages to capture and communicate entities and relationships in standard UML diagram types. Prototype software tools include utilities ...
This paper reports the second stage of a study of the correlations between the temporal work patt... more This paper reports the second stage of a study of the correlations between the temporal work patterns of computer programming students and their success or failure as measured by programming project assignment grades and related metrics. The first stage confirmed the importance for most students of getting an early start on a programming project, and it also uncovered the fact that some student groups perform well with late starts, suggesting the likelihood that they engage in the productive practice of active procrastination. The second most important factor for success is the average length of assignment work sessions. Session lengths from 60 to 120 minutes appear to be optimal for most students. Other contributing factors include total time spent on a project and working more day than night sessions. This second stage more than doubles the amount of data collected and analyzed. It finds that procrastination and session length remain prominent, while secondary factors become sligh...
A software interceptor is a procedure or object that interposes itself between an invoking client... more A software interceptor is a procedure or object that interposes itself between an invoking client and an invoked server software entity. Procedural interceptors can redirect procedure invocations to alternative procedures that are selected dynamically at run time. Procedural interceptors are useful for program profiling, tracing, dynamic delegation of operation implementation, and interactive debugging. Distributed interceptors for remote procedure calls support additional capabilities such as protocol bridges, server thread schedulers, fault tolerant replication, security audits and encryption, and performance enhancements such as compression and caching. CORBA, the Common Object Request Broker Architecture, comes with standard portable interceptors, but interceptors are missing from Java Remote Method Invocation (RMI). Java reflection assists adding custom interceptors to RMI by enabling a generator to create interceptor classes automatically. These classes interpose on both the c...
Uploads
Papers by Dale Parson