UROP OpportunitiesThe Undergraduate Research Opportunities Program (UROP) cultivates and supports research partnerships between MIT undergraduates and faculty. If you have any questions please contact merriman@csail.mit.edu or take a look at the How to UROP at CSAIL document (pdf format). This program is available to MIT students only. Thanks for visiting our UROP meeting on April 1, 2008! If you missed it, please check out the postings below and email the contact directly. Any questions, feel free to email Johm Merriman at merriman@csail.mit.edu. Addressing Privacy Leakage from Search Engine Logs The use of query logs for studying search engines, providing customized advertising, and improving information retrieval on the Web is invaluable. This use, however, is currently restricted as it might sacrifice user privacy and expose a significant amount of private and identifying information. Efforts to address online privacy issues have been overly dominated by access restriction and privacy-preserving algorithms such as anonymization, and generalization. An alternative is to provide greater information accountability as judged against rules governing appropriate use, rather than information security and access restriction. Requirements: Programming experience in Python and JavaScript highly desirable. Familiarity with logic programming and/or Semantic Web technologies a plus. Contact: Advanced Network Architecture GroupIn network and distributed systems research, one of the vehicles for studying proposed ideas is to run them in a testbed, an environment allowing for experiments to be repeated or modified under the experimenter's control. Two primary testbed environments for this are PlanetLab and Emulab. In both of these testbeds, when the experimenter sets up a large experiment, it is very likely that one or more of the requested nodes fail to function properly. Because these are very complex environments with many things happening simultaneously, it often is not clear why a node is failing and whether that can be avoided in the future. The focus of this work is to build a management tool that will observe and collect information about such failures in order to develop models of the failures. The purpose is to either fix the problems or avoid them. Initially the work will be done in the DETER testbed, a testbed that uses the Emulab codebase, but has additional mechanism to make it suitable for challenging security experiments. This job requires operating systems experience and interest and can easily lead to an MEng thesis. Requirements: Operating systems programming in C or C++, 6.033, 6.170, preferably also 6.824 or 6.828. Also helpful is an interest in either failure diagnosis or machine learning. Contact: Advanced Network Architecture Group: Making networks intelligentAs networks become increasingly central to our computing, social, and economic activities, they also are decreasingly manageable. By this we mean that we have less control over how they function and how to solve problems when they aren’t functioning appropriately. In this context, we focus on core capabilities to make networks increasingly self-knowledgeable, self-analyzing and repairing, and self-improving. To do that we partition the problem space into tools for measuring and metering what is happening, tools for figuring out what is desired, and tools for figuring out whether what is happening is what is desired, necessary, or in need of improvement or repair. Two key components of the infrastructure are a distributed agent system and an underlying “information plane” for distributing and sharing the collected information, that support both cooperation across parts of the global internet and security and economic partitioning as required to be feasible. One of the objectives is to make tools and information as sharable and reusable as possible. We do this work in several testbed environments, (1) DETER, a testbed for security experimentation with particularly interesting security challenges, (2) PlanetLab, a much more open and widely available environment that allows us to scale to Internet size and distribution, and (3) we have plans for a testbed of small, hand-held wireless devices that we will build here at MIT that will allow us to experiment with issues of mobility. Requirements: Seeking: up to 3 students for the summer. Projects range from introductory projects for students new to CSAIL to ones that will require operating systems programming in C or C++, 6.033, 6.170, preferably also 6.824 or 6.828. These latter projects are likely to lead to MEng theses as well. Contact: Advanced Web Application: TabulatorThe Semantic Web is the newest, most transformative development in Web technology, and the Tabulator project, http://www.w3.org/2005/ajar/tab, is maybe the coolest project out there, as it provides the user with ability to explore the global of interconnectedness of all things, and to participate in the collaborative space. Requirements: You must be able to program in javascript, and you must be able to work in a team. If you have experience in dynamic HTML and/or Firefox, network programming, RDF, SPARQL etc that is useful but not essential. You will join an exiting team, but you have your own project within the larger project. You will contribute your part, but it must fit in well with other's work. Contact: Biological Network AnalysisUROP opening for highly motivated student to investigate biological networks. Student will be involved in designing and developing new methods for biological network analysis. Student should be able to work relatively independently. Work involves Harvard Medical School/MIT collaboration. Prerequisites: Very strong Java background and knowledge of algorithm design. Contact: Building a Verified NAND Flash FilesystemFlash memory is increasingly being used in a wide variety of applications,
such as portable music players, laptop drives, digital cameras, and
more recently, on-board storage on the NASA's Mars Exploration
Rovers. In a well-known incident, a flaw in the flash filesystem
software caused a major system failure in one of the Rovers.
Motivated in part by this incident, we at the Software Design Group
are interested in applying rigorous software development techniques to
build and verify a flash filesystem suitable for use under
mission-critical settings. Requirements: Excellent software engineering skills (6.005 or 6.170); Knowledge of a NAND flash filesystem, preferably gained through the first design project in 6.033 (Spring 2008 term); knowledge in first-order logic is a plus. Contact: Circuit Simulation on Parallel Computers This a new research effort exploring how best to implement circuit simulation algorithms in parallel computing environments. Modern electronic circuits have millions of components operating concurrently and simulating those circuits at either the analog level (e.g., with Spice) or digital level (e.g., with Verilog) simulation offers opportunities for massive parallelism. Requirements: Some programming experience will be helpful. Students who have never had a UROP at CSAIL are particularly welcome! Contact: Cognitive Function Diagnosis From DrawingsSummer UROP (with continuation possible next year). For several decades neurologists have used a deceptively simple test to help evaluate cognitive capability: patients are asked to draw a clock face showing 11:10. The long history of use of the test has allowed physicians to make significant diagnoses (e.g., stroke, Alzheimer's) from simple characteristics of the resulting drawing. With new technology available from a pen that digitizes as you write with it, we now have available data that is hundreds of times more precise than anything that can be discerned from ink on paper, along with virtually instant access to the data. This project involves helping to design and develop the next generation of analysis software, building on the foundation already in place. Along with the interesting analysis of penstroke data, there is the intriguing possibility of using machine learning techniques to find previously undetected diagnostic features. Prerequisites: Solid knowledge of Java. Contact: Compiler for Multicore ArchitecturesThe computer industry has recently embraced a trend known as multicore architectures: multiple independent processors that are integrated on a single chip. For example, the IBM/Sony Cell chip contains nine independent processing cores and the Tilera TILE64 processor contains 64 cores. However, it remains a central and critical challenge to develop a programming model that can naturally exploit the performance of such chips. This project will focus on developing high-performance compiler backends for one or more multicore architectures. Our programming model is StreamIt: a novel language developed in our group that naturally exposes all of the parallelism needed to obtain good performance on multicores. In mapping StreamIt to a new multicore architecture, this project will give broad exposure to compiler design, computer architecture, and performance optimization. Candidates should have excellent software engineering skills (A in 6.170) and compiler skills (A in 6.035, or currently enrolled). Knowledge and interest in computer architecture also helpful (6.004, 6.823). We are looking for a senior who plans to pursue an MEng, though exceptional juniors may also apply. More information on this project is available at http://cag.csail.mit.edu/streamit Contact: Computer Graphics: Designing Stable Buildings The aim of this project is to generate building designs that are physically stable, while requiring minimal structural know-how from the user. The focus is on masonry construction, since this is an example of architecture where the structure support is exposed in the form. There are three aspects to problem: Contact: Detailed 3D CAD Modeling of Stata Center InteriorThe Robotics, Vision, and Sensor Networks Group (RVSN) http://rvsn.csail.mit.edu seeks 1 to 2 UROPs to help create a detailed 3D CAD model of the interior of the Stata Center. Initially, we will shoot for a reasonably accurate model of each floor, with walls, support columns, ceilings, doors, and windows. The next step will be to fill in vertically connecting elements such as stairwells, elevator shafts, and ramps. Optionally, the student could also model major non-structural elements such as open-space seating partitions. Requirements: We have some legacy data, including 2D floorplans from the architects. Achieving a useful 3D model will require proficiency with a 3D modeling tool (e.g. AutoCAD, CATIA, 3D Studio, etc.), ability to do field measurements, and optionally some ability to program, for example to parse 2D floorplans and "extrude" 3D polygons. Contact: Distributed Stream-Processing Language for Sensor Networks WaveScript is a new programming language for distributed real-time sensing applications that is being used to detect and track wild animals with microphone arrays, monitor EEG streams, and detect leaks in underground pipes using vibrations. It offers a number of innovative features to deal with very high data rates as well as the difficulties of operation in an embedded and wireless environment. Contact: Grasping with a 7-DOF Robotic ArmThe Learning and Intelligent Systems Group has a 7-DOF Barrett arm that we're trying to use to grasp objects (http://lis.csail.mit.edu/wiki/index.php?n=Main.LluddTheWam). We're looking for someone to work on robot-related tasks, such as incorporating fingertip force-torque sensors, making touch sensors, creating a simple 2-D vision system to locate objects against a black background, and/or implementing low-level Cartesian trajectory control. Some experience coding in C (or C++) is required. The student would ideally start as soon as possible (or at least with some time before the summer starts) and continue through the summer. Contact: GUI Development for a Simulation ModelWe are looking for a student to participate in designing an interface for a model that is being used to make predictions for several unmanned vehicle systems. Technical experience we are looking for (but not restricted to) includes: programming in Java, designing interfaces. Contact: H-Store: Extremely high performance transaction processingDatabases are at the heart of many critical information systems, such as banks, airline reservation systems, and e-commerce. We want to make them much, much faster. We are building a database that is more than ten times faster than existing systems, such as MySQL, Oracle, or SQL Server. Requirements: We are looking for a UROP to help us build the database of the future. We have a range of projects, depending on your interests. If you are interested in making databases go fast, come talk to us. Ideally, we are looking for people who understand C++ and have some experience building applications that use SQL databases. Web application experience in PHP, Ruby, or Python is a plus. Contact: Haystack ProjectThe Haystack project aims to develop new tools to help people organize, manipulate, and retrieve all the information they encounter on a day to day basis. A major focus is personalization, adapting over time to the specific information needs and preferences of individual users. The research combines ideas from databases, human-computer interaction, and machine learning. We explore database tools to build a data representation rich and flexible enough to record all the information any individual consider important, and in particular make heavy use of Semantic Web technology for manipulating richly structured information on the world wide web. We apply ideas from human-computer interaction to develop interfaces that can present that rich data model and let the user work with it. And we apply ideas from machine learning to help the system observe and adapt to the preferences and perceptions of its user. We've built a number of tools including the Haystack "universal desktop client" for managing any kind of information you care about, an Ajax tool called Exhibit for creating fancy interactive web pages without any programming, and the "Jourknow" system for managing those scraps of information that don't seem to fit anywhere. You can find out more about these and other projects at the Haystack project page at We have openings for self-motivated UROPs who are interested in extending the capabilities of the system at all layers---the database back-end, the machine-learning core, or the user interface. Initiative is key as UROPs are given substantial flexibility to choose their own project. You will join a team of 6 graduate students and 5 undergraduates already working on the project. . Contact: Human-Computer Collaboration in Multi-UAV SupervisionWe are looking for an undergraduate student to participate in the data collection and analysis phase of our Human-Computer Collaboration in Multi-UAV Supervision experiment. The job will include working with advanced Java and Matlab interfaces, importing, converting and analyzing data, and creating associated visualizations. Requirements: Experience with Java and Matlab programming required. Experience with statistics required. Experience with SPSS a plus. Contact: Information Access using Natural LanguageThe InfoLab group at CSAIL seeks students to work on the START question answering system, http://start.csail.mit.edu, which provides advanced access to information on the Web and in other databases via natural language. Knowledge of Scheme, Java, SQL, regular expressions, and basic linguistics is helpful but not required. Students will find and integrate new knowledge sources into the system, and update existing systems, immediately affecting the behavior of START as used by millions of people around the world.
Contact: Integrating an eye-in-hand robotic arm on a mobile robotWe are interested in equipping our iRobot Create mobile robot platform with a robotic arm equipped with a camera mounted close to its end-effector (eye-in-hand) and a low-cost force-feedback sensor developed at CSAIL. Whereas the system should consist as much as possible from off-the-shelf components, small mechanical elements can be manufactured using our rapid prototyping system. As a demonstrator, we consider a weeding task. That is, the robot should be able to detect the presence of weeds in pots filled with earth using its force sensors, grab them and dispose them in a container mounted on the roboter. Emphasis of the project is less the accuracy of the gripper, but rather the robustness of the solution. A possible solution could be to try grasping the weed by trial and error, where monitoring the force sensor while pulling it will allow for ascertaining that grasping was successful. Alternatively, the student(s) can try implementing a berry-foraging task. Contact: MIT Center for Collective IntelligenceThe Center for Collective Intelligence (http://cci.mit.edu) is focused on answering the question, How can people and computers be connected so that- collectively-they act more intelligently than any person, group, or computer has ever done before? The Center includes faculty from around MIT, including CSAIL, Media Lab, and Sloan. We expect to have opportunities for summer jobs, MEng, UROP, or other student work on a project to combine human and machine intelligence in flexible new ways to make accurate predictions about future events such as product sales, political events, and outcomes of medical treatments. Initial work will include developing a flexible web server and user interfaces for on-line markets of various types. Contacts: Multimodal Dialogue Systems for Second Language AcquisitionOngoing research in the Spoken Language Systems group at CSAIL, spanning the past several years, has involved developing spoken dialogue systems specifically designed to help a student learn a second language. Students play simple games on the computer, and communicate with the computer using natural spoken language. We are currently focusing on the language pair English/Mandarin, and several different game variants are being developed, in which a student learning Chinese interacts with a software dialogue partner by speaking in Chinese or by listening to spoken Chinese commands. A robotic "tutor" can both suggest possible dialogue moves and provide translation assistance. The Web-based remote server model potentially allows easy access to students from around the world. Requirements: We are seeking a summer UROP to help with the development of these systems. Programming experience in Java is essential, and experience in C or C++ highly desirable. We will especially favor students who are both experienced in Java and fluent in Chinese. The research will involve a wide range of possible topics, such as developing new variants of computer games, developing high quality concatenative speech synthesis in narrow domains, or performing and analyzing user studies. Contact: Programming Spatial ComputersSpace-filling computers are an emerging problem across a wide range of disciplines---sensor networks, biofilms, FPGAs, morphogenesis, swarm robotics, etc. A typical spatial computer is composed of a vast number of unreliable parts, and we need programming tools that can marshal them effectively to produce robust aggregate behavior. The amorphous medium abstraction enables this by breaking the task into three loosely coupled subproblems: global programs for a continuous space, a global to local compiler, and emulation of continuous space by a discrete network. We have implemented these ideas with our language Proto, and have begun applying it in the areas of sensor networks and reconfigurable robotics, both in simulation and on Mica2 Motes More information on this project is available at http://people.csail.mit.edu/jrb/stp/stpg.htm Contacts: QLink DevelopmentThe T-Party Project has been working on developing the QLink, a hand- held device that provides a flexible user interface for smart devices in the local physical environment, helping them interact with the user's virtual environment. This summer we will be experimenting with building a QLink prototype on top of Linux-based mobile internet devices (MIDs).
Requirements: Programming experience required, Linux experience will be helpful. Contact: Security-enhancing dynamic binary rewritingPrograms running on modern CPUs are vulnerable to security risks induced by side-channel information leakage within the computer architecture. Contention for shared resources, such as memory and CPU units, creates inadvertent cross-talk between processes, which is devastating for security-sensitive applications, and has been demonstrated to allow attacks on cryptographic code. The issue is further aggravated by parallelism in multithreading and multicore processors. This project explores a novel approach to mitigating such attacks, using Dynamic Binary Rewriting (DBR) to transform programs in a way that reduces their inadvertent information leakage. It involves the study of this class of side channels and the design, implementation and testing of code transformations that improve programs' resilience to such security risks. Prerequisites: Candidates should be senior or junior with excellent skills in software engineering (6.170 or 6.005) and knowledge in basic computer architecture (6.004). Knowledge in advanced architecture (6.823), compilers (6.035), security (6.857), exploits and/or the Linux kernel can be helpful. Contact: Sensor fusion for position estimationPosition estimation is a recurrent problem in robotics and sensor networks. Sensors currently being used include GPS, odometers, and accelerometers. All of these have their own strengths and weaknesses. Whereas GPS performs poorly indoors and when sub-meter accuracy is required, non-absolute measurements provided by odometers and accelerometers lead to accumulation of error. On the other hand, these sensors are very accurate when displacement of the robot is small. We are interested in developing an embedded solution for appropriately fusing sensor information. A sensor board providing GPS, accelerometer, and odometry information from a mobile robotic platform and providing them to a microcontroller is available at the lab. The student will first review the literature to identify a suitable algorithm for sensor fusion, design and analyze its own algorithm and then implement them first in Matlab and then on the microcontroller (in C). The system can then be tested on a mobile robot indoors and outdoors. The student should be at ease with programming and have a strong interest in working with embedded systems. Contact: Should I use MATLAB(R), Octave, SciLab, Mathematica(R), Maple(R), Python/scipy, or R, and what's the real difference anyway? These days, even at the highest tech schools such as MIT, people are using very high level mathematical systems, rather than programming in C,C++,Java, or dare I mention, FORTRAN? Probably none of the stereotypes are true. You may have heard them: MATLAB is the matrix language, Octave and SciLab are open source clones, Mathematica and Maple are the symbolic languages, Python is the glue language, and R is the statistics language. The truth is more complicated. Contact: Space Manager for Multiple DevicesMost of us have multiple computation and storage platforms. In this project we will implement a file manager whose task will be to ensure that only one copy of each file is stored, to keep track of where that file is (computer disk drive, telephone, ipod, etc) and to introduce the adequate pointers in case of duplicates. Contact: Speech-based interfacesThe Spoken Language Systems group (http://www.sls.csail.mit.edu) seeks UROPs to help develop speech-based user interfaces. Opportunities for activities include web-based speech and pen interaction, small handheld devices, kiosks, and vehicle environments. Qualifications (depending on project) Contact: Stata 3D CAD modelingWe are seeking a student with some CAD modeling experience (preferably AutoCAD) to make field measurements and develop a comprehensive 3D model of the Stata Center. Project web site. Contact: Stochastic Simulation for Cell Biology Stochastic simulation has become an important tool in biochemistry and cell biology, allowing one to model, and then simulate in time, the complex network of molecular signals found within and between cells. Unfortunately, computationally efficient implementations of these simulation algorithms are often clumsy to code and offer little flexibility when the topology of the signalling network is changed (as may often occur). Requirements: We are seeking an experienced programmer to help design and implement a graphical interface that a scientist can use to describe, visualize, and simulate high-level descriptions of signalling networks, focusing specifically on spatial aspects. Through this the student will be exposed to both techniques required to produce an efficient simulation tool and to scientific approaches required to perform biochemical research. Further research may focus on changes or extensions to the high-level descriptions that enable new experimentation, or static analysis of signalling networks that may reveal intransient processes. Contacts: The Genesis GroupThe Genesis Group at MIT CSAIL explores the computational nature of human intelligence. We sit at the intersection of Cognitive Science and Artificial Intelligence. We have numerous projects that would suit UROPs of all interests, and most if not all of these projects could be spun out into Undergraduate or M.Eng theses. We encourage motivated undergraduates who are interested in a long-term association with our group, whose interest are piqued by any one of the project descriptions, to inquire. Data Structures: We need new implementations of sophisticated data structures from computational geometry and machine learning; for example, we need a Java implementation of these data structures, such as a kd-tree, to do efficient range searching in a 2d plane. Natural Language Processing (NLP): We spend a lot of time processing text. We need new implementations of established NLP algorithms for extracting meaning from text, such as word sense disambiguation (technique: statistical learning from a corpus), anaphora resolution (rule-based engines), semantic role assignment (SVMs), and event extraction. We are also pushing into new areas where there are no established algorithms for the analysis of the meaning of those texts, for example, automatically extracting discourse structure, or determining the 'moral' of a story. GUI Programming: One aspect of our work is collecting data from human subjects, and so we are heavily invested in working on user-friendly GUI's. Our current data-collection platform is built on top of the Eclipse IDE. We need UROPs who have an interest in learning how to program GUIs in the Eclipse graphical API (the Standard Widget Toolkit, or SWT), and want to design beautiful and functional GUIs for carrying out data collection procedures. Human Experiments: In addition to constructing tools, we need UROPs who are interested in running experiments with those tools, to test their efficiency and accuracy, and actually use those tools to do experiments, such as studying how culture affects thought, or how people learn and understand language. Contact: The Program Analysis GroupThe Program Analysis Group (PAG) has a number of projects at http://groups.csail.mit.edu/pag/pag/projects/. (Note: This URL is only accessible from the mit.edu domain.) PAG's research aims to make software more reliable, more secure, and easier (and more fun!) to produce. Our work includes software engineering, static and dynamic program analysis, testing, security, type theory, programming language design, and verification. If you like building software, you will enjoy this research, which is about making programming less error-prone, less tedious, and more fun. If you ever have trouble building software, you will find the research results helpful, and you may be inspired to come up with new projects. New 2008 Project Titles include: Validating bug reports, Automatically creating environments for software model checking, Preventing bugs with pluggable type-checking for Java, Mutation testing: How good is your test suite?, Run-time checker for Java specifications, Example Oriented (Java) API Document Generator, Detecting Whether a Software Upgrade Was Successfull, Retrofitting Parallelism into Existing Sequential Code, Refactoring-aware Version Control System, Dynamic Analysis Toolkit for Java Programs, Scalable data flow analysis for Java, C/C++ dynamic analysis tools, Generating specifications in practice, Concolic Testing Engine for NASA JavaPathFinder, Cross-Testing using a Software Model Checker, Grammar-based Whitebox Fuzzing for Java, An Ethnographic Study of Obsolete Test Suites, and Grammar constraint solver. Please visit the PAG website for more information. PAG does the best MEng research in CSAIL! An MEng thesis from PAG has won the Charles and Jennifer Johnson Thesis Award (for outstanding computer science M.Eng. thesis) in 4 of the last 6 years: 2002, 2003, 2006, and 2007. The Spoken Language Systems GroupThe Spoken Language Systems group (http://www.sls.csail.mit.edu) is investigating ways to use speech and dialogue processing in distributed applications. Some examples are using natural speech as an interface to applications on mobile devices such as cell phones, adding speech and pen capability to web interactions, and providing ways to search, browse and annotate multi-media (including OCW lectures). Opportunities also exist for UROPs interested in developing software games for learning Mandarin. Experience comparable to 6.170 or 6.033 preferred, but not necessary. Contact: Tracking and Modeling Ground Equipment at an AirportAirlines have many ground vehicles that are necessary for everyday operations. In this project we will develop a GPS-based sensor and tracking network that will show in real time the position of all equipment at the airport. The devices will be deployed on United ground vehicles at the Chicago airport. Data collected will be integrated with our existing motion modeling algorithms to develop behavior models for the ground vehicles. If time permits, a scheduler will be developed to do on-line task allocation that minimizes motion. Contact: Voice-Based Wiki for Cell Phones, Freshmen/Sophomores Welcome!The Computer Architecture Group in the Computer Science and Artificial Intelligence Laboratory is seeking a bright and enterprising UROP to play a leading role in a long-term, multi-disciplinary project. This project seeks to develop an "audio wiki" -- an open platform (like Wikipedia) that people can freely access and contribute to, but rather than using a desktop computer, they use a cell phone. This means that all content will be spoken rather than written, and there are a host of interesting challenges in user interfaces, speech recognition, and audio processing that need to be tackled. We have developed an initial prototype of the wiki and are looking for a self-motivated UROP to make the complete system a reality. We aim to deploy a real system in Boston this fall, attracting thousands of users by the spring. To make a splash, we are initially providing a platform for movie reviews -- anyone can call in and leave a review of a movie, listen to other reviews, or leave voicemail for other reviewers. In the long term, we hope to deploy this system where it will make the biggest difference -- in rural communities in the developing world, where cell phones are often the only computing devices available. An audio wiki will provide a new infrastructure for sharing local knowledge, irrespective of language, literacy, and Internet connectivity. This UROP will involve many things -- some systems design, some programming, some usability testing, and some marketing. You will need to do whatever it takes to make this product a success! Once the system is working, there is also the possibility of follow-up research in user interfaces, speech technologies, and other areas. To apply for this UROP:
Contact: Paid Hourly Student Employee Opportunities - NON-UROPWe have two great paid opportunities for undergraduate students to work 10-15 hours/week with Rodney Brooks on a groundbreaking DARPA project, building a robot that plays the game of Go. The dexterity/manipulation and vision behaviors that are being developed for this Go-playing robot have far-reaching implications for future robots in the manufacturing environment.
#1 EECS Student: #2 Mechanically oriented person to help us build robot structures. If interested please contact (whittaker@csail.mit.edu;) |
|