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.