Ensuring correctness of real-world software applications is a challenging task. Testing can be used to find many bugs, but is typically not sufficient for proving correctness or even eliminating entire classes of bugs. However, formal proof and verification techniques tend to be very heavy weight and are simply not available...
Due to the rapid growth of wireless technology, there has been a growing interest in the capabilities of ad hoc networks connecting mobile phones, PDAs and laptop computers. The distributed and self-configurable capabilities of ad hoc networks make them very attractive for some applications such as tactical communication for military,...
Modern cryptanalysis is generally based on the mathematical theory. However, side-channel analysis has become increasingly popular recently. The benefit of side-channel cryptanalysis is due to the fact that performers can mount attacks with low costs in terms of time and equipment and are highly successful in extracting useful results. The...
Generative programming is a paradigm that seeks to automate the manufacture of software products the same way other industries automated the manufacture of consumer, electric, and mechanical products. I examine how meta-programming fits into the context of generative programming and, along the way, expose theoretic and taxonomic deficiencies. In some...
Active participation and collaboration of community members are crucial to the continuation and expansion of open source software projects. Researchers have recognized the value of community in open source development and studied various aspects of it including structure of communities, motivations for participation, and collaboration among members. However, the majority...
In this project, we have investigated three different techniques for plagiarism detection and have compared its effectiveness against that of an unaided human grader. The techniques investigated were word frequency analysis, sentence inclusion analysis and sub string inclusion analysis. We found that a combination of word frequency analysis and sub...
Spreadsheet languages are widely used by end users for many different purposes. Previous research shows that spreadsheets often contain faults. To help end users test their spreadsheets, in previous research, a testing methodology for spreadsheets has been developed. Th.is methodology is supported by an automatic test case generation (ATCG) methodology....
Windows Exploratory Testing (WET) is examined to determine whether testers working in pairs produce higher quality results, are more productive, or exhibit greater confidence and job satisfaction than testers working alone. WET is a form of application testing where a tester (or testers) explores an unknown application to determine the...
The Advanced Encryption Standard (AES) is the new standard for cryptography and has gained wide support as a means to secure digital data. Hence, it is beneficial to develop an implementation of AES that has a high throughput. SIMD technology is very effective in increasing the performance of some cryptographic...
As broadband Internet becomes widely available, Peer-to-Peer (P2P) applications over the Internet are becoming increasingly popular. Such an example is a video multicast application in which, one source streams a video to a large number of destination nodes through an overlay multicast tree consisting of peers.
These overlay multicast-based applications,...
Packet loss, delay and time-varying bandwidth are three main problems facing multimedia streaming applications over the Internet. Existing techniques such as Media-aware network protocol, network adaptive source and channel coding, etc. have been proposed to either overcome or alleviate these drawbacks of the Internet. But these techniques either need specialized...
Open source software has become a powerful force in the world of computing. While once confined to the domain of technical specialists, people of all types have begun to adopt this software – from the casual web-surfer who uses Firefox, to the professional web developer who codes in PHP or...
Finding information can cost a significant amount of time, even when the information is already stored on the user’s local computer system. There is significant research aimed at reducing these time costs, but little research into exactly what these costs are or how they impact people’s use of tools and...
Previous research has revealed gender differences that impact females’ willingness to adopt software features in end users’ programming environments. Since these features have separately been shown to help end users problem solve, it is important to female end users’ productivity that we find ways to make these features more acceptable...
Accessing information on the Web has become ingrained into our daily lives, and we seek information from many different sources, including conference and journal publications, personal web pages, and others. Increasingly, web-based information retrieval systems such as web-based search engines, library on-line catalog systems, and subscription-based federated search systems are...
Recent efforts in user-control of data-driven characters have focused on designing high-level graph data-structures that we call a Behavior Finite State Machine (BFSM). A BFSM is an interactive data-structure that benefits from the advantages of both motion graphs and blend-based techniques for generating animated motion. Each node in a BFSM...
Personalization is defined as a process that facilitates interaction among consumers and providers such that individual consumers are enabled to more readily access the content and services of providers, and individual providers are enabled to more effectively and easily deliver their content and services to consumers. This project presents a...
The spreadsheet has become a common technology tool and is now a predominant form of end-user programming. Some of the same features that make spreadsheets excellent tools for ad-hoc development can introduce errors into the final product. Although a variety of research has been performed investigating methods to detect errors...
Cryptographic devices leak timing and power consumption information that is easily measurable, radiation of various levels, and more. Such devices also have additional inputs, other than plaintext and keys, like voltage, which can be modified to force the device to produce certain faulty outputs that can be used to reveal...
Functional programming is concerned with referential transparency, that is, given a certain function and its parameter, that the result will always be the same. However, it seems that this is violated in applications involving uncertainty, such as rolling a dice. This thesis defines the background of probabilistic programming and domain-specific...