2019-2020 SURE Research Projects in CSE

This page lists summer research opportunities in CSE that are available through the SURE Program. To learn more or apply, visit: https://sure.engin.umich.edu/.

Directions

  • Please carefully consider each of the following projects, listed below, before applying to the SURE Program.
  • You must indicate your top three project choices on your SURE application, in order of preference, using the associated CSE project number.
  • Questions regarding specific projects can be directed to the listed faculty mentor. 

Project descriptions

CSE Project #1: The Internet of Everything: Bringing everyday objects into the digital world with RFID tags
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Strong programming skills.
Description: RFID tags are battery-free, paper-thin stickers that can communicate with RFID readers from +8 meters of distance. These tags offer a minimalistic means of instrumenting everyday objects. By monitoring changes in the low-level communication channel parameters between the tag and reader, it is possible to turn an RFID tag into an ultra-low-cost, battery-free sensor. Applications include in-home activity inferencing, interactive physical objects, and health and wellness monitoring.

CSE Project #2: Ubiquitous Displays
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Strong programming skills or experience using embedded systems.
Description: Pervasive and interactive displays promise to present our digital content seamlessly throughout our environment. However, traditional display technology does not scale to ubiquitous, room-scale applications due to high per-unit-area cost and need for wired infrastructure. We developed paint which changes color when exposed to UV and deep blue light, and applied it to walls and other surfaces. We are exploring its use in creating ultra-low-cost displays. To activate the paint to display images and allow users to interact with the displayed content, we are developing three custom devices: a smart pen, a smartphone case, and a wide area laser projector. These devices allow users to create and draw on-demand interfaces, to launch applications, control their smart home, and work collaboratively. Students working on this project will explore these three devices, and help integrate them into home and work applications. The work will require assembly and programming of microcontrollers and IoT devices.

CSE Project #3: Energy Autonomous Sensing and Computing Systems
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: EECS 311 or EECS 373.
Description: This project encompasses a number of efforts at developing energy harvesting, battery free sensing systems that can be easily embedded into everyday objects and thus allowing for near perpetual operation. Topics include ambient energy harvesting techniques, platform architecture and power management, and debugging tools that deal with intermittent power.

CSE Project #4: Ubiquitous Health Sensing
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Experience with embedded systems, computer vision, or machine learning.
Description: Effective means of unobtrusive and continuous monitoring of one’s health could transform how we detect and treat illnesses. This project aims to create a long-range health monitoring system that can passively measure an individual’s vital signs and daily activities from a distance of up to three meters. Building off of novel sensing techniques developed in the Interactive Sensing and Computing Lab, SURE students will work with faculty and graduate student mentors to create a fully working end-to-end system, utilizing embedded systems, computer vision, and machine learning.

CSE Project #5: Robust Machine Learning
Faculty Mentor: Atul Prakash [aprakash @ umich.edu] 
Prerequisites: Math 214/217 (Linear algebra), EECS 445 (Machine learning), Neural networks, SVMs.
Description: The goal of the project is explore research challenges in the adversarial testing of machine learning algorithms and strategies for making the algorithms robust. You may be doing data collection and labeling, creating normal and adversarial trained machine learning classifiers, and comparing different method for finding adversarial inputs and training robust classifiers.

CSE Project #6: Taming the Performance Bottlenecks of Modern Web Applications
Faculty Mentor: Baris Kasikci [barisk @ umich.edu] 
Prerequisites: EECS 482.
Description: Modern data-center applications suffer significant slow-down due to large number instruction cache-misses. To reduce such cache-misses, recent studies have advocated the introduction of a new code prefetch instruction. While warehouse-scale processors do not support this feature yet, some mobile processors already support this code prefetch instruction. In this study, we will design a compiler backend to inject code prefetch instruction both statically and based on profile data in order to evaluate several data-center applications on mobile such processors.

CSE Project #7: Hazel Notebooks: Building a Better Jupyter
Faculty Mentor: Cyrus Omar [comar @ umich.edu] 
Prerequisites: EECS 490 or equivalent preferred, but not required.
Description: The popular Jupyter lab notebook environment is powerful, but it has a problem: results stored in a notebook are not reproducible, because the user can execute cells out of order. In our group, we are developing a new live functional programming environment called Hazel (hazel.org). Right now, Hazel does not support multiple program cells. This project will turn Hazel into a next-generation version of Jupyter by adding support for notebooks with multiple cells, with dependencies between them. We will solve the reproducibility problem by developing a mechanism conjectured in a recent paper in our group: fill-and-resume.

CSE Project #8: Hazel: A Live Functional Programming Environment
Faculty Mentor: Cyrus Omar [comar @ umich.edu] 
Prerequisites: EECS 490 or equivalent is preferred, but not required.
Description: Hazel (hazel.org) is a live functional programming environment that is able to typecheck, transform and even execute incomplete programs, i.e. programs with holes. There are a number of projects available within the Hazel project for a student interested in research into programming languages.

CSE Project #9: Computer Vision for Physical and Functional Understanding
Faculty Mentor: David Fouhey [fouhey @ umich.edu] 
Prerequisites: Good grades in EECS 442 OR EECS 445.
Description: The lab is broadly focused on building 3D representations of the world and understanding human/object interaction. Potential projects include learning about: navigating environments, object articulations, commonsense physical properties of objects, and hand grasps. Please look at:http://web.eecs.umich.edu/~fouhey/ for a sense of what projects we’ve done in the past. We will find a specific project based on mutual interest and particular abilities (e.g., stronger systems programming abilities, experience with graphics, etc.). Students looking for a longer term project continuing during the school year are strongly encouraged to apply.

CSE Project #10: Cloud-Driven 3D Printing
Faculty Mentor: Harsha Madhyastha [harshavm @ umich.edu] 
Prerequisites: EECS 482.
Description: Today, the execution of a 3D printer is driven by a locally running controller which translates a high-level geometric specification of the product being printed into low-level commands sent to the device’s motors. This design suffers from two fundamental limitations: the local controller’s execution is constrained by the amount of compute power on the device, and the controller is hard to update when new algorithms for it are developed.

To address these limitations, in this project, we will realize a new architecture in which the execution of a 3D operation will be managed by a controller running in the cloud. This offers practically infinite compute resources to the controller, makes it straightforward to update the controller’s code, and also enables collaborative optimization (e.g., the controller can learn from the operation of some devices to fine-tune the operation of other devices of the same type).

Some of the challenges that will need to be tackled in realizing this new architecture include: a) making the cloud controller fault-tolerant (i.e., switching from a cloud controller in one region to another based on current Internet path characteristics), and b) enabling the local controller to take over safely when the device loses Internet connectivity.

CSE Project #11: Moving Beyond Using URLs to Refer to Images on the Web
Faculty Mentor: Harsha Madhyastha [harshavm @ umich.edu] 
Prerequisites: Required: EECS 281 + Familiarity with a scripting language such as Python; Desired: EECS 442 and/or EECS 485.
Description: Today, most web pages include images, and in many cases, the images on a page are hosted in a different domain than the page. As a result, it could eventually become the case in the future that, even if a page still exists, some of the images on it may no longer exist (e.g., because the domain hosting those images decides to delete them).

We observe that this threat can be addressed by harnessing the fact that many of the images on the web have copies in several domains. Yet, taking advantage of this redundancy is hard because every web page includes images by referring them to via their URLs. Every image’s URL ties the image to a specific domain, and so, a user sees an image is missing if that domain is no longer hosting the image.

In this project, we will design a new web architecture in which, whenever a web browser loads a page, it can fetch any image on this page from any domain that has a copy of it. In doing so, we will need to leverage image processing techniques because, even when an image has many copies on the web, these copies differ with respect to dimensions, resolution, etc.

CSE Project #12: Deep Learning for Perception and Reasoning
Faculty Mentor: Honglak Lee [honglak @ umich.edu] 
Prerequisites: Grade of A or higher in undergrad ML (EECS 445); solid skills in calculus, probability, and statistics; strong programming skills; prior experience in deep learning libraries (Tensorflow, pytorch, etc.) is desirable but not required.
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 and labeled data. In this project, we will focus on developing machine learning algorithms and applying them to perception and reasoning problems, which involve computer vision and language. Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.

CSE Project #13: Deep Reinforcement Learning
Faculty Mentor: Honglak Lee [honglak @ umich.edu] 
Prerequisites: Grade of A or higher in undergrad ML (EECS 445); solid skills in calculus, probability, and statistics; strong programming skills; prior experience in deep learning libraries (Tensorflow, pytorch, etc.) is desirable but not required.
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 and labeled data. In this project, we will focus on developing machine learning algorithms and applying them to perception and control problems, for example where an agent interacts with a complex environment with partial observability and sparse rewards. In order to tackle the problem better, we will also explore state-of-the-art techniques in vision and language. Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.

CSE Project #14: Machine Learning for Data-Driven Decisions
Faculty Mentor: Jenna Wiens [wiensj @ umich.edu] 
Prerequisites: EECS 445 (machine learning), linear algebra, probability and statistics, strong programming skills.
Description: We focus on problems that lie at the intersection of machine learning and healthcare. We have several projects that leverage time-series data, including structured clinical data, unstructured clinical notes, physiological waveforms, and images, for building predictive models of adverse outcomes and matching patients to treatments. Our applications range from short-term in-hospital outcomes (e.g., acquisition of healthcare-associated infections) to long-term chronic diseases (e.g., progression of cystic fibrosis). While we are motivated by problems with potential for impact in healthcare, we make contributions to machine learning through the development of novel techniques for organizing, processing and transforming these data into actionable knowledge. To this end, we are particularly interested in time-series analysis, transfer/multitask learning, intelligible models, and novel techniques for incorporating domain expertise. In this project, the undergraduate researcher will support the development and analysis of computational tools for improving healthcare. Students who intend to continue research beyond the summer are especially encouraged to apply.

CSE Project #15: Graph Neural Networks for Understanding High-resolution 3D Chromatin Organization
Faculty Mentor: Jie Liu [drjieliu @ umich.edu] 
Prerequisites: Machine learning basics, deep learning basics.
Description: Joint analysis of 3D chromatin organization with previously profiled 1D epigenome in different cell types will be a key step to understand the mechanisms underlying transcriptional regulation over long genomic distances. However, there are two challenges. First, there is a resolution mismatch between chromatin organization data (e.g. Hi-C contacts) which are usually measured at 10k base pair resolution, and epigenome-based chromatin state features (e.g. ChIP-seq peaks) whose signals are usually at tens to hundreds of base pairs. Second, existing computational approaches for analyzing epigenome, such as annotating genome and understanding regulatory elements, all treat the DNA sequence as one-dimensional data, leaving the important 3D structural information unutilized. We aim to develop the most cutting-edge deep learning approaches for understanding the relationship between chromatin state features and chromatin organization, performing 3D and 4D genome annotation, and identifying spatially collaborative transcription factors, respectively.

CSE Project #16: Collaborative Task Planning and Learning through Language Communication in a Human-Robot Team
Faculty Mentor: Joyce Chai [chaijy @ umich.edu] 
Prerequisites: Proficiency in programming, e.g, python, have some knowledge/background in robotics.
Description: This project will develop a novel framework that tightly links language and dialogue processing with the robot’s underlying planning system to support collaborative task planning and learning in a human-robot team.

CSE Project #17: Knowledge Acquisition Towards Collaborative Planning
Faculty Mentor: Joyce Chai [chaijy @ umich.edu] 
Prerequisites: Proficiency in programming, e.g., python; have knowledge/experience in machine learning and computer vision.
Description: This project will develop approaches that process text and extract procedure knowledge to facilitate automated planning.

CSE Project #18: 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 (strategicreasoning.org) develops computational tools to support reasoning about complex strategic environments. Recent applications include scenarios arising in finance and cyber-security. We employ techniques from agent-based modeling, game theory, and machine learning.

CSE Project #19: Smart Agents that Know their Users
Faculty Mentor: Nikola Banovic [nbanovic @ umich.edu] 
Prerequisites: Strong programming background; experience with Machine Learning and Reinforcement Learning is a plus.
Description: The goal of smart agents that run on personal and mobile devices (e.g., Cortana, Google Assistant, Siri) is to provide people with relevant and personalized information and assist them in everyday tasks. Such agent automatically learning about the users over time by observing them and inferring information about them (e.g., using methods such as Active Learning). However, sensing and learning user information takes time. This leads to significant downtime between when the user starts using the agent and when the agent has learned enough about the user to offer personalized services. Furthermore, existing methods make unrealistic assumptions that the users will answer unlimited number of questions without refusing to answer any of those questions and always answering truthfully. In this project, we design, implement, and study smart agents that can learn which questions to ask about the users and when to ask them to learn as much as possible about the users. The goal of our agents is to maximize their adoptability and minimize the users’ attrition and the burden and inconvenience of asking socially unacceptable or awkward questions. Knowledge from this project will inform the design of future smart agents that can automatically learn fundamental user properties to provide them with a starting point for inference about the specific information they need to make their specialized predictions and recommendations.

CSE Project #20: Sensuous Visions of a Utopia
Faculty Mentor: Nikola Banovic [nbanovic @ umich.edu] 
Prerequisites: None. Programming experience not required.
Description: Reorganizing society along new principles of production can promote human welfare and decrease the pressure on our natural environment. However, it can be difficult to imagine alternative modes of production, given that our routinized life is structured so that the current economic and political system seems inescapable and key to fulfilling our needs. In this project, we will construct forms of technology that experiment with other methods of organizing production that help people envision different futures. We will test the feasibility of a model of an alternative development that is based on information technology, put forward by an economist. You will help design, create, and test the first tech step: a user-facing interface that solicits people’s desired products and services without a price mechanism in an attempt to displace the “invisible hand” of the market. While constructing the proposed system, we will push back against existing design principles and patterns that treat users as consumers.

CSE Project #21: Behavior-based Healthcare Interventions at Home
Faculty Mentor: Nikola Banovic [nbanovic @ umich.edu] 
Prerequisites: Strong programming background; experience with Machine Learning and Reinforcement Learning is a plus.
Description: Behavioral-based healthcare interventions can impact the actions that patients take with regard to their health, and this can be used to generate better healthcare outcomes. People suffering from different diseases like Multiple Sclerosis, Spinal Cord Injury, Fibromyalgia, Concussion, often suffer from poor symptoms that are related to numerous negative outcomes including employment, disability, social impairment, life satisfaction, interference with daily activities, general mental and physical health, and community integration. Most of the current approaches in the domain of healthcare interventions are related to the clinic and clinicians, focusing on diagnosis and symptom management, whereas most of the patients may not be monitored outside the clinic as they have no interaction with clinicians at home. In this project, we propose to create a set of Behavior Modeling and Machine Learning techniques to automatically detect, extract, and capture unique patterns of daily changes of most impactful symptoms and behaviors of patients with MS and relate them with their healthcare outcomes. Understanding and modeling the behavior of patients can support innovative design systems across healthcare domains and such interventions can improve patients’ healthcare outcomes to improve their quality of life and functional ability. It can also enable clinicians to prescribe behavior-based interventions remotely through the use of technology that may help to increase health access and equity by evaluating future personalized interventions and self-management strategies for MS patients.

CSE Project #22: Datasheet Classification and Extraction through Machine Learning
Faculty Mentor: Ronald Dreslinski [rdreslin @ umich.edu] 
Prerequisites: EECS 280.
Description: We work on a System-on-Chip (SoC) generation tool that creates a large database of existing Intellectual Properties (IPs), efficiently searches through them, and selects optimal IP options based on users requirements. Creating such a broad database requires reading abundant datasheets, as engineers historically use this format to document their IP functionality and performance. A manual approach is time-consuming especially if the database scales to 10 Million parts. In order to address this problem, we are developing a novel deep learning-based approach for automatically categorizing datasheets and an extraction technique for parsing relevant functional information from either text or tables within datasheets. For this project, we are seeking undergrad students to test the machine learning codes on different datasets, debug them, and extend the algorithms.

CSE Project #23: Censored Planet: A Global Observatory for Internet Censorship
Faculty Mentor: Roya Ensafi [ensafi @ umich.edu] 
Prerequisites: EECS 388 and EECS 482.
Description: The Internet Freedom community’s understanding of the current state and global scope of censorship remains limited: most work to-date has focused on the practices of particular networks and countries, or on the reachability of small sets of online services and from a small number of volunteers. Creating a global, data-driven view of censorship is a challenging proposition, since censorship practices are intentionally opaque, and there are a host of mechanisms and locations where disruptions can occur. Moreover, the behavior of the network can vary depending on who is requesting content from which location.

Last fall, Prof. Ensafi launched a pilot of Censored Planet, an online observatory for Internet censorship that applies all of next-generation measurement techniques in order to rapidly, continuously, and globally track online censorship. Data from the pilot has already been used by dozens of organizations, and it has helped provide insight into important events like Saudi Arabia’s reaction to the death of Jamal Khashoggi, the proliferation of DPI-based censorship products, and recent HTTPS interception attacks sponsored by the government of Kazakhstan.

We seek to extend and fully operationalize Censored Planet and make data from next-generation remote censorship measurements more useful to the entire Internet Freedom community. We plan to mature the project from a pilot to a production system with significant improvements in performance, stability, usability, and code quality; implement an API and new “rapid focus” capabilities to agily respond to world events; and develop aggregation and analysis tools to automatically extract useful insights from that data. We will also cultivate a community of civil society organizations and tool developers to ensure the data best serves real-world needs.

By helping create a more complete picture of global censorship than ever before, Censored Planet will allow researchers and policymakers to closely monitor for deployment of censorship technologies, track policy changes in censoring nations, and better understand the targets of interference. Making opaque censorship practices more transparent at a global scale will help counter the proliferation of these growing restrictions to online freedom.

CSE Project #24: Into the AI Void (Computer Architecture Project)
Faculty Mentor: Todd Austin [austin @ umich.edu] 
Prerequisites: EECS 280, EECS 370, C++ programming, compiler/operating system experience.
Description: As everyone (and their brothers, and sisters, and aunts, and cousins) works on deep neural nets, machine learning, and AI algorithms, it creates a void surrounding research on applications that do NOT lend themselves to well to neural nets and machine learning. In this project, we will be performing a deep-dive on the capabilities of neural nets and machine learning to understand what they CANNOT do well, and build understanding as to what specialized hardware support can be created for potential post-AI algorithms. We’ve already identified a number of promising candidates, and we are eager to get more hunters on the trail!

CSE Project #25: Privacy-Enhanced Computer Architectures
Faculty Mentor: Todd Austin [austin @ umich.edu] 
Prerequisites: EECS 370.
Description: In this project, we will be designing architecture that can process on encrypted data without keys, thereby enabling 100% private computation. We will be designing and testing systems that rival coveted cryptographic techniques like trusted execution environments and homomorphic encryption. Namely, existing processors are equipped with trusted execution environments to preserve data privacy, and homomorphic encryption is seen as the ultimate solution to untrusted cloud environments. But, both techniques have serious drawbacks. Deployed trusted execution environments (e.g., Intel SGX) only encrypt data in main memory. Secret values in the caches or processor are stored as plaintext, allowing exploits like Foreshadow to readily leak private data. While homomorphic encryption never discloses plaintext values, it is currently thousands of times slower than unprotected computations. In this work, we trade trust in hardware for performance. By developing a secure architecture with hardware-enforced private data types, we can assure that secret values are not stored as plaintext and never revealed to software while offering considerable speedups over homomorphic encryption. Through this project, you will work to 1) Add new capabilities to the existing architecture in our simulation platform, 2) Develop real-world privacy-enhanced applications on our system, or 3) Develop techniques to measure the performance and security of the design. These tasks will be assigned based on availability and personal preference.

CSE Project #26: Novel Architectures to Compute with Graphs
Faculty Mentor: Valeria Bertacco [valeria @ umich.edu] 
Prerequisites: EECS 281, EECS 370. Recommended: C++, scripting.
Description: More and more applications rely on graphs as the underlying data structure: from social networks, to internet’s web connections, to brain’s neurons and geo maps, and even consumers’ product preferences. The performance of these algorithms is often limited by the latency of accessing vertices in memory, whose access present poor spatial locality. The goal of this project is to boost the performance of graph-based algorithms by developing hardware and software solutions to this end: we plan to work on the data layout, on ad-hoc data structures and on designing dedicated hardware acceleration blocks. We hope to boost the performance of graph traversals by 3-5x.

CSE Project #27: Building Bricks for Hardware: A Hardware Kernels Library
Faculty Mentor: Valeria Bertacco [valeria @ umich.edu] 
Prerequisites: EECS 280, EECS370 or EECS 373. Recommended: C/C++, scripting.
Description: Several researchers have proposed to lower the cost of new hardware designs (often several hundred of millions $$) by using composable chiplets, assembled on a silicon base similarly to Lego bricks. Nvidia and AMD are already designing systems with this new approach. This project explores the benefits it would bring if we could have a whole library of such chiplets, with elements like: FFT, matrix-multiply, sorting, graph-traversal, etc. The goal is to design several simple hardware components to add to our library.

CSE Project #28: From high-level language to hardware — without the hardware design
Faculty Mentor: Valeria Bertacco [valeria @ umich.edu] 
Prerequisites: EECS 281. Recommended: C++, assembly, EECS 483.
Description: This project explores a new hardware design flow, where the starting point is an application specified in a domain-specific language (more specialized than C) like Halide or GraphIt, and the end point is a hardware system equipped with specialized hardware accelerators, so to execute the application much faster than it would be possible in software. To reach the end point, we will work on the back-end of the compiler, so to target the primitives available in the hardware accelerators.

CSE Project #29: Computing on encrypted data
Faculty Mentor: Valeria Bertacco [valeria @ umich.edu] and Todd Austin [austin @ umich.edu] 
Prerequisites: EECS 280, EECS 370. Recommended: C/C++, scripting.
Description: In the age of big data, privacy is a key concern in sharing data. Unfortunately, the field of security is riddle with stories of security attacks…even to the most secure enclaves. The solution we want to investigate with this project uses homomorphic encryption to encrypt data locally, transfer it to the cloud for any required computation, and receiving encrypted results back. The cloud system performs the computation (usually too compute-intensive for the end device, e.g.:smart phone or wearable), but never accesses the clear data, nor it can decrypt it. Only the end device, can decrypt the result and store it locally.