2015 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://sure.engin.umich.edu/). 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: Android app or browser add-on to automatically discover user recommendations

Faculty Mentor: Harsha V. Madhyastha (harshavm@umich.edu

Prerequisites: Prior experience with programming in Java or Web development, and time to meet twice a week for one hour each

Description: All the apps (such as Yelp, Foursquare, Twitter, and Facebook) that exist today for users to discover recommendations for restaurants, web pages, songs, videos, etc., require users to take the effort of sharing their recommendations with their friends. If a user forgets to share his/her recommendation, his/her friends will not discover it. Moreover, many users simply don't care to share their recommendations due to the effort involved, due to privacy concerns, or because they are concerned about the impact on their reputation. In this project, you will develop either an Android app or a browser add-on, which once installed on a user's smartphone/computer, will constantly track the user's activities and discover the user's recommendations without any user input. For example, by tracking a user's location (by monitoring the GPS on the user's smartphone) and by correlating this information with restaurant locations posted on the Web, the app will automatically discover the restaurants that the user frequently visits (and hence, is likely to recommend). Similarly, a browser add-on can monitor the web pages that a user visits and try to infer those that a user likes as ones that the user spends significant time on.

CSE Project #2: Theory of Quantum Information Processing

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

Prerequisite: Must have taken a linear algebra course and be comfortable with proofs.

Description: We are in an exciting historical moment when quantum information technology is becoming the reality. What's the ultimate information processing power that Mother Nature provides? How to protect ourselves against quantum-equipped opponents? Through this project, a student will be exposed to the field and conduct cutting-edge research. An applicant is encouraged to start attending the weekly quantum information processing reading seminar (http://www.eecs.umich.edu/qip/).

CSE Project #3: 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 #4: 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 #5: 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 #6: Extending BlinkDB 

Faculty Mentors: 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 #7: Deep Visual Analogy-Making

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 #8: ExCAPE and DESUMA

Faculty Mentor: Stephane Lafortune (stephane@umich.edu)

Prerequisites: EECS 376 recommended, programming experience in C++ and Java

Description: ExCAPE is an NSF-funded Expeditions on Computer-Aided Program Engineering (https://excape.cis.upenn.edu/) that involves several universities, including Michigan. DESUMA is a software tool for controller synthesis (wiki.eecs.umich.edu/desuma). In the context of ExCAPE, we are working on "bridging the gap" between two areas of research: reactive synthesis in computer science and supervisory control in control engineering (https://excape.cis.upenn.edu/ce-BridgingTheGap.html). The SURE intern will participate in this effort in several ways: (i) development of case studies to compare/contrast these two approaches; (ii) implementation and testing of synthesis algorithms, as stand-alone and within DESUMA; and (iii) general enhancements to DESUMA and its companion library UMDES.

CSE Project #9: Computer Vision and Deep Learning (3 students)

Faculty Mentor: Jia Deng (jiadeng@umich.edu) 

Prerequisites: Linear algebra, probability and statistics, algorithms and data structures (EECS 281)

Description: Vision plays an essential role in our perception and understanding of the world. More than 50% of the human brain is involved in visual processing. Visual data is projected to account for 79% of all consumer Internet traffic in 2018. Research in our group is focused on computer vision, i.e. getting computers to understand images and videos as humans do. This includes recognizing objects, activities, scenes, events, as well as understanding how to interact with the environment. To this end, we develop mathematical models and deep learning algorithms that learn from massive collections of images and videos. We also do large-scale crowdsourcing to impart the wisdom of the crowd to computers. The undergraduate researcher will participate in a project that matches his or her background and interest, and get exposed to cutting edge computer vision research. 

CSE Project #10: Mining Big Visual Data

Faculty Mentor: Jia Deng (jiadeng@umich.edu) 

Prerequisites: Linear algebra, probability and statistics, algorithms and data structures (EECS 281)

Description: Vision plays an essential role in our perception and understanding of the world. More than 50% of the human brain is involved in visual processing. Visual data is projected to account for 79% of all consumer Internet traffic in 2018. In this project, we aim to automatically discover interesting trends and patterns in big visual data from the Internet, in particular, from social media such as YouTube, Flickr, Facebook, Twitter, Yelp, etc. We will study many interesting questions. For example, what can we say about a user based on the pictures he or she is tweeting? What can we say about a neighborhood using geo-tagged images? We will develop scalable statistical models to analyze big visual data. The undergraduate researcher participating in this project will get exposed to cutting edge research in computer vision and data mining. 

CSE Project #11: Making Some Algorithms Useful

Faculty Mentor: Quentin F. Stout (qstout@umich.edu)

Prerequisites: EECS 281, Data Structures and Algorithms, or equivalent

Description: Suppose you are trying to predict weight as a function of height and shirt size. You only want to assume that for a given shirt size, weight increases with height, and for a given height weight increases with shirt size, but you don’t want to assume there are linear relationships, nor do you know what happens if shirt size increases but height decreases. This form of regression is known as isotonic regression, and it is becoming more popular in various data mining settings. However, it is more difficult to compute than, say, finding least squares lines, and this has forced some researchers to use poorer approaches even though they wanted to use isotonic regression. We’ve discovered some new algorithms that give much more efficient ways to compute isotonic regression, but they are described in high-level pseudo-code, and researchers need code they can run. This project would develop implementations and post them on the web so that others can use them. There are several algorithms of varying degrees of complexity, so you would start on easy ones and progress to more advanced ones. You would also need to spend some time thinking about how users might interact with the programs and how to make the programs more useful for them.

CSE Project #12: Behavior Coding to Support the Development of Assistive Technology

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

Prerequisites: Important skills: Attention to detail, Optional skills: Linguistic knowledge, Experience in speech transcribing

Description: We take our ability to speak fluently and to understand others for granted. However, for people with aphasia, these skills that they had once mastered have now become out of reach. We are designing a mobile app for people with aphasia to aid in speech practice, allowing them to regain their ability to speak, to be understood, and to understand others. We are looking for students to take part in the development of the app (the app already exists and has been used in interactions with patients). We are also looking for students interested in working with patients to further refine the app and to understand aspects of user experience.

In a similar vein, we rarely consider the inherent challenges in perceiving the emotions of others. However, it is hypothesized that people with depression and bipolar disorder perceive emotional messages differently. We are collecting data to understand the perception process in more detail. We are looking for students to take part in behavioral coding to allow us to understand how perception is reflected in behavior.

CSE Project #13: Modeling Aspects of Social Contagion

Faculty Mentor: Grant Schoenebeck (schoeneb@umich.edu

Prerequisites: Important skills: Attention to detail, Optional skills: Linguistic knowledge, Experience in speech transcribing

Description: Student should have both knowledge of proof based mathematics demonstrated in an upper level math or theoretical computer science course, and ability to program without supervision. Additionally, students should be comfortable with basic graph theory and probability theory (the more the better). For this project the student will explore aspects of social contagion. Students will develop and evaluate models for social contagion. Evaluation will be done analytically using proof techniques from mathematics and theoretical computer science, using simulation, and collecting and fitting data. For example, student’s might explore how new communities from out of old, or how homophily (similarity) between neighbors impacts the spread of contagions.

CSE Project #14: Direct phone-to-phone communication to resist blocking, censorship, and surveillance

Faculty Mentor: Robert Dick (schoeneb@umich.edu

Prerequisites: iOS or Android programming skills

Description: The goal of this project is to complete the implementation of a phone-to-phone communication system. This system uses direct and transitive phone-to-phone transmissions to allow friends and family members within a town or campus to remain in contact despite attempts to block, censor, or spy upon their communication. This position is most appropriate for students with a personal interest in making it easy for normal people around the world to communicate freely and, if they wish, privately.

CSE Project #15: General-purpose GPU exploration

Faculty Mentor: Valeria Bertacco (vale@umich.edu

Prerequisites: Basic computer architecture (for instance, EECS370)

Recommended: C++, scripting

Description: Everybody knows that GPUs are good for games. But few people know that the latest general-purpose GPUs are good for conventional computing too! It is, however, hard to leverage the performance benefits without understanding the interplay of software and hardware in their architecture. In this project, you will be exploring the design-space of GPUs architectures by characterizing their performance for a set of computing workloads. The purpose is to classify the workloads and their affinity to particular architectural configurations. The results will motivate further research in this field by demystifying the behavior of GPUs and their interaction with applications.

CSE Project #16: Modeling Computer Heterogeneity

Faculty Mentor: Valeria Bertacco (vale@umich.edu

Prerequisites: Basic computer architecture (for instance, EECS370)

Recommended: C++, scripting

Description: Modern processors have a variety of components embedded on a single chip. Even
the smallest smartphone chips comprise of a variety of IPs, graphic units, video decoders, etc. Due to the fast changing landscape of IPs that make it into a modern chip, it is a challenge to model such systems. In this project, we will develop a high-level approximation tool that models all components in a lightweight and extensible manner, while still maintaining the key aspects of their execution behavior. We already have the initial setup of this effort underway, so you will be actively developing models for a number of IPs and, at the same time, verifying their behavior against a real system.

CSE Project #17: Getting In Control of Your Control Flow (Computer Security Project)

Faculty Mentor: Todd Austin (austin@umich.edu, http://www.eecs.umich.edu/~taustin

Prerequisites: EECS 280, C++ programming, compiler/operating system experience

Description: Computer security has become a central focus in the information age. Though enormous effort has been expended on ensuring secure computation, software exploitation remains a serious threat. The software attack surface provides many avenues for hijacking; however, most exploits ultimately rely on the successful execution of a control-flow attack. This diversion of control flow is made possible by the pollution of control flow structure with attacker-injected runtime data.  In this project, we are developing a novel approach to ensure the runtime integrity of program control flow: Control-Data Isolation. Rather than addressing control-flow attacks by layering additional complexity, our work takes a subtractive approach; subtracting the root cause of control-flow attacks by removing all control indirection from software. Students working on this project will be developing a LAMP stack (Linux/Apache/MySQL/PHP) based on this powerful new technology.  The work will require compiler and operating systems programming.

CSE Project #18: Smart, Programmable Memory Controllers (Computer Architecture Project)

Faculty Mentor: Todd Austin (austin@umich.edu, http://www.eecs.umich.edu/~taustin

Prerequisites: EECS 370, C++ programming, operating system experience

Description: Scaling the performance and power of future computing systems has become a great challenge, due to slowing silicon scaling performance, long memory delays and lack of thread-level parallelism. This project will focus on reducing memory delays by eliminating much of the memory communication. We do this by moving the computation to the memory unit, by building smart accelerated memory controllers that are embedded in next-generation 3D memory stacks. The controller are programmed using existing well-established distributed paradigms (e.g., MapReduce, MPI). Students working on this project will need to understand the architectural components as well as perform low-level C++ programming of the memory controllers, and develop operating system driver interfaces to these new facilities.

CSE Project #19: Location privacy protection for smartphone users

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

Prerequisites: Some knowledge of mobile applications, security, cryptography, wireless networks, operating systems will help.

Description: Mobile apps that we run as part of our daily life access our location continuously; for example, a weather app accesses location every 5 minutes. This frequent location access will allow apps to identify places that users visit including home, work, bars, malls, etc. A service provider can use these places to learn more about the user (e.g., religion, health, socio-economic status, etc.). In this project, we aim to prevent such apps from learning sensitive information about users through supplying them with fake locations. Specifically, we want to implement a mechanism on Android in which apps will receive a set of fake locations along with the real location. This task, however, is challenging as supplying the app with a set of locations and still maintaining app’s normal operation is not straight-forward. As such, we are looking for a qualified and well-motivated student to contribute to the design and implementation of this mechanism. The student needs to be well-versed in Android programming and have good knowledge about the internals of the Android platform. It is also preferable that the student has good writing skills.

CSE Project #20: Hacking Random Number Generators

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

Prerequisites: A- or above on EECS 281, A or above in stats/probability

Description: Random numbers are vital resources for information security. Random number generators are ubiquitous in modern day computing and communication devices. They are used to generate cryptographic keys and for secure Internet connections. This project aims to examine the security of mainstream RNGs. A strong background in probability and statistics and the ability to translate ideas into working codes is a must.