Project 2 Grading Guidelines
Due date: Friday, 11/7
In the discussion sections our TAs suggested a certain way of breaking up
the project into manageable chunks.
Here is a grading scheme we will use for the project that is based on this breakup.
Your program is expected to perform correctly at one of 3 levels and your program
will be graded out of the points corresponding to the highest level your program correctly
- Level 1: (Points: 25) buildDict works correctly.
Specifically, buildDict does all the things it did correctly in
Project 1 and additionally keeps track of word frequencies.
The fwList class is implemented correctly and buildDict
outputs the list of words into words.dat with the 500 most
frequent words appearing first followed by the remaining words in alphabetical
At this level spellCheck simply ignores the ordering of words provided
it simply sorts the words and then behaves exactly as it did in Project 1.
- Level 2: (Points: 60) In addition to Level 1 performance,
a limited version of the spellCheck program works correctly.
This version of spellCheck has all the functionality of the
spellCheck program from Project 1.
In addition it maintains a primary dictionary (using the hashTable
class) and a secondary dictionary (using the wordList class).
As far as the user is concerned, spellCheck produces exactly
the same functionality as it did in Project 1, but it is hopefully faster.
- Level 3: (Points: 100) At this level all the functionality
required in the Project 2 handout is provided by your programs.
The main difference between Level 2 and Level 3 performance is that
spellCheck now suggests replacement words, by doing a
breadth-first-search for valid words that are "close to" a misspelled word.
For example, if you submit a correctly working buildDict and spellCheck at Level 2, then
your program will be graded out of 60 points.
It is not guaranteed that you will
get 60 points because we will consider other factor such as efficiency,
and design of classes, documentation, etc.
Along with your program files you are required to submit a file called README
that contains two pieces of information: (i) the highest level your program works at
correctly and (ii) a list of bugs in your program known to you.
Make sure that the names you give to your program files are exactly as specified in the
We will automate the process of grading and your project will not be graded if the names are
different from what we expect.
Programs that do not compile will not any points.