COS Independent Work & Theses

Do This Now:

Forms:

Index

What is Computer Science?

Computer science is the study of how mechanical devices (i.e., computers) collect, store, communicate, analyze, transform and present information. Computer science tries to provide answers to fundamental questions such as "what problems can be solved using computers?" and "what problems can't?" Of course, just knowing a yes/no answer to these questions is not enough. If a problem can be solved, computer scientists will try to discover efficient algorithms (i.e., precise recipes or mechanical procedures) that actually solve them. Moreover, most real problems, like searching the web or processing an Instagram photo, are immensely complicated, requiring thousands of little algorithms to work together properly. Hence, computer science is also concerned with abstraction and modularity --- fundamental techniques for breaking down complex problems in to smaller, more manageable pieces.

At Princeton, computer science majors must show competence in each of three areas of computer science: theory, systems and applications. In the theory track, students learn how to reason about mathematical models of computation, define new algorithms and prove their work is correct. In the systems track, students students learn how high-level, human-readable programming languages are compiled into code code that machines can interpret and execute. In the applications track, students discover how to use computers to facilitate the study of art, biology, or music, to decide whether a speech was given by Obama or Bush, and to track the spread of ideas across the internet.

Learning Goals

The goal of undergraduate research and independent work in Computer Science is to serve as an independent or synthesizing experience in which undergraduates work on significant research or design projects. Given the broad diversity of intellectual problems in Computer Science, and equally broad possibilities regarding future career trajectories, the style of project can vary from theoretical to systems or applications-oriented, with output ranging from scholarly publications to working software or hardware.

For BSE students majoring in CS, independent work (IW) can either be taken as a 1-semester or 2-semester course, or as a 2-semester thesis option if preferred. For AB students majoring in CS, independent work consists of 4 semesters of work in their junior and senior years. In the descriptions below, we refer generally to IW, noting specific differences or distinctions between thesis, non-thesis, BSE and AB where relevant.

Specific Learning Objectives

Evaluation

The grading rubric for independent work is given below.

Nuts and Bolts of CS Independent Work

This web page is one of the major resources for information about the requirements of your thesis or independent research work. Please read it very carefully. It will tell you what your responsibilities and deadlines are. Unlike most courses, no one is going to be bugging you to hand in weekly homework. It is entirely your responsibility to figure out what you need to do, to manage your own time properly through the semester and to do exceptional research. In addition to receiving a grade for the work, every year, prestigious awards will be given to those theses and independent work projects that the CS faculty deem to be the most creative, scholarly, well-written and impactful.

The independent work coordinators (IWCs) are Professors Mona Singh and Adam Finkelstein. The IW coordinator(s) are responsible for overseeing the mechanics of the IW, providing high-level feedback on proposals, posters, etc. The IW coordinators also determine the final grade with input from your advisor and other members of the faculty. Only the IWCs can approve any changes to deadlines, etc., so please do not ask anyone else to grant extensions or allow you to skip required components of the IW. Your research advisor is the person with whom you will most closely work over the course of your research. It is up to you to find your own advisor and mutually agree on a research topic. It is your job to meet all the deadlines for the course -- your research advisor may not even be aware of them. Do not ask your research advisor to grant extensions for the course -- even if they agree, it will not be honored by the IWC.

Colleen Kenny-McGinley, the undergrad coordinator (UGC) serves as the administrative contact for the course, collects forms, and handles many of the logistics. Her office is CS 210, and is where all physical forms are submitted and where sign-ups occur.

To contact the IWC and UGC, please use the address iwcoord@lists.cs.princeton.edu.

Important Information for Everyone

You must go to the Welcome Meeting to find out all about independent work. This is a mandatory meeting, even if you have previously done independent work, since the logistics change from year to year.

You must find an advisor as soon as possible.

AB students are required to do a thesis in their senior year. BSE students are not required to do a thesis, but can do a thesis, or can equivalently do 2 consecutive semesters of independent work for which you receive a single grade (you'll temporarily receive an "incomplete" on your transcript in January, which will be filled in with the correct grade in May.) I'll refer to AB's doing theses, BSE's doing theses and 2-semester IW projects all simply as "thesis writers" -- everyone who does this will have the same requirements and deadlines. The deadlines and requirements for single-semester work are different. See information on BSE thesis writers for more information on that option.

You should also read all the information on this page and be thoroughly familiar with it. Do not miss sign-ups for your presentations or talks! Do not hand in checkpoints late! Make note of the the list of important dates. It is your responsibility not to miss a deadline.

Important Dates and Deadlines

Everyone should know the important dates and deadlines. The dates and deadlines are somewhat different for thesis and single-semester independent research. See this page.

Finding a Research Advisor & Research Topic

Your number 1 priority BEFORE the start of the semester is to find an advisor and a topic you will enjoy working on. Picking your advisor and topic as early as possible and getting started on work cannot be emphasized strongly enough. Please see this website for ideas:

Faculty will be updating this web page with new research ideas all the time. Also check out web pages and research project pages for faculty who you know or have taken a class from.

During the course of the semester, you should be meeting regularly with your advisor and updating him/her on your progress. Setting up a schedule to meet your advisor every single week of the semester, at the same time, is highly recommended. Failure to meet with your advisor will almost certainly cause you to get behind schedule and could even cause you to fail the course if you do not make good enough week-by-week progress. As a rule of thumb, try to allocate 6-10 hours of time per week for progress on your independent work project.

It is possible to do interdisciplinary work involving CS and another field. Any interdisciplinary project must have a significant computer science component, but if it does, you may want an advisor from a department other than computer science. For example, the following non-CS faculty have done research with CS students in the past or are looking to do interdisciplinary projects with CS students in the future:

Welcome Meeting

At the beginning of each semester we will have a meeting to explain the key requirements, reinforce the dates and deadlines for the semester, and give some resources for how to find projects, advisors, and research areas in the department. See the important dates page for the place and time of the meeting. Come, eat pizza, and find out how to do a successful independent work project. Attendance is mandatory. Dates and requirements change from year to year. Slides from Welcome Meeting on Sept. 14, 2012.

Proposal Presentations/Progress Reports

Everyone must sign up and give a research proposal/progress report presentation. 2-semester projects and thesis projects will give one proposal presentation at the beginning of the Fall term (they will not give another one at the beginning of the Spring term). Single-semester independent work projects will give a proposal/progress report presentation towars the beginning of the semester. This presentation will come in approximately the 4th or 5th week of the semester. See the important dates page for the sign-up deadline and the dates for giving presentations. Sign-ups will occur via WASS. You are expected to sign up for one slot and attend all of the talks in that 1-hour time block (starting and ending on the hour). While attending you will fill out feedback forms. You will give the forms to the other students in your group to give them tips that will help them improve their speaking abilities.

You will be given 9 minutes for the talk and 3 minutes for questions. An absolute maximum of 12 minutes from when the last person finished to when you finish. If your talk is too long you will be cut off in the middle -- manage your time carefully! You must upload your slides to the dropbox prior to the talk -- see the important dates page for the exact webpage, etc.

Please make your presentation in either PowerPoint or PDF formats. Part of (not the entire presentation) may involve giving a demo of some software you have created or are using.

Please read the section on giving a good talk. Also, be sure to practice in advance, by yourself and if possible to your friends, and to go over your talk with your advisor. Your advisor will be able to give you good feedback on both the content and the style of presentation. You will be assessed on both the proposal content and the clarity and effectiveness of your presentation. You should not assume that the audience has a specialized knowledge of your field. Assume your audience is a group of senior undergraduates from Princeton who have not necessarily taken the courses that are most closely related to your research area.

In general, a reasonable format for this talk would be something along the following lines:

Note that each of these bullets may require more than one slide. Please do not feel constrained by the number of slides, but make sure you stay within the time limits. Your slides should be reasonably attractive, visually -- use graphics where appropriate to explain the problem, etc. Most presentation programs have some pre-packaged slide backgrounds, etc., that have reasonable color/font schemes for text, bullets, etc. You should probably use them but do not use an overly-gaudy background that distracts from the content of your slides. Remember that the content of your slides is the most important part of this talk. The presentation is meant to enhance it, not mask any weakness in content. At the same time, presentation is important -- a good format uses color, font size, etc., to show organization and to make it easier for the viewers to follow your presentation.

Giving Good Research Talks

Giving a good research talk is much harder than you might think and also probably much more important than you might think. No matter how smart you are or how hard you work you will not become a great scientist until you can communicate your ideas effectively. To improve your presentations, you should practice them, both alone and in front of others, before giving it during your allotted time slot. And take feedback on your posture, eye-contact, style and energy seriously as well as the structure, organization and content of your talk. You should imagine that the audience you are attempting to communicate to is a group of senior Princeton undergraduates in computer science. Since they are Princeton seniors, they are smart and have quite a bit of knowledge about computer science in general, but will not know the specifics of your particular research problem or area. Therefore, you need to introduce the problem and the reason you are doing your research clearly. You cannot depend upon your audience knowing specific jargon, nonstandard mathematics, the nuances of particular programming languages or the specifics of certain software packages. You also need to be a bit of a salesman or saleswoman -- you need to convince your audience that your ideas are useful or intriguing or ingenious or astonishing. You want to try to leave your audience impressed by what you have accomplished and hoping to hear more about it at a later time. If your talk depends upon research or results done by other people then, as usual, you need to cite those other people or papers or software products in your talk.

Here is a talk about how to give talks. Here is a video of Simon Peyton Jones giving the talk on how to give talks (Needs RealPlayer v10). Note that this talk is about how to give a talk after you have done a bunch of research. At the proposal stage, you are not expected to have done too much research, so there will be a greater focus on explaining the nature of the problem area, why the problem is important or intellectually interesting and who else has done research on this problem in the past. Instead of saying what you have done you will say what you will do and, importantly, how you will evaluate it. However, be sure to revisit this example of "how to give a talk" before giving a final presentation talk (for thesis writers).

Here is a talk David Walker gave to Princeton's industrial affiliates. Your talk will be shorter, but this is a good example of a research talk. Notice that slides 2-15 explain that there is lots of "ad hoc data" but no standard programming tools to manipulate it easily -- that is the problem the PADS technology will address. Slides 16-22 describes what research was done -- it describes the main components of the PADS system; it gives pictures to describe the software architecture; it shows (some of) the results of using one of the PADS tools. Slide 23 explains some future research. Slides 24 and 25 recap and conclude. Once again, this talk was given after a bunch of research was done. It is probably a better guide for the final presentation talk than the proposal/progress report, but I hope it helps you see the general style of a research talk.

Here is another example talk created by Vivek Pai, aimed at a broader audience.

You are heavily encouraged to ask your advisor to take a look at your slides in advance and to take their suggestions for improvement seriously.

Checkpoints

Both thesis writers and single-semester IW researchers must prepare checkpoint documents twice a term. See the important dates page for exactly when. The purpose of the checkpoint document is to make sure that everyone is making good progress on their research and will be able to complete their project by the deadline. We hope no one will fail their independent research project. However, students that do not make progress throughout the semester and do not complete satisfactory research can and will fail this course.

Preparing the checkpoint document is not supposed to be difficult or take much of your time. All you must do is write approximately a one-page document that clearly explains what you have accomplished so far. The checkpoint should be divided into three parts (1) Progress to Date: Mention any ideas you have had, software you have built, related research you have evaluated and papers or textbooks you have read. (2) Current difficulties: If you are having difficulty making progress on your project due to some obstacle, explain the obstacle and a plan for overcoming the problem. (3) Next steps: Detail how you anticipate proceeding for the rest of the term.

To get credit for preparing each checkpoint document you must do two things:

1. You must have a meeting with your advisor in which they read your document and fill out & sign your thesis midpoint form (form is here). Naturally, you can e-mail your advisor your document and have them read it in advance of your meeting if you want.

2. You must return the signed form to the UGC by the deadline (see important dates page).

Notice, it is your job to return the signed form to the UGC by the deadline. That means you have to write your document in advance of the deadline and arrange to have a meeting with your advisor in advance of the deadline. You will be penalized for turning in a form late. However, there is no penalty for turning in a form early!

Poster Session

Every thesis and independent work student will produce a "poster" or poster-like display for the final poster session. The poster session is typically held in the Friend Center Convocation Room. There will be one poster session in January for Fall independent work students and one poster session in May for Spring independent work students. See the important dates page for exactly when and where the poster session will be held.

Poster Logistics: Usually, each student will have 1 side of a bulletin board that is 4ft by 4ft to mount their display. Most people will have conventional posters as displays. However, we encourage students to come up with new and creative ways to communicate the intellectual content of their theses to other students and faculty. Thumb tacks for mounting conventional posters will be provided for you. If you are considering something unconventional, please check with the UGC and IWC well in advance to determine if the idea is feasible. In general, space is limited so while creative ideas are wonderful, they need to fit in the same space as a conventional poster presentation.

Poster Spiel: During the poster session, various faculty and other students will walk from poster to poster. When a faculty member or student arrives at your poster, you should be prepared to give them a clear, interesting, 3-minute explanation of your project. Think of it like a miniature, informal presentation. Your spiel should be well structured: introduction (set the context, explain the main goal of the research) followed by technical details of how it works (what did you build? what did you prove? what was the interesting tricky bit that will catch people's attention?) followed by any results (experimental data, demo, proofs) followed by related work, future work and a conclusion. You don't have to have such a spiel memorized. In fact, it is often better not to because it will seem more natural. However, it is useful to think about and practice what you might say.

Poster Content: During the poster session, faculty and students will wander from poster to poster and engage you in conversations about your research. Therefore, each poster should be created in such a way that best helps you explain the intellectual content, importance, creativity, and overall "coolness" of your IW project to a faculty member or student working outside your area of research. Like a good research talk, you should start any conversation with a faculty member with a high-level explanation of the basic problem you are solving and why it is important. Once the faculty member understands the problem, you should move on to explaining the most interesting elements of your solution to the problem. After explaining the basics of the solution you can move on to discussing any experiments or proofs you have done to evaluate or validate your ideas. Do not be afraid to explain negative results in which experiments showed that your ideas did not necessarily pan out as you thought they might. Sharing negative results is a part of good science. Remember that like in a good talk, pictures, graphs, and charts are often worth 1000 words. Also remember that like a good talk, a poster presentation must be practiced in order to be effective. Give practice presentations to your advisor and your friends. Have your friends try to think of difficult questions for you to answer in the middle of your presentation so you are prepared. You should be ready to give a 3 minute presentation, a 5 minute presentation or a 15 minute presentation to a faculty member who walks by. Give me a punchy 3minute spiel on why your work is great. Other faculty will only visit a subset of the posters and will spend more time with each presenter.

Example Poster: Here is an example of a poster. Here is another example of a poster, this time as a PowerPoint file so you can use it as a template that you can edit to include your own content. However, you do not need to emulate the style; these are just examples.

Demos: If you would like to do a demo of your project, you may bring your own laptop as well as your own stool (or stack of boxes or other contraption) to support your laptop next to your poster. Note that demoing your software does not replace the need for you to create a poster. If you need power, or want to do some kind of more elaborate set up of devices, you should check with the IWC and UGC to get their opinion as to whether it will work... Space is the main constraint during the poster session. We will do what we can to make your ideas work. However, we do need some advance warning. If you have creative ideas, please consult with us via email prior to the demo scheduling deadline (the important dates page). If you do not send us email by the deadline, we may not have space and/or be able to give you access to power or other things you need in the Convocation Room.

Printing posters. WARNING: Don't wait until the day before to figure out how to create and print your poster -- you will be out of luck! No excuses about being unable to create a poster on time will be accepted. It is your responsible to figure how to do it and get it done on time. Here are some options for creating posters:

Awards: One additional goal of the poster session is to help the faculty identify award-caliber independent work. Awards may be given out for the best Senior Thesis and best Junior and Senior Independent Work as well as the best Demo or best Poster. New in Fall, 2012: We are planning to select some posters for the "Poster Hall of Fame" and have them printed for long-term display in the department. (In general though, the department also reserves the right to give other awards (or not give them) as they see fit!)

Grading

Grades for independent work will be determined by assessing

Final grades will be determined jointly by the adviser, any second readers (for thesis writers) and the IWCs. Additional Computer Science Department faculty may read student final reports and help assess presentations and posters.

Important Information for Thesis Writers

Second Readers

Every thesis writer must have both an adviser and a second reader. If your adviser is a faculty member who is not in the Computer Science Department then your second reader must be a faculty member in the Computer Science Department.

Thesis writers must return a signed second reader form to the UGC by the second reader deadline, in mid February.

February Paper

Students doing 2-semester IW or a Thesis must write a February paper. This paper should be 4-5 pages long (single-spaced). This is not expected to be an onerous task, but it should give you some practice with technical writing.

To get credit for your midpoint paper you must do 3 things by the deadline (the Friday at the end of first week of classes of the spring semester -- see important dates page):

1. You must have a meeting with your advisor in which they read your document and fill out & sign your February Paper form (form is here). Naturally, you can e-mail your advisor your document and have them read it in advance of your meeting if you want.

2. You must e-mail a copy of your paper to the coordinator, as detailed in the (see important dates page)

3. You must return the signed form to the UGC by the deadline (see important dates page).

You may write your paper and return the form, signed by your advisor, earlier if you want to -- any time in January is fine, for instance. Do not wait until the deadline to write the paper -- if you do, you will not have time to arrange a meeting with your advisor, get them to read the paper, sign the form and return it to the UGC. Neither the UGC or IWC will have any pity on you if you tell them you were unable to schedule an appointment with your advisor just before the deadline. Plan in advance and schedule the appointment well in advance, not at the deadline.

You should discuss the exact requirements for the paper with your advisor. The paper could contain (one or more of) the following components:

You will be assessed based on both your progress so far and the quality of the write-up.

If you do a good job on writing your paper, you can reuse this material as a chapter of your final thesis. For example, the paper could be the introduction of your final thesis or the related work section of your final thesis.

Thesis Final Report

See the important dates page for the deadline. This report is expected to be approximately 40-50 pages long, but the length is not the most important factor -- the quality of the research and the quality of the writing are most important. Having said that, substantially shorter papers may not have sufficient content. If your paper is substantially longer, you may need to work on presenting your ideas more concisely. Talk to your advisor about exactly what they are looking for in your report. The best reports are prepared with enough time for the adviser to read over a draft and give comments for revision.

The report should look like a professional document -- 12pt Times-Roman font, 1-inch margins, double-spaced. Here is a template for some formatting guidelines, and here is a set of template files to produce such a document using LaTeX and BibTex. The report should contain a proper bibliography, and all non-original text should be properly attributed. Failing to cite appropriate sources for ideas, tables, text or diagrams is a serious violation of Princeton's code of ethics. If you are unsure about how to cite ideas or research papers properly and create a bibliography, speak with your advisor -- they can tell you exactly how to do it. Your report will be graded on the basis of its technical content, organization, novelty of ideas, and quality of writing.

Relevant charts, tables, diagrams, etc., should be included, with accompanying captions. Be sure to refer to each such chart in the main body of the text, clearly explaining its nature and purpose. The technique of "padding" papers using multiple, overly-large figures is well-known, and should be avoided. If you have lengthy code or auxiliary examples or detailed algorithms or long proofs or supplementary data of other kinds, it may not be appropriate to include this in its entirety in the main body of your report. However, you are encouraged to include such auxiliary data (if you feel it is appropriate) in a final portion of your report clearly labeled "Appendix." The Appendix may be as long as is necessary.

By the the final report deadline (see important dates page) you must do the following:

Talk to your advisor about how to write your final report. For additional ideas, here are some slides on how to write a good research paper. Here is a recently research paper to give you a bit of a sense of what a research paper can look like (keep in mind that several people worked for over a year on the underlying project, so the paper will be more information-dense than the typical final report. The formatting is also different than the department requirements.)

Thesis Final Presentation

Final presentations for thesis writers will be given during the last week of class in the spring semester. We will be in touch to coordinate the timing.

Each thesis presentation will be 9 minutes long with 3 minutes for questions. If your talk is too long you will be cut off in the middle -- manage your time carefully! You must email your slides to me prior to the talk. The subject line and address can be found on the important dates page.

Please make your presentation in either PowerPoint or PDF formats. Part of (not the entire presentation) may involve giving a demo of some software you have created.

Like the proposal presentation, the final presentation should be well practiced and well presented. You should prepare slides well in advance and go over them with your advisor so they may give you important feedback before your final presentation. Practice presenting your slides to yourself and to friends. For additional ideas on how to give a good presentation, please see the section on "Giving a Good Research Talk"

Even though you have already given a proposal presentation, you should not assume that anyone in your audience knows anything about your topic. You should simply assume that your audience is filled with smart computer scientists. Your audience will have a broad knowledge of computer science but not necessarily know anything specific about your individual research topic or research area. Do not assume they know jargon or mathematics particular to your specific area. Do not assume they are familiar with various software packages or libraries you might be using.

Consider structuring your final talk using the following parts:

BSE Thesis Option

It is possible to do a senior thesis if you are a BSE. Like AB senior theses, a BSE senior thesis will take 2 semesters and the final report is expected to be about twice as long as an ordinary single-semester Independent Work project. If you would like to do such a thesis you must follow the following steps:

Note that your fall transcript you will receive a "INC" for COS 497 and will be changed to your thesis grade when COS 498 is completed in the spring.

If you change your mind about wanting or not wanting to do a thesis during the fall semester, keep the following in mind:


Important Information for Single-Semester Independent Work

Single-semester IW Final Report

See the important dates page for the deadline. This report is expected to be from 20-25 pages, but the length is not the most important factor -- the quality of the research and the quality of the writing are most important. Having said that, substantially shorter papers may not have sufficient content. If your paper is substantially longer, you may need to work on presenting your ideas more concisely. Talk to your advisor about exactly what they are looking for in your report. The best reports are prepared with enough time for the adviser to read over a draft and give comments for revision.

The report should look like a professional document -- 12pt Times-Roman font, 1-inch margins, double-spaced. Here is a template for some formatting guidelines, and here is a set of template files to produce such a document using LaTeX and BibTex. It should contain a proper bibliography, and all non-original text should be properly attributed. Failing to cite appropriate sources for ideas, tables, text or diagrams is a serious violation of Princeton's code of ethics. If you are unsure about how to cite ideas or research papers properly and create a bibliography, speak with your advisor -- they can tell you exactly how to do it. Your report will be graded on the basis of its technical content, organization, creativity of ideas, and quality of writing.

Relevant charts, tables, diagrams, etc., should be included, with accompanying captions. Be sure to refer to each such chart in the main body of the text, clearly explaining its nature and purpose. The technique of "padding" papers using multiple, overly-large figures is well-known, and should be avoided. If you have lengthy code or auxiliary examples or detailed algorithms or long proofs or supplementary data of other kinds, it may not be appropriate to include this in its entirety in the main body of your report. However, you are encouraged to include such auxiliary data (if you feel it is appropriate) in a final portion of your report clearly labeled "Appendix." The Appendix may be as long as is necessary -- it may extend beyond 25 pages.

To submit your final report you must do the following by the deadline (see important dates page):

Talk to your advisor about how to write your final report. For additional ideas, here are some slides on how to write a good research paper. Here is a recent research paper to give you a bit of a sense of what a research paper can look like (keep in mind that several people worked for over a year on the underlying project, so the paper will be more information-dense than the typical final report. The formatting is also different than the department requirements.)


Original text by David Walker. Modifications by Vivek Pai, Margaret Martonosi.