Undergraduate Research Opportunities

Skip to end of metadata
Go to start of metadata

The Department of Computer Science encourages its students to involve themselves in research projects throughout their undergraduate career. Participation in various available opportunities provides students with a chance to apply principles learned in the classroom to original, complex problems. In addition to the valuable hands-on skills cultivated, the student also obtains demonstrable, verifiable experience that appeals to graduate schools as well as potential employers. Undergraduate research within the Department of Computer Science may take the form of CS 397 Individual Study, CS 499 Senior Thesis or even paid student positions.

A student interested in undergraduate research should begin by reviewing the research interests of various Computer Science faculty. Most professors will have specific prerequisites necessary for students to join their research group(s). These usually take the form of a specific course or courses; furthermore, high grades are often demanded in these courses as demonstration of aptitude and interest in the research area. Most of all, professors look for interest, enthusiasm, and willingness to commit a substantial amount of time.

The links below, organized by research area, provide information about potential undergraduate projects.

Listed here are those professors who have specifically stated that they have positions for undergraduates in their research groups.  The list of all faculty research areas is found at http://www.cs.uiuc.edu/research/areas.php; if you are interested in the research of a professor who is not listed on this page, by all means contact him or her and ask for an appointment.

Algorithms and Theory

Jeff Erickson

Typical Project: Theoretical research; possibly some software development

Student Interaction: Typical group meetings tend to be a mixture of talks on recent research papers, discussion of useful mathematical tools, and brainstorming about new problems.

Positions Available: CS 397 and/or CS 499

Required Experience: Student should have taken CS 473 and obtained >= A; strong mathematical background preferred, as well as good geometric intuition; graphics experience (CS 418, CS 419) is useful, but not necessary. Students may check Professor Erickson's web pages (http://compgeom.cs.uiuc.edu/~jeffe/), or contact him directly for more information.

Sariel Har-Peled

Typical Project: Theoretical research; possibly some software development.

Student Interaction: Typical group meetings tend to be a mixture of talks on recent research papers, discussion of useful mathematical tools, and brainstorming about new problems.

Positions Available: CS 397 and/or CS 499; Paid positions not available at this time.

Required Experience: Student should have taken CS 473 and obtained >= A; strong mathematical background preferred, as well as good geometric intuition; graphics experience (CS CS 418, CS 419) is useful, but not necessary.

Students may check Professor Har-Peled's web pages (http://valis.cs.uiuc.edu/~sariel/), or contact him directly for more information.

Artificial Intelligence

Positions occasionally made available for undergrads with unusually strong background and abilities, and with particular interests that match well with current research topics pursued in the group; exceptional students may check the professor's web pages, or contact him directly for more information.

Derek Hoiem

Typical Project: Projects involve research in computer vision. Projects may include assistance in data collection and annotation, programming, releasing source code, or research projects aimed at publication, depending on skills, interests, and time. Projects may be independent or in collaboration with a graduate student.

Student Interaction: Weekly or biweekly meetings with prof, or as needed. Frequent interaction with graduate students.

Positions Available: independent study or paid positions available.

Required Experience: None, though basic programming and math skills may be required. Knowledge of computer vision and/or machine learning may be needed for advanced research projects.

Students may check Professor Hoiem's web pages (http://www.cs.uiuc.edu/homes/dhoiem/), or contact him directly for more information.

Steven LaValle http://msl.cs.uiuc.edu/~lavalle/


Dan Roth http://l2r.cs.uiuc.edu/~danr/

Architecture, Parallel Computing and Systems

Computer Architecture

Sarita Adve

Typical Project: Involves 1) research, usually assisting one or more graduate students in their research and/or 2) software (workload or simulator) development

Student Interaction: Undergraduate student would have a lot of interaction with graduate students in the group; student would meet with Professor Adve and the grad student(s) with whom he/she is closely working around once a week (more often, if needed); students are welcomed and encouraged to attend weekly group meetings and the weekly architecture seminar, but this is not required.

Positions Available: CS 397 and/or CS 499; paid positions available.

Required Experience: Student should have taken CS 232and CS 433 (an A is typically expected in both courses).  Additional Notes: Significant commitment is expected, both in terms of interest and of time.

Students may check Professor Adve's web pages (http://rsim.cs.uiuc.edu/~sadve/), or contact her directly for more information.

Craig Zilles

Typical Project: Performance analysis and enhancement to a Java Virtual Machine (JVM). Student Interaction: Weekly seminars and sub-project meetings.
Positions Available: CS 397 and/or CS 499; paid positions available. Required Experience: strong programming skills, good understanding of CS    232/241 topics, interest in JVMs, compilers, hardware, and/or operating systems.

Students may check Professor Zilles web pages (www-faculty.cs.uiuc.edu/~zilles/), or contact him directly for more information.

Compilers

Vikram Adve

Projects available for undergraduate students.  Our group is building a novel COMPILER-BASED VIRTUAL MACHINE FOR OPERATING SYSTEMS that can host a complete OS and all its libraries and applications.  This system raises a wide range of research problems in compilers and compiler applications to system design issues.  Students may check Professor V. Adve webpage (http://www-faculty.cs.uiuc.edu/~vadve/), or contact him directly for more information.

Typical Project: Collaborate with one or two graduate students on research, typically programming, performance experiments, and ideally, a publication. Topics include software security, automated bug diagnosis, parallel programming.

Student Interaction: Weekly or biweekly meetings with professor and one or more graduate students. More frequent interaction with graduate students.

Positions Available: Thesis, research, independent study, or paid positions available.

Required Experience: Good programming skills. Excellent performance in CS 241 would be a strong plus.

David Padua

Typical Project: Run experiments; prepare codes for distribution; possibility of programming some compiler/general algorithms; specific projects include Intelligent Compilers and Compilers for Grids.

Student Interaction: Weekly seminars and sub-project meetings.

Positions Available: CS 397 and/or CS 499; paid positions available.

Required Experience: Compilers and Operating systems and CS 433. Students may check Professor David Padua webpage (http://polaris.cs.uiuc.edu/~padua/), or contact him directly for more information.

Parallel Programming Laboratory

Laxmikant (Sanjay) Kale

Typical Project: Projects are based on mutual interest, but usually involve research on parallel applications, performance visualization tools and parallel visualization. Student may work with a graduate student in the group and assist in their research.

Student Interaction: Weekly group and individual meetings with Prof. Kale are typical. Undergraduate student would have also frequent daily interaction with graduate students in the group.

Positions Available: Paid positions as well as CS 397 and/or CS 497 credit, depending on your inclination

Required Experience: Programming experience in C/C++ (or sometimes Java for visualization tools) is usually needed.
Students may check Parallel Programming Lab's web page (http://charm.cs.illinois.edu/ ), or contact Prof. Kale directly for more information.

System Architecture

Database and Information Systems


Kevin Chang

Typical Project: Student(s) will work on a research-oriented system development task in the context of a larger project that we are pursuing. For instance, some of our current topics with undergraduate participation include: building a Web "crawler" for discovering and collecting databases on the Web (the MetaQuerier project); constructing unified query interfaces for querying databases on the Web (MetaQuerier); developing a "Google-like" ranking query facility for searching large databases (the AIM project). Student Interaction: Graduate students in these topics will work as mentors with the undergraduates. Task-Based meetings: students working on closely related problems will have regular (typically weekly) meetings with faculty or graduate mentors; usually a task will associate 2-3 students. Weekly seminar meetings: weekly meetings where student presents his/her own work as well as other published works.
Positions Available: CS 397 and/or CS 499; immediate paid positions available for strong candidates.

Required Experience: Top 25% of class; interested in data management or Web information access; development skill: experience in programming and project design implementation.  See more information on current projects through Professor Chang's webpage.


Jiawei Han

Typical Project: Some software development and testing; data mining methods and applications, data visualization for databases.

Student Interaction: Students will be able to join some of the group's lab meetings.

Positions Available: CS 397 and/or CS 499; paid positions available after first semester of successful research.

Required Experience:  Strong interest in data mining applications; strong programming skills; strong academic record.

Students may check Professor Han's webpage (http://www-faculty.cs.uiuc.edu/~hanj/), or contact him directly for more information



Chengxiang Zhai

Typical Project: Development and research in the area of web information management (e.g., personalized search); see Professor Zhai's homepage for more information about research projects.

Student Interaction: Will work closely with graduate students on a project; Will have regular meetings with graduate students and Prof. Zhai.

Positions Available: CS 397 and/or CS 499; paid positions available

Required Experience: Strong interest in information management applications (e.g. web search engines); strong programming skills. Additional Notes: Significant time commitment is expected.

Students may check Professor Zhai's webpage (http://www-faculty.cs.uiuc.edu/~czhai/), or contact him directly for more information.



                   Aditya Parameswaran (starting Summer 2014)

Typical Project: Development and research in the area of data analytics; see Professor Parameswaran's homepage for more information about research projects.

Student Interaction: Will work closely with graduate students on a project; Will have regular weekly meetings with graduate students and Prof. Parameswaran.

Positions Available: CS 397 and/or CS 499 ; paid positions available after a semester of effort.

Required Experience: Strong mathematical background or strong programming skills required. Experience in databases, machine learning, or web application development would be preferable but not required.

Students may check Professor Parameswaran's webpage (http://i.stanford.edu/~adityagp), or contact him directly for more information.

Graphics and Human Computer Interfaces

Graphics


John Hart

Typical Project:  Our graphics research group often produces proof-of-concept prototype implementations of ideas to show that hey can work.  We depend on undergraduate researchers to assist in this implementation, and to develop the resulting ideas into stand-alone freely-available or commercial software applications.  We are also in need of further development on our Wickbert shape modeling library. Past undergrad researchers have become graduate students at Stanford, Harvard, Caltech and UCSD.

Student Interaction:  Undergraduate graphics research students areexpected to attend our weekly graphics research meetings and seminars, and are encouraged to contribute.

Position Available:  Credit for CS 397 and/or CS 499; Paid undergraduate research time-slip positions are sometimes available.

Required Experience: Students must have taken CS 418, or be currently enrolled in it, or be experienced graphics or HTML5 programmers.

Please check the following page for undergraduate projects: http://graphics.cs.illinois.edu/ugprojects

Interested students should also join the graphics mailing list and attend the weekly graphics seminar. Information on both is available at: http://graphics.cs.illinois.edu/seminar

Human Computer Interfaces

Brian Bailey

Typical Project: Programming (Java, C, C++); offer ideas and discuss research topics.

Student Interaction: Varies per project.

Positions Available: CS 397 and/or CS 499; paid positions are available.

Required Experience: GPA >= 3.5; artistic; strong programming skills, knowledge of HCI or interface design, ability to think creatively.

Students may check Professor Bailey's webpage (http://wwwfaculty.cs.uiuc.edu/~bpbailey/), or contact him directly for more information.

Systems and Networking

Networking and Distributed Systems


  Indranil Gupta

Professor Gupta's "Distributed Protocols Research Group" (DPRG) has limited research projects for undergraduates in all areas of cloud computing, systems for big data, and large-scale distributed systems. Some of DPRG's recent work has been on Hadoop, key-value storage systems, NoSQL storage systems, graph processing, and stream processing systems. Interested undergraduates are required to take one or both of CS 425 or CS 525; high grades will be given preference. Students may check the DPRG website (http://dprg.cs.uiuc.edu for more information)


Klara Nahrstedt

Typical Project: Undergrads would do software testing and development, as well as documentation; projects include GUI development for traffic monitoring in P2P networks, testing of wireless ad hoc systems under different mobility and security patterns, testing of different transport protocols for 3D video streams, assistance in user studies within tele-immersive systems, comparative study of different existing tele-immersive systems, their commonalites and differences, comparative study of existing view management systems in the cinematography.  Student Interaction: Group meetings include presentation of research results from Professor Nahrstedt's own group, as well as other researchers' results
Positions Available: CS 397 and/or CS 499; no paid positions available.  

Required Experience: Need a GPA >= 3.3, and have taken CS 423 or CS 438 or CS 414 and have knowledge of C, C++ and/or Java.

Students may check Professor Nahrstedt's webpage (http://www.cs.uiuc.edu/directory/directory.php?name=nahrstedt), or contact her directly for more information.

Operating Systems and Security


Roy Campbell

Typical Project: Work with graduate students to help design, build, test, etc. software in the smart room; build interfaces to integrate Office and Microsoft producer into Gaia (our distributed OS for the Room), work on linux applications for Gaia that would run on a smart watch, work on integrating IBM's everywhere displays into Gaia, work on interfaces to control voice recognition software, work on interfaces to integrate video recognition and tracking software into Gaia, help build a multidisplay linux cluster that could be used to drive a multidisplay in Siebel Center IA64A open source UNIX, security, or distributed operating system project; work on testing UML for IA64 linux, work on debugging linux that is compiled with a new compiler under UML Help with Siebel Center smart building applications

Student Interaction: Varies per project

Positions Available: CS 397 and/or CS 499; paid positions available for smart room project.

Required Experience: Good knowledge of C++, knowledge of Visual Basic.

Students may check Professor Campbell's webpage (http://www.cs.uiuc.edu/directory/directory.php?name=campbell), or contact him directly for more information.

Real-Time and Embedded Systems


Marco Caccamo

Typical Project: Software development; some theoretical research possible, depending upon student's skills

Student Interaction: Weekly or bi-weekly meetings with research group

Positions Available: CS 397 and/or CS 499; paid positions considered after trial period.

Required Experience: Students should have taken CS 424 and preferably also CS 431.

Students may check Professor Caccamo's webpage (http://pertsserver.cs.uiuc.edu/~mcaccamo/), or contact him directly for more information.


Lui Sha

Typical Project: Involves 1) research, usually assisting one or more graduate students in their research and/or 2) participate in software development on research projects with graduate students.
Student Interaction: Undergraduate student would have a lot of interactions with graduate students in the group; student would meet with Professor Sha and the grad student(s) during the research group meetings.

Positions Available: CS 397 and/or CS 499; paid positions also available.

Required Experience: Student should have taken CS 431 (an A is typically expected) and strong programming skills are also expected.  Additional Notes: Significant commitment is expected, both in terms of interest and of time.

Students may check Professor Sha's webpage (http://www-rtsl.cs.uiuc.edu/~lrs/), or contact him directly for more information.

Formal Systems, Programming Languages and Software Engineering

Formal Systems

Elsa Gunter

Typical Project: A variety of different kinds of project are available. Some examples include: developing a mathematical theory in an interactive theorem prover; extending a formal methods tool to include new methods of analysis; applying formal methods tools to case studies to potentially detect errors. All projects would include a programming component and written documentation of findings.

Student Interaction: Typically, one weekly meetings for presentation of progress, and discussion of difficulties and future direction.

Positions Available: CS 397 and/or CS 499; paid positions not available. Required Experience: Knowledge of SML is useful for most projects. Knowledge of mathematical proof is useful/required for most projects. Exposure to some formal mathematical language & logic is most useful.  Students may check Professor Gunter's webpage (http://www-faculty.cs.uiuc.edu/~egunter/), or contact her directly for more information.

Programming Languages

Software Engineering


Darko Marinov

 Typical Project:  Students usually write programs in Java, either developing tools for software testing and analysis or helping with evaluation of such tools.  Several previous projects resulted in research papers or code contributions to open source projects.

Student Interaction: Regular meetings with Prof. Marinov and/or his graduate students.

Positions Available: CS 397 and/or CS 499; paid positions available occasionally.

Required Experience: Motivation to do research and interest in software development and testing are much more important than experience.  Some students joined previous projects even without knowing Java and still made great contributions.

Students may check Professor Marinov's webpage ( http://mir.cs.illinois.edu/marinov ), or contact him directly for more information.

 Tao Xie

Typical Project:  Students usually write programs in Java or C#, primarily developing tools for software testing, analysis, debugging, and analytics, including developing data mining and natural language processing techniques applied on software artifacts, or developing tools for conducting empirical studies on software artifacts. A popularly picked undergraduate project topic is on educational software engineering: developing software engineering techniques for educational purposes. See the project web for more information on educational software engineering, such as research around the high-impact Pex4Fun and TouchDevelop projects from Microsoft Research.

Student Interaction: Regular meetings with Prof. Xie and/or his graduate students.

Positions Available: CS 397 and/or CS 499; paid positions available occasionally but no paid positions available currently.

Required Experience: Strong motivation to do research and strong interest in software engineering and educational technologies are needed. Good software-tool-development skills (e.g., programming and problem-solving skills) are desirable. Taking/having taken CS427 and/or 428 is desirable. Good GPA (>=3.5) is desirable, and significant time commitment on research work is expected.

Students may check Professor Xie's research webpage (http://web.engr.illinois.edu/~taoxie/research.htm), or contact him directly for more information.

Scientific Computing

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.