2013 Summer Undergraduate Research in Engineering (SURE) Projects and Summer Research Opportunity Program (SROP) Research Projects
Computer Science and Engineering (CSE)
Directions: Please consider all of the projects in this list carefully before applying to the SURE program (http://www.engin.umich.edu/gradadmissions/sure/index.html). You MUST list your top three project choices in order of preference (by CSE Project #) on your SURE application. You are welcome to contact faculty if you have additional, specific questions regarding these projects.
CSE Project 1: Computational Strategic Reasoning
Faculty Mentor: Michael Wellman (wellman@umich.edu)
Prerequisites: Programming ability; interest/background in economics, game theory, and/or statistics (helpful though not required)
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), games (e.g., poker), and other applications. The undergraduate researcher will support development and analysis of strategies for some of these domains, in preparation for an international competition (e.g., the Trading Agent Competition, http://tradingagents.org) or as part of a related research effort.
CSE Project 2: Solving Hard Problems by Solving Harder Problems Halfway
Faculty Mentor: Igor Markov (imarkov@eecs.umich.edu)
Prerequisite: Algorithms and Data Structures (i.e. EECS 281); recommended courses (one or more of the following): Foundations of Computing (i.e. EECS 376), Advanced and Object-Oriented Programming (i.e. EECS 381), Introduction to Algorithms (i.e. EECS 477), Logic Synthesis and Optimization (i.e. EECS 478), Introduction to Artificial Intelligence (i.e. EECS 492)
A variety of computational problems continue to elude efficient algorithms, either because there aren't any such algorithms or because we cannot find them. However, solving practical instances of these problems remains important in applications, and existing algorithms are often helpful (although we sometimes don't understand why they work so well in special cases). A meta-approach developed recently studies properties of each given problem instance, such as its symmetry, sparsity, hierarchical structure, etc, and uses them to speed up the main solver. This approach has worked well, given that symmetry-finding and checking other possible properties is often easier than solving the problem directly. We are going to review these success stories and then try something different -- solving hard problems by partially solving even harder problems, or solving harder problems in special cases. In particular, we seek to develop new applications of computational techniques proposed recently.
Relevant problems range from number-factoring to NP-complete problems, such as Boolean SATisfiability, and problems beyond NP, such as constructing binary decision diagrams and optimally solving sliding-tile puzzles. While theory may play a role in this project, our goal is to develop algorithms and software that can be tried on interesting instances of hard problems. Students with interests in specific hard problems will be able to steer their research accordingly.
CSE Project 3: Design and Optimization of Three-dimensional Integrated Circuits
Faculty Mentor: Igor Markov (imarkov@eecs.umich.edu)
Prerequisites: EECS 281 and {EECS 427 or EECS 470 or EECS 478 or EECS 527}
Now that several large IC vendors are shipping "simple" 3D integrated circuits, the challenge is how to productize medium-to-complex 3D integrated circuits. This project will explore a number of challenges in physical design and optimization of 3D integrated circuits, following our group's recent research in the field. Participants should be ready to use and improve CAD tools, which requires reasonable software development skills, as well as familiarity with algorithms and data structures. Students with sufficient technical background will be given significant freedom in choosing specific research topics.
CSE Project 4: Unsupervised Feature Learning and Deep Learning for Sensory Perception
Faculty Mentor: Honglak Lee (honglak@eecs.umich.edu)
Prerequisites: Linear algebra; probability and statistics; programming experience in MATLAB, python, or C/C++; knowledge about machine learning or artificial intelligence is desirable
The brain has an impressive ability to process a variety of sensory input data, including images, sounds, languages, and touches. Recent biological and computational studies suggest that the brain may be using a single machine learning algorithm to develop representations from such diverse sensory domains. Furthermore, humans can readily learn from vast amounts of unlabeled data, together with only a small amount of supervision; this is because humans can easily recognize and discover underlying structures from seemingly complex input data. Inspired by this evidence, we aim to develop machine learning algorithms to develop good feature representations from large unlabeled data.
Specifically, we will develop novel learning algorithms based on sparse coding, restricted Boltzmann machines, autoencoders, slow feature analysis, and deep networks. Further, we apply these algorithms to learn high-level features from large unlabeled data, and we then use these learned features to supervised learning tasks in artificial intelligence. Our general purpose algorithms will allow machine learning systems to be much more easily applied various problems in artificial intelligence and data mining, and to achieve superior performance without the manual feature engineering while using significantly less labeled data.
In this project, we will focus on developing machine learning algorithms and applying them to sensory perception problems (e.g., vision, audio, video, robotic sensors, and others). Students who intend to continue beyond summer and perform long-term research (at least a year) are strongly encouraged to apply.
CSE Project 5: Unsupervised Feature Learning and Deep Learning for Data Mining
Faculty Mentor: Honglak Lee (honglak@eecs.umich.edu)
Prerequisites: Linear algebra; probability and statistics; programming experience in MATLAB, python, or C/C++; knowledge about machine learning or artificial intelligence is desirable
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 6: Quantitative Web Search (2 Open Positions)
Faculty Mentor: Michael Cafarella (michjc@umich.edu)
Prerequisites: Familiarity with operating systems (EECS 482) OR databases (EECS 484), data structures and algorithms (EECS 281), machine learning; familiarity with Internet systems issues a plus; must be able to program in Java or C++
Today's web search engines take textual queries and return pointers to documents. But there is also a large amount of numeric data online, in the form of spreadsheets, governmental data sources, and technical product information. Right now searching for this data is almost impossible. This project involves building the infrastructure for a quantitative search engine that will allow searchers to find all kinds of interesting datasets that today are hidden in plain sight. Students with an interest in either machine learning or system/database programming will find something useful to work on.
CSE Project 7: Mobile Apps in the K-12 Classroom
Faculty Mentors: Elliot Soloway
Prerequisites:
Finally, each and every student in K-12 (well, maybe not Kindergarteners) will have a mobile computing device in their hands 24/7. But what will they do on those devices? Here is a quote from the educational philosopher John Dewey (1916): “They [teachers] give the pupils something to do, not something to learn; and the doing is of such a nature as to demand thinking... ; learning naturally results.” YEAH! Stop the bloody worksheets and clickers already! If you find Dewey's quote compelling, then join my team in creating mobile apps -- across all platforms -- for K-12 and help move the educational revolution forward!
CSE Project 8: Secure Software for the Masses, by the Masses(Multiple positions open)
Faculty Mentors: Todd Austin (austin@eecs.umich.edu)
Prerequisites:
Software bugs comprise the greatest threat to computer security today. Though great strides have been made in the fight to secure computer systems, vulnerabilities and exploits persist. To address this, our lab is developing novel program instrumentation that harnesses the user base a as giant bug-hunting supercomputer. The framework is creating new and exciting ways to look for security bugs, and we need clever programmers to build this next-generation
distributed system.
Working on this project, you will get experience at using compilers, operating systems, networking, virtual machines, and binary instrumentation frameworks. What you will gain from this project is a greater understanding of computer system security and the techniques used to find and fix the bugs that create security vulnerabilities. Plus, you will have an opportunity to co-author a research publication on the work.
CSE Project 9: Non-programmatic Layouting on iPhones and iPads
Faculty Mentor: Georg Essl (gessl@umich.edu)
Prerequisites: Programming in C or C++; programming in Lua and background in HCI a plus.
Mobile multi-touch devices change how we interact with computers. Screen space is limited yet we have new and rich input modalities such as 10-finger multi-touch. The goal of this research project is to design a two-dimensional GUI lay outing system that is purely based on multi-touch input. We will be using a modifiable embeddable script language called Lua, which is also popular in game modding.
CSE Project 10: Accelerating those yet-to-be-born chips
Mentor: Valeria Bertacco(vale@umich.edu)
Prerequisites: EECS270, C++
Description: Today's microchips are often way too complex to be correct: a quad core Intel i7 contains a whooping 731 million transistors in only 263mm2! The process of checking such complex designs for correctness is even more daunting than designing them. Even with all the precautions taken during the design process, nasty design bugs creep into it, which are very hard to detect unless really big and complicated tests such as booting up an actual Operating System are done. Booting Windows on a modern processor might take just seconds, but in the hardware it amounts to the execution of tens of billions of clock cycles (because of Gigahertz clock speeds) -- trying to do that with a simulator software would take years! So instead of simulation, engineers at IBM, Intel, etc. map the whole design in special purpose hardware (acceleration platform -- often uses lots of FPGAs), which are 10 times faster more than software simulation -- still slow, but now we can think of spending months to get the bugs out, instead of years. Ok, but now, how do we use this "acceleration platform" to get all the bugs out? Join the project and help us find out.
CSE Project 11: Scalable Nonlinear Classification
Faculty Mentor: Clay Scott (clayscot@umich.edu)
Prerequisites: Programming skills in Matlab, C/C++; Intro to probability (e.g., EECS 401 or Math 425); Basic linear algebra
Classification is a fundamental task in Machine Learning. Nonlinear classifiers are necessary for complex pattern recognition tasks, but state-of-the-art classification algorithms require O(n^2) complexity (space and/or time) where n is the training sample size. This project will examine linear complexity algorithms grounded in theoretical approximations, and connected to the well-known k-center problem in computer science. Duties will include researching and programming of efficient implementations of algorithms, evaluating performance on various pattern recognition tasks, and designing new algorithms as needed. Keywords: kernel methods, sparse approximation, k-center problem, distributed computation, online learning
CSE Project 12: WHISPER: Wireless, Handheld, Infrastructureless, Secure Communication System for the Prevention of Eavesdropping and Reprisal
Faculty Mentor: Robert Dick dickrp@eecs.umich.edu. Project in collaboration with Prof. Z. Morley Mao and Prof. Dan Wallach.
Prerequisites: Operating systems or smartphone programming experience. Experience with Java programming or wireless communication fundamentals is useful.
Develop Android/GPhone applications and/or user interfaces for secure, difficult-to-interrupt, and censorship-resistant infrastructureless communication among normal people. There is already a team of two Ph.D. students, three undergraduates, and three faculty working on this lively project but there are so many things left to do. Please join us. Example projects follow: (1) Enhance a Twitter-like or instant-messaging client that supports our underlying network protocols (not TCP/IP). (2) Evaluate and design secure ad hoc communication protocols. (3) Modify Android platform devices to use existing public key management tools. (4) Port a particular 802.11b driver to an Android-platform smartphone. (5) Assist in carrying out experiments to evaluate applications and ad hoc communication protocols.
CSE Project 13: A whole new way for microprocessors
Mentor: Valeria Bertacco(vale@umich.edu)
Prerequisites: EECS370, C++
Description: Traditional microprocessors use pipelines to connect the various computing units, and all the instructions march down these pipelines to be executed. Today, this is no longer working very well: transistors are very small and weak, and they are prone to breaking, taking down with them an entire pipeline. So, we thought of building "virtual pipelines", where some components are grouped together for a while, they execute a few instructions, and then they move on to form other groups and execute other instructions. With these virtual pipelines, if a component breaks down, the rest of the system can keep computing along. We still have a lot of problems to solve, for instance: how do we keep up performance? How do we avoid creating a bottleneck every time the components regroup in different virtual pipelines? We need you to help us solve all this.
CSE Project 14: Identification of Emotional Invariance Across Music and Speech
Faculty Mentor: Emily Mower Provost (emilykmp@umich.edu) and Georg Essl (gessl@umich.edu)
Prerequisites: Familiarity with Matlab and/or SPSS, Interest in emotion and/or musical expression
Both speech and music can evoke strong emotional reactions. However, it is not yet fully understood if the underlying mechanisms are shared across expressive domains. The goal of this research is to develop a database of stimuli that evoke emotions across both of these domains. This database will allow us to explore cues that transcend expression domain, cues that provide consistent emotion information. These findings may lead to a notion of emotionally invariant cues and hence point to a shared underlying perceptual mechanism. Fundamentally, this information will further our basic understanding of emotion perception.
In this project you will participate in the design of experimental protocol, evaluation and evaluation design, video analysis, and data coding/collection. You will gain a greater understanding of human-centered research in the engineering community.
CSE Project 15: Autonomous Robotics Research in the APRIL lab
Faculty Mentor: Edwin Olson (ebolson@umich.edu)
Prerequisites: Most of our projects benefit from highly-developed software engineering skills (extending beyond coursework and including additional "real-world" experience), however we regularly have projects for students with particularly strong backgrounds in circuit board design, mechanical design and fabrication, and other specialized skills. In short, if you have an interest in robotics and a richly developed technical skill (whether it's in engineering, music, or visual arts), there may be a good project for you in the APRIL lab.
Description:
The APRIL lab conducts research into a wide variety of topics including robot perception using cameras and laser range finders, autonomous ground/air robots of all sizes, multi-agent planning, 3D graphics and human-computer interfaces, and many others. Many projects are ongoing: students will be matched to an appropriate project based on their interests and aptitudes.
Previous projects have included using a Kinect to model 3D objects and recognize/track them; developing a multi-camera robot ground-truthing system; creating robot interfaces for iOS and android devices; classifying terrain as safe or not-safe; design and manufacturing of new robot platforms; implementation of a robotic musical accompanist; etc.
interested students should contact the faculty mentor with a CV and a brief summary of the types of robotics problems they're interested in, and a frank description of the technical skills in computer science plus other possibly useful areas.
![]()
CSE Project 16: Staying on top of on-chip data traffic
Mentor: Valeria Bertacco(vale@umich.edu)
Prerequisites: EECS370, C++
Description: Many modern chips today use an internal network, much like the internet, for all their components to communicate with each other. These networks are appropriately called "networks-on-chip". To be fast and provide enough bandwidth,they use very complex routers and routing protocols, with the result that many design errors hide inside them (for instance, >10% of the escaped bugs in the multi-core intel processors are attributed to the interconnect design). The goal of this project is to simplify and standardize the design of on-chip communication, both the hardware and the routing protocols running on it, to guarantee efficient bug-free communication for future multi-core and embedded systems chips.