business company





Computer Science Capstone Projects

This page provides a summary of past projects that have been completed as part of the Computer Science capstone at SLU.

  • Students in introductory biology courses must demonstrate their understanding of biological systems by developing graphical models of such systems (e.g., food chains, signaling pathways, metabolic networks). This web-based system will support students' creation and revision of such diagrams, will support the course staff in reviewing the diagrams and providing embedded feedback, and will provide analytics that might support educational research.

  • The goal is to develop a system that allows for medical remote evaluation of patients using biometric data (e.g. heart rate, activity, sleep) from existing commercially available wearable devices (e.g., a Fitbit). The system will rely upon a patient's mobile phone for the communication link from the device to the remote electronic medical records, and will allow physicians to remotely monitor and communicate with patients. The system may also calculate additional variables derived from the primary data such as variability of heart rate and activity and to alert a physician to detection of critical levels.

  • Genome assembly refers to the process of taking a large number of DNA fragments and putting them back to create a representation of the original chromosomes from which the DNA originate. De novo genome assembler attempts to reconstruct genomes from its genomic sequencing data without using reference genomes. Recently developed high-throughput sequencing technologies generate very large scale DNA fragments that enhance the correctness of genome assembly, but those large scale datasets are computationally expensive.

    To cope with massive sequence data generated by next-generation sequencing machines, a highly scalable and efficient parallel solution for genome assembly is important. In this capstone project, we will implement a scalable genome assembler using Apache Spark on Cloud. Apache Spark is a cutting edge open-source cluster computing framework for large-scale data processing. Apache Spark provides GraphX API that is a distributed graph processing framework on top of Spark. The GraphX enabled us to easily distribute a very large overlapping graph into several virtual machines and process the big graph. This very large-scale sequence analysis can be adapted not only for genome assembly but also for many other scientific domains.

  • The goal of this project is to create a Mozilla Firefox plugin that will allow a user to highlight an unfamiliar word in order to find the definition via JavaScript modal popup. The program will be written mostly in JavaScript, but will likely employ CSS for formatting purposes. Optimally, the plugin will be versatile enough to allow a user to use the plugin with a dictionary website/database of their choice. Once completed, the plugin will be available for download at

    A major challenge with this project is the issue of "stemming" words. If a dictionary only recognizes the singular form of a word, for example, it would be difficult to define a word such as "oxen," or "geese." By the final version of this program, this plugin will be able to define words in both English and Spanish.

  • The project is to be a software system for the storage of symbolic languages, codes, shorthands, etc.It will be designed and tested using my personal symbolic shorthand code Kaetzi. The software will take a symbol input (drawn with a mouse via writing tablet) and store it as private use data, displayable with a font (i.e. an image, which consists of the symbol only, without a background). The database of symbols is to be searchable by keyword.

  • The goal is to mine the changelog history on Wikipedia and extract the most frequent spelling and grammatical errors in three separate languages. Then, (1) turn this into a proofing tool to avoid the same errors in the future, and (2) analyze and publish the results to help language teachers focus on the most common mistakes.

    The first portion of the project will be project management and data mining for changelogs. Unix tools and regex will most likely be used to format these logs. The second part of the project will consist of turning the results into usable correction tool for word processing. This will be implemented with the OpenOffice API. The API will allow for multiple suggestions for commonly misspelled words.

  • A tool to examine bus routes in St. Louis County, overlaid on Google maps, with imagery. The tool will also allow bus stop rating through a checklist of essential traits the stop has. This tool will assist in checking the quality of the stops, and be a foundation to persuade improvement of bus stops from Metro organization.

  • We will build a game of the first person "rail" shooter genre. In this game, players will be kept on a guided path as they battle through enemies. The game will require cooperation from two players, and the players will interface with the game via gaming joysticks.

    Unlike most first person shooters, this game will attempt to abstract core elements of the genre so that our game does not simulate the killing living beings. Thus, the enemies of the game will be drones, and the environment of the game will be set in cyberspace. The artwork for the game is inspired from the movie Tron Legacy, and thus, it will feature of simple geometrical shapes with a color scheme that is composed of black and bright neon colors.

    The game will be built via the Unity Game engine, and we anticipate that the code for the game will be written in C#. Furthermore, game objects will be constructed using a 3D modeling software called SketchUp.

    In addition to building the software for the game, we will also be constructing a physical shell for the game like most arcade machines. The players will sit side by side in an encapsulation. A computer will be housed inside the encapsulation, and it will be tasked with running the game.

  • Android app that can take a picture of a target from a gun range and locate the bullets. It offers up corrections to help increase the shooting accuracy.

  • This will be an Android app to allow patients to maintain a list of medications, alongwith information about each medication, and notifications when to take them.Optionally, we will create a doctor database with links to medication and contact information.

  • This project targets the design and implementation of a survival-defense game with Unity 3D.The game will be a third-person overhead combination of levels and monster wave generation.The player will move around the map and collect ammo, health, and currency while defending against a variety of enemies with different attributes coming in wave pattern attacks. As the levels progress, the waves become harder and harder, and it will be the goal of the player to survive as long as possible. A good example of such a game may be seen at My game, while similar in fundamental nature, will contain significant differences, including a full upgrade system allowing he player to collect currency from slain creatures and spend it on upgrades between rounds in order for them to survive higher levels. The game design and coding will be done in Unity, while the models and textures will be done in Blender and/or 3dsMax. Some models may be obtained from Unity Asset Store as well. The target platform for the game will be the computer (PC and Mac) initially, but I believe the nature of the game will port well to mobile devices.

  • The app is designed for users to have the ability to create certain machines/equipment workout routines based on the equipment available to them. (What's the point of looking up workout routines online with certain machines/equipment if the user doesn't have that same equipment available to them?) The app includes a database with tables including SLU equipment, exercises, muscle groups, etc.

  • The main purpose of this project is to better understand a machine scheduling problem. Traditional competitive analysis for the problem can be viewed as a two-player game, with one player releasing jobs to the second player who chooses to schedule them among m machines. Viewing this problem as a game allows us to use alpha-beta pruning to help analyze scheduling algorithms. The first step is to create an alpha-beta pruning search algorithm in Java that is generic for two-player games. This allows us to run alpha-beta algorithm on different turn based games, such as Tic Tac Toe. Once the search algorithm is implemented, we can use it on the scheduling problem game to analyze scheduling algorithms. The next step will be to create the rules of the scheduling game to run the alpha-bete pruning search algorithm on it. We view the game as two players that take turns, one assigns jobs to be scheduled and the other schedules the assigned jobs. Once we are finished with creating the rulesfor the scheduling problem game, we can use the generic alpha-beta pruning search algorithm to analyze algorithms. We use a competitive ratio, which is the number of jobs the optimal solution can assign divided by the number of jobs the scheduling algorithm actually assigned. The point of the game is to have one player assign jobs to force the largest possible competitive ratio, while the other schedules jobs to get the smallest possible competitive ratio. The alpha-beta pruning search algorithm allows us to search for the lowest possible competitive ratio possible to analyze the algorithms.

  • The purpose of this project will be to construct an interactive web interface for the Taiwanese Student Association to manage its members as well as providing an interactive portal tailored for members and the e-board. The front end of the project will be driven by a web interface using HTML5 with Javascript/JQuery. The front end design of the project will optimize usability for members and have an intuitive flow that allows users to navigate through to quickly find information about the organization. The back-end will include a database that will store information such as users, which will consist of members, non-members, and e-board, as well as events. It will be implemented using MySQL or some other SQL based database tool. Together, it will provide a complete infrastructure for member interaction, as well as being a way for TSA to interact with its members. It will also help to publicize our student organization in a more effective way.

  • The purpose of this project is to create a robot arena fighting game (in the vein of Battlebots), but with an emphasis on making the robots user- programmable. This would entail creation of a very simplistic programming system, from which users could create their own programming modules for controlling their bots. In essence, the underlying goal of the project is to create a new avenue for kids and even adults to learn about programming in a fun and interesting way. This is a new area of game software and every addition could help. As the key aspect of this game is the programmability of the bots, the primary focus of the game development lies there. The desire is to create a simple programming language for creating modules to control bots, and then a drag-and-drop system for populating the bots with these modules. Should the drag-and-drop system prove infeasible in the allotted time, a fallback approach of using drop- down menus to select options is also perfectly acceptable. However, some other game aspects are also needed to complete the game. These game components may be done more simply: - Implementation of an arena game map, to provide a setting for the robot fighting - Simple unit models for representing the bots - A turn-based combat system sufficient to demonstrate the programmable nature of the bots, and to demonstrate the different features of their programmability. This game will be built using one of the popular game engines, such as Unity or Unreal Engine, to be selected as deemed appropriate by the student.

  • Streams is an Android app that will allow users to view live streams of images based on geolocation by implementing the Google Maps framework and the TwitterStreaming API. The app will populate streams of images by taking image content from geo-tagged tweets. That will be viewable via a constantly updating graphical interface provided by Google Maps.

  • Develop a pretty web page to let a user play the RPS game with a carefully designed AI embedded in a JavaScript file.

  • The goal of this project is to create a Turn-Based Strategy (TBS) game using the Unity game engine. The vision for the game is akin to the classic game Risk, but with the addition of resource gathering and a monetary system. Some of the specific aspects of the project needed for this strategy game include: - Enemy AI for controlling the computer-controlled players - Implementation of one or more game maps, which indicate which players control each of the regions - A combat system for managing attempts by players to take other players regions - A game GUI for showing the game map and indicating the amount of resources available to the player - Tools for gathering, managing, and using a player's resources (such as armies, gold/money, and gather able resources like wood, ore, etc.)

  • The project will be a mobile fitness app targeting people interested in learning proper form and tracking their progress.

  • The aim of this project is to redesign existing interactive CS teaching tools for compatibility with modernweb browsers. These tools are currently written as Java applets, a technology, which has been effectively deprecated by HTML5 standards and is slowly loosing support in web browsers. The tools will be rewritten in HTML5/JavaScript, and in the process they will be extended and improved upon as opportunities to do so arise.

  • In this project, we will be building a web application, which will an eBook Reader with added features. These features will include the ability to highlight text and either make a comment about that particular text or post a question about it. Users will be able to see these highlighted posts and respond/interact with these posts in a similar fashion to stack overflow. Additionally users will be able to upload their own documents, which can be shared with a certain group of people who can then use these features. As well, users can filter what kinds of posts or posts from specific types of users.

  • This project's goal is to develop a Web-Based application that helps an instructor to teach students to program numeric, algebraic, and trigonometric expressions.

  • The goal of the project is to design and implement an image segmentation and structural analysis software toolset that will segment a series of cervical spine CT images, identify the spinal canal, and measure the structure of the spinal canal. Java and ImageJ will be used to implement the toolset. Some of the specific aspects of the project needed for this segmentation and analysis toolset include: - Assess the segmentation performance of a variety of segmentation algorithms in segmenting spinal CT images, and identify the most capable algorithms for segmenting the spinal canal. - Learn the ImageJ Java application toolset and library, and how new applications of ImageJ are created as plug-ins to the main toolset. - Implement one of the more effective segmentation algorithms in ImageJ. - From the segmentation results, use line and/or curve detection on the interior walls of the bones surrounding the spinal column, and connect those lines/curves to form the boundary of the spinal canal. - For each slice (single image) in a series of spinal CT images, compute the spinal canal width at each point along the spine. From the distribution over all slices, identify the expected spinal canal width. - Provide a GUI that visualizes the segmentation results and highlights the spinal canal.

    NOTE: The project may assume the existence of sagittal spine CT images (i.e. side-view slices of the spine). It is not a requirement that series of transverse/axial (top-down view) or coronal (front-view) CT images be converted to sagittal view (though students may wish to use such an ImageJ plug-in, if such already exists).

  • The purpose of this project will be to construct an interactive Web interface for the Taiwanese Student Association to manage its members as well as providing an interactive portal for members. The front end of the project will be driven by a Web interface using HTML5 with Javascript/JQuery. The front end design of the project will optimize usability for members and have an intuitive flow that allows users to navigate through and learn about the organization. The back-end will include database that will store information such as users, which will consist of members, non-members, and e-board, as well as events. It will be implemented using MySQL or some other SQL-based database tool. Together, it will provide a complete infrastructure for user interaction and for a business to interact with its customers.

  • The goal of the project is to create a GUI for the CGMiner tools, which is a software suite for mining Bitcoin transactions. "Mining" - the process of adding transaction records to Bitcoin's public ledger of past transactions - is a difficult resource-intensive task, the purpose of which is to enable the network to reach a secure, tamper-resistant consensus for each of the transactions. It has been found that GPUs are particularly well suited to the task of mining, and so CGMiner provides an open-source software suite allowing any interested user to beging perform mining using their AMD GPU card. The CGMiner tools are solely command-line driven tools, and require considerable parameterization to appropriately install and use. As such, the purpose of this project is to create a CGMiner dashboard - a GUI allowing users to more easily setup and monitor their mining with the CGMiner. This dashboard would provide a variety of features for effectively setting up and controlling CGMiner, including a setup and control panel and GPU temperature monitoring. The temperature monitor would provide a graph of the GPU's temperatures over time, including average and max temperatures of the graphics cards, and a temperature shutoff should the GPU become too hot. The dashboard setup and control panels would provide GUI controls both for initial setup and dynamic control of the CGMiner tools, including GPU speed, thread concurrency, work size, memory speed, intensity, fan speed, etc. The dashboard would initially target a single graphics card, with the intent of extendingcontrol to multiple graphics cards through CGMiner.

  • The goal of this project is to rehaul the website, making all pages follow similar template and add more functionality. Includes adding access to data stored in Excel spreadsheet ith ability to search through and request things like an online catalog of specimens. To request, must trade equal number of samples from equal number of genera and species. Include ability to select species and image and description will pop up.

  • The project goal is to perform a thorough design space analysis of a number of popular image segmentation algorithms. Such analysis first requires collecting image segmentation results over the full range of the parameter design space for a few popular image segmentation algorithms (e.g. Mean Shift, Normalized Min Cuts, etc). The segmentation resultswill then be analyzed by Prof. Fritts segmentation evaluation toolset, which quantitatively evaluates the qualify of the segmentation results using a variety of evaluation metrics. With the quantitative evaluation data, a software toolset will be developed that performs parameter space correlation and multivariate kernel density estimation to identify trends and data clusters that best characterize the algorithm's performance. While outside the scope of this project, this design space analysis will greatly facilitate unbiased selection of sample segmentations for use in subjective human studies on segmentation evaluation.'

  • Cs1 graphics is a Python module that wraps the Tkinter graphics package to make use of graphics more accessible for students in introductory computer science courses. The most recent release (cs1graphics 1.2) is an alpha version that lacks robust support for many advanced features such as multi-threading. The project will entail thorough perusal of, understanding, documenting, and updating the current code, while paying special attention to the threading model and internal architecture and design of the system. These combined activities will allow for strengthening the robustness of the package, as well as in time, reintroducing support for more advanced features that are missing from the alpha, and new functionality.

  • The project is to design and implement a management portal for the Shawnee Lodge, an internal group inside the Greater St. Louis Area Council, Boy Scouts of America. This project will be in the form of a web portal that will allow members to register and keep their information up to date. The different units inside the Lodge will be able to have certain reporting abilities that will be outlined in the Requirements and Design document. Main users of this portal will be the members of the Lodge, the administrative staff of the Greater St. Louis Area Council, Boy Scouts of America and the Lodge and Chapter Leadership. This system should be a roles based accesssystem where access will be controlled by roles.

  • The objective of this project is to establish a database and interface for faculty members in the department of Theology to enter data. This data is critical for faculty reviews and the current process by which the data is collected is time consuming and not very efficient. The goal is to improve that and streamline the data collection process.

  • This project employs extensive financial market data to analyze portfolio allocation based on a variety of popular technical indicators.

  • We want to build an Android app that will help with school. We want to make a check-in system for classes and a homework tracker. The check-in system would use the user's location to verify that they

    The Best Essay Writing Service -

    are in class. The homework tracker would allow the student to add and track their homework, as well as possibly turn in their homework to the professor or receive homework from their professor via a bluetooth transmission. We also want to use alerts to notify the user of homework due datesand classes. We will prioritize making features for the students first and then iftime permits we will add a separate account type for professors. Therefore, all professor features discussed in the requirements will be optional.

  • The project will be creating a cell phone application that prevents the driver from cell phone use, but allows passengers to use their phones. To do this, we will lock phones based on geolocation speed and provide phone unlock functions with bluetooth/wifidirect and image recognition.

  • The goal of this project is to build an EEG device that uses electrodes on the scalp to measure brain activity. The EEG will be composed of a Raspberry Pi microprocessor that receives input stimuli from electrodes attached to the patient. One (or more) electrodes will be placed on the scalp, two at various grounding points, and a final 60Hz ground antenna to help eliminate background noise. The microprocessor will sample the voltage level at the electrodes at periodic intervals and then perform a 1-D FFT to convert the sampled time domain signal to the frequency domain, which will facilitate further data analysis. The scalp electrode(s) will be sampled at a rate of at least 100kHz and input to the microprocessor with an ADC (analog-to-digital converter) that's at least 12-bits wide. A true differential input is desired for obtaining the clearest signal. All the signal processing will be done in software. Given the high-speed sampling and the processing needs for 1-D FFT, the Raspberry Pi system has been selected for this project. It has the requisite sampling ability, is able to receive data at 150KB/s, and has sufficient memory and processing ability to store the data, perform the 1-D FFT over time slices of data, and still have processing time remainingfor further data analysis.'

  • While BackTrack requires a modified kernel for drivers of adapters to use promiscuous mode and so forth, TAILS is designed form the bottom up for encryption, privacy, and anonymity. The intention of AttackVector Linux is to provide the capability to anonymize attacks while warning the user when he or she takes actions that may compromise anonymity. The two projects have different design philosophies that can directly conflict with one another. In spite of this, the goal of AttackVector Linux is to integrate them complementarily into one OS.

  • Paralellize the double descriptor algorithm in the open source software package Regina. The software will be benchmarked running in serial and using OpenMP. As a proof of concept, the software shoudl be run on GPU's using OpenACC. The final version will run using Cuda to optimize its computational efficiency.

  • The goal of this project is to create a mobile website for Residential Life that would provide Res Life individuals the ability to check students into and out of dorm rooms (e.g., tracking existing damage) using a smart phone or tablet. Currently Res Life uses paper forms, requiring significant effort in hand-entry of details and management of the forms during the year. This online website would alleviate much of that burden.

  • The goal of this project is to create a two-player 2D battlefield strategy game, similar to the FireEmblem game series. The game will employ a turn-based combat style, allowing each unit to move/attack once in each player's turn. There will be a variety of different types of units, each with its own strengths and weaknesses. Positioning of units will be done in a 2D grid, with each grid space corresponding to one of a variety of different types of terrain. the type of unit, position of units, and types of terrain in which those units reside will all affect combat results, providing players ample opportunity to employ strategies towards defeating the opponent.

  • The intent of this project is to create a tool that can find the crease patterns to fold polygons to convex polyhedra and then show what it looks like folded into three dimensions. It will take a user specification of a polygon and a zipper point. Then using the input data, it will find the valid crease patterns and give access to them to the user. Finally, it will fold the polygon and show it in three dimensions.

  • Using the already established Accentuate web service, create an extension to LibreOffice/OpenOffice that is capable of utilizing Accentuate's features.

  • This project will be to design a scheduling application for hourly employees. Input will be employee's availability, and schedule template of shifts needed. Output will be a spreadsheet of times and positions employers need to work. User will be able to build schedule manually, automatically, or integrating manual and automatic techniques.

  • This project will be a website for biology researchers to collaborate on the naming and classification of specific bones in fish. Each bone will have a dedicated webpage with; a description of the bone, a video displaying a 360 degree view of the bone, an image highlighting the bone, and the opportunity for other researchers to add their own input. The goal for the website is to be completely user driven, with users discussing and ultimately deciding on the name for each bone.

  • A WordNet is a database of word senses with links between them (synonyms, broader/narrower terms, part/whole relations, etc.). The most famous of these is the Princeton WordNet ( which is freely available. The site allows one to navigate the Princeton WordNet in a web browser, but sadly it's a subscription service. It should be quite easy to do something even better using a modern open source .js library like d3 ( or arborjs (

  • This project is an application that allows the user to model aspects of a data set by defining additional formulas that are derived from a combination of ground data and other derived formulas for each record in the data set. For this project, historical baseball data will be used to demonstrate the capabilities of the software. The user could use that data to generate a formula and have the data set presented with inclusion of the calculated value as a new field. Derived formulas will be saved persistently by the application, on a per user basis, so that they can be reused during a later session. Finally, the interface should allow a user to filter displayed results based on restrictions that depend on a combination of ground data or derived computations. For example, a baseball player might be required to have a certain number of plate appearances to qualify for a given statistic. The user will also be able to group results by certain allowed criteria. The results of using this data set should lend credence to the assertion that at some point in the future, the software can be generalized for any subject that has base data.

  • Folding convex polygon to a single convex polyhedron using the perimeter halving method is the main purpose of this project. The basic steps are first setting the crease pattern and then fold the polygon by Mathematica 8. Finding the right crease pattern and using the right command to compute the angles are the most important task we have.

  • Use the Shapley-Shubik power index to evaluate indvidual voter power based on the geography of congressional districts. This will consist of two parts. The first is a preprocessor using the ANN library to group voters and their neighbors. The second will be to do a Monte Carlo simulation to approximate each voters power and will be parallelized using OpenMP and OpenACC.

  • The goal is a system for creating, administrating, and analyzing online surveys. Custom surveys can be formed using a variety of question templates (e.g., multiple choice, free answer, quantitative rating). When complete, the survey will be made available on the internet, either to invited respondents or to anyone given the appropriate URL. The back end will offer the survey owner the ability to generate a recreation of an individual respondant's completed survey, or composite data for all subjects.

  • The goal of this project is to create a software system capable of identifying and classifying the types of nails from an image. The software system will use color space conversion, thresholding, connected components, and feature extraction to identify the characteristics of each region of the image corresponding to a nail, and use the feature values to classify the type of nail corresponding to each region in the image. The system should be able to correctly determine the number of nails in the image, and categorize the type of nail into one of at least five different nail types. The features used for classification will include area, circularity, moments, and possibly length.

    The project will assume that the background is white (or very light), so that the regions corresponding to nails can be easily detected through thresholding. The project will likewise assume that the nails are non-overlapping in the image, so that each detected region corresponds to an individual nail. The final assumption is that each image will also contain a penny, which will be used as a frame of reference for determining the scale/size of nails in the image.

  • The E-Prime 1.4 software package, used by several labs in Saint Louis University's Psychology department, contains a scripting environment (called E-Studio) to create modified Visual Basic scripts used to run computer-based experiments. E-Studio is difficult to customize, however, and many users in the Psychology department would prefer a more intuitive scripting environment. Though E-Prime 2.0 has recently been released, many labs in the department do not wish to purchase the upgrade. The hope is that this project will extend the useable life of the existing software package, and improve the speed at which users can create and modify experiments. This project would be able to supplant the need for E-Studio as a coding environment.

  • Analysis of an online algorithm can be modeled as a two-player game between the algorithm and an adversary. This semester, I will develop a general tool for solving two-player games using alpha-beta pruning. I will demonstrate the general framework on several classic games and then apply it to analyze a modelfor online machine scheduling.

  • Implement k-nearest neighbor algorithm for weighted points on a GPU use Nvidia's CUDA programming environment. Two different methods with be implemented: the first using brute force and the second is based on kD-trees. As reference algorithms, the two algorithms will also be implemented for a CPU using a single thread. Run-time analysis will be performed to determine which algorithm is best for different input sizes.

  • This project will be an e-Commerce system supporting a building supply company. It will consist of a web-based front-end allowing customers to place orders and the store owner to see relevant views of the pending orders, together with a backend database in which all information is stored.

  • Using a back propagation neural network with economically relevant training, I will attempt to make predictions on stock values of individual companies. The primary concern with the project is to develop and implement this neural net into a functional model. A functional model is one that, after a limited training, can predict stock values of the stock ticker at different time increments from the "current" day. Predicted values will be compared to historic stock prices to evaluate performance of the model. This model will be incorporated into an output interface which would produce visualizations of the internal network structure, weights, and other pertinent elements of the model, allowing development of the model. Performing multiple experiments (different time windows, different activation and error functions, etc) could potential lead to different optimized models. Time permitting, a front end interface can be implemented where one can select models and provide necessary inputs and specify the stock ticker to be predicted. The output could be the predicted price of the stock for the next day, week, etc.

  • Radar Signal processing is computationally difficult because of the number of samples that must be taken to perform a FFT on the data. The Nyquist-Shannon Theorem states that we must take 2B (B=highest frequency in signal) samples to perfectly interpret the wave. This ends up being very costly because high speed A/D converters and fast DSP hardware is needed. It turns out that radar signals tend to be sparse. Using compressed sensing, we need far fewer samples to reconstruct the wave.

    This project is designed primarily for experimentation. I will create software that can run simulations, then conduct experiments using that software. The goal is to see how well traditional radar processing compares to compressed sensing, especially when using degraded (noisy) signals.

    Compressed sensing is an exciting, new field in Computer Science. While some of the principles have been known since the mid-20th century, the field really developed in 2004. There has been some research on compressed sensing with radar. However, it is still a research project that depends on ideal conditions. There is an excellent description of Radar Compressed Sensing available at

    The authors describe three problems that are currently holding back the design of operational systems. In particular, "the signal recovery algorithms must be able to handle real-world radar acquisition scenarios with sufficient computational efficient and robust performance for noisy data." This is the primary focus of my project: testing the effectiveness of CS on noisy signals. This should provide some very useful research to the academic community.

  • This project will aid in the creation of automated reports for the logistics department. Projects are requested often, sometimes several per week, and we have only three programmers. Reports can be derived from several sources, including three databases and mainframe files. Sorting out the right files can take a good amount of time, as can reports to the requester's specifications. The idea behind this project is to create an application that will created the basic sql queries in PC SAS to gather the correct data for the requested reports, including multiple sources when needed. As well, the application will allow users to manipulate an excel sheet to their own specifications, while recording the macro an creating the base code in Visual Basic. The programmer will then have far less work to automate the report.

  • Construction of database that will contain information on business operations and human resources that will provide tools for analysis of the data therein. This project will also include a management role in that a high school volunteer will be collaborating on the project. For the sake of concreteness , this project will be tailored to a computer hardware manufacturer model but should hopefully be relatively easy to adapt to different markets. The ultimate goal of this database is to help business owners identify possible sources of inefficiency and ways to cut costs.

  • My project is to be a financial manager. The financial manager enables the user to keep track of multiple bank accounts. The user enters receipts into the program, which tracks where the money is going and forms spending habits. The receipt information consists of the name of the business, the date, the amount, the account, and what type of charge it is. The types of charges are food, gas, entertainment, bills, and miscellaneous. The spending habits can then be visually displayed for the user to view. The visual representation of the spending habits will be in pie and line charts.

    The program will also track the balances of the user's credit cards. The user will add each credit card to the program and the program will compute how much the minimum payment should be. The program will also compute how many payments remain (assuming the minimum is payed each month). When receipts are entered into the program, credit card receipts are included, which allows the program to update the credit card balance as information is entered.

    Bills will also be tracked with the program. The program will take the average of previous bills to compute a projected amount for the bill. The program will also keep track of automatic monthly charges, which the user can add and remove.

    Loans will also be tracked with the program. Much like credit cards, the payment amount will be calculated along with the amount of payments remaining.

    Paychecks will be entered in much like receipts. In addition to this, the projected monthly income will be calculated to show how much money should be coming in to pay the bills.

  • There are many electronic medical record systems currently in existence. Many doctors have stated it would be useful to have access to the electronic records of their patients available on their smart phones. My project is an iPhone application that is able to directly access and edit patient records from a sample database.

  • In the Irish language, certain grammatical contexts cause spelling changes on words called initial mutations. The rules governing these are complicated and are not well understood. The goal of this project is to write a program to learn automatically these rules from a plain text corpus of Irish.

  • This project is aimed at the research of U3 Smart enabled USB drives, the architecture on which their file systems are built, the methods implemented to carry out their stated goal, and the implied security concerns surrounding these devices in regards to the undetected propagation of viruses on the U3 sector of the USB drive.

  • Design and develop a software application that has the ability to translate an English string into other languages. Since the general version of this problem is notoriously difficult, we will restrict attention to strings of the type that are usually found in translations of software, e.g. "File not found", "Could not open X", "Firefox Preferences", etc.

    I will write three individual programs.

    1) Program one will accept a huge number of English strings of the above type. It will strip the strings of any untranslatable items, such as punctuation and newline characters. Furthermore, program one will preserve the common (translatable) substrings within each string while converting any uncommon (untranslatable) substrings into a symbol (i.e. "***"). Finally, program one will return the original string converted into a "translation template." Any unknown, uncommon words that were found by program one will have been converted into the symbol.

    Example 1: Input: "File not found" Output: "*** not found"

    Example 2: Input: "Could not open file" Output: "Could not open ***"

    2) Program two will take as input (1) the generated list of translation templates, and (2) a large database of existing translations from English into the target language, and will generate a statistical model for how each template is translated.

    3) Program three will apply the statistical model to new English strings to translate them into the target language. Finally, the three programs will be combined into one package.

  • The purpose of this project is to create a Java based simulator which will illustrate the execution process of the Cell Broad Band Engine. The Cell Broad Band Engine was developed by IBM, Sony, and Toshiba as a multimedia and vector processing architecture. The most famous implementation of the Cell Broadband Engine processor is Sony's Playstation 3 video game console. In order to reduce the complexity of the overall project this simulator will not automatically translate standard C code into assembly code. Instead the program will only take in valid assembly code. This program will be originally written to run on a Linux x86 based computer (with the primary development and testing of this simulator being done on a Redhat Enterprise Linux version 5.3 machine). The student's custom made simulator shall be able to illustrate at least two independent threads passing through the SPE core of the cell processor. Additionally the software shall display a graphical, color distinguishable illustration of each individual SPE and which assembler code is currently being executed, which code is waiting to execute, and which code is in a stall.

  • A parallel corpus is a database of document pairs where one document is a translation of the other and the documents are "aligned" at some level, usually sentences. Parallel corpora are used to train all modern statistical machine translation systems. One approach to creating parallel corpora is via web-crawling and a system which will identify document pairs which are translations of each other from the crawled documents.

    The goal of this project is to create such a program. It will take two text files as input and calculate the probability that the two files are translations of each other. The translation program should be language-independent. The program will function by using pairs of known translations to form "word pairs" that will then be used in texts that are not known to be translations of each other to calculate the probability of the texts being translations of each other.

  • futuristic hovercraft racing game that will be single player and have at least one AI opponent. The race track will be flat and have a variety of turns and the game will use physics in order to make it realistic and challenging. A level of power will be set and will be decreased by a specific amount with each collision with another racer, the track walls, or other obstacles. The game play will be similar to the games F-Zero and Wipeout but will include all original models, textures, animations, and concept design with graphics and user interface controlled by the Irrlicht engine.

Category: Capstone project

Similar articles: