Maybe you can picture yourself doing a fantastic job on a research
project, and some day making a significant contribution to the theory or
practice of computer science. Or maybe you can picture yourself
working on a challenging project and learning a lot from it, so that
when you graduate you either get offers from all the top PhD programs
in the country, or receive endless phone-calls from recruiters begging
you to work for them. Or perhaps you can imagine yourself
becoming a top-notch professor or researcher or engineer some day, and
getting to work with the brightest people in the world for the rest of
your life.
Regardless of how clearly you can see yourself doing these things, if
any of these scenarios appeal to you, you should consider doing
undergraduate research. Read on....
Why should I do research?
Stanford has one of the top CS programs in the world to a large
part because of the research being done by the faculty and students in
the department. Your time at Stanford offers a unique opportunity for
you to get involved in research. If you get so caught up in
finishing your 140 program that you forget to take advantage of this
opportunity, you may never again have another similar opportunity in
your life.
If you think you might be interested in getting a PhD, research
experience is almost a prerequisite for admission to any of the top
graduate programs. If you're not sure yet about your
post-graduation plans, doing undergraduate research would also be a good
way for you to figure out if you might be interested in continuing on
to graduate school.
Participating in research will make you much more
employable. If you pay attention at job fairs and interviews,
you'll find that the most sought-after students tend to be the ones with
significant experience working on research projects (regardless of
whether the research is directly applicable to the job). Some employers will
even ask faculty for recommendations of individual students. Also, the
top students graduating each year tend to be research students.
The reason that they're the top students is because they
got involved in research and worked hard and learned a lot from it since
early in their undergraduate careers.
It's an opportunity to participate in creating a brand new idea,
and to do a significant piece of work with a lasting impact. (I'm
not saying that this is easy, but you'll also have professors and others
to help you.) Also, if you do good work, you'll hopefully get to
be part of writing a paper, and might even get to attend a conference at
some fun exotic location. :-)
Many of the world's best researchers started work on research
when they were themselves undergraduates, maybe even when they were
freshmen or sophomores. Whatever year you are in, if you think you
might like to be a professor or researcher some day, you should
absolutely make undergraduate research a top priority right now.
Do I need to have a specific project in mind to do research?
Not at all. Most students start on research without having had
a particular project in mind. Most professors supervise one or
more research groups, which typically consist of the professor's PhD and
MS students, and often a few undergraduate students. Each group
usually works on a significant project or idea, with each student
working on a key piece of it. One of the best ways to get involved with
research, if you don't have a particular project in mind, is to join one
of these groups. You'll probably spend some time helping with the
general work and learning about the project. Don't underestimate the
value of this opportunity: You'll get a great inside look at how
research is done, and learn a lot about jumping into a large project
(which is what you'll do at almost any job you have after graduation).
After you spend some time with the group, you and/or the professor will
probably start to find particular aspects of the project that you can
work on. At this point, you can work out with your professor the
best way to proceed with your taking on a part of the project.
In some cases, students might also start off with a particular project
or idea that they want to pursue, and will go out to find a professor
with similar research interests, and ask him/her to be their advisor for
the project. The professor provides guidance and suggestions,
while the student does the detailed research and experiments. Getting
started in research this way is much more rare, and usually works only
for students who are fairly far into the major or who have already had
significant work experience in their field of interest.
How far along in the CS major do I need to be in order to do
research?
This varies wildly among research groups.
Certain groups will expect
you to have a certain level of programming "maturity,"
a strong math background, or basic knowledge of the research area.
But many other groups will have ways for students to get involved and
contribute even if they haven't taken many CS courses yet. So don't
wait until you've finished half the major to start getting involved!
Since the "prerequisites" for starting work on a research
project varies widely among research areas and professors, you
should talk to the professors to get their advice. (For instance, some
groups are happy to take on freshmen---because you have many years ahead
of you in Stanford, and thus have lots of time to learn and to do great
work---while others prefer to take on only more senior, advanced
students.) Many professors teach an introductory class centering
broadly on their research area, and if you contact them, will ask you to
take that class first. If this is the response you get from a
professor, and if you interested in working with that particular
professor, then a good way to "impress" them (and significantly increase
the chance that they'll agree to take you on) is to take, and ace, this
class. If you're not sure yet whether you're interested in a
particular topic, the intro class would also be a good place for you to
find out more about it. In any case, professors' criteria for
taking on students vary widely, and if you are interested in working
with a particular professor, you should find out what classes you should
take or what you should do in order to be considered for their research
group. Some professors will list this information on a FAQ on
their homepage; most don't, in which case you should email them to ask.
You should do this as soon as possible, because they'll often be able to
give advice on courses to take that you haven't thought of, and you
don't want to miss a course (or its prerequisites) and have to wait a
year to take it.
Note that, if you set up your sequence of classes right, you can
take many of the 200-level intro classes as early as your sophomore year. So,
make sure you plan your class schedule several quarters ahead! The CS
major is set up to be pretty flexible and not have a lot of "sequence"
classes, so you should be able to put off the classes you are less
interested in until later and get started on the classes that interest
you early. Some people believe that if you are really excited about a
class you should wait until your senior year to take it and do really
well in it. However, if you do this and end up finding the field
fascinating, then you'll only have two quarters left to pursue higher
level classes or research, so this is usually not a good idea.
If you contact a professor and he or she asks you to take a
particular class first, but you are unable to do so for a long time, you
can still ask to get involved in some preparatory work for research
while you are waiting to take the class. If you ask to do this,
there's a good chance that the professor will say no (so don't be
disappointed if this happens). But for instance, many groups have
applications for which they would love to see a better user interface,
and you could ask about getting involved in a project along those lines
where a lot of knowledge about the specific field is not as
necessary. Although this may not exactly the ground-breaking work
you were hoping to do, it would help you to build an understanding of
what the group is doing, and establish a good working relationship with
the group/professor. They will hopefully come to see you as someone who
is reliable and hard-working, which would make them more inclined to
give you more intellectual responsibility as you begin to take the
necessary classes and learn about the field.
What can I do to make sure that my research experience is a good
one?
Most undergraduates who do research will consider it to be either one
of their best experiences at Stanford, or their worst. Although nothing
can guarantee that your experience will be a good one, here are a few
tried and true tips:
Define what your expectations of the project are
Before you start working on any sort of research project, make sure
that you've sat down with the professor (or a graduate student who will
be supervising you) and discuss what exactly you will be working
on. Every year, at least one person has all sorts of gripes that they
spent their whole summer on a CURIS project that they felt was above
or below their ability. This is unfortunate, because the same
opportunity would probably have been a great one for someone else. The
professor has no way of knowing what you are willing and able to do if
you don't communicate with them. Before you take on a project, make
sure that you are clear about what sort of day-to-day work is involved,
and that you are excited and happy about the opportunity. You should
also be clear on who will be supervising you on a day-to-day basis and
who you can turn to for advice and guidance if you run into problems.
Define what time expectations the professor/group has of you
Nothing is worse than a flaky member of a group project. As an
undergraduate, you may have many commitments outside research.
It's therefore important that you sit down with your professor (or
grad student supervisor) and define exactly how much time you have
available for the project and when you will be around. If you know that
you will be in Sweet Hall 24/7 during dead week, be sure to communicate
that to your group and make sure that it's acceptable for you to be
gone during that time. Nothing is more frustrating to a research group
than students who "disappear." However, if you've outlined when
it is that you will be gone, then people won't be expecting you and
they won't be disappointed.
Define certain hours when you will be at the lab working on
your research
This makes it easy for people who need to find you and talk about work.
You will also be perceived more as a reliable, part-time worker, rather
than someone who is "sometimes around, sometimes not - depends on how
busy she is." Doing this is also a great self-discipline technique.
Many people who do research during the school year find that their
research keeps getting pushed to the back burner because everything
else has a deadline. By scheduling time to put into your research and sticking to it, you'll avoid
this situation and be less likely to disappoint yourself as well as
your professor/group.
Don't bite off more than you can chew
It is always, always better to do a great job on a small project than
to do a bad job on a huge project! Make sure you deliver on any promises
you make to the professor or research group.
Communicate!
Professors and graduate students are not mind readers. If you're
unhappy about something or might be unable to make a deadline, make
sure to bring it up in a non-confrontational way, and to do so early.
Problems are always easier to solve if they have just started than if
you have been silently steaming about them for six weeks. Also be sure
to communicate about the things that are going well. If you are really
excited about a certain aspect of your work, let someone know. They
might not be able to take action right away, but the next time
something similar comes along, they'll be much more likely to send it
your way.
How do I find out what research opportunities are available?
There many different ways to find out what research is going on around
Stanford. Some examples are:
Read Your Email
The bscs list is constantly getting announcements about presentations
that are being given by faculty, advanced graduate students and visiting
faculty. Take the time to read through some of the abstracts and pick a
few that interest you. Note that these announcements are not usually
forwarded to the considering_cs list. If you are interested in getting
these announcements, you should come in and declare.
Surf the Web
The web has a lot of information about CS research at Stanford. Just
Google a professor or subject that you are interested in, or check out
some of the links mentioned below.
NEW! School Year Research Projects
Throughout the year, professors have openings for undergrads to do work
in their labs. Here they post descriptions of their ongoing projects.
CURIS Projects
Each summer, some professors take on undergraduates through our summer
research college. This site has a list of the projects available. Note that
the projects site is usually updated sometime around February with new
projects for the upcoming summer.
Lab pages
Links to these are found on the CS Research Page (see below) or on professors' websites.
CS Research Page
The CS department has a page that lists faculty by research area. From
here you'll find links to each faculty member's personal home page and
their CS department profile, which usually tell you what his or her
research interests are.
Explore Gates
Don't be afraid to walk around Gates and check out the different labs.
Many of the labs have posters and papers that describe what sort of
research is going on. You can also get a good feel for how the labs are
set up, what the atmosphere is like, etc. Watch your e-mail for announcements about lab tours and open houses.
Attend Seminars and Presentations
In addition to the talks and presentations that are announced by email,
there are some CS seminar series that are especially appropriate for
learning about research. Each of these series is available as a 1 unit
class (except CS 300), but you can also just come in and hear the
speakers that interest you if you want.
CS 300
At the beginning of each academic year, all new PhD students are
required to take CS300. The class meets M-Th from 4:15-6:15 from the
beginning of the Autumn quarter until the end of October. Each day, two
professors come in and describe their research work. The idea is to
give PhD students an overview or the research going on so they can
decide which groups they would like to join. Although the class is
technically for PhD students, it is lecture-style, so no one should mind
if you sit in on the presentations that interest you. The presentations
are likely to be a little more technical than CS 200, but since they
are geared towards PhD students with a broad variety of interests, they
should be fairly accessible.
CS 5XX Seminars
All of our CS 500 level courses are topic seminars. For instance, CS
528 is a seminar
on AI, Geometry, Robotics, Vision and Graphics. Each week, a
different speaker comes in and presents their research in one of those
areas. Sometimes it is a Stanford professor, sometimes it's a grad
student, and sometimes it's an outside visitor. The presentations are
often quite technical, but if you check out the schedules on the
webpages, you should be able to find some talks that interest
you.
Go to Office Hours
Once you have narrowed down your interests to a few professors, go to
their office hours . It's always a good idea to
email a professor and let him or her know that you will be coming in. That way if their
office hours are particularly busy, they can suggest another time.
At this time, you can discuss what possibilities are available or just
find out more about what a particular group is doing.
Often the professor will be able to direct you to some research papers
that might be valuable to read, or some other groups that you might
find interesting in addition to his or her own.
Talk to a Grad Student
The graduate students in a research
group will probably end up being one of your best sources of
information. They are the ones that work on the project every day and
deal with most of the details. In reality, it is likely that the graduate
students who will have a good idea for what role you could initially play in
the project. They will also be able to give you an honest assessment of
what it is like to work with the professor and what the expectations in
the group are. Finally, if you decide to work with the group, the
graduate students will probably be the ones that will be mentoring you
in the day to day aspects of your work. Before you choose a project,
try to meet with at least one graduate student in the group
(preferably one that might be somewhat supervising/mentoring you). If
you are still deciding between projects, ask the graduate students what
they think - you'd be surprised at how helpful and honest they can be.
Go to Group Meetings
Most project groups hold a weekly meeting where everyone gets together
with the professor and catches up on what's going on. The format for
these meetings varies from group to group. In some meetings, a different
person presents their research each week. In others, the meeting is a
time to go over what tasks need to be done and who's doing what.
Regardless of the format, it is fairly common for students who are
considering joining the group to ask the professor for permission to
attend these meetings. At the beginning of the year, PhD students will
"shop" for a group by attending these meetings, and if you express
interest in a professor's research, they might suggest that you start
coming to their group meeting.
What programs can I do research through?
Undergraduate research is often done for academic credit, through
CURIS, or through an informal arrangement with a professor. Here are the
most common options:
CURIS
CURIS is the CS department's summer research college. Students are
matched with projects and work on them for 10 weeks in the summer. Check
out the CURIS website for more
information.
Senior Project (CS 191 or 191W) and Research Project (CS 294 or 294W)
CS 191 is a one quarter research project that fulfills the Senior
Project requirement. Students must set up their own project, find a
faculty sponsor and submit a proposal. More information is available at
the Senior Project website.
New this year, students can also opt for CS 294, which fulfills the
senior project requirement as well, but allows students to do so through
getting involved in a major ongoing research project.
Honors Thesis
Honors Thesis is a one year research project for students in their
senior year. During their Junior year, students decide on a topic, find
a faculty sponsor and apply to the program. During their senior year,
students take 3 units a quarter as independent study units, and at the
end of the year they write a thesis. More information is available at
the Honors website.
Independent Study
You can get academic credit for your research work by signing up (with
a professor's approval) for CS199, or 399 if you are a co-term student.
These units will not count for the CS major, but they will count
towards graduation, and can sometimes be counted as master's electives
for students who are co-terming.
On Your Own
Finally, you might be able to find a professor to work with without
arranging to receive academic credit. Professors like this type of
arrangement to varying degrees, so you'll need to discuss it with the
professor and see how he or she feels about it.
I'm scared to approach a professor!
Don't be. Professors are people who have decided that their
research is really interesting and important. The fact that you are
considering doing research and might go on to follow in their footsteps
is really exciting to them. They are much happier to talk to individual
students about their research than they are to grade your midterms.
Also, keep in mind that professors are judged by the quality of the
research done by their groups, and whether their groups manage to
produce great students. If it's possible that you will be a productive
and useful person in their group while learning lots of things, then
that's incredibly exciting and helpful to them as well. Professors also
deal with endless requests from graduate students (not to mention people
who haven't even been admitted to Stanford) to join their lab in return
for funding. The fact that someone wants to join their lab just to
learn and will basically be doing work for free is just plain awesome
for them no matter how you look at it.
That being said, keep in mind that professors also tend to be some
of the busiest people on the planet. Be respectful of their time as
well as their knowledge, and you will get a much better response. Before
contacting a professor for the first time, take thirty seconds to check
if they have a FAQ on their homepage that answers your questions. Before you go in, you should
also have taken the time to have read about the projects you are interested in online.
Also, be willing to let them direct you to
information rather than explain it all in person---instead of
demanding a personal tour of the lab, ask if he or she can suggest some
good papers for you to read, or if there is a particular graduate
student you should talk to. If you approach a professor respectfully
and then follow through with what you agreed to take on, I can guarantee
that many many professors at Stanford will be delighted to have you
participate in their research.
Stanford University Computer Science Site content maintained by the CS Course Advisor. Design by Linda Nguyen, '05.
01010011 01110111 01100101 01100101 01110100 01001000 01100001 01101100 01101100 01001100 01101111 01110110 01100101 00100001