Projects
Project #9: 3-D Surface reconstruction of the Moon
The project will focus on developing 3-D reconstruction of the surface of the Moon using polarization based imaging sensors. The student will get familiar with the operation of cooled polarization imaging sensor and record images with the sensor of the Moon using various telescopes. Image processing algorithms will need to be developed in both Matlab and C++ in order to evaluate the accuracy of the reconstructed surface.
Skills required: basic knowledge of MATLAB and C++ and rudimentary electronics background
Faculty: Viktor Gruev
Project #10: Growing Rice and Soybeans on a Computer
Complex traits of plants, such as tolerance of environmental stress and high yield, are controlled by complex gene regulation. Therefore, understanding gene regulatory mechanisms is of a paramount economic importance. We are developing novel and efficient computational approaches to elucidation of gene expression regulation. In particular, we are developing machine learning and datamining methods and software tools to identify "patterns" from a huge amount of gene profiling data from high-throughput platforms (next-generation sequencing and microarrays). Such "patterns" can be diverse, ranging from individual candidate genes to networks of interacting or associated genes which are characteristic of the biological processes determining the complex traits of interest.
Skills required: Proficiency with Java, C or Python
Faculty: Weixiong Zhang
Project #11: Understanding Complex Diseases (e.g., Alzheimer's and cancer) through Systems Biology
Many complex diseases, such as Alzheimer's and many forms of cancer, are devastating and detrimental, leading to enormous economic and societal burden. Understanding the genetic basis of disease mechanisms is the key to developing effective therapies for such disease. We are developing on machine learning and datamining approaches to analyzing and integrating biological data to understand the causal relationship among genetic variation (e.g., mutations on DNA sequences), gene expression variation and disease phenotype.
Skills required: Proficiency with Java, C or Python
Faculty: Weixiong Zhang
Project #12: Building Large-Scale Virtual Worlds Using Forest
Forest is an overlay network architecture that provides communication services that are designed to support large, real-time distributed applications, such as virtual worlds. A Forest overlay network supports multiple application sessions, each of which operates over what is effectively a private network, with built-in support for highly dynamic multicast groups. This is ideal for large virtual worlds in which large numbers of client computers exchange avatar status reports 20-30 times per second. The summer project will involve building and evaluating demonstration applications that use Forest. If you like building systems and have experience with game development, you'll find this an interesting and challenging project. More information on Forest can be found at https://sites.google.com/site/forestoverlaynet/.
Skills required: programming experience in C++ and/or Java, basic knowledge of Unix/Linux, including makefiles and writing shell scripts, working knowledge of graphics programming and game development
Faculty: Jon Turner
Project #7: Parallel Platform for Real-Time Systems
In recent years, multi-core processor technology has improved dramatically, and more and more computers now contain parallel processors. For example, Intel has recently put 80 cores in a Teraflops Research Chip, and ClearSpeed has developed a 96-core processor. As multi-core processors continue to scale, they provide an opportunity for performing more complex and computation-intensive tasks in real time. However, to take full advantage of multi-core processing, these systems must exploit intra-task parallelism, where parallelizable real-time tasks can utilize multiple cores at the same time. We are building the first platform for parallel real-time tasks.
Students working on this project may work on either platform development or testbed development for the platform. In addition, we are also setting up a shake table to do civil engineering experiments using our platform. Students may also work on this shake table experiment setup.
Skills required: C/C++ programming experience. Civil engineering background or linear algebra knowledge may be a plus.
Faculty: Kunal Agrawal & Chris Gill
Project #8: Parallel Data Structures
Data Structures are prevalent in sequential computing, but seldom used in parallel programs. In this project, we want to enable parallel data structures. The project involves theoretical and implementation work on schedulers, data structures and algorithms.
Skills required: Mathematical maturity and/or C/C++ programming skills.
Faculty: Kunal Agrawal
I learned about new and developing technologies, which was exciting, and my experience will give me an edge over others entering the field.
Projects for Summer 2013:
The following projects are confirmed for Summer 2013. This list is not yet complete!
Project #1: Tools and Techniques for Computer Network Offense and Defense
It is an unfortunate fact that most of the world’s computer networks experience frequent infiltration attempts. How are such attacks carried out and how can they be detected and defended against? In this project, summer research assistants will study and develop proficiency in using contemporary methods and tools for both network offense and defense. Students will develop their skills in a controlled laboratory environment; once gained, these skills will be put to practice in a real-world network environment.
Skills required: programming experience in Python, Java or C/C++, basic knowledge of Linux/Unix, prior experience with open source tools such as nmap or Metasploit helpful but not required.
Faculty: Patrick Crowley
Project #2: Real-Time Security and Monitoring with the Passive Network Appliance
The Passive Network Appliance (PNA)—an NSF-funded open-source project developed at Washington University—is a high-performance, programmable platform for network monitoring and security. The PNA can be used to make sense of complex or malicious traffic in large campus and corporate networks. The PNA allows programmers to develop custom monitors to measure, model, or detect events of interest in network traffic. Summer research assistants will join the PNA team and develop monitors that provide new and useful capabilities, such as denial-of-service detection, SPAM detection, HTTP/web profiling, and video profiling.
For more information: https://github.com/pcrowley/PNA
Skills required: programming experience in C or C++, basic knowledge of Linux/Unix, networking experience helpful but not required.
Faculty: Patrick Crowley
Project #3: Exploring the future Internet with Named Data Networking
Named Data Networking (NDN) is a new Internet architecture that capitalizes on strengths -- and addresses weaknesses -- of the Internet's current host-based, point-to-point communication architecture in order to naturally accommodate emerging patterns of communication. By naming data instead of device addresses, NDN transforms data into a first-class entity. The current Internet secures the connections between machines through which data is passed. NDN secures the data directly, a design choice that decouples trust in data from trust in hosts, enabling several radically scalable communication mechanisms such as automatic caching to optimize bandwidth. Another major consequence of the NDN architecture is reduced application complexity: by communicating with named data, applications can more directly express their communication patterns as compared to the current IP architecture. Existing applications include: file distribution, text chat, video streaming, and voice/video chat. Summer research assistants will study the NDN architecture, and develop original small- and medium-scale applications for PCs or Android that that illustrate the relationship between application complexity and the NDN design choices. Applications may include: a distributed Twitter-like service, peer-to-peer file sharing, and location-aware messaging.
For more information: http://named-data.net/
Skills required: programming experience in Python, Java or C/C++, basic knowledge of Linux/Unix or Android, networking experience helpful but not required.
Faculty: Patrick Crowley
I liked having close contact with Ph.D. students and talking to professors.
Project #4: Real-time decoding of ECOG brain signals
Brain Computer Interfaces (BCI) aim to control computers directly with thoughts. Washington University in St. Louis is one of the world-leading research institutions in ECOG based BCI. In this project, we aim to use machine learning to decode brain signals to accurately predict finger and joystick movements. The student will familiarize herself with state-of-the-art machine learning algorithms and how they can be used for BCI. The goal of the REU project is to build a machine learned system that not only decodes the brain signal with high fidelity but also predicts the intention of the human (e.g., "Click on icon X" instead of just "move cursor upwards").
For more information please see http://www.cse.wustl.edu/~kilian/research/biomed/biomed.html
Skills required: mathematical maturity, some familiarity with machine learning, and either familiarity with programming in Matlab (and/or Python) or the ability to pick up new programming languages relatively quickly.
Faculty: Kilian Weinberger
Project #5: Feature and Metric Learning
Recent discoveries in machine learning have transformed the world are continuing to do so. From search engines over speech recognition to self-driving cars. One big assumption for machine learning to work is that data is provided in a suitable representation. This project focusses on improving machine learning algorithms by learning data representations. Many real world data sets (e.g. brain signals or biomedical data sets) are naturally represented in ways that are convenient for scientist who generate the data but not for machine learning algorithms. These data sets require machine learning experts to pre-process them prior to learning. This summer project aims at automatically learning a representation that is best suited for sub-sequent machine learning algorithms to be successful.
For more information please see http://www.cse.wustl.edu/~kilian/research/metric/metric.html.
Skills required: mathematical maturity, some familiarity with machine learning, and either familiarity with programming in Matlab (and/or Python) or the ability to pick up new programming languages relatively quickly.
Faculty: Kilian Weinberger
Project #6: Storytelling Tools to Teach Computer Programming
Computing has become a fundamental tool in nearly every career field. Yet there are few opportunities for children to learn basic computer programming. We are building a programming environment called Looking Glass which provides a fun context for learning to program (building short animated movies) and support for children to learn from each other’s programs. If a Looking Glass user finds a movie on the internet that contains an animation or effect she would like to learn, she can use special tools within Looking Glass to quickly identify the commands responsible for that effect. Then, Looking Glass can generate a custom tutorial that will guide her through building that effect in her own program. We believe that combination of a motivating context and the ability to find and effectively use examples in programs created by peers will enable many more children without access to formal computer science courses to learn basic computer programming.
Skills required: Programming ability.
Faculty: Caitlin Kelleher
If there's some topic or aspect of the research process you want to do, don't be afraid to talk to your advisor about it. If you don't, you may lose out on a good opportunity.
I really liked seeing so many new applications of the things I learned in my coursework. As someone who is definitely interested in computer science but isn't sure about where exactly my interests lie, this summer was really helpful.
I enjoyed working on original research in a field about which I'd previously known nothing, with the chance to publish our findings.
My lab was a good environment for research, but the people were what made my summer really enjoyable.