Projects

There will be 5 major programming projects total. You must complete these projects individually. The projects are as follows:

You may not begin a new project until you have completed the previous project. See the following sections for details on grading and submission.

Project Grade

Your project grade will depend on the number of projects you complete. Specifically, your project grade will be assigned as follows:

 LetterPercent
Completed Project
      A100%
  Project 5: Search Engine
      B
190%  Project 4: Web Crawler
      C
180%  Project 3: Multithreading
      D
170%  Project 2: Partial Search
      F
160%  Project 1: Inverted Index

If a student excels at one or more projects, going above and beyond the stated requirements, up to a maximum of 5% may be added to the project grade.

We will run MOSS on all projects including projects submitted in previous years. If your code matches that of another student, you final project grade will be deducted 20%. You will not have an opportunity to make up this deduction.

Grading Criteria

One major goal of this class is to teach students how to create professional code. As such, very strict guidelines will be used to determine whether a project is "complete" or not. Specifically, a project is considered complete when:

  • Your code meets all of the stated functionality requirements.
  • Your code passes all of the provided functionality tests.
  • Your code handles input and output as specified by the requirements.
  • Your code is properly formatted and commented.
  • Your code includes proper exception and error handling.
  • Your code uses appropriate object-oriented design, including the use of classes and inheritance.
  • Your code is not unnecessarily inefficient.

See the Code Guidelines page for details on these requirements. You should not submit your project until it meets the above requirements 100%. If your project does not meet the above requirements 100%, you will be asked to resubmit. You may not move on to the next project until you are able to achieve a 100% on the current project.

Project Submission

Completed projects may be submitted every Friday before 3:00pm. To submit a project, you must commit your code to the SVN directory listed on the project documentation and submit the Project Submission form. You may only submit one project at a time. You can not submit another project until you have received your grade results. Project grades will be returned within two weeks of submission. 

To receive an "A" project grade, you should strive to meet the following suggested deadlines:

 Project Assigned Suggested Deadline
 Cutoff*
 Project 1: Inverted Index
 Week 02 02/17 @ 11:59pm
03/23
 Project 2: Partial Search
 Week 04 03/30 @ 11:59pm
04/13
 Project 3: Multithreading
 Week 07 04/13 @ 11:59pm
05/04
 Project 4: Web Crawler
 Week 11 04/27 @ 11:59pm
05/11
 Project 5: Search Engine Week 14 05/11 @ 11:59pm
05/11

*The cutoff date listed is the last day to submit (or resubmit) the project and still be able to pass the course.

You may submit a project after the suggested deadline. However, it may no longer be possible to receive a "A" project grade. If you submit a project past the above cutoff dates, you may no longer be able to receive a "C" project grade (and hence may not pass the course).

The last day to submit projects is Friday, May 11 at 3:00pm, including the final project. Always be certain you have allocated enough time to complete all of the projects. This includes factoring in two weeks for the grading process, and possible resubmissions.

Project Resubmission

If you do not receive a perfect project grade, you will be asked to resubmit your project. You may resubmit a project no more than three times. Exceeding this limit will result in a 0% overall project grade. 

Before resubmitting a project, make sure it passes all of the supplied tests, and have the teacher assistant look over your code for code quality. This will improve your chances the next time you resubmit your project. You can use the same Project Submission form for resubmissions.

Final Project

The final project will be graded interactively during finals week, and is due at the time of your interactive grading session. Signup sheets will be posted beforehand.  Grading sessions will last 30 minutes, and must be held before commencement on Thursday, May 17, 2012.

The final project is the only project where it is possible to receive a partial grade. It is also one of the few projects that has significant amounts of extra credit. As such, you do not need to have a "complete" final project at the time of your grading session. More details will be provided towards the end of the semester.