Project & Idea Incubator

"The secret of getting things done is to act." -- Dante Alighieri

These are projects awaiting action. These ideas are a bit more fully-formed than the ideas listed in the next section below. If you see one you would like to work on, contact the lab director. And then, get started!

Hot Projects

  • Google Glass - Project with numerous aspects, starting with using a machine learning approach to produce a memory-assistive app for Glass. Other aspects of wearable computing, such as a "where is my car?" or "what am I looking at?" app, and many many others are welcome.

  • Sentiment Analysis - Project possibilities are developing our own sentiment analysis engine, an online sentiment tracker to measure sentiment historically for a period of time, twitter-based sentiment tracking including real-time twitter monitoring, automated bias analysis of news stories online. Use bigrams, trigrams, etc. Determine state of the art and improve upon.

  • Reading Level Graphing - app to graph reading level throughout a source text by sentence, paragraph, document, etc.

  • Word Cloud Sentiment Analysis - applications of word clouds to sentiment analysis, possibly use automated bigram and trigram analysis in conjunction with word frequency analysis (order by trigram frequency, remove most popular, bigram, remove, words).

  • Sentiment Tracking - using Sentiment Analysis modules to track changes of sentiment over time, either real-time such as from the Twitter feed or historically. Multi-Tracking would provide a way to compare multiple sentiment tracks over time.

  • Sentiment Mapping - Project that extracts sentiment and geolocation from Twitter feed and maps composite sentiment on a United States or World map. Additional interactivity could come from analyzing common topics, words or hashtags, and by comparing the sentiment map with other forms of maps such as weather maps. A research question could be, "How is sentiment related to the weather?"

  • Future Plans Analysis - Automated analysis of historical data of Senior Projects student "future plans" essays. An app for this will perform a variety of analyses on the text of student plans (word frequency counts, sentiment, etc.) and compare (textually, graphically, other?) the results of the analysis. Data is available here by clicking on the link for each semester and looking for "Future Plans Essays". Python and NLTK are the likely implementation platforms of choice, and some simple manual pre-processing of data is likely to be needed before analysis can be automated.

  • Social Network Mapping of Literature - Develop a software tool using Python, NLTK and Stanford NER that analyzes a given work of literature and extracts the social network of characters in the work and produces a graph of the network. The graph should have a circle for each character, the circle size should relate to how often the character appears, and there should be connections (lines) between circles that illustrate the relationship between characters, with heavier lines indicating a stronger relationship (number of occurrences of characters "near" each other in the text).

  • Parts of Speech Graphing - Create a desktop or web app, or a reusable library, that analyzes a selected text and graphs the uses of POS throughout the source by sentence, paragraph, document, etc.

  • An Accessible, Tremor-filtering, Pointing Device - This publication-ready project involves modifying existing open source software that uses a Wii controller as a pointing device for a PowerPoint presentation to smooth the jerky motion of a pointing device that is caused by an essential tremor or other tremor-causing conditions. See the description on the Rehabilitation Computing Group web page. Conference possibilities: ICAI, CGVR.

  • Tremor Quantification - Develop a Java or C# application that provides a way to accurately measure tremor in an individual. The app should have an on-screen target that the user points a Wii controller at and attempts to keep an on-screen pointer centered in the target for some period of time. The app should calculate amplitude and period of tremor, and any other useful characteristics, perhaps based on any medical literature we can find that attempts to quantify tremor. This is based on the tremor-filtering project.

  • Plagiarism Detection Web App - Create a web app that reads in a selected file, analyzes it and identifies potential sources of plagiarism from online references, producing an annotated version of the document with embedded links to references that may match, along with stats about probability of being plagiarized.

  • Fake Paper Detector - Create a Python application (NLTK, etc.) that analyzes a research paper and calculates a variety of metrics to determine the likelihood that the paper is fake. Create a classifier to determine fake or real, stddev by window (paragraph?) of factors such as reading level, topic word focus and distribution, etc. (previous attempt) Characterize a research paper, identify instances of possible plagiarism and produce a validity profile that can be used to determine whether or not a paper is faked (e.g., Scigen) or plagiarized.

  • Text-Based Conversational Agent - Build an AI conversational agent that is customizable and that interacts via text messaging, and incorporates standard conversational approaches with humor and some question-answering functionality. Viable platforms will include Twilio and Tropo.

  • Machine Learning Modules - Converting existing activities and labs from MSE 2400 into modules for the Machine Learning TUES grant project.

  • Word Highlighting Tool - Improving an existing word highlighting tool, performing a literature review and studying the use of the tool and its effectiveness, then writing up the results for submission.

  • Loosely-Coupled Interdisciplinary Teaching - extend research and write up results of Fall 2014 experience for future submission to ITiCSE or SIGCSE. Possibly rename it "Conjoined Interdisciplinary Teaching".

  • Writing level analyzer - Develop a Java class and wrapper application that analyzes a text file and reports on the grade level of the writing an a variety of scopes, such as for the whole document, each paragraph, and each sentence.

  • Parsing Applications - identify current active areas of parsing research, create a parsing resource web site with links to all information on parsing, spin-off new parsing research projects.

  • Text-Messaging Applications - Identify and implement new and innovative uses of the previous interactive text-messaging applications with an eye towards creating a flexible, customizable text-messaging survey platform for research use.

  • PWX Graphing Web App - Implement a web application that parses a PWX gps-watch data file and displays information about it including: overlay on Google Map, lap times, mile/km pace breakdown and graphs of available data such as pace, HR and elevation.

Other Projects

  • ACT Lab Website - Redesign the ACT Lab website as you hone your web design skills. Ideally, the site will be implemented using a content management system, such as MediaWiki.

  • Computer Architecture Simulation - Compile a web page of links to computer architecture and multi-processor simulators, and provide a brief description of each as you try out each one. The goal is to locate a simulator suitable for research in dynamic architecture design. Check out the Source Code Characterization project on the High Performance Computing Group page for further ideas.

  • Dynamic Computer Architecture Design - Modify an open-source or research compiler to analyze a source program and generate a description of a best-fit computer architecture for that program. Then, use a computer architecture simulator, or similar software tool, to simulate that best-fit architecture as it runs the original source program. Perform experiments to determine how this approach compares with running on a variety of standard architecture types or configurations. The Computational Nanotechnology Group page has some relevant information.

  • Cell Matrix Compiler - Modify an open-source or research compiler, or write your own from scratch, to translate a source program into a Cell Matrix specification. Preliminary and limited work has been done on this, but there remains much more to do. See the Cell Matrix website, our recent work, or the Computational Nanotechnology Group page to get started.

  • Under-Representation of Advantaged Women in Computer Science - Design and conduct a survey to figure out why women who come from an "advantaged" background (supportive parents & friends, no limits on career paths, financially stable, good student) are not selecting Computer Science as a college major or career path. This project will begin with a survey of the recent research literature in this area and proceed from there.

  • Game Programming Projects - Create a set of game design programming projects for use in teaching a computer game design class. These projects should be at a variety of levels of sophistication and ability, from very basic and easy to more complicated and advanced. Begin by finding the latest free game programming software tools or game design engines, such as Scratch, Game Maker, and others. Some funds are available to license non-free tools, if needed, and more information can be found on the Game Development class web page. Related to this, a game can be developed that teaches computer science topics, data structures, or just about any other subject as a way to demonstrate how games can be used in education.

  • Design CPN Models - Use Colored Petri Nets and CPN Tools software to design specific research models and simulations needed for ongoing research. The models needed include wireless network communications within the health care industry (scale of hospital, medical center campus, city, country, world), simulation of computer systems and a low (logic gates, adders, multipliers) or high level (processor, multi-processor, grid, etc.), and other hierarchical wireless network topologies in a flexible way, such as using a custom GUI that creates a configuration that can be read into CPN Tools.

  • Don't I Know You? - Create a museum-exhibit-style application that uses face-recognition and speaker-recognition to identify the person standing in front of a video camera. The application will perform face-recognition, possibly supplemented with speaker-recognition to verify the person's identity, and then use speech-generation to say hello to the person or welcome them back. A database stores the initial visit by a person to the exhibit and later is used to identify the person and welcome them back. Make this an attraction that visitors to campus hear about and make a point to visit and experience.

  • Don't I Know You? Lite - Simple application for laptop that uses the webcam and identifies the person sitting in front of the laptop and says "hello" using  Java speech generation library.

  • Automated Web Form Validation - Extend an existing ACT Lab tool that analyzes HTML forms for errors and omissions to be a web-based application. See the lab director for source code of the current tool.

  • iPhone Application Development - Explore application development for the iPhone and iTouch using official Apple developer tools. The direction of development will depend on your interests and the needs of projects currently under development. Dr. Gehlot and Dr. Klassner are the department experts in this area.

These are the ideas we've thought of, but haven't started working on.  These are the ideas we have considered and abandoned. These ideas are horrible and great and worthless and invaluable.

"The best way to get a good idea is to get a lot of ideas." -- Linus Pauling


  • 'Shopped Image Detector - Develop and application that loads an image and performs various processing and analysis to determine if the image has been Photoshopped and to identify the parts of the image that have been modified.

  • Hollywood GUI Toolkit - Develop an SDK, and include a number of examples of simulated programs, that can make it easy for a programmer to develop GUIs of the type you see in movies.

  • Cool Garmin Voices - Download and use the Garmin Voice Studio to create some funny, cool, new voices for Garmin GPS devices.

  • iPhone game - Video game for cats, based on success of Kitty World, a hacked together and never finished site that my cats love.

  • Digital Steel Drum - Using a touch screen overlay interface, or other screen-tied tablet input device, and a full-screen image of a steel drum with regionalized notes, create a digital steel drum that will be cost effective and useful for steel drum students who need to practice but cannot afford to buy or rent the physical instrument.

  • Green virtual print concatenator - When printing hard copies of documents is unavoidable, this virtual print concatenator will concatenate all print jobs that are printed to it within a given time period, and print them on a selected real printer in duplex mode (including 2up, 4up, etc.).

  • Green virtual printer - Better than print previous, this virtual device is printed to as with a standard printer, but displays the output on a virtual page on the screen for review.

  • Computer forensics - Gather existing open source and free tools, and develop new tools for computer forensics.

  • Multi-speaker speech recognition - Extend real-time speech recognition to work with multiple speakers by adding a speaker identification module that switches which speaker profile is in use.

  • Full screen tactile display simulator - Application that continuously grabs and simplifies the computer display, then displays the result on a simulated tactile display in a black and white "pin display" in a window.

  • Kryptos - Crack the remaining code [wiki][elonka].

  • Game Satire - Develop a computer game similar to Desert Bus (Penn & Teller's Smoke and Mirrors) that illustrates the silliness and inanity of politically correct computer games. Maybe "Desert Bus 2: RVs Revenge" where the bus is stick behind a slow moving recreational vehicle for the whole trip, or maybe "Desert Bus 2: The Passenger" with a single passenger who sits in the front row and chatters at you the entire time.

  • Cryptogram solver - Develop a software tool that makes it easy to solve cryptograms, and that improves on the simpler ones that are freely available on the Internet.  Could one be easily developed that can be applied to a 1 MB text document that has been encrypted?

  • Power saver application - Develop a software application that monitors battery life, and enables a user to reduce power consumption of their desktop or laptop computer, such as controlling monitor brightness, timeout, hibernation of unnecessary processes, etc., all from a very simple user interface, or ideally, automatically.

  • Image processing browser plug-in - Develop a plug-in for Firefox that applies one or more image processing filters to each image.  Of particular interest are image simplification filters, such as edge detection, that can prepare a visual image for tactile rendering.

  • Quick digital recorder - Develop a very basic digital recorder application for making quick audio notes, saving them in a common and easily portable format.  Include a way to email the audio file as an attachment easily.

  • Talking picture - Develop an AI application that uses speech recognition and speech generation, behind a picture that hangs on the wall.

  • Digital puppet - Develop a real-time, animated, interactive character that uses a digital glove interface, similar to the "Turtle Talk with Crush" attraction at the Disney parks.

  • Skypebot - Develop an AI application that uses speech recognition and speech generation to hold a conversation via Skype. Extend it to make an always-available version of "The Wizard."

  • Beacon - Development of a client and server that supports location tracking of a mobile laptop user.  Beacon server could be a CGI script that responds to check-in from a Beacon client (running as a Window server, or implemented as a simple web app form), which modifies location information. Algorithm could be: IP address is submitted, IP is matched to a list of known locations, if location is unknown dialog asks for name of location, database (flat file?) is updated, web page can be accessed that displays current location information (name of location, phone, IM, email, whatever).

  • Using magic in education - write a book that contains a variety of easy-to-perform magic tricks and an exhaustive list of topics from all disciplines that can be illustrated in a fun way using the tricks.

  • PowerNap Timer - simple cook-timer implemented in Java that allows input of a single time (e.g., 20:00), and has a start, stop and reset button.  Timer beeps when done, repeating for 1 minute or until the stop button is pressed.  Useful for taking naps in the same room as your computer.

  • Full dictionary-based compression - Development of an exhaustive dictionary compression table, with frequency-based assignment of bit string values, to provide significant compression capability.  A standard compression translation dictionary would be used for compression and decompression.  Exceptions must be allowed for non-dictionary words, perhaps indicated by a unique exception tag.  Compression of this sort could be significant, and the dictionary could be a centralized, download-once resource.  Included in the encrypted data would have to be an indication of the dictionary version, since the dictionary should be able to change over time.

  • Mosaic encryption - Using a hashing scheme combined with a three-way split of the resulting encrypted data to generate an RGB bitmap mosaic.

  • Image processing toolkit - redesign of earlier CSC 4700 project, to create an image processing research platform using Java, which may be useful in potential tactile graphics research.

  • Steganography - excellent Java tools available, could make an interesting project area, class project or independent study.

  • Grid & swarm computing - are these related to our nanocomputing research?

  • Design of web-based hacker game - a web site encourages the use of all of a visitors technical knowledge to solve the puzzle of the web site, which includes the site trying to trap the visitor (not allowing visitor to leave, endless pop-ups, etc.). Encourages a deeper understanding of browser technologies, HTTP, cgi, Javascript, etc.

  • Web adventure - develop a web site that chronicles an adventure using all you know about astrobiology, aeronautics, communications theory, sustainable bio-dwellings, psychology and computers.  Includes many multimedia components, and heavy use of math, physics, and design of innovative propulsion and life-support systems.

Idea quotes

"Great ideas, it is said, come into the world as gently as doves. Perhaps, then, if we listen attentively, we shall hear amid the uproar of empires and nations a faint flutter of wings; the gentle stirring of life and hope."
-- Albert Camus

"If you have built castles in the air, your work need not be lost. That is where they should be. Now put the foundations under them."
-- Henry David Thoreau

"If at first the idea is not absurd, then there is no hope for it."
-- Albert Einstein

"Daring ideas are like chessmen moved forward; they may be beaten, but they may start a winning game."
-- Johann Wolfgang von Goethe

"Every act of creation is first of all an act of destruction."
-- Pablo Picasso

"Do not go where the path may lead, go instead were there is no path and leave a trail."
-- Ralph Waldo Emerson

"Anyone who waits to be struck with a good idea has a long wait coming. If I have a deadline for a column or a television script, I sit down at the typewriter and damn well decide to have an idea."
-- Andy Rooney

"Imagination is more important than knowledge."
-- Albert Einstein

"Make it a practice to keep on the lookout for novel and interesting ideas that others have used successfully. Your idea has to be original only in its adaptation to the problem you are working on."
-- Thomas Edison

updated: 02/10/15