Electrical Engineering and Computer Science

2017 SURE Research Projects in 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: Theoretical Quantum Information

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

Prerequisites: Linear Algebra at the level of Math 217 or higher, participation in the Quantum Information Reading Seminar in Winter 2017.

Description: We are in an exciting historical moment when quantum information technology is becoming reality. What's the ultimate information processing power that Mother Nature provides? What does quantum information tell us about fundamental physics? Through this project, a student will be exposed to the field and conduct cutting-edge research. Specific topics include quantum algorithms, quantum complexity, quantum cryptography, post-quantum cryptography, quantum thermodynamics, quantum error-correcting codes, and intersections between quantum information and condense matter physics, gravity, etc. An applicant is expected to start spending substantial amount of time (5-10 hours) in Winter 2017 to learn the background knowledge. In particular, s/he is expected to actively participate in the weekly quantum information processing reading seminar (http://www.eecs.umich.edu/qip/). Funding is available to extend the SURE program, including in Fall 2017 semester. Besides CS, math and physics majors are also welcome to apply. Ph.D.-bound students only.

CSE Project #2: Deep Learning and Computer Vision

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

Prerequisites: EECS 281, MATH 214, STATS 250 or their equivalents. EECS 442 and/or EECS 445 would be a plus.

Description: Students will be working on deep learning and computer vision in the Vision & Learning Lab on one of the following topics:

  • Action Understanding: Current systems can recognize "what is there" (objects and their locations), but not much beyond that. We want computers to also understand "what is going on", including interactions, intents, causality, and dynamics in a scene.
  • 3D Perception: Recovering 3D representations from 2D imagery is a foundation for high-level vision, but remains unsolved in unconstrained settings. We investigate algorithms to perceive 3D (in particular, from a single view) in the wild, making no assumptions about the types of objects or scenes.
  • Deep Learning and Representation Learning: We develop fundamental representations and architectures for vision and cognition. We study methods to make deep learning more scalable, flexible, and resource-efficient. We also study how to learn like humans, in particular, using strong prior knowledge and few training examples.
  • Vision, Language, and Cognition: We are interested in the intersection of vision, language, and cognition. In particular, we are interested in equipping computers with common sense, the ability to acquire and represent basic facts about the world and the ability to learn and reason using such knowledge.

CSE Project #3: Machine Learning for Patient Risk Stratification

Faculty Mentor: Jenna Wiens (wiensj@umich.edu)

Prerequisites: EECS 445

Description: Individualized prediction of disease (and disease-related events) is a major unmet challenge, yet is essential for realizing the full potential of personalized medicine. Underlying the prediction problem is the fact that disease processes, and the human hosts in which they occur, represent complex dynamical systems comprised of large numbers of components that interact in non-linear ways over time. This project will develop machine learning based approaches for building patient risk stratification models for adverse outcomes. In particular, it will focus on identifying hematopoietic cell transplantation (HCT, i.e., bone marrow transplant) patients at risk of graft-versus-host-disease (GVHD). Acute GVHD is the most common cause of mortality aside from leukemia itself in HCT patients, and occurs in up to 40% of patients within the first 100 days after transplant.

CSE Project #4: Software Development and Testing for Intrusion Detection and Privacy Enforcement in Control Systems

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

Prerequisites: EECS 281 or advanced programming experience; Programming experience in Java or C++ (highly recommended); EECS 376 (recommended)

Description: Our group is developing algorithmic procedures for control and diagnosis problems in feedback control systems modeled in the framework of Discrete Event Systems (DES). DES models have discrete state spaces and event-driven dynamics. Our models have the form of automata or transition systems. In our current work, we are looking at the two problems of (i) privacy enforcement and (ii) detection and mitigation of attacks on sensors and actuators in control systems. We are developing software tools that implement algorithmic procedures for solving these problems. We currently have a set of three tools that each serves different purposes:

(i) DESUMA (written in Java) for general DES functions; see: wiki.eecs.umich.edu/desuma
(ii) VEiP (written in Java) for privacy enforcement; see https://github.com/eugene7505/VEiP
(iii) DPO-SYNT (written in C++) for controller synthesis; see https://github.com/xiang-yin/DPO-SYNT

The SURE intern will work on implementing and testing new functionalities in DESUMA, VEiP, and/or DPO-SYNT. The intern will interact closely with graduate students. Various case studies will be considered to test the new software, including control of cyber-physical systems, detection of actuator and sensor attacks in control systems, and privacy enforcement in location-based services. Scalability tests will also be performed.

CSE Project #5: Large-scale Graph Analytics

Faculty Mentor: Danai Koutra (dkoutra@umich.edu)

Prerequisites: Linear algebra; familiarity with probability theory and statistics; good programming skills (e.g., Python, JAVA, C/C++, Matlab, or R); basic knowledge of machine learning is desirable.

Description: Graphs naturally represent information ranging from links between webpages to friendships in social networks, to connections between neurons in our brains. These graphs often span millions or even billions of nodes and interactions between them. In this project we will focus on developing scalable and practical methods and algorithms for exploring and analyzing large-scale networks, as well as applications in various domains (e.g., neuroscience, web, social science, anomaly detection in computer networks). The undergraduate researcher will have the chance to analyze large-scale datasets in distributed settings.

CSE Project #6: Automatic Speech Recognition for Health

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

Prerequisites: EECS 445 or EECS 545 or EECS 492 or experience with probability/machine learning

Description: Many severe mental illnesses, notably, depression, bipolar disorder, schizophrenia, and autism can be distinguished by disturbances in the normal structure of language. Additionally, the semantics of spoken utterances change in the presence of several mental illnesses. People with mood disorders tend to use first-person singular pronouns (“I”) and affect-related words (particularly words expressing negative emotions, sadness, and anxiety) frequently. Certain linguistic units (e.g., words, sequence of words, and phrases) are impacted by mood states.

Students working on this project will develop robust speech recognition systems using deep learning. They will use these systems to quantify changes in language patterns that are present when individuals with bipolar disorder and depression are healthy or are suffering from mood episodes.

CSE Project #7: Tools for Teaching at Scale

Faculty Mentor: Satish Narayanasamy (nsatish@umich.edu)

Prerequisites: EECS 281

Description: Need for computer science education has exploded over the last decade. Today, many of our computer science classes have over 500 students. President Obama's "CS for initiative" seeks to teach computer science to all majors and to high-school students. Globally, massive-open online courses (MOOCs) have the potential to transform education, especially in parts of the world where there is a paucity of quality instructors.

Automatic tools for teaching computer science to a large number of students is lacking, however. We need tools that can automate some of the roles of a teaching assistant, such as grading, providing feedback, and checking plagiarism of student's programming assignments.

In this project, you will apply machine learning methods to build such tools. For example, you will implement techniques to improve auto-graders widely used in several EECS courses to provide richer feedback to students, and grade not just based on test cases, but also consider how close a student's solution is to a correct solution.

CSE Project #8: Checking Safety of Software in Autonomous Vehicles

Faculty Mentor: Satish Narayanasamy (nsatish@umich.edu)

Prerequisites: EECS 281

Description: Software is controlling an increasing number of conventional and new automotive functions. Success of autonomous vehicles critically depends on the safety and reliability of its software components. Conventional software testing and verification methods used to ensure software safety, however, are either unsound (fail to find all errors), scale poorly to large programs, or unusable (e.g., produce too many false errors). Furthermore, these methods were primarily built for validating software that produce precise output, and work poorly for software that can produce a wide range of legal values (e.g., driver assist technologies based on deep learning).

We are investigating innovative static and run-time program analysis methods to address these challenges. You will help develop and apply tools that can find new classes of programming errors and ensure safety of software used in event-driven systems such as automotive software.

CSE Project #9: Privacy-Preserving Personalized Search

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

Prerequisites: Prior experience with Android or iOS app development.

Description: Today, when users search on services like Yelp, all users see the same results for the same query; for example, all users see the same set of restaurants when searching for restaurants near the intersection of State and Liberty. Instead, in this project, the student will develop an alternative system wherein a) a smartphone app tracks the user's location and infers the restaurants that the user visits, and b) uses the history of a user's restaurant visits to customize results for the user's queries. The key challenge will be to implement the personalized search functionality in a privacy-preserving manner that does not reveal a user's history of a restaurant visits to the server that serves search queries.

CSE Project #10: Automated Inference of Restaurant Visit History

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

Prerequisites: Prior experience with Android or iOS app development.

Description: In this project, the student will build a smartphone app, which will track the location of a user over time to infer the restaurants that the user visits. The key challenge in doing so is that the location inferred when a user is indoors is often inaccurate. So, if the app identifies the user's location only when the user arrives at a restaurant and then tries to map the location to a restaurant, the inferred restaurant will likely be incorrect. Whereas, if the app constantly queries the user's location in the background, this can lead to high energy consumption and fast battery drainage. The goal of this project will be to address this accuracy vs. energy-efficiency tradeoff.

CSE Project #11: Geo-Distributed Analytics

Faculty Mentor: Mosharaf Chowdhury (mosharaf@umich.edu)

Prerequisites: EECS 482; experience in working with open-source projects such as Apache Spark

Description: Large organizations and small enterprises alike leverage datacenters across the globe to offer Internet services to their users. Although fast, efficient, and cost-effective analyses of these large datasets can significantly improve users' quality of experience and enable novel applications, the wide area network (WAN) that connects the datacenters poses a considerable challenge: because WAN bandwidth is limited and expensive, and WAN latency is high and variable, both the performance and timeliness of analytics are affected by the WAN. In this project, we want to enable geo-distributed analytics to enable real-time machine learning, decision making, and query processing across the globe.

CSE Project #12: Application-Aware Datacenter Networking

Faculty Mentor: Mosharaf Chowdhury (mosharaf@umich.edu)

Prerequisites: EECS 482; experience in working with open-source projects such as Apache Spark; java/scala or other JVM-based languages.

Description: With the advent of cloud computing, big data analytics is becoming increasingly more common. However, despite the differences among data-intensive frameworks, their communication is structured and takes place between groups of machines in successive computation stages. We refer to them as coflows. Over the years, we have made major advances to make coflows more practical and useful; however, several challenges remain open to improve their scalability. In this project, we’ll explore how to improve the scalability and latency characteristics of coflow scheduling.

CSE Project #13: Resource Disaggregation

Faculty Mentor: Mosharaf Chowdhury (mosharaf@umich.edu)

Prerequisites: EECS 482; C/C++; experience in working with kernel preferred

Description: Despite the tremendous success as an economically viable means of application deployment, cloud computing face one major challenge. Scaling a cloud or a datacenter itself has become a major challenge due to the inherent resource coupling in today’s server-centric datacenter designs; one cannot independently modify a single resource without investing in others. For example, a server always comes with CPU and memory, even if we only want PCI Express slots to add more solid-state drives (SSDs). A possible solution to this problem is resource disaggregation, where one can scale up or down specific resources independently of other resources. In this project, we’ll focus on memory and/or GPU disaggregation.

CSE Project #14: Human-Powered Access Technology

Faculty Mentor: Walter Lasecki (wlasecki@umich.edu)

Prerequisites: This project includes human-computer interaction (HCI), and web programming (e.g., javascript/jQuery) components. Prior experience with UI development, design, or access technology is preferred. Students can gain experience in the research process, accessibility, access technology, crowdsourcing, software development, topics in collaboration and coordination methods, user evaluation, and more.

Description: Our world is not always fully accessible to those of us with sensory or motor impairments. For example, blind/low-vision or deaf/hard-of-hearing people may face challenges accessing information, and people with motor or mobility impairments may face challenges completing certain types of physical tasks. This project focuses in leveraging prior work in human-powered access technology (which combines on-demand human insight with AI/ML techniques) to reliably address the needs of people with disabilities in real-world settings. While we will primarily focus on audio and visual access technologies, we may also attempt to integrate some of these approaches with robotic assistants.

CSE Project #15: Crowd-Powered Robotics

Faculty Mentor: Walter Lasecki (wlasecki@umich.edu)

Prerequisites: This project includes artificial intelligence (AI), human-computer interaction (HCI), and web programming (e.g., javascript/jQuery) components. Prior experience with knowledge representation, UI design, or robotics is preferred. Students can gain experience in the research process, robotics, crowdsourcing, software development, topics in collaboration and coordination methods, user evaluation, and more.

Description: Robots provide a means of accomplishing tasks on people’s behalf, effectively offloading this effort and making people more productive. However, the underlying reasoning processes required often must rely on incomplete knowledge about the world, which automated systems struggle with. Using crowds of online workers, our goal is to help bridge these gaps, and make it possible for end users to interact with robots easily through natural language, and for robots to learn over time about the world around them and how it operates.

CSE Project #16: Acceleration sorting algorithms for Compute Caches

Faculty Mentor: Reetuparna Das (reetudas@umich.edu)

Prerequisites: EECS370/EECS281/EECS470

Description: In modern processors, much of the chip die is dedicated to cache, and these caches are utilized only as passive storage structures. Our new Compute Cache architecture re-purposes the elements used in these storage structures and transforms them into active computational units. Such a transformation could unlock massive data-parallel compute capabilities (up to 100×), dramatically reduce energy spent in data movement through various levels of memory hierarchy (up to 10×), and thereby directly address the needs of data-centric applications.

The underpinning principle is to enable computation in-place within each memory array, without transferring the data in or out of it. This can be accomplished by simultaneously activating multiple word-lines, and sensing the resulting voltage (or current) over the shared bit-lines in an unconventional manner, important operations over the data activated by the word-lines can be accomplished. We term this technique as bit-line computing. Currently compute caches support, logical operations, comparisons, swaps/copy and data migration operations.

While this new architecture has great potential, unlocking the savings and the speedups is dependent on cleverly implementing common algorithms and operations for Compute Cache's unique instruction set. Sorting is one such operation that is reoccurring in computer science, and implementing a fast and energy efficient sorting algorithm is paramount in order to make compute cache an architecture that can applied to a myriad of different application domains, such as data analytics, web search, data indexing etc. This SURE project will explore efficient implementation of sorting algorithms by leveraging Compute Cache architecture.

CSE Project #17: Modeling social networks

Faculty Mentor: Grant Schoenebeck (schoeneb@umich.edu)

Prerequisites: Student should have both knowledge of proof based mathematics demonstrated in an upper level math or theoretical computer science course. Additionally, students should be comfortable with basic graph theory and probability theory (the more the better).

Description: For this project the student will explore aspects of social networks. Several different projects are available to fit the student’s desires. For example, the student could develop models of social networks, and then design algorithms to recover the parameters of such models to data. Evaluation would be done analytically using proof techniques from mathematics and theoretical computer science, and additionally may be tested on real data. In particular, how to discover certain hierarchical structures in networks would be an interesting project. Other possible project involving studying how structure interacts with contagion.


CSE Project #18: Accelerating graph-based applications

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

Prerequisites: EECS281, EECS370 or EECS373

Recommended: C++, scripting

Description: In this project we want to create a hardware unit capable of accelerating applications that rely on graph-based analyses. For instance, web page rank must maintain and sift through a graph-based data structure to update page ranks and to respond to search queries. Our goal is to design a dedicated device to support this type of algorithms through ad-hoc computation and storage structure.


CSE Project #19: Quick-assembly for powerful chips

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

Prerequisites: Basic computer architecture and logic design (for instance, EECS270 and EECS370)

Recommended: C++, scripting

Description: Modern processors include a variety of components embedded on a single chip. Even the smallest smartphone chip comprises graphic units, video decoders, smartradio modules, crypto engines, etc. Connecting all these components together effectively is a very expensive design effort. In this project, we want to design a "baseboard" to which we can attach any set of components in a plug-and-play fashion, so that new chip deigns can be much cheaper and faster.


CSE Project #20: Security enforcer for untrusted computer processors

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

Prerequisites: Basic computer architecture (EECS 370)

Recommended: C++, scripting

Description: In the olden days, most security attacks targeted software applications, today attacks to the silicon layer of a microprocessor are becoming increasingly popular: attackers can monitor hardware registers to snoop the sequence of memory accesses of a program, its computation time, its program counter, etc. to try to infer what is the program computing. Researchers have developed protections from these attacks, called obfuscation techniques, but the cost is that the program runs 1,000 times slower -- so nobody deploys them. The goal of this project is to devise an enforcer hardware block that cannot be attacked by any of these methods, and can protect the rest of the chip from any security attack.