Electrical Engineering and Computer Science

2014 SURE/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: Computational Strategic Reasoning

Faculty Mentor: Michael Wellman (wellman@umich.edu

Prerequisites: Programming ability; interest/background in finance, economics, game theory, and/or statistics (helpful though not required)

Description: 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), cyber-security, and other applications.  One of our most active projects focuses is on implications of algorithmic and high-frequency trading in financial markets.  The undergraduate researcher will support development and analysis of strategies for algorithmic trading, or another domain of current research interest.


CSE Project #2:  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)

Description: 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 as 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 #3: Unsupervised Feature Learning and Deep Learning for Sensory Perception

Faculty Mentor: Honglak Lee (honglak@eecs.umich.edu) Looking for 2 students

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

Description: The brain has an impressive ability to process a variety of sensory input data, including images, sounds, languages, and touches.  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, and we then use these learned features to supervised learning tasks in artificial intelligence. 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, we will focus on developing machine learning algorithms and applying them to sensory perception problems (e.g., vision, audio, video, robotic sensors, and others). Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.


CSE Project #4: Unsupervised Feature Learning and Deep Learning for Data Mining

Faculty Mentor: Honglak Lee (honglak@eecs.umich.edu) Looking for 2 students

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

Description: The brain has an impressive ability to process a variety of sensory input data, including images, sounds, languages, and touches.  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, and we then use these learned features to supervised learning tasks in artificial intelligence. 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, we will focus on developing machine learning algorithms and applying them to important data mining problems (such as finding computational biomarkers from healthcare data, feature learning for time-series analysis, text mining, and others). Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.


CSE Project #5: Programming With Data (2 Open Positions) 

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

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

Description: Many applications today interact with large and heterogeneous datasets: search engines, visualization systems, analytics systems, comparison shopping engines, and many more.  But right now programming system support for these tasks is very limited. The result is awful code that is error-prone and hard to maintain. You will help build a novel combined programming language and data system that makes it easy for a programmer to process large and messy datasets.  


CSE Project #6: Mobile Apps in the K-12 Classroom 

Faculty Mentors: Elliot Soloway

Prerequisites:

Description: Finally, each and every student in K-12 (well, maybe not Kindergarteners) will have a mobile computing device in their hands 24/7. But what will they do on those devices? Here is a quote from the educational philosopher John Dewey (1916):   “They [teachers] give the pupils something to do, not something to learn; and the doing is of such a nature as to demand thinking... ; learning naturally results.” YEAH! Stop the bloody worksheets and clickers already! If you find Dewey's quote compelling, then join my team in creating mobile apps -- across all platforms -- for K-12 and help move the educational revolution forward!


CSE Project #7: Audio-Visual Emotion Modeling for Mental Health

Faculty Mentor: Emily Mower Provost (emilykmp@umich.edu)

Prerequisites: Familiarity with Matlab and/or SPSS, Interest in emotion

Description: Human emotional communication is a crucial component of our social interactions.  However, there exist individuals for whom the natural production and perception of these cues is disordered. Clinically, disordered emotion production and perception are hallmark symptoms of mental health disorders ranging from autism, to bipolar disorder, to schizophrenia. In this project we will develop computational models that capture typical human emotion expression and perception to predict how changes from these established patterns correlate with mood and psychological states in individuals with underlying mental health concerns. 
In this project you will participate in a subset of the following: the design of experimental protocol, evaluation and evaluation design, video analysis, and data coding/collection.  You will gain a greater understanding of human-centered research in the engineering community.


CSE Project #8:  Autonomous Robotics Research in the APRIL lab 

Faculty Mentor: Edwin Olson (ebolson@umich.edu)

Prerequisites: Most of our projects benefit from highly-developed software engineering skills (extending beyond coursework and including additional "real-world" experience), however we regularly have projects for students with particularly strong backgrounds in circuit board design, mechanical design and fabrication, and other specialized skills. In short, if you have an interest in robotics and a richly developed technical skill (whether it's in engineering, music, or visual arts), there may be a good project for you in the APRIL lab.

Description: The APRIL lab conducts research into a wide variety of topics including robot perception using cameras and laser range finders, autonomous ground/air robots of all sizes, multi-agent planning, 3D graphics and human-computer interfaces, and many others. Many projects are ongoing: students will be matched to an appropriate project based on their interests and aptitudes. 

Previous projects have included using a Kinect to model 3D objects and recognize/track them; developing a multi-camera robot ground-truthing system; creating robot interfaces for iOS and android devices; classifying terrain as safe or not-safe; design and manufacturing of new robot platforms; implementation of a robotic musical accompanist; etc.

interested students should contact the faculty mentor with a CV and a brief summary of the types of robotics problems they're interested in, and a frank description of the technical skills in computer science plus other possibly useful areas.


CSE Project #9: Big Data Analytics for Computer Security

Faculty Mentor: Valeria Bertacco (valeria@umich.edu)

Prerequisites: Recommended: EECS270 or basic logic design, including basic understanding or Verilog or HVDL; Basic knowledge of machine learning algorithms a plus

Description: Modern computers are an extremely complex network of hardware and software components...billions of logic gates and software functions. When something go wrong, finding the cause of the problem is supremely hard -- but until we do,
clever hackers can exploit the issue to their advantage!
In this project we are going to use large-scale big data analytics techniques
to pinpoint back doors that can be exploited for security attacks and provide ways to protect the victim unit from further attacks.


CSE Project #10: Operating System support for  Protecting information from Malware

Faculty Mentor: Atul Prakash (aprakash@umich.edu)

Prerequisites: Operating systems (EECS 482) or Programming languages or Compilers courses; Software
development in the Linux environment;  Familiarity with Linux kernel internals useful.

Description: Smartphones have a lot of personal information about us. One malicious app can potentially compromise that private data.  You will be assisting a graduate student in exploring the design and implementation of mechanisms to allow safer execution of untrusted code. You may be working on standard Linux systems or with Android. You will gain experience in working with the Linux kernel, security, and doing experimental research.


CSE Project #11: Securing cloud services

Faculty Mentor: Atul Prakash (aprakash@umich.edu)

Prerequisites: Databases (EECS 484); Software development in the Linux environment.

Description: Desktop and mobile applications increasingly use the cloud for storing and collating sensitive data collected from users. But, there is a concern that a breach at the cloud provider can cause massive data leakage risking users' privacy or leakage of sensitive data. You will be assisting a graduate student in exploring the design and implementation of mechanisms to reducing the risks of large-scale information theft. You will gain experience
in understanding information security issues and the challenges in addressing them.


CSE Project #12: Theory of Quantum Information Processing

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

Prerequisites:

Description: What is the ultimate computational power that Mother Nature provides? What are the fundamental limits on compressing and communicating quantum messages? What are the minimum assumptions under which unconditional secure quantum cryptography is possible? Those are questions that we study in the theory of quantum information processing. 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 and presenting 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.eecs.umich.edu/qip/.


CSE Project #13: Active Learning and Crowdsourcing Interface

Faculty Mentor: Barzan Mozafari (mozafari@umich.edu)

Prerequisites: Basic Statistics, Matlab, HTML, PhP or Python

Description: Implement a flexible interface that can implement an active learning framework to interact with Amazon Turk. The idea is to invoke an active learning algorithm to decide which questions to ask and when to ask the crowd.


CSE Project #14: MySQL for the Cloud

Faculty Mentor: Barzan Mozafari (mozafari@umich.edu)

Prerequisites: Basic database concepts, Linux, C/C++, open-source hacking skills

Description: Implementing small extensions of MySQL (an open source database) that make it easier to prototype cloud computing ideas using MySQL. Examples of such extensions are profiling hardware usage, logging locking details, and intercepting client connections.


CSE Project #15: Extending BlinkDB

Faculty Mentor: Barzan Mozafari (mozafari@umich.edu)

Prerequisites: Basic database and statistics knowledge, Java, (preferably Web programming), strong system building skills

Description:
BlinkDB is an open source distributed database that can query tens of terabytes of data in a matter of seconds. The intern in this project will have the opportunity to get familiar with a Big Data environment and contribute through several small modifications of the original code that can improve the overall performance and the user experience.


CSE Project #16: Diagnosing Computer Bugs Using Big Data

Faculty Mentor: Andrew DeOrio (awdeorio@umich.edu)

Prerequisites:

Description: Big Data is not just for Facebook and the NSA anymore. Big Data is often information gathered about people, and then analyzed by computers. The goal of this project is the opposite: to gather Big Data from the internal workings of a running computer processor itself and then analyze it using machine learning techniques. Computer chips are the most complex artifacts ever made by man, and frequently contain bugs, or errors in the hardware. We will use a Big Data approach to automatically find these bugs.


CSE Project #17: Mechanism Design in Social Networks

Faculty Mentor: Jacob Abernethy (jabernet@umich.edu)

Prerequisites: Familiarity with probability and statistics, game theory, convex optimization, and graph theory. Candidate should currently be at least a junior.

Description: Develop algorithms for designing mechanisms (auctions) to solve learning problems in a collaborative fashion. The project may utilize recent concepts in Differential Privacy. Project will be almost entirely theory and it is unlikely coding skills will be necessary.


CSE Project #18: Privacy and Economics in Wireless Networking

Faculty Mentor: Kang G. Shin (kgshin@eecs.umich.edu)

Prerequisites:

Description: Due to the exponential growth of wireless mobile applications and user population, efficient and fair resource allocation is essential to meet these demands. Auction is a natural way to distribute wireless resources to operators and/or users. Recently, the privacy of wireless mobile services (i.e., location privacy in network applications) has become a major concern. A few new concepts and metrics have been proposed to protect the users’ privacy in wireless networking services and applications. Many privacy-preserving applications have also been developed.

In this project, we will explore both the privacy and economic aspects of wireless network services and applications, such as spectrum auction, crowdsourcing, and social networks. We will first formulate meaningful problems, and then solve them by using tools from optimization, mechanism design, differential privacy, and software systems. Students are required to have good mathematical background and practical knowledge of wireless networks.


CSE Project #19: Band-aids for Broken Microprocessors

Faculty Mentor: Valeria Bertacco (valeria@umich.edu)

Prerequisites: Basic computer architecture (for instance, EECS370)
Recommended: EECS270 or basic logic design, including basic understanding
or Verilog or HVDL

Description: The project focuses on developing solutions for microprocessors with broken transistors: a rare event in the past, which is becoming more and more common. Indeed, today's transistors are so small (and getting even smaller), that technologists expect that by the year 2020, we'll have computers where one transistor breaks every day! The goal of the project is to develop solutions that allow these processors to operate just fine, even when a number of internal transistors have failed. And, we want to do it all at no extra cost!


CSE Project #20: CSE Project 20

Faculty Mentor: H. V. Jagadish

Description: The overall goal of the research effort to which this project belongs is to make it easy to compare and analyze information made public by various government agencies, at the local, state, and federal levels. As a specific point of focus, we will study the data sets made available at data.gov.

As a piece of this effort, I currently have a student working on the software to extract data from data.gov and put it into a database where it can be manipulated. The next step is to develop a web-based user interface through which non-technical users can conveniently access the data and perform complex analyses, and this is the focus of the proposed summer research project.  This project will draw upon my broader research group's efforts in making database system more usable, and will have a working software system as the promised deliverable.


CSE Project #21: Getting in Control of your Control Flow: Eliminating Arbitrary Code Execution.

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

Description: Software bugs comprise the greatest threat to computer security today. Though great strides have been made in the fight to secure computer systems, vulnerabilities and exploits persist. To address this, our lab designs systems leveraging both hardware and software to achieve greater application resiliency to exploitation. Utilizing an interdisciplinary approach, we combine elements from architecture, software test, compilers, and operating systems to eliminate the root cause of security vulnerabilities. One of the biggest challenges of this project is challenging the conventional approach to computer security: increasing system complexity to defeat would-be attackers. In this project, we instead take the unconventional approach of reducing complexity, addressing the root causes of control flow attacks, the keystone of most software exploits.       

What you will gain from this project is a greater understanding of computer system integrity, plus the opportunity to co-author a research publication on the work you do. You will come away with a better mastery of novel hardware architectures, software engineering practices, designing and conducting experiments, programming languages (C, C++), and instrumentation tools such as Pin and DynamoRIO.