2012 Summer Undergraduate Research in Engineering (SURE) Projects and Summer Research Opportunity Program (SROP) Research Projects

Computer Science and Engineering (CSE)

Directions: Please consider all of the projects in this list carefully before applying to the SURE program (http://www.engin.umich.edu/gradadmissions/sure/index.html). You MUST list your top three project choices in order of preference (by CSE Project #) on your SURE application.  You are welcome to contact faculty if you have additional, specific questions regarding these projects.

CSE Project 1: Quantitative Web Search

Faculty Mentor: Michael Cafarella (michjc@umich.edu)

Prerequisites: Familiarity with operating systems (EECS 482) OR databases (EECS 484), data structures and algorithms (EECS 281), machine learning; familiarity with Internet systems issues a plus; must be able to program in Java or C++

 

Today's web search engines take textual queries and return pointers to documents.  But there is also a large amount of numeric data online, in the form of spreadsheets, governmental data sources, and technical product information.  Right now searching for this data is almost impossible.  This project involves building the infrastructure for a quantitative search engine that will allow searchers to find all kinds of interesting datasets that today are hidden in plain sight.  Students with an interest in either machine learning or system/database programming will find something useful to work on.

 

 

CSE Project 2: Computational Strategic Reasoning
Faculty Mentor: Michael Wellman (wellman@umich.edu)
Prerequisites: Programming ability; interest/background in economics, game theory, and/or statistics (helpful though not required)

The Strategic Reasoning Group (
http://www.eecs.umich.edu/srg/) develops computational tools to support reasoning about complex strategic scenarios, including trading in markets (e.g., financial, supply chains, Internet advertising), games (e.g., poker), and other applications.  The undergraduate researcher will support development and analysis of strategies for some of these domains, in preparation for an international competition (e.g., the Trading Agent Competition, http://tradingagents.org) or as part of a related research effort.

 

 

CSE Project 3:  Solving Hard Problems by Solving Harder Problems Halfway

Faculty Mentor: Igor Markov (imarkov@eecs.umich.edu)

Prerequisite: Algorithms and Data Structures (i.e. EECS 281); recommended courses (one or more of the following): Foundations of Computing (i.e. EECS 376), Advanced and Object-Oriented Programming (i.e. EECS 381), Introduction to Algorithms (i.e. EECS 477), Logic Synthesis and Optimization (i.e. EECS 478), Introduction to Artificial Intelligence (i.e. EECS 492)

 

A variety of computational problems continue to elude efficient algorithms, either because there aren't any such algorithms or because we cannot find them. However, solving practical instances of these problems remains important in applications, and existing algorithms are often helpful (although we sometimes don't understand why they work so well in special cases). A meta-approach developed recently studies properties of each given problem instance, such as its symmetry, sparsity, hierarchical structure, etc, and uses them to speed up the main solver. This approach has worked well, given that symmetry-finding and checking other possible properties is often easier than solving the problem directly. We are going to review these success stories and then try something different -- solving hard problems by partially solving even harder problems, or solving harder problems in special cases. In particular, we seek to develop new applications of computational techniques proposed recently.

 

Relevant problems range from number-factoring to NP-complete problems, such as Boolean SATisfiability, and problems beyond NP, such constructing binary decision diagrams and optimally solving sliding-tile puzzles. While theory may play a role in this project, our goal is to develop algorithms and software that can be tried on interesting instances of hard problems.  Students with interests in specific hard problems will be able to steer their research accordingly.

 

CSE Project 4: Unsupervised Feature Learning and Deep Learning

Faculty Mentor: Honglak Lee (honglak@eecs.umich.edu) 

Prerequisites: Linear algebra; probability and statistics; programming experience in MATLAB, python, or C/C++; knowledge about machine learning or artificial intelligence is desirable

 

The brain has an impressive ability to process a variety of sensory input data, including images, sounds, languages, and touches.  More interestingly, recent biological and computational studies suggest that the brain may be using a single machine learning algorithm to develop representations from such diverse sensory domains.  Furthermore, humans can readily learn from vast amounts of unlabeled data, together with only a small amount of supervision; this is because humans can easily recognize and discover underlying structures from seemingly complex input data.  Inspired by this evidence, we aim to develop machine learning algorithms to develop good feature representations from large unlabeled data.  Specifically, we will develop novel learning algorithms based on sparse coding, restricted Boltzmann machines, autoencoders, slow feature analysis, and deep networks. Further, we apply these algorithms to learn high-level features from large unlabeled data (such as large-scale image collections, speech, video, text, and robotic sensors), and we then use these learned features to supervise learning tasks in computer vision, audio recognition, text processing, robotics, and data mining.

 

Interestingly, these features often outperform standard features carefully hand-tuned by domain experts.  Also, our general purpose algorithms will allow machine learning systems to be much more easily applied various problems in artificial intelligence and data mining, and to achieve superior performance without the manual feature engineering while using significantly less labeled data.  In this project, students will learn about theoretical foundations and experimental techniques in unsupervised feature learning and (more broadly) machine learning.  Depending on individual interest and strength of each student, the task will be chosen among theoretical studies, algorithmic development, software design and programming, and large-scale computational experiments.  Students will evaluate their research projects on practical applications, such as computer vision, speech recognition, robotics, text understanding, and data mining.

 

Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.

 

 

CSE Project 5: Non-programmatic Layouting on iPhones and iPads

Faculty Mentor: Georg Essl (gessl@umich.edu)

Prerequisites: Programming in C or C++; programming in Lua and background in HCI a plus.

 

Mobile multi-touch devices change how we interact with computers. Screen space is limited yet we have new and rich input modalities such as 10-finger multi-touch. The goal of this research project is to design a two-dimensional GUI layouting system that is purely based on multi-touch input. We will be using

a modifyable embeddable script language called Lua, which is also popular in game modding.

 

 

CSE Project 6: Networked Mobile Performance

Faculty Mentor: Georg Essl (gessl@umich.edu)

Prerequisites: Programming in C or C++; network and Lua programming and background in music a plus.

 

Mobile devices can be used for interactive music making. They also tend to be networked. How can one facilitate playing together over a network? This project explores scalable strategies for synchronization of live music performance of mobile devices under various networking conditions.

 

 

CSE Project 7: Cloud Computing for Mobility

Faculty Mentor: Brian Noble (bnoble@eecs.umich.edu)

Prerequisites: Data Structures and Algorithms required; one of: Operating Systems, Networking, Distributed Systems is helpful

 

Mobile devices are often under-powered compared to desktop or server-class machines.  So, they typically require help from online services---particularly those "in the cloud."  In this project, the student will explore the use of Google's App Engine or Microsoft's Azure platforms to create supporting infrastructure for a variety of mobile computing tasks: data collection, context management, etc.  Willingness to dive in and get your hands dirty is essential!

 

CSE Project 8: Secure Software for the Masses

Faculty Mentor: Todd Austin (Austin@eecs.umich.edu)

 

It's hard to write robust software.  Nearly every large computer system crashes, has security vulnerabilities, and is difficult to maintain. The effects of these bad programs can be felt all the way from the nearly $60 billion the US economy loses annually due to software bugs to the final report you lose because of a malware infestation.  To combat this, our lab builds hardware mechanisms to make it easier to find and fix software bugs and security vulnerabilities.  We design processor additions that catch programming errors while the software is executing, but our biggest remaining challenge is making these tests invisible to the user.  We have multiple places where your skills can be useful, as we work on everything from compilers and operating systems to architecture and digital circuit design.

 

You will come away from this project with a better understanding of computer systems from the ground up and a stronger grasp of assembly, C/C++, and scripting.  Previous undergraduates who worked on our projects have been co-authors on our research publications.

 

 

CSE Project 9: Do You Hear What I See?

Faculty Mentor: Todd Austin (austin@eecs.umich.edu)

 

There are millions of people in the world who are vision impaired and you have the chance to help them see with their ears.  We are bringing together multiple disciplines to convert the world into sound so the blind can recognize specific items, recognize their current location, and navigate enclosed areas.  This project requires techniques from computer vision, computer architecture, robotics, and 3D audio processing.  We are looking for talented people to work with us in developing the embedded hardware to run this system.  The project will require working in C, C++, Verliog, and also provide opportunities for working with the OpenCV (Open Computer vision library), csound (Open Sound Library) and embedded hardware.

 

 

CSE Project 10: Theory of quantum information processing

Faculty Mentor: Yaoyun Shi (shiyy@eecs.umich.edu)

Prerequisite. Linear algebra (math 217 or more advanced courses), mathematical maturity. Prior knowledge on quantum mechanics is not required.

The surging interest on quantum information processing (QIP) is driven by two factors: first, the revolutionary applications that QIP enables, such as super fast quantum algorithms and unconditional secure quantum cryptography. Second, the information processing perspective is a completely new angle to examine the very fundamental questions about quantum mechanics and the ultimate law of Nature. This project aims to introduce mathematically talented and intellectually curious students to this fascinating area. The work includes active participation in the weekly reading group, reading papers, identifying and solving new problems. The student will have the opportunity to study from and collaborate with a group of strong researchers and to choose his/her focus from a wide range of topics, such as quantum cryptography, quantum algorithms, quantum complexity, and quantum information theory. For more information about the research group, visit: http://www-personal.umich.edu/~carlmi/QCcalendar.html.

CSE Project 11: Learning to understand and provide descriptions of objects using a Kinect sensor
Faculty Mentors: Edwin Olson(eboison@umich.edu)
Prerequisites: Strong Java programming skills, basic understanding of classification a plus

Interaction between humans and robots is becoming increasingly important in environments as diverse as hospitals, battlefield, and the home. The success of these interactions relies on the ability of humans and robots to be able to speak and understand each other, particularly in relationship to objects in the environment. We're working on a system that allows a robot to map objects it experiences through tactile sensing to nouns and adjectives. The student will use both a Kinect and a small mobile robot to gather sensory data about objects. They will develop algorithms for the segmentation and classification of objects, as well as assist in the training of the system to recognize a set of objects.

CSE Project 12: Heterogeneous Main Memory
Faculty Mentors: Satish Narayanasamy(nsatish@umich.edu)
Prerequisites: EECS 370

Memory system power is becoming an increasingly important problem, especially for large scale systems such as data centers. Convential approach to designing main memory is to achieve the best possible latency and bandwidth for a given power budget. However, applications that run on consolidates nodes in a data-center vastly vary in their memory access characteristic that one size fits all policy leads to significant performance and energy inefficiencies. The goal of this project is to design and evaluate a power and performance efficient heterogenous main memory by building upon a variety of memory modules that were originally designed for different domains: servers, gaming, and mobile computers.

CSE Project 13: Botnet Detection and Mitigation
Faculty Mentors: Farnam Jahanian (farnam@eecs.umich.edu), Michael Bailey (mibailey@eecs.umich.edu)
Prerequisites: Programming, Data Structures and Algorithms; an active interest in building (or destroying) software systems

Underlying much of today's cyber crime--- from spam, phishing, denial of service, to click fraud and beyond---are a complex ecosystem of attacker tools and networks. Often referred to as Botnets, these large pools of compromised computers sitting in homes, schools, and businesses are being used by attackers as anonymous proxies to hide their identities and provide disposable attack resources. In an effort to detect and mitigate the threat posed by botnets, our group has been investigating a wide variety of interesting technical approaches, including building models of the way botnets work, constructing new detection algorithms, deploying honeypots and decoy technologies, unraveling the secrets of malware, etc. As a team member on this project, you will have the opportunity to immediately and convincingly see the fruits of your labor as the solutions from our group enjoy wide deployment in production computer networks around the world.


CSE Project 14: Mobile Security

Faculty Mentors: Farnam Jahanian (farnam@eecs.umich.edu), Michael Bailey (mibailey@eecs.umich.edu)
Prerequisites: Programming, Data Structures and Algorithms; an active interest in building (or destroying) software systems

Mobile platforms such as the T-Mobile G1, Apple iPhone, and Nokia N-Series are reinventing the mobile landscape by opening up third-party development and by providing sophisticated productivity, communication, and application suites. Mobile devices are increasingly used to store sensitive personal information such as financial data used for mobile payments and banking. As result of these changes, standard techniques, methodologies, and best practices for securing modern mobile devices have yet to be established. Our research into mobility and security attempts to address the wide range of challenges faced in thisunique environment including, but by no means limited to: (i) mobile operating systems have very different security models (ii) mobile devices are highly resource constrained (iii) mobile devices have inherently different usability patterns. As a member of our team you will get to actively design novel security solutions for a wide array of mobile devices and work directly with our sponsors, including Google, to implement your proposed solutions.

CSE Project 15: Participatory Simulations in the Classroom
Faculty Mentors: Elliot Soloway
Prerequisites:

With the availability of low-cost, networked mobile technologies, where each and every student can have a mobile computing device in their possession 24/7, a whole new generation of science simulations is now possible. “Participatory simulations” enable students to actually participate in the simulation of a complex science process – as opposed to be being observers of an animation. As a participant, each student must make decisions about their activity in the simulation – and then experience the consequent of that decision. This summer, for example, we will develop two Psims – one for “energy” and one for “infectious diseases.” These Psims should enable students to develop a new level of understanding of complex science processes.