2022-2023 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/.

Note: CSE does not require additional materials unless noted in the project description.

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. 
  • Timeline: SURE applications will be reviewed throughout the month of March and recipients will be notified sometime in late-March/early-April.

Project descriptions

CSE Project #1: OmniScribe: making 360° videos accessible to blind or visually impaired people
Faculty Mentor: Anhong Guo [anhong @ umich.edu] 
Prerequisites: Skill needed: web development, especially understanding js and APIs.
Description: OmniScribe (https://omniscribe.org/) is a prototype system created to make 360° videos accessible to blind or visually impaired people. OmniScribe includes two parts: a web authoring interface and a mobile prototype. In the web authoring interface, there is a brushing tool to allow the user to select and highlight sentences (see our video around 2:06) and then spatialize the voiceover of selected sentences by brushing on the video screen. In this project, we’ll continue developing the next version of OmniScribe.
Expected research delivery mode: In-person

CSE Project #2: VRGit: a Collaborative Version Control System in Virtual Reality
Faculty Mentor: Anhong Guo [anhong @ umich.edu] 
Prerequisites: Skill needed: Programming for 3D applications, Unity.
Description: VRGit is a Version Control System (VCS) for collaborative content creation in Virtual Reality. The design of VRGit is instantiated in an immersive authoring environment for interior design, where users can create and manipulate 3D furniture in an empty apartment. Our VCS can then automatically record users’ operations and visualize the version history using a directed graph. In this way, VRGit enables users to easily navigate version history and create branches in content creation tasks. Checkout our work-in-progress demo video at: https://youtu.be/B3jQ34sGdxg
Expected research delivery mode: In-person

CSE Project #3: CollabAlly: Accessible Collaboration Awareness in Document Editing
Faculty Mentor: Anhong Guo [anhong @ umich.edu] 
Prerequisites: Skills needed: Web Development, Chrome Extension.
Description: CollabAlly is a system built upon Google Docs to make collaboration awareness accessible to blind people via dialog box, voice fonts, and spatial audio.

Checkout our paper (https://guoanhong.com/papers/CHI22-CollabAlly.pdf), video (https://youtu.be/s5bcZQlmbzE) and Github repo (https://github.com/HumanAILab/CollabAlly).

In this project, we are developing the next version of CollabAlly, as well as extending it beyond collaborative writing.
Expected research delivery mode: In-person

CSE Project #4: Web Automation using Program Synthesis (Front-end)
Faculty Mentor: Xinyu Wang [xwangsd @ umich.edu] 
Prerequisites: EECS 485 or familiarity with HTML/DOM/Javascript/Typescript.
Description: Many computer end-users often need to perform tasks that involve the web, such as filling online forms and scraping data, which are repetitive and tedious in nature. On the other hand, there are existing tools and languages, such as Selenium, that can be used to automate these tasks. However, writing automation scripts is far beyond the capability of end-users who have very little programming background. In this project, we aim to help users automate web-related programming tasks using an AI technique called program synthesis. We already built an initial prototype for this project, but we’re looking to significantly expand the project. We’re looking for a few students to work on the front-end development which involves designing and implementing user interfaces.
Expected research delivery mode: Hybrid but likely with more in person meetings.

CSE Project #5: Web Automation using Program Synthesis (Back-end)
Faculty Mentor: Xinyu Wang [xwangsd @ umich.edu] 
Prerequisites: EECS 203 and 280/281, and/or EECS 490/481. Experience with Rust is a plus. Experience with neural nets (e.g., large language models), computer vision, NLP is a plus.
Description: Many computer end-users often need to perform tasks that involve the web, such as filling online forms and scraping data, which are repetitive and tedious in nature. On the other hand, there are existing tools and languages, such as Selenium, that can be used to automate these tasks. However, writing automation scripts is far beyond the capability of end-users who have very little programming background. In this project, we aim to help users automate web-related programming tasks using an AI technique called program synthesis. We already built an initial prototype for this project, but we’re looking to significantly expand the project. We’re looking for a few students to work on the back-end development, which involves designing and implementing synthesis algorithms.
Expected research delivery mode: Hybrid but likely with more in person meetings

CSE Project #6: Query Optimization
Faculty Mentor: Xinyu Wang [xwangsd @ umich.edu] 
Prerequisites: EECS 484 (or familiarity with SQL), or EECS 481 (software engineering), or EECS 483 (compilers).
Description: SQL queries, if written poorly, are slow on large databases, even using state-of-the-art query optimizers. This project aims to develop a super optimizer for SQL queries, which is able to maximally boost the performance of a poorly written query.
Expected research delivery mode: Hybrid but likely with more in person meetings

CSE Project #7: Usable Sound Awareness Systems for Deaf and Hard of Hearing People
Faculty Mentor: Dhruv Jain [profdj @ umich.edu]
Prerequisites: Some experience with implementing machine learning (ML) algorithms is preferred. Experience with designing front-end user interfaces and/or conducting user studies is a huge plus, and if you have strong experience with this, but are uncomfortable with ML, please still apply.
Description: We will research, build, and deploy systems to provide sound awareness to people who are deaf and hard of hearing. These could include, but not limited to: (1) augmented-reality speech transcription interfaces on head-mounted displays, (2) smartwatch-based sound recognition app, and (3) a web-based personalizable sound recognition system. You will be part of a next-generation team who is actively working with Deaf/disabled population with a history of successful product launches. Once your system is built, you will participate in conducting field studies with DHH users and help with open-sourcing your system, ultimately leading to a huge real-world impact.
Expected research delivery mode: In-Person

CSE Project #8: Censored Planet Censorship Observatory
Faculty Mentor: Roya Ensafi [ensafi @ umich.edu]
Prerequisites: EECS 482 (Operating Systems) or EECS 388, proficiency in Python and/or Go programming, knowledge and background in network level understanding of the Internet. Machine learning experience and geopolitical knowledge are a plus but not required.
Description: The Censored Planet observatory uses a modular design for measuring and analyzing Internet censorship. Censored Planet continuously measures reachability to 2,000 websites from more than 95,000 vantage points in 221 countries. The observatory was launched in August 2018, and has since then collected more than 45 billion measurement data points. Censored Planet uses features in existing Internet protocols and infrastructure to interact with remote systems, using their responses to determine the presence or absence of censorship. Building off of novel Internet measurement and Machine Learning techniques, SURE students will work with faculty and graduate student mentors to implement new features into the Censored Planet observatory, and ensure sustainability of current features.
Expected research delivery mode: In-Person

CSE Project #9: VPNalyzer
Faculty Mentor: Roya Ensafi [ensafi @ umich.edu]
Prerequisites: EECS 388, EECS 482, proficiency in Python
Description: VPNalyzer is an interdisciplinary research project from the University of Michigan that aims to analyze the VPN ecosystem. VPNalyzer consists of three parallel efforts: large-scale quantitative and qualitative user studies, a cross-platform desktop tool for users to test the security and privacy features of their VPN connection, and qualitative studies surveying VPN providers. Our goal with the VPNalyzer project is to advance the public interest, inform practical regulations and standards, enforce accountability and empower consumers to find more trustworthy VPN products. Expanding the existing large-scale study of VPN providers, SURE students will work on analyzing data collected from the beta release of the VPNalyzer tool from users around the world and work on updating the VPNalyzer website.
Expected research delivery mode: In-Person

CSE Project #10: Back-end of a Stack-Based Functional Programming Language
Faculty Mentor: Max New [maxsnew @ umich.edu] 
Prerequisites: EECS 483 recommended
Description: Our research group is developing Zydeco (https://github.com/zydeco-lang/zydeco) a new programming language that uses stack typing to express low-level implementation details such as calling conventions and exception handling within a typed functional language. Currently our implementation only supports a reference interpreter. The goal of this project would be to implement a first compiler backend to a standard target such as x86 assembly code.
Expected research delivery mode: In-Person

CSE Project #11: Extending the Type System of a Stack-Based Functional Programming Language
Faculty Mentor: Max New [maxsnew @ umich.edu] 
Prerequisites: EECS 490 recommended
Description: Our research group is developing Zydeco (https://github.com/zydeco-lang/zydeco) a new programming language that uses stack typing to express low-level implementation details such as calling conventions and exception handling within a type-safe functional language. The goal of this project would be to extend the language’s syntax and type checker to support parametric polymorphism and overloading to have a language with comparable expressivity to OCaml or Haskell.
Expected research delivery mode: In-person

CSE Project #12: Enhancing Observability of Cloud System Software
Faculty Mentor: Ryan Huang [ryanph @ umich.edu] 
Prerequisites: EECS 482 or equivalent, proficiency in systems programming, EECS 591 (not required)
Description: System software running in cloud infrastructure frequently experience complex gray faults. These complex faults present significant challenges for ensuring the high availability and correctness of cloud systems. This project will develop cross-layer techniques to systematically enhance the observability of modern cloud software. We will explore and design techniques ranging from OS to architecture support, compiler analysis, runtime tracing, and machine learning. Students will work with the faculty and graduate student mentors, and get exposed to latest research as well as hands-on experiences on practical techniques.
Expected research delivery mode: Hybrid

CSE Project #13: Evaluation of (semi)autonomous cyber-physical systems
Faculty Mentor: Kang Shin [kgshin @ umich.edu]
Prerequisites: Familiarity with Matlab and programming languages like C, C++. Knowledge of digital signal processing and control would be a plus
Description: Autonomous and semi-autonomous systems are common in the modern world, finding applications especially in automotive and aerospace fields. Preliminary testing of these systems is often done using computer simulation, which can be faster, cheaper, and less risky than real-world prototyping. This project aims to develop a simulation testbench for testing the reliability of semi-autonomous systems developed in the lab relating to flying drones (quadrocopters). The capabilities of the Ardupilot simulation software, as well as new ideas relating to the semi-autonomous control of individual or grouped drones, will be explored.
Expected research delivery mode: Hybrid

CSE Project #14: Novel IoT Applications
Faculty Mentor: Kang Shin [kgshin @ umich.edu]
Prerequisites: C (or assembly) programming experience (such as embedded ARM or AVR), some circuit and wireless communication knowledge (optional)
Description: By connecting ubiquitous sensors to the Internet, Internet of Things (IoT) is becoming a key driver for a smart, connected world. This project is to explore and build novel IoT applications. Students will have solid hands-on experience with real embedded systems to build complete and practical systems. This project is particularly suitable for students who enjoy programming embedded microcontrollers and building systems (EECS 373 or 473). Students could also work on the wireless communication layer, if desired.
Expected research delivery mode: In-Person

CSE Project #15: Privacy-Preserving Sensing for in-home Activity Recognition
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Experience with embedded systems, computer vision, or machine learning
Description: Giving computers the ability to sense and understand our daily activities and routines can enable new smart home applications, context-aware computing, and transform how we detect, monitor, and treat disease and chronic illnesses. However, existing smart devices rely on remote cloud services to process voice commands, analyze video, and perform recognition tasks. Even if these smart devices record only ML features to send to the cloud, private data still leaves the home for cloud-based processing and is stored for an indeterminate amount of time. This project aims to create a new class of smart sensors and embedded devices that removes Personally Identifiable Information before sensitive data leaves the devices while maintaining downstream activity recognition applications. Examples include microphones the remove speech but leave other acoustic information for audio classification and cameras that use onboard GPUs to remove and replace images of people robustly.
Expected research delivery mode: In-Person

CSE Project #16: Multimodal Virtual-Reality System in Simulation-based Emergency Medicine Training
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Preferred Skills: Python, web development, or Unity
Description: Existing healthcare training for cardiac arrest focuses on real-world manikin-based simulations where instructors give direct feedback on student technique, team dynamics, and quality of care. However, this type of training is highly dependent on the students having access to state-of-the-art training facilities and can lead to inconsistencies in feedback from instructor to instructor. In order to generate an effective and scalable training method, this project leverages a newly developed multi-participant, Virtual-Reality cardiac simulation tool developed by the UM medical school, allowing for anyone with a VR headset to participate in training from anywhere in the world. This SURE project aims to develop an analytic system to evaluate learners’ cognitive (e.g., clinical decision-making) and behavioral (e.g., situational awareness, communication) processes using data from VR simulations along with an array of on-body sensors. SURE students will work with a team of CSE graduate students and faculty, along with clinicians and educators from the UM medical school to develop, deploy, and test this VR training assessment tool.
Expected research delivery mode: In-Person

CSE Project #17: On-body Ultrasonic Gesture and Touch Interaction Detection
Faculty Mentor: Alanson Sample [apsample @ umich.edu] 
Prerequisites: Preferred Experience: embedded systems and/or machine learning
Description: The sensation of touch is one of the fundamental ways we understand and interact with the physical world. However, beyond touchscreens, computing systems have little insight into how users interact with everyday objects. This is particularly important for Augmented Reality systems, which must overlay digital content on the physical world in response to users’ actions.

This project aims to investigate novel methods of using ultrasound for on-body sensing of hand gestures, pose, and object interaction events with a focus on creating hardware solutions that are suitable for unobtrusive wearable applications. SURE students will work with a team of undergraduate and graduate students and obtain hands-on experience developing robust embedded systems, real-time programming, and applied machine learning.
Expected research delivery mode: In-Person

CSE Project #18: Leveraging Space Repetition and Metacognitive Reflection to Support Long-Term Data Science Learning
Faculty Mentor: Xu Wang [xwanghci @ umich.edu] 
Prerequisites: 485 and 493 preferred. Comfortable developing web applications (both front + back end); Familiarity with data science frameworks (e.g., pandas) is a plus; Experience integrating browser extensions with Jupyter notebook is a plus.
Description: The project will involve developing web-based platforms that support data science education. Specifically, we address the problem that data science learners repeatedly waste time revisiting data cleaning and manipulation practices, leading to frustration in learning and low productivity. We plan to employ metacognitive reflection and space-repetition within the data science practice environment, e.g., Jupyter notebook. We will develop techniques that automatically detect novices’ struggling and learning moments based on traces in Jupyter and generate exercises that are useful for them. The exercises will be situational study resource for spaced practice, roughly analogous to flashcards.
Expected research delivery mode: In-person.

CSE Project #19: Human-AI Collaborative Techniques to Help Instructors Create High Quality Learning Activities
Faculty Mentor: Xu Wang [xwanghci @ umich.edu] 
Prerequisites: 485 and 493 preferred; NLP experience preferred; interested in applying ML in education a plus;
Description: This project is about enabling instructors to create high quality educational materials easily and efficiently with AI assistance.

Decades of educational research has shown the benefit of active learning in improving students’ learning outcomes where students actively engage with the materials, e.g., through question answering, compared with passively receiving lectures or reading texts. However, most instructors still use traditional teaching methods, e.g., lecturing, in large-enrollment college courses, due to their limited time and resources in creating opportunities for active learning. NLP-powered automatic question generation (QG) is promising in enhancing students’ active learning experience by creating problem-solving activities at scale. Still, the adoption of automatic QG systems in classrooms is low because the generated questions are often of low quality and limited in types and difficulty levels.

In this project, we develop human-NLP collaborative systems that provides process-oriented support to instructors, use modular system design that give instructors strong control over which NLP components to use. In this project, you will be develop web-based platform that have intelligent NLP backends that could support instructors in doing a series of creative tasks, including creating questions, creating slides, providing feedback to students, Q&A, grading, etc.
Expected research delivery mode: In-person.

CSE Project #20: MeetScript: Help people collaborate and contribute ideas during online and hybrid discussions
Faculty Mentor: Xu Wang [xwanghci @ umich.edu] 
Prerequisites: 485, 493 preferred; experience on projects to support collaboration and group discussions a plus;
Description: In this project, you will be developing web-based platforms and interaction techniques to support video meetings and hybrid meetings. Example techniques include real-time summarization based on user annotations, visualization of user ideas through concept maps, etc.
Expected research delivery mode: In-person.


CSE Project #21: Comparing different hidden confounding approaches
Faculty Mentor: Maggie Makar [mmakar @ umich.edu]
Prerequisites: EECS 445 or EECS 545. Familiarity with statistics. Knowledge of Python
Description: This project studies machine learning-based causal inference methods. The majority of existing work focuses on settings where the assumption of strong ignorability is satisfied and hence the causal effect of an intervention is identifiable using observational data. This is limiting because in most realistic settings, there are unmeasured confounders and the strong ignorability assumption is not satisfied. In this work, we will compare different approaches that measure the sensitivity of the estimate to hidden confounding. Specifically, we will compare the marginal structural model approach to the approach by Rosenbaum et al. We will study the credibility and the tightness of the estimated sensitivity bounds using data from the Women’s Health Initiative.
Expected research delivery mode: In person if it is safe to do so

CSE Project #22: Profile-Guided Performance and Security Co-Design for Processor Microarchitecture
Faculty Mentor: Baris Kasikci [barisk @ umich.edu]
Prerequisites: Introduction to Computer Architecture
Description: Nowadays, focusing on the development of a processor’s microarchitecture, the general workflow concentrates on two aspects. On the one hand, there is a wide amount of work that focuses on improving performance by optimizing microarchitecture mechanisms such as prefetching, replacement, and utilization. On the other hand, a significant amount of work is put behind efforts to fix the security issues brought in by the existing performance optimization techniques with as little performance degradation as possible.

Given this, this project aims to integrally consider performance and security perspectives in terms of the processor microarchitecture design. Our target is to obtain performance improvements through optimization mechanisms with minimum performance overhead due to the mitigation of underlying security vulnerabilities. We choose profile-guided optimizations (PGO) to help with the whole design.

Profile-guided optimization (PGO) techniques incorporate the results of profiling test runs of an instrumented program to optimize the runtime performance. For example, certain PGOs have been able to improve the performance of the code with frequently executed branches that are hard to predict during compile time. On the other hand, considering the security implications of optimizations, PGO will be able to help analyze the optimization instances offline and accordingly customize the system’s security protection.

Students will work on this project following the steps:

• Review works of literature on profiling-guided optimization techniques for performance optimization and security protection.
• Pinpoint potential vulnerabilities generated by the performance optimization techniques.
• Study coarse-grained control of switching on/off optimization techniques based on PGO.
• Study fine-grained control of labeling and tuning optimization based on PGO.
Expected research delivery mode: Hybrid

CSE Project #23: Belief tracking in situated communication
Faculty Mentor: Joyce Chai [chaijy @ umich.edu]
Prerequisites: some program skills for data processing
Description: This project will collect data and build computational models addressing how humans and AI agents come to a common ground of tasks and goals in exception handling during situated communication.
Expected research delivery mode: In-person

CSE Project #24: Communicative task learning in robots
Faculty Mentor: Joyce Chai [chaijy @ umich.edu]
Prerequisites: robotics background, programming experience with ROS 
Description: This project will transfer and improve algorithms developed in a simulated environment to our TIAGO robot and evaluate its performance in the real world.
Expected research delivery mode: In-person

CSE Project #25: Building time machines
Faculty Mentor: George Tzimpragos [gtzimpra @ umich.edu]
Prerequisites: Prior experience in programming, digital logic design, and computer architecture is needed. Students with a high level of curiosity in a breadth of subjects (for example, students pursuing double majors or minors, or those that generally have interdisciplinary interests) will be preferred.
Description: From tiny embedded devices to exotic supercomputing systems, the choice of data representation, and the accompanying model of logic, make a tremendous difference. Each representation (e.g., frequency domain, residue codes, and log scale) embodies a different set of tradeoffs based on the algebraic operations that are either easy or hard to perform in that domain. This project aims to investigate the potential of digital temporal codes–a happy medium between analog and digital binary–in the context of in-sensor AI. The students involved will 1) review recent literature, 2) design and analyze hardware prototypes, and 3) study both mature and emerging technologies.
Expected research delivery mode: Too soon to say

CSE Project #26: Pulse computing
Faculty Mentor: George Tzimpragos [gtzimpra @ umich.edu]
Prerequisites: Prior experience in programming and digital logic design is required; experience in analog design, computer architecture, and/or programming languages is a plus. Students with a high level of curiosity in a breadth of subjects (for example, students pursuing double majors or minors, or those that generally have interdisciplinary interests) will be preferred.
Description: Digital logic design, as we know it since its inception, comes with the requirement that latching switching elements are used. In some cases, however, the future of computing may rely on devices–from optical and superconducting to biological–that, unlike relays, tubes, and transistors, cannot remain in an On or Off state for arbitrary amounts of time. This project aims to investigate computing with transient pulses by looking at ways to encapsulate pulses’ interaction mathematically and define systems for their effective manipulation. The students involved will 1) review related literature and 2) develop tailored logic and programming language abstractions.
Expected research delivery mode: Too soon to say

CSE Project #27: 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.
Expected research delivery mode: In-person

CSE Project #28: 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, both theoretical and human-centered in nature.
Expected research delivery mode: In-person preferred, virtual possible

CSE Project #29: RustViz: Interactively Visualizing Ownership and Borrowing
Faculty Mentor: Cyrus Omar [comar @ umich.edu]
Prerequisites: EECS 490 or EECS 483 or equivalent is preferred, but not required.
Description: Rust is unique in that it is a memory-safe and thread-safe programming language that does not use a run-time garbage collector. Instead, it enforces a static ownership and borrowing discipline (“borrow checking”) to ensure that resources can be managed fully statically. However, there is a learning curve when programmers first encounter Rust’s new ideas. This project will contribute to the RustViz project, which is developing a visualization system for Rust’s ownership and borrowing semantics. Possible projects include a system for deriving this visualization directly from Rust compiler internals, designing a new more scalable visual language, or visualizing more advanced features like region-based memory management.
Expected research delivery mode: In-person preferred, virtual possible