Different faculty have different requirements and administrative procedures. This page documents the procedures used by Ian Horswill and the Autonomous Mobile Robot Group (AMRG).
That depends on who your client is for the project. Most independent studies have some real user who wants to use the program. In order to qualify for the CS major's project requirement, there must be such a user (see below). However, here are the standard places where people get ideas for proejcts:
AMRG
A list of projects that AMRG is interested in having done can be found on the AMRG project solicitation page. Some of these involve things we'd like to see done for us, others are things we'd like to see done for the department at large. |
|
You
We often prefer robot projects that you think of yourself. However, you need to convince us that it is: useful, interesting, non-trivial, and practical. |
|
Another CS faculty member In this case, you have them supervise the independent study directly. |
|
A faculty member from another department This is fine as long as it's a programming project. If it's not, then you should have them supervise it themselves and give you credit in their own department. |
|
An outside employer In some cases, you can get credit for programming work do for an outside employer. However, it must be practical to do it as part of a one quarter project and your employer needs to agree to allow the faculty access to enough information to evaluate the project and track your progress. |
|
A group that you're involved with For example, you may want to write a program for scheduling the pool table at your dorm or solve fluid dynamics equations for the model rocketry club you organized. |
That's negotiable. Independent studies can be just that - independent. However, you do need to send me progress reports (see below) and you should always feel free to ask for help if you get stuck.
Here are the typical deliverables for an independent study. Again, different faculty handle it differently, but here's how I'm running things at the moment:
By when | What | Details | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Start of classes | Project contract |
For projects intended to satisfy the project requirement, you should have your user sign off on the specification portion of the contract. The contract should include:
|
||||||||
End of each week | Status report |
Specify:
|
||||||||
Monday of finals week | Demo presentation |
To be given to the members of AMRG and any other students and
faculty who wish to attend. You should prepare:
|
||||||||
End of finals | Writeup |
You should prepare and submit the following documentation in electronic form:
|
Notes:
I know the Gantt chart sounds like a lot of busywork, but our intention is to protect you from biting off more than you can chew. It's very difficult to know how much work a big project is going to be, or even whether you've gotten behind on it, unless you break it up into pieces small enough that you can accurately estimate how long the individual pieces will take. | |
Similarly, the presentation, poster, demo, etc., probably sound stupid too. But they're actually very important in the business world (and in grad school). Besides, think how cool you'll look in an interview when you pop out your professionally crafted PowerPoint presentation with built-in MPEG videos. |
In this case, the grad student is responsible for the real supervision of the project. However, you should send copies of all your deliverables, including weekly progress reports, to both the grad student and to Ian.
Do the best job you can. In some cases Ian or the grad student supervising you may need to write the contract for you.
For the most part, independent study projects are graded based on effort. In general, if you do what you promised to do and you do a good job on the presentation and supporting materials, you will get an A. If you show steady progress, are putting in a good faith effort, and do a good job in the presentation and supporting materials, you will still probably get an A. If you are lame in some way, you will get a B. If you're really lame, for example if put it all off until the last minute and then do the minimum job possible, you will get a C or D. If you blow it off entirely, you will fail.
If you do not complete the job because it turns out to be more work than expected, then you can negotiate for an incomplete. Incompletes will not be given out unless you have been showing due dillegence in reporting your status. In particular, if you blow it all off until the end and run out of time you will not get an incomplete.
If there are unforseen circumstances that are beyond your control, we will not hold you responsible for them. For example, if you can't get the system to work because of a driver problem in windows, that's not your fault. We will expect you to document that you've done everything reasonable to try to work around the problem but if in the end the project can't be made to work, it's not your fault. However, we will hold you responsible for having contingency plans in place when reasonable. For example, if you plan to use a particular commercial package that wasn't release as of the time you signed up for the project, you had better have a plan for what to do if the company is late on shipping the product. If not, you should discuss this issue with Ian before hand so that you can agree on an alternate project in case the program can't be used.
The project requirement says that you should do two quarters worth of "resume quality" project work before you graduate. The general guidelines for independent study projects in order to satisfy the requirement are that:
It must be a programming project It can't just be a bunch of web pages (unless of course they're applets or other web-embedded programs). This isn't to say that web pages are bad, just that they don't demonstrate to a potential employer or grad school that you understand computer science. |
|||
It must have a real user This is someone who is committed to using the program and who you have to please, so be careful to choose a project you actually think you can do. For example, the user could be:
|
While this allows for a wide range of activities, it does rule out the "well, I thought I'd write a new version of wumpus and then put it up for people to download from the web." There has to be someone who has already expressed interest in using it and who will provide feedback on it. You will be responsible making them happy.
Although our policy has varied over the years, we are currently giving credit for DC (it has varied). However, in order for it to count toward the project requirement, there must be a significant programming component to the project. You will have to get the code to work and you will have to turn it in. So think very carefully before planning to use DC for your project requirement. Most teams spend most of the year getting their hardware to run. Some teams don't even start writing software until the night before the competition. However, even if you don't apply it toward the project requirement, you can register for independent study credit and count it as a technical elective.
Keep in mind also that DC has a way of eating your life and lowering your grade-point average. Don't try to do it at the same time that you're taking a heavy load, or trying to do another 399. You would not be the first person to flunk classes while taking DC.