Resources for Sr Project Students

Senior Project Descriptions

Some of these projects are difficult to describe in a one-way presentation, so you may benefit from talking to me about them. I have tried to organize them into categories for you to more easily browse through them. That said, I highly recommend that you take a look through everything. In any event, some of my preliminary project ideas are outlined below

Product-based Senior Projects



The following are product based projects where you I would expect you to conduct a product development cycle much like a company startup activity. That is, you would need to develop a basic market need statement, interview prospective customers to learn their interest and willingness to spend money on the product that you propose. It would be expected that this potential customer interviews would cause you to refine (and possibly completely redesign) the envisioned product.

Research Senior Projects



Attached is a list of my currently outlined research senior project ideas. I generally revise this list in the month or two before the fall semester so please check back for revisions to this list. For now you should consider this list as a collection of ideas that can serve as potential projects. For the most part, my research is in High Performance Computing (HPC) with applications to Topological Data Analysis (TDA) and Parallel Simulation (PDES). Students should expect to work with one of my research teams and with the preparation of research publications. My work and thoughts are constantly evolving, so please feel free to res each out to me (Philip A. Wilsey) with questions and discussions about potential projects if you want to get started early with planning or an early start on something. While the prose descriptions contain projections on sizes for the research senior projects, most of these projects can also be individual efforts.

Each of these projects ties into one of my main research areas. You would be joining a team of students studying these, and related, problems. It is most likely that you will also be preparing and submitting manuscripts for publication from the work you would perform on these projects. Do not worry if the projects/concepts described below are confusing to you. I am happy to discuss these projects more fully with you directly. In addition, if you work on one of these, you will be plugged into my research teams where I have multiple graduate students that you would be working with.

Most likely the ideas described below will only make partial sense to you. Do not worry about that, it is normal. We will provide the background and training that you will need to conduct these studies.

Related to algorithms and methods for Topological Data Analysis

Topological Data Analysis (TDA) is a method of data analysis that extracts characteristics of the topological structure found in data. Effectively TDA treats Point Cloud Data (PCD) as a sampling of a topological space (metric space, topological manifold, etc). TDA techniques then work to characterize the topological shapes found in the topological space represented by the PCD. My lab works to develop techniques to optimize TDA algorithms to operate on big data and higher-dimensional data (ℝ3 to ℝ16). To this end, we have developed a Light-weight Homology Framework (LHF) containing the software to support our studies.

Our work is primarily focused on a TDA method called Persistent Homology. PH has exponential complexity in both time and space and its application is generally limited to PCD containing approximately 10K points in ℝ3. Several of my students and I have been developing methods, theories, and algorithms to partition much larger, high-dimensional data sets so that they can be analyzed using TDA techniques. In more recent work, my students have also been developing new TDA methods (based on the Euler-Poincare Characteristic) as well as new methods for managing and optimizing the internal representations used to hold the PCD during the TDA algorithms. While this all may sound pretty far out there, it is quite interesting and mostly an effort to develop and implement approximate methods and algorithms in Python, C++, and other supporting languages (Julia, R, etc). Sometimes parallel and distributed computing as well as heterogeneous parallelism (FPGAs and/or GPGPUs).

As part of this project, I am open to a wide range of possibilities. You can work on ideas enumerated below, or work with me and my team to develop customized ideas for TDA related projects of your own design (you do not have to have the initial ideas, often I find that its fun to simply begin studying/thinking and opportunities present themselves to us).

All of the prose in this section may seem quite foreign and filled with a considerable amount of math jargon. Don't worry about it, most of the work is straight up algorithm development and implementation. In addition, my graduate students are all heavily invested in these topics so they (and me, but they're the real brains of the team) will be available to help explain things to you (and me).

Related to High-Performance Parallel Simulation on Multi-core Beowulf Clusters

One of my main research areas is in parallel and distributed discrete-event simulation using an optimistic synchronization strategy called the Time Warp Mechanism. Time Warp is an optimistic synchronization strategy that does not explicitly synchronize the asynchronous event processing. Instead a Time Warp simulation kernel will react whenever a causal event violation is detected to implement some type of recovery mechanism. This is not as strange as it might sound. Basically a Time Warp synchronized parallel simulation will maintain state information necessary to undo a premature computation and restore/recompute the (partial) simulation path for the local object with the dependent event information processed accordingly.

As part of these studies, my students and I have developed a general purpose discrete event simulation kernel and modeling API, called WARPED2, that is configurable for sequential or parallel execution and it includes many configuration variables to turn on/off various optimizations/sub-algorithms for the Time Warp setup. The WARPED2 parallel simulation engine has been designed to have support for multi-threaded and task level parallelism for execution on multi-core and many-core Beowulf Clusters. This project also has a complementary set of discrete event simulation models. As part of this project, there are a number of possible senior project experiences that we can offer: