Undergraduate Research Symposium Showcases Student Work
4/20/2011 7:55:00 AM
On Friday, April 29th, the 2011 Undergraduate Research Symposium will showcase some of the research opportunities available to undergraduates in Computer Science at Illinois. Undergraduate researchers will showcase the projects they have been working on this academic year in research labs or as part of student groups.
The symposium includes a poster session for all submitted posters and a conference-style presentation session for two chosen projects. Cash prizes, food, and beverages for the symposium are generously sponsored by Yahoo!
The event takes place on Friday, April 29, beginning with a poster session from 2:30-4:00 in the 2nd floor atrium of Siebel Center. The top two research projects will be presented at 4:00 in 2405 Siebel Center.
Download a symposium program
Undergraduate Research Symposium Projects
Alternative High Performance Computing Benchmarks
Benchmarks for HPC systems generally focus on floating-point intensive calculations. Few address data intensive graph operations, a class of computation greatly growing in demand. As an alternative to the standard floating-point benchmarks a new benchmark, the Graph 500, has been proposed. The focus of this project is exploring additional implementations of the Graph500 benchmark. Specifically the project is looking at the UPC programming model, a partitioned global address space language that extends C.
Ammar Rizwan and Emon Dai
The website that we created took the findings of a paper written by Professor Sheldon Jacobson (published in the journal Omega) and implemented the model described in a way easy to use by anyone. The subject of the paper used probability and statistics to find noticeable trends in the NCAA Men’s basketball tournament. We used this model, and what we have learned about probability to create more tools, which would interest anyone who created a bracket for the NCAA Men's basketball tournament.
CS Unplugged: Teaching Computer Science Through Mobile Phones
Timothy D. Kadich, Atul Gupte, Xiaoyu Liu, and Akash Narkhede
In the emerging age of mobile computing, new opportunities to enrich education appear. We aim to adapt the CS Unplugged (csunplugged.org) curriculum, proven effective, for mobile phones (Android). This medium of presenting material to students will yield exciting new possibilities in teaching practice and student involvement.
A Domain Specific Language for Graph Processing
Graph theory has far-reaching applications throughout the computer science world. Unfortunately, many graphing APIs are difficult to use and require the user to possess an in-depth knowledge of programming and the programming language that an API is written for. This project lays down the framework and features of a user-friendly and optimized graph language. The language is designed around the notion that someone well-versed in graph theory should be able to use all or most of the language features without a solid programming background. The basic language features along with optimizations for parallel graph traversal are implemented using Ruby as the host language.
Enforcing Safe Usage of C String Library Functions
Shaosu Liu, Matthew Wala
A large number of security vulnerabilities and bugs in C programs can be traced to improper usage of string functions from the C standard library. This project builds on previous work to improve SAFECode, a memory safety checking compiler, to support runtime detection of errors in string library usage in arbitrary C programs. As a result of our efforts SAFECode now includes runtime checks that cover most C string library functions and can detect a variety of problems including buffer overflows, out of bounds reads, and undefined behavior. In addition, the design of SAFECode and our check insertion passes allows for easy extension of memory safety checks to other external library functions if the need arises.
Gesture Controlled Music Instrument Built on Machine Learning
For years, computer music instruments have been based on paradigms set in the physical world, especially with the growing popularity of touch surfaces. This works well in many regards, but at a fundamental level, this will cause the computer version to be inferior. This research project attempts to take a new approach to touch-screen music instruments, by studying music gestures, and employing machine learning.
Gesture Navigation for Android
RJ Marsan, Jake Mcginty, and Bhargav Nookala
Despite recent advances in touchscreen technology, the prevailing way devices navigate is via buttons. This is far from immersive and often times stands in the way of the user's experience. By allowing the user to perform intuitive gestures to navigate around the Android operating system, we create a novel approach to navigation that's a more fluent experience for large touch devices.
Xiao Cheng, Nikoli Dryden, Darin Pantley, Abhishek Pradhan, and Felix Wang
We present a real-time multi-touch gesture recognition implementation primarily for use by the Tacchi Table built by SIGMusic for music-related programs. The algorithms and interface used are general enough to be applicable to a variety of other applications. To accomplish our gesture recognition, we build upon the TUIO interface to acquire raw gesture data and perform gesture segmentation and classification on our orientation-free gesture model through MATLAB.
Incorporating Hints into FreeCell Planning
In our research, we explore planning in the FreeCell domain by incorporating user-defined “hints” to guide the learning of an action policy. We attempt to improve upon simple policies for playing FreeCell by extracting key features of the states and learning a weight vector corresponding to these features.
Inferring Types to Enforce Memory Safety
For many programming languages, ensuring the safe execution of programs in and determining the security implications of that language generally require significant effort. In this project, we propose techniques to simplify that process by first converting programs written in bug-prone languages such as C and C++ to an intermediate representation provided by the Low Level Virtual Machine (LLVM) compiler infrastructure. By leveraging the security techniques we developed in the SAFECode security compiler, we perform program analysis on this transformed code and ensure memory safety through type inference via structural subtyping. Since efficiency also matters, we heavily optimize the run-time checks by verifying types statically when possible.
Integration of Continuous Testing with Unit Test Repair
As changes are made to software, unit tests become out of date and break. Broken unit tests are found quickly with continuous testing and fixed easily with unit test repair. We integrate implementations of these tools (respectively, Infinitest and ReAssert) to streamline the process of repairing broken unit tests.
JIVA: A Self-Diagnosis Assistance System Based on Disease Information Retrieval
Provides users with a system that they can type into as if conversing with a doctor. The system searches symptoms described by the user to retrieve documents, each one representing a disease, in order to suggest probable diseases. The system also suggests possible symptoms associated with the top matching diseases that the user has not already mentioned.
Least Squares Ranking on Graphs Applied to NCAA Basketball
The method of least squares ranking on graphs is applied to the 2010-2011 NCAA men's basketball season to rank all Division 1 teams. In this project, several experiments are done on these rankings with data from the regular season and NCAA tournament play.
Leveraging Inference Rules for Textual Inference
Timothy D. Kadich
Textual inference is an essential component to “deep” Natural Language Processing (NLP), but this solving this task requires background knowledge. Automatically extracted inference rules exist, yet they are not well understood in terms of how to use them or if they’re even useful at all. We explore the evaluation and utility of automatically extracted inference rules in the context of a textual inference task.
A Novel Force Decomposition Scheme for Massively Parallel N-Body Cosmological Simulations
Pritish Jetley and Danila Nikitin
Conventional schemes for N-body simulation associate force computation with space decomposition. We separate the two notions and present a new neutral-territory scheme which yields greater concurrency, reduces communication costs, and provides an infrastructure with which to enforce Newton's third law. We will use the Charm++ load-balancing framework to further increase the performance gains.
A Novel Method for Panorama-Making with Moving Cameras
The computer vision and augmented reality research communities have developed techniques to create near-perfect panoramas by warping and combining images from a rotating camera. However, panorama-making becomes challenging when the photographer translates the camera position instead of rotating the camera at a fixed position. This study proposes a novel method for producing panoramas from a collection of images that were taken at different locations.
Security on Demand
Because it is impractical to redesign legacy programs to cope with all new security threats, being able to apply automated security-augmenting transformations can be valuable to computer scientists. One such transformation is partitioning programs into a user-facing “gatekeeper” partition and a system--facing “processor” partition. The gatekeeper partition can then run with minimal privileges to apply filtering to the input arguments before passing them along to the processor partition.
Abraham Fine and Maurice Lam
YouPivot is a revolutionary new way to navigate one’s digital history based on context, in addition to semantics. Using contextual cues, YouPivot finds you the file you were working on when you were listening to AC/DC yesterday. Similar to how you would trace find your car keys by asking “where did I last have them?,” YouPivot allows you to find your digital items in a similar way.