User Tools

Site Tools


projects

This is an old revision of the document!


Proposed Projects

Data-driven conceptual modeling within on-line communities

Supervisor: M. Baljko

The wealth of data to be obtained from online communities is already well acknowledged. This EECS4080 project will investigate techniques for obtaining, analyzing, and visualizing this data in conjunction with a digital humanities research project. The digital humanities project is seeking to investigate questions about how disability, ableism, and activism is taken up within on-line discourse within certain types of online communities. The 4080 project will entail, among other tasks, tasks such as: to extend an existing code base that performs web-scraping; to develop scripts and techniques to work with large volumes of data; to analyze scraped data; and to visualize results. This 4080 project will entail working closely with the supervisor and a doctoral candidate, with weekly meetings.

Required Background: General EECS408x prerequisites; strong software design and implementation skills (Java), prior experience with (or willingness to learn) information visualization software (Tableau), an undergraduate course in statistics is preferred

Proposed Project: Tangible Interactive Device Design and Evaluation, Assistive Technology

Supervisor: M. Baljko

The objective of the 'ENAbling MEdia for Literacy' (ENAMEL) research project is to develop and to evaluate the digital technologies that are required by stakeholders. These technologies tend toward low-cost, DIY variants (such as 3D printing and low-cost single-board computers, such as Raspberry Pi and Arduino) and open source software. These technologies provide innovative and new approaches to supporting the development of functional knowledge in learners (primarily children) concerning printed and written materials. This project espouses user-centered, rather than technology-centered, design approaches, and seeks to critically reflect on the hidden assumptions, ideologies and values underlying the design of such technologies. The ENAMEL project is currently supporting two projects. The first project is focused on supporting learning of early-level Braille by children (in North America). The second project is focused on capacity building for grass-roots production of Assistive Technology (focused on speech and language supports) for use in Special Education contexts in an East Africa country. This 4080 project will investigate the design, fabrication, and evaluation techniques for either the Braille project or the Speech/Language Assistive Technology project. The project will start with an in-depth learning phase so that the student becomes familiar with the current state of this multi-year research project. The remainder of the project will entail either software or hardware development or conducting a usability study, depending on the both the needs of the project and the learning objectives of the 4080 student. The student must be able to work effectively in a multi-disciplinary team environment.

Required Background: General EECS408x prerequisites; EECS3461; knowledge in at least two of the following knowledge areas: Java, iterative UI design methodologies, tangible interface building (using Raspberry Pi or other single board computers or microcontrollers), 3D modeling (preferably OpenSCAD), assistive technologies, critical disability studies

Design and development of a low‐power backend PCB for brain neural signal processing and wireless data transmission

Supervisor: Hossein Kassiri

The student will be responsible for the design and testing of a printed circuit board (PCB) that receives brain electrophysiological signals from multiple recording sites; analyze, decode, and organizes them; and transmit them through a wireless link to a handheld (e.g., cellphone) or stationary (e.g. a laptop) device. The board must be designed while the strict power and area budgets of a medical device taken into account. Once developed, the prototype along with the currently‐available wearable brain monitoring device will form a complete wireless wearable solution for point‐of‐care brain monitoring and diagnosis applications.

Required Background: Solid knowledge of electrical and electronic circuits, proficiency in Verilog and MATLAB, previous PCB design experience is not a must but definitely is a plus.

Distributed leader election for simple robots

Supervisors: Michael Jenkin and Patrick Dymond

Project: How should a group of autonomous agents moving within multiple locations choose and maintain a leader to coordinate and control them? Utilizing the concept of an infection algorithm — a process much like the spread of a disease in which agents infect each other with information — it is possible to develop a probabilistic approach to this kind of leader election problem. Solutions to this type of problem finds wide application in distributed computing, and in particular distributed computing of autonomous agents and sensors which must compute information about control structures with limited information about the presence/absence of potential leaders in the environment.

To make this project more specific, and given the limited time available for an undergraduate student project, this project will explore certain properties of leader election algorithms, both with real and simulated groups of robots. Using a simulator, performance bottlenecks in the infection algorithm will be studied, considering cases where direct communication is limited to agents in the same local area. Simulations will be supported using a collection of real devices (Android devices) who can communicate with each other in the local environment using bluetooth and/or WIFI. If time permits, the project will also study possible enhancements of the infection algorithm as well as develop better upper bounds for the problem.

Required skills: knowledge of Java or Python. Interest in algorithms for a distributed collection of simple robot agents. Completion of 3rd year courses in computer science or computer engineering.

Asynchronicity in infection algorithms

Supervisors: Michael Jenkin and Patrick Dymond

Project: How does changing the model of synchronization changing run time bounds on infection algorithms?

Infection algorithms are a class of algorithms within which individual agents exchange information via infection. That is, the algorithm proceeds by the various agents transmitting (infecting) each other with information. Under an assumption of synchronization — that is, a model in which no two agents can infect each other at precisely the same time — it is possible to derive models of expected time until all agents have been infected. But how does this algorithm adapt when agents can actually infect each other simultaneously? This project will explore this problem. First, a simple simulation algorithm will be implemented to test infection rates when it is assumed that at a given time instant only one infection can occur. This algorithm will then be generalized to a model under which within a given time interval more than one infection can occur. Experimental validation will explore how existing infection algorithms perform under this more realistic model. Simulations will be supported using a collection of real devices (Android devices) who can communicate with each other in the local environment using bluetooth and/or WIFI.

Required skills: knowledge of Java or Python. Interest in algorithms for a distributed collection of simple robot agents. Completion of 3rd year courses in computer science or computer engineering.

Simultaneous localization and mapping (SLAM) aided by a single unique directional landmark

Supervisors: Professors Michael Jenkin and Patrick Dymond

Project: How can a simple SLAM algorithm be improved if it is known a priori that there exists in the environment a single unique landmark that provides both position and orientation information?

SLAM algorithms have been developed for a large number of different environments, and for relatively straightforward environments such as those found indoors, the problem can in many ways be considered solved. However, current algorithms have in the main concentrated on a general version of the problem in which no a priori information is assumed about the environment. From theoretical results we know that a single directional landmark is sufficient to solve the SLAM problem algorithmically, but can we exploit this result within the traditional probabilistic framework found in SLAM algorithms? Starting with a standard vision-based SLAM algorithm, this project will explore how a single landmark can be used to drive exploration and critically, drive algorithmic loop closure.

Required skills: knowledge of Java or Python. Interest in algorithms for robots. Completion of 3rd year courses in computer science or computer engineering.

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.

Mobile Software Development Platform Comparison: Windows Phone 7 and Android

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.

projects.1502391113.txt.gz · Last modified: 2017/08/10 18:51 by jenkin