Start of topic | Skip to actions

Undergraduate Research Projects

The Resource-aware Programming (RAP) research group at Rice conducts cutting edge research in designing new languages for a wide range of applications. An overview of our research is available as a Google TechTalk.

The National Science Foundation (NSF) and our industrial affiliates (notably Intel, Schlumberger, and LogicBlox) have kindly made funding available to allow exceptional undergraduates to become involved in our research activities. Previous undergraduate student members of our group have gone on to work for companies such as Google and Microsoft, or to pursue graduate studies at universities such as Yale.

The following is a list of ongoing RAP projects that have openings for undergraduate students interested in research work. Projects can be taken for credit or for hourly pay (see Research Credit end of this page). If you are interested in working on one of the following projects in Spring 2008, please send and email to the project contact, and CC Prof. Walid Taha (taha@rice).

  • Compiling Python: This project aims to develop a new compiler for the Python programming language. The compiler is being built in OCaml and uses OCaml as its intermediate representation. We have openings for undergraduates interested in:
    • Testing. Writing Python programs to test the correctness of the compiler and its compatibility with the standard Python implementation. Requires extensive familiarity with Python.
    • Profiling. Collecting standard Python benchmarks from different sources and evaluating their performance (both in time and memory usage) with different Python implementations and multiple platforms. Requires familiarity with Python and with various profiling tools on multiple platforms such as Linux, Mac OS and Windows.
    • Foreign function interface. Extending the compiler to incorporate libraries written in C. Requires extensive programming skills in both OCaml and C, and familiarity with the Python/C API.
    • Project Contact: Raj (). Current team: Raj, Pete, Blake, and Zach

  • The Verilog Preprocessor: This project aims to improve Verilog to allow hardware designers to be more productive while guaranteeing the correctness of the generated circuits. We have openings for
    • Writing Verilog Descriptions. We are looking for ECE students having a background in hardware design to write descriptions of interesting circuits of various complexities in Verilog.
    • Circuit Compression. Converting number sequences to a closed form: We want to be able to device an algorithm that takes an arbitrary long sequence of integers as an input and outputs a closed form that can generate the sequence.
    • Supporting the full language. We want to extend our current prototype implementation to support the full Verilog standard.
    • Testing. We need to build a unit test infrastructure to be able to systematically test the correctness of our current implementation and future extensions to it.
    • Project Contact: Cherif (). Current team: Cherif, Angela, Greg, Jen, and Yilong

  • Acumen: This project is developing a new language for simulating physical systems and their controllers. The main purpose is to make the language much easier to use and its simulation results more reliable. We have openings for
    • Students who have a background on Mechanical engineering and physical system simulating.
    • Project Contact: Angela (). Current team: Angela, Jun, Kevin, Alex, Laura and Joshua.

  • Uccello We are welcome computer science, math, and ece undergraduate students interested in research projects.
    • Project Contact: Greg. Current team: Greg, Dustin, and Blake

  • Sakai
    • Current team: Carlos and Angela
    • Opening for an student with Java experience: TBA
    • Contact: Carlos (solis@rice)

Research Credit

Interested students can work on these projects either for credit under one of the following courses:
  • COMP 290, 390, 490, 492, or 517. (3 credits for projects, 3-4 credits for seminar).
  • ELEC 490, or 590 (3 credits).
  • MECH 593 (3 credits)
  • CAAM/MATH/STAT 499 (as a VIGRE for math double majors). (1 to 3 credits depending on project).
or they can be paid at an hourly rate. The student decides. For credit, student must attend the weekly meetings on MWF 9:00-10:00 (usually in DH 3110). For each credit hour, students are expected to spend 3 hours of work per week for the duration of the semester. This number includes attendance of meetings, but the student is responsible that attending these meetings is to their benefit. Students receiving research credit are responsible for weekly progress updates, develop a written research proposal in the first three weeks of the semester, a term paper, a presentation to the research group, and a poster at the Rice undergraduate research conference.

End of topic
Skip to actions | Back to top
toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf poster_python.pdf manage 342.6 K 25 Oct 2007 - 13:08 Main.RajB  
pdfpdf XX-Acumen_poster.pdf manage 1530.7 K 18 Sep 2007 - 14:38 Main.YunZhu  
pdfpdf uccello.pdf manage 321.5 K 18 Sep 2007 - 14:05 Main.GregoryMalecha 2007 Uccello Poster
Creative Commons LicenseThis work is licensed under a Creative Commons Attribution 2.5 License. Please follow our citation guidelines.