Supervisor: Franck van Breugel
Description: Java PathFinder (JPF) is a tool that can detect bugs in Java code. The Java library Apache log4j allows developers to control which log statements are output. In the past, Dickey et al. [1] have attempted to detect bugs in log4j by means of JPF with very limited succes.
Recently, in collaboration with Shafiei (NASA) we have developed an extension of JPF called jpf-nhandler. The aim of this project is to apply this extension to log4j.
[1] David A. Dickey, B. Sinem Dorter, J. Michael German, Benjamin D. Madore, Mark W. Piper, Gabriel L. Zenarosa. “Evaluating Java PathFinder on Log4J.” 2011.
Required Background: General CSE408x prerequisites
Supervisor: Ntalija Vlajic
Recommended Background: CSE 3213 or CSE 3214, CSE 3482
Not long ago, botnets - networks of compromised computers - were seen as the most effective (if not the only) means of conducting Distributed Denial of Service (DDoS) attacks. However, with the growing popularity and prevalence of application-layer over other types of DDoS attacks, the DDoS execution landscape is becoming increasingly more diverse. An especially interesting new trend is the execution of application-layer DDoS attacks by means of skillfully manipulated Web-crawlers, such as Google-bots. The goal of this project is to design, implement and test a real-world framework consisting of the following: a) the attacker's web-accessible domain specially designed to attract Google-bots and then manipulate them into generating attack traffic towards the target/victim site; b) the victim's Web site set up in Amazon S3 cloud. In addition to the hands-on component, the project will also look into the statistical/numerical estimation of the framework's anticipated 'attack potential' relative to an actual (real-world) target/victim site.
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
Student: Michael Larin
Supervisor: S. Datta
Description
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.
Student: Doug Scheurich
Supervisor: J. Edmonds
Description
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.
Student: Dean Shaft
Supervisor: S. Liaskos and Y. Lesperance
Description
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.
Student: Ahmad Hasan
Supervisor: J. Ostroff
Description
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.
Student: Vahid Bahreman
Supervisor: Z. Stachniak
Description
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