Completed Projects
Comparison of Finger Tracking systems
Student:
Supervisor: Wolfgang Stuerzlinger
Required Background: C/C++ coding
Description This project compares the Leap Motion and the 3Gear System against each other in a comparative Fitts' law study
Completed Winter, 2013
Imputation of missing values in microarray data
Student: Michael Larin
Supervisor: S. Datta
Microarrays are a relatively new technology that have had tremendous impact on many areas within biology and bioinformatics. Microarray technology enables researchers to study the behaviour of many genes and/or conditions in a single experiment.
Due to technological limitations and experiment design issues, microarray data sets typically have several missing values. It has been shown that imputation of these values improves the accuracy of different processing tasks, including clustering, that are typically done on these data sets. Therefore, good imputation algorithms are required.
In this project, we will explore fast and accurate imputation algorithms for microarray data. The student will first read the papers assigned and write a short summary of them. Then, he will study the performance a few algorithms from the literature (many algorithms are already implemented but 1 - 2 may need to be implemented). Finally, he will work with the supervisor on the design of better algorithms for the problem being studied. He will use publicly available data sets to compare the performance (accuracy and speed) of the new algorithm(s) to the GMCImpute algorithm and several other existing ones.
Throughout the course, the student is required to maintain a course website to report any progress and details about the project.
An Open Source Structural Equation Modeling Graph Drawing Application
Student: Doug Scheurich
Supervisor: J. Edmonds
Structural equation modeling (SEM) is a statistical technique that is becoming increasingly popular in the sciences. SEM allows researchers to test the validity of hypothesized models involving complex relationships among multiple variables. These models can include latent variables, which are not measured directly but are constructs inferred by observed variables. Structural equation models can be represented visually by graphs. To generate such graphs currently in R would require over 80 lines of code which has no reusability and has to be re written each time a new graph has to be developed or analyzed (R is a UNIX based command line only program, however it is a very powerful analytic research tool).
Collected data is used to estimate the parameters of the equations and assessing the fit of the model. There are several SEM software options available to researchers, however all have serious limitations (Windows only, Unix only, expensive licensing fees, text based or command line only, no GUI, etc).
We propose developing an application which will allow the user to load observed variables from a data file to create graphs, or allow using an intuitive graphical interface, and convert the graphs into a text based model specification file (ie generate the code required so the graph can be used in other programs such as R). This text file can then be used as input for the sem() function in R. The application will be implemented in Java, which can then be used with any OS. Later versions may include the ability to call R functions directly from within the application and provide options for more advanced structural equation modeling techniques.
Exploring the notion of Variability in Business Process Modeling (and its relationship with Goals)
Student: Dean Shaft
Supervisor: S. Liaskos and Y. Lesperance
Business Process Modeling (BPM) notations are an increasingly popular subject of investigation in the analysis and design of Information Systems. Such notations allow analysts to represent different ways by which actors of a domain can collaboratively perform tasks in order to meet certain business goals. The diagrammatic result allows understanding of the involved activities at various levels of abstraction each being useful for different stakeholders, such as business versus technical ones. It also provides a basis for further formalization and analysis of the modeled business process or its translation into implementation models such as service composition programs. Several BPM languages have been introduced, most prominent being the Business Process Modeling Notation (BPMN).
Variability occurs in business processes, in that the same business process may need to either be reused in a different context (e.g. a different organization) or adapt to changing requirements or environmental constraints. Thus, each variation of the business process is applicable to a different situation affects specified customization criteria in a different way. Such criteria may include high-level qualities or non-functional goals e.g. such as key performance indicators (KPIs) or operational constraints that prescribe patterns which the business process must follow. To some extend BPMs offer constructs for modeling such variability. However, both the problems of modeling customization criteria and that of using them to derive business process variations that best satisfy them have not enjoyed significant attention in the literature.
In this project we shall investigate ways of modeling and reasoning about business process variability. We will pick a BPM, possibly BPMN, and explore different ways by which variability can be expressed. Then we will look at criteria that define variant selection and how such can be represented as well. Through possible formalizations in specification frameworks that are used in AI such as Situation Calculus or planning definition languages, the problem of automatically selecting variants of interest in order to meet certain customization criteria shall be studied. In the end we are hoping to develop a concrete framework for representing and reasoning about business process variability in light of high-level goal-based customization criteria.
Mobile Software Development Platform Comparison: Windows Phone 7 and Android
Student: Ahmad Hasan
Supervisor: J. Ostroff
Over the past decade the development and use of smartphone technologies has become increasingly sophisticated. The computational power of modern smartphones is growing to match the power of conventional desktop computers. More people and organizations are becoming increasingly dependent on their mobile devices being able to perform sophisticated computations. As the leaders in the technology industry move towards providing advanced products and development platforms, the environment of traditional software development is changing rapidly. Mobile applications that provide a variety of services involving cloud computing, GPS, games, and automation.
The goal of this project is to explore and compare the software development platforms for popular mobile phone operating systems for the development of applications and games.
Business applications and games have distinctive features in the context of mobile platforms. For regular applications, platform capabilities relating to cloud computing, GPS and everyday consumer applications have a unique development cycle that differ from regular desktop applications. Mobile applications are usually lightweight and efficient tools for everyday administrative tasks. Under Windows Phone 7 such apps are usually built under the Microsoft Silverlight framework, and the the application must adhere to guidelines and best practices laid out in the Windows Phone 7 documentation. The Android platform provides no such single framework for developing these types of applications but all of the tools and functionalities are available to provide the same services, again this app will also follow the guidelines and best practices described in the official Android documentation.
The games developed in each platform are intended to serve as explorations into the graphics capabilities of both systems. Graphics environments and frameworks are another area in mobile devices that are becoming increasingly important. Rich graphics and animation capabilities are important for providing immersive user experiences and games are excellent environments to develop and test interactive graphics capabilities on mobile devices. The Windows Phone 7 game development framework uses and extension of Microsoft’s well established XNA framework. This provides libraries to develop and debug game and graphics engines and easily integrate multimedia content into mobile games. Android game applications depend on a to be determined open source game engine.
This project aims to compare the mobile platforms with respect to development languages, the use of object oriented software development principles and the utility of the tools. The applications and documentation developed through the course of this project should also provide a good source of information for computer science and engineering students who might want to develop software on mobile platforms. Using standard libraries and working with established frameworks and as well as open source frameworks to develop reliable, extendible and reusable code for mobile platforms would be an excellent experience for students to learn about new emerging technologies and the software engineering concepts that apply to them.
CPS/1 Emulator
Student: Vahid Bahreman
Supervisor: Z. Stachniak
The manufacturers of tablets, pocket PCs, smart-phones, etc. frequently release software simulators (or emulators) of these devices to emulate the functionality of actual products for cost-effective development of application software (e.g. to test how a given device's software, screen, keyboard, or trackwheel will work with an application under development). These simulators can also be used as sophisticated tools for testing, training and in presentations. The design and implementation of such emulators require a broad computer science expertise from hardware architecture to operating systems and computer graphics.
The history of computing is another area that actively supports the development of emulators of historically significant hardware (mostly computers and game consoles). As a result, there is at least one emulator of almost every significant system. This activity contributes, in the first place, to the preservation and dissemination of significant hardware and software technologies. The project's objective is to design and implement an emulator of the CPS/1 computer – one of the earliest commercially available microprocessor-powered computers. York University Computer Museum is in the possession of CPS-1's design blueprints and other technical documentation. The completed project would be a significant contribution to the preservation of unique Canadian computer technologies.
Background information: The CPS/1 computer was designed and built by a Canadian company Microsystems International Ltd. between 1972 and 73. The computer was built around the first Canadian microprocessor–the MF7114–one of world's earliest microprocessors. Although none of the CPS/1 computers have survived, technical information about the CPS/1 has been preserved. This makes the design and implementation of an emulator possible. More information on http://www.cse.yorku.ca/museum/collections/MIL/MIL.htm
Quantum Cryptography
Student: Abdulaziz Busbate
Supervisor: Hamzeh Roumani
Quantum mechanics makes it impossible (not just infeasible) to passively eavesdrop on a communication channel. Quantum channels are thus ideal for secret key distribution, and a protocol named BB84-Cascade has been devised to manage the transmission and correct channel errors.
Determining the block size in this protocol is critical due to its exponential effect on information leaked to an eavesdropper. If the block size is too small, too much information is leaked, and if it is too large, not enough bits will be shared. The purpose of this project is to simulate the protocol in a Java program and then run the simulation for a variety of error rates and block sizes while monitoring the leakage. This will allow us to determine the optimal block size for the BB84 Quantum Key Distribution Protocol.