About
108
Publications
20,881
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
440
Citations
Introduction
I continue conducting research (on XML compression) and supervising graduate students even though I retired three years ago. I am an Adjunct Professor and Professor Emeritus at Acadia University.
When I have free time, I like to travel with my wife and listen to music.
Current institution
Additional affiliations
February 1982 - June 2010
Education
June 1970 - June 1975
Publications
Publications (108)
An XML document D often has a regular structure, i.e., it is composed of many similarly named and structured subtrees. Therefore, the entropy of a trees structuredness should be relatively low and thus the trees should be highly compressible by transforming them to an intermediate form. In general, this idea is used in permutation based XML-conscio...
The popularity of role-based access control (RBAC) policies within industry has generated consid-erable interest in the research community. Since XML has become a de facto standard for data representation, most RBAC policies are expressed in XML. Although XML documents can be very large, no succinct imple-mentations for these policies exist. This p...
With the renewed industrial and academic interest in Column-Oriented Database Management Systems, a lot of interest has been shown in the area of software optimizations designed to improve the efficiency of queries in the Column-Oriented domain. Meanwhile, XML database management systems are often considered in the context of mapping its hierarchal...
The advantages of the eXtensible Markup Language, XML, come at a cost, especially for huge datasets or when used on small mobile devices. Several known XML-conscious compressors used in real time environments compress data during data streaming. This paper presents a study of new real time algorithms that exploit local structural redundan- cies of...
The verbose nature of XML results in overheads in storage and network transfers, which may be overcome by using parallel computing. This paper presents four permuting parallel XML compressors, based on an existing XML compressor, called XSAQCT. Tests were performed on multi-core machines using a test suite incorporating XML documents with various c...
Permutation based XML-conscious compressors permute the input document to improve the compression ratio and support efficiency of operations, such as queries or updates. One such compressor, XSAQCT, uses the properties of the permuted document, called an annotated tree, to these operations. This paper provides the formal background for the definiti...
The verbose nature of XML requires data compression, which makes it more difficult to efficiently imple- ment querying. At the same time, the renewed industrial and academic interest in Column-Oriented DBMS (column-stores) resulted in improved efficiency of queries in these DBMS. Nevertheless there has been no research on relations between XML comp...
The verbose nature of XML results in large overheads in storage and network transfers, but existing research on designing XML compressors have not attempted to take advantage of parallel computing. This paper studies efficiency of four ver- sions of complete schema-less single-pass parallel XML compressors, based on XSAQCT, an existing XML compress...
The advantages of using XML come at the cost, especially when used on networks and small mobile devices. This paper presents a design and implementation of four online XML compression algorithms, which exploit local structural redundancies of pre-order traversals of an XML tree, and focus on reducing the overhead of sending packets and maintaining...
Online communication and various other Web applications, such as collaborative systems using XML as a data representation often suffer from performance problems caused by the verbose nature of XML. In this paper, we present an XML-conscious compressor designed to alleviate these problems, by using it online and evaluating queries using lazy decompr...
Because of a growing interest in using XML for massive complex data there has been considerable
research on designing XML compressors. This paper presents our research aimed at building parallel XML compressors,
using Java and OpenMP (with C++). Our findings show that OpenMP is a preferred choice achieving better results than
Java using a multi-cor...
Because of a growing interest in using XML for massive complex data there has been considerable research on designing XML compressors. This paper presents our research aimed at building parallel XML compressors, using Java and OpenMP (with C++). Our findings show that OpenMP is a preferred choice achieving better results than Java using a multi-cor...
Because of the ever-growing number of applications that send numerous and potentially large XML files over networks there has been a recent interest in effi- cient updates of XML documents. However all known approaches deal with uncom- pressed documents. In this paper, we describe a novel XML compressor, XSAQCT designed to improve the efficiency of...
Role-based access control policies (RBAC) are often used to provide access to fragments of static XML documents. Existing implementations of such RBACs often disseminate a single document encrypted with multiple cryptographic keys. However, most existing approaches are subject to role proliferation, especially in the case of large organizations whe...
Purpose
The purpose of this paper is to consider the secure publishing of XML documents, where a single copy of an XML document is disseminated and a stated role‐based access control policy (RBACP) is enforced via selective encryption. It describes a more efficient solution over previously proposed approaches, in which both policy specification and...
XML (Extensible Markup Language) is a meta-language (developed by the W3C, World Wide Web Consortium in 1996), which represents semi-structured data using markups. While the use of XML facilitates the interchange and access of data, its verbose nature tends to considerably increase the size of a data file. This increase in size limits applications...
Understanding of algorithms is one of the most challenging aspects of the study of computer science. Over two decades of research has been devoted to improving techniques to learn and teach algorithms. In this work, we present a new approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization...
This article presents a novel approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization systems. The main idea is that at any given time, a learner is able to focus on a single problem. This problem can be explained, studied, understood, and tested, before the learner moves on to study ano...
Popularity of social networks is growing rapidly and secure publishing is an important implementation tool for these networks. At the same time, recent implementations of access control policies (ACPs) for sharing fragments of XML documents have moved from distributing to users numerous sanitized sub-documents to disseminating a single document mul...
We consider the setting of secure publish ing of XML documents, in which read-only access control policies (ACPs) over static XML datasets are enforced using cryptographic keys. The role-based access control ( RBAC) model provides a flexible method for specifying suc h policies. Extending the RBAC model to include role parameterization addresses th...
Understanding of algorithms is one of the most challenging aspects of the study of computer science. Over two decades of research has been devoted to improving techniques to learn and teach algorithms. In this work, we present a new approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization...
Purpose
The purpose of this paper is to present the development of a system called Structured Hypermedia Algorithm Explanation (SHALEX), as a remedy for the limitations existing within the current traditional algorithm animation (AA) systems. SHALEX provides several novel features, such as use of invariants, reflection of the high‐level structure o...
P2P [Peer-to-Peer] systems use messaging for communication amongst peers, and therefore the efficiency of messaging is a key concern for any P2P environment; particularly environments with a potentially large number of peers. One of popular representations of a P2P system is JXTA, which uses XML-based messaging. In this paper, we describe how the u...
Understanding of algorithms is one of the most challenging aspects of the study of Computer Science. Over two decades of research has been devoted to improving algorithm visualization and algorithm explanation techniques. The structured hypermedia algorithm explanation system (SHALEX) is our implementation of an algorithm explanation environment. S...
While the interest in internationalized documents is growing, up to date, virtually no research has been done on cooperative development of these documents. In this paper we describe a framework, which supports cooperative development of documents which may appear in various languages. Our objectives in designing and implementing this framework inc...
This article presents a novel approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization systems. The main idea is that at any given time, a learner is able to focus on a single problem. This problem can be explained, studied, understood, and tested, before the learner moves on to study ano...
This article presents a novel approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization systems. The main idea is that at any given time, a learner is able to focus on a single problem. This problem can be explained, studied, understood, and tested, before the learner moves on to study ano...
In this paper we argue that most commercially available authoring systems are not powerful enough for the development of specialized presentations such as courseware for teaching computer science. We briefly review several existing authoring systems and show their weak points. Then, we describe the design and implementation of OBJECTOR, an object-o...
The analysis and the understanding of algorithms is a very important task for teaching and learning algorithms. We advocate a strategy, according to which one first tries to understand the fundamental nature of an algorithm, and then---after reaching a higher level of awareness---chooses the most appropriate programming language to implement it. To...
Sharing XML documents within decentralized and distributed computing environments requires mechanisms to facilitate controlled and secure access to these documents. This includes the ability to make selective (parts of) documents available to users in multiple, possibly overlapping roles. One common solution involves the use of multiple encryption...
XML is a popular meta-language that facilitates the interchange and access of data. However, XML's verbose nature may increase the size of a data set as much as ten-fold. In this paper, we present a novel technique for lossless XML compression, called TREECHOP, which supports querying of compressed XML data without requiring full decompression. Unl...
Summary form only given. XML is gaining widespread acceptance as a standard for storing and transmitting structured data. One of the drawbacks of XML is that it is quite verbose: an XML representation of a set of data can easily be ten times as large as a more economical representation of the data. To overcome this limitation, we present a compress...
Distributed applications have become very popular and there is a growing need to efficiently and securely distribute data. This paper describes the design and the implementation of a distributed installer (DP), which can accomplish both these tasks. The authors reviewed the goals that any such system should achieve, and show which goals are achieve...
The global nature and accessibility of the Internet has generated interest in internationalization, i.e. making websites available in various languages and cultures. While the interest in internationalization is growing, up to date, not much research has been done on various aspects of this topic. In this paper, we describe a framework for creating...
Most systems designed to teach algorithms using visualization and animation techniques have not proved to be educationally effective. To satisfy this aim, some recently built systems use a hypermedia environment to provide knowledge and context to explain algorithms. In this paper, we describe a system called Structured Hypermedia Algorithm Explana...
XML is a popular meta-language that facilitates the interchange and access of data. In recent years, it has seen widespread adoption as a data representation format in Web applications serving a variety of application domains. However, XML's verbose nature may increase the size of a data set as much as ten-fold. Therefore, XML-based Web application...
Existing educational systems built for cooperative and collaborative activities are most often based on the client/server paradigm of distributed computing. This article shows that a new model for distributed computing, Peer-to-Peer (P2P), provides new opportunities for building distributed educational applications. It begins by reviewing general a...
Advances in technology have led to the increasing use of computers as an educational tool. Several collaborative educational applications exist, yet almost all of them are built using a client/server architecture. In this report, we describe APEX, a custom e-learning system we have designed that utilizes a peer-to-peer architecture.
Algorithm visualization aims to facilitate theunderstanding of algorithms by using graphics andanimation to reify the execution of an algorithm onselected input data. However, many currentvisualization techniques suffer from a variety ofproblems, such as lack of focus, presentation at asingle level of abstraction, and concentration on low-levelstep...
Interest is rapidly growing in internationalized software that can be localized to various languages. This paper describes IDUX, an XML-based system designed to support the process of internationalizing data. A specific application of IDUX is to create internationalized websites, allowing the website owner to display information (such as his or her...
Growing globalization generates interest in internationalized software that can be localized to various languages. This paper describes a system that can be used to create an internationalized website which shows the Curriculum Vitae (CV) for a faculty member (creator). The final product is a website that "can speak many languages", i.e. a website...
Distributed applications have become very popular and there is a growing need to efficiently and securely distribute data and remotely invoke program components. This paper describes the design and the implementation of a distributed installer (DI), which can accomplish both these tasks. We review goals that any such system should achieve, and show...
This work presents an intelligent algorithm teaching interface agent (ATIA) that teaches algorithms. This agent is autonomous, goal-driven, dynamic and collaborative, and acts as a mediator between the student and the tutoring environment. It monitors the student's habits and weaknesses to adapt its didactic directions based on his/her interests an...
This paper presents a new approach to teaching algo rithms, in which an algorithm is explained using a hierarchy o f abstractions. Each abstraction is designed to focus on a single o peration ���� , which is used directly or indirectly in the represe ntation of the algorithm. An abstraction consists of three element s: an Abstract Data Type, an ass...
C++ Programming with Design Patterns Revealed is the first book to integrate learning the C++ language with design patterns. It promotes using patterns as the recurring solutions to design problems, resulting in effective, well-structured and reusable programs.
C++ Programming with Design Patterns Revealed is intended for readers already familiar w...
This paper describes a design and implementation of a distributed collaborative learning environment that supports various multimedia documents. Publishers and subscribed readers can share these documents over the Internet. The documents can be rendered in various required formats, for example HTML. The implementation is based on mobile software ag...
Software visualization provides methods to facilitate the understanding of algorithms and programs. Practically all existing
visualization systems actually execute the code to be visualized on sample input data. In this paper, we propose a novel approach
to algorithm explanation based on static program analysis, specifically shape analysis. Shape a...
Introduction With the increased availability of the Internet, personal computers and fast networks, there are many research efforts directed at teamwork, interactions, and in general, asynchronous and synchronous collaboration. The main focus of these efforts is to explore the possibility of fully integrating computers into the classroom, and not j...
Computer based teaching (CBT) presentations are large and complex software systems that need extensive and thorough documentation in order to make their development and maintenance possible. There are many well-known methods used to document programming systems. A CBT, however, is unique in that its environment is typically distributed, and consist...
this paper we describe a general, integrated, and Distributed Marking System, DMS which can be used to post assignment descriptions and submit solutions, mark solutions using specialized marker tools, and maintain student marks using a file system or database. Our main goal was to design a system which is user friendly, distributed, and extensible....
This paper provides a thorough analysis of old and new programming tools for development of client/server programs, in particular Web based programs. The focus is on development of educational systems that use interactive shared workspaces, to provide portable and expandable solutions.
This paper describes design and evolution of an authoring environment called NEAT, which has been developed and used at Acadia University since 1991.
SLADER, Student Life Alcohol and Drug Education Resource, is an interactive, computer presentation produced with NEAT. It uses hypermedia to provide, as well as collect, information about drugs and alcohol use. While viewing SLADER, the reader can electronically highlight text, write margin notes and add hypertext windows and links. The current ver...
In this paper, we present a system called ATIC, for generating and using individualized curricula. Each curriculum is based on an extended precedence graph overlay model, which supports conjunctions and disjunctions of concepts. A student model stores a complete information about each student. A curriculum created with ATIC supports adaptive tutori...
Mobile software agents are becoming increasingly more and more popular. To be widely used, mobile agents require a specific infrastructure that supports naming, resolving names to IP addresses, docking stations to suspend agents sent to machines that are off-line, and authentication. This paper describes the Agent Naming System, ANS, which provides...
The C programming language has been around for over 25 years. Lately, however, more and more programmers are learning Java as their first language. While Java offers many advantages, C is more efficient and appropriate when working with certain run-time applications, compilers, graphics and operating systems.
With C for Java Programmers, Tomasz M,l...
Introduction With the increased availability of the Internet, personal computers and fast networks, there are many research efforts directed at teamwork, interactions, and in general, asynchronous and synchronous collaboration. The main focus of these efforts is to explore the possibility of fully integrating computers into the classroom, and not j...
this paper we describe a general, integrated, and Distributed Marking System,DMS which can be used to post assignment descriptions and submit solutions, mark solutions using specializedmarker tools, and maintain student marks using a file system or database. Our main goal was to design a systemwhich is user friendly, distributed, and extensible. Fo...
This paper provides a thorough analysis of old and new programming tools for development of client/server programs, in particula r Web based programs. The focus is on development of educational systems that use interac tive shared workspaces, to provide portable and expandable solutions.
Object orientation and formal methods are widely regarded as two fields with significant potential for new software engineering techniques. This paper discusses the relations between these two approaches. We present various specification techniques which incorporate object-oriented paradigms, discuss their place in software development process, and...
Computer-based teaching is ineffective when instructional systems are designed emphasizing technology rather than course information. In view of this, the development of NEAT (Integrated Environment for Authoring in ToolBook) at Acadia University (Nova Scotia) is discussed. Other topics include intelligent tutoring systems, a question repository an...
Recently, there has been growing excitement over the use of electronic classrooms. This paper provides a carefully balanced view of the advantages of using various technological facilities to improve teaching and learning, while recognizing the continuing need for a human teacher who coordinates and controls the learning process. In particular, our...
NEAT (iNtegrated Environment for Authoring in ToolBook) provides templates and various facilities for the rapid prototyping of computer-based presentations, a capability that is lacking in current authoring systems. NEAT is a specialized authoring system that can be used by authors who have a limited knowledge of computer systems and no programming...
The first part of this paper describes requirements of courseware for teaching a computer programming language. Besides typical requirements for a CBT material such as interactivity and availability of hypertext facilities, additional needs must be satisfied. For example, courseware in question must be able to interact with tools such as compilers...
Our paper begins with an introduction to hypermedia presented with the example of a hypothetical hypermedia system. This is followed by an overview of the main hypermedia components visible to the user—data structures, authoring tools, navigation tools, and user interface. In the next section, we present a brief history of hypermedia, list applicat...
A transformation of sequential specifications into concurrent specifications is defined. The sequential specification is in the form of a regular expression extended with a declaration of the actions that are independent and have the potential for concurrent execution. The concurrent specification is in the form of a product of regular expressions....
This paper studies parallel devices recognizing trace languages. We introduce a concept of an asynchronous automaton with ε-moves and show that for a given regularly defined trace language there exists a simple version of an asynchronous automaton with ε-moves recognizing this language.
In this paper we describe complete sequential specifications, that is sequential specifications extended with a declaration of the actions that are independent and have a potential for a concurrent execution. Next, we briefly describe the Banach programming language which supports the above form of specification. We show a translation of a particul...
One of the essential tasks in the teaching of a programming language is the introduction of the main constructs of the language—the syntax and semantics of statements, control, procedures, file handling, and so on. Most teachers present this topic by simulating the operation of the computer on the chalkboard by manual tracing of the execution of sa...
PMS is a system designed to automate many of the tasks of the teacher of Pascal. It divides the language into minilanguages, each implemented as a combination of a syntax-driven program editor and a special purpose interpreter. The main features provided by the interpreter are:- simultaneous display of the source program, contents of memory, i/o, a...
This paper considers the semantics of coroutines and processes in block structured languages; in particular, the problem of existence of static and dynamic environments. It is shown that a definition of inaccessible module instances may result in an inconsistent meaning of some operations. Both an Algol-like language and a SIMULA-like language, (wi...
The paper deals with the semantics of parallel programs. It is shown that there exist other semantics besides the well-known one, which reflects multiplexing and is defined as an interleaving of elementary actions. Those semantics are not necessarily equivalent with respect to the input (out-put) relation; moreover, they permit the investigation of...
The paper contains precise and structured definitions of the following synchronizing tools: Mutually Excluding Regions, Elementary Critical Regions and Critical Regions. Some applications of these tools are shown on the following examples: the Kung algorithm of finding a zero of a function, ticket booking system, and synchronous and asynchronous Ja...
The paper examines the properties of a compilation of sequential and parallel programs with respect to computational semantics, defined in the earlier paper of the present author “On the Semantics of Parallel Programs”. A compilation of sequential programs is defined and proved to be stable, i.e. the sets of results of an arbitrary program and the...
The paper is a continuation of the papers of the present author in which the semantics of parallel programs and several synchronizing tools (e.g. critical regions) for parallel programs were defined. Now, a universal synchronizing tool – a monitor, with delay, continue and delcont instructions, is defined. Then, an implementation of a monitor in th...
A simple model of concurrent computations is presented in which disjoint instructions /processes/ of program are executed concurrently by processors /in a sufficiently large number/ under a shared memory environment. The semantics of such a program specifies the tree of configuration sequences which are acceptable as possible computations of the pr...
Questions
Question (1)
Our group has done a lot of research on XML compression (offline and online; schema-based and schema-free, implementation parallelization, etc.)