Projects
Coding Guidelines
You must be familiar with the project coding
guidlines. Failure to follow the guidelines will result in lost credit
on the projects, even if your program works correctly.
These guidelines may be modified as the semester progresses; review
them before each project. They were last changed on 11 Jan 1999.
Notes:
To reduce anxiety about the guidelines, the percentage has been lowered
from 15% to 5%. Under certain circumstances, some of the coding guidelines
are not appropriate. The guidelines on comments are always appropriate
and should never be ignored. Part of the project is to determine if a guideline
is important and then figure out how to implement the guideline.
If you are convinced that a guideline is not important and you are afraid
you'll lose credit for not including it, you should explain (in your comments)
why you ignored the guideline. This doesn't guarantee that you won't
lose credit, especially if the guideline is essential, but it may improve
your guideline grade if your argument is valid Following the guidelines
will make your code more readable and more extendable (which is an important
part of programming). To get a perfect grade you must seriously consider
the guidelines, but you can still earn an A grade if you fail to follow
the guidelines.
It is essential to thoroughly read the entire project description.
Ignorance is no excuse. All submissions should include a readme file
and a makefile. The TA's have the right to reduce your grade for not including
these essential items.
Project
4
Final
Submission Deadline : Thursday, April 27 at 11:59:59 pm
Grading Criteria
- 25% Adjacency matrix:
For efficiency, the initial city graph should be stored as an adjacency
matrix since it is dense. Your adjacency matrix class must conform to
the graph interface discussed in lab.
- 25% Adjacency list:
For efficiency, the minimum spanning tree should be stored as an adjacency
list since it is sparse. Your adjacency list class must conform to
the graph interface discussed in lab.
- 25% Prim's algorithm:
Your implementation of Prim's algorithm should make use of the public
member functions in the graph interface. It must produce a correct
minimum spanning tree from the input graph. (Note: There may be
more than one MST, but they will all have the same cost.)
- 10% Final tour:
Your algorithm for constructing the final tour from the MST using DFS
should make use of the public member functions in the graph interface.
It must produce a correct tour for the input graph, with a total cost
of not more than twice the cost of the MST.
- 10% Compilation:
Even if your program does not produce correct or realistic summary
information, you can still earn up to 10% for successful
compilation. You can not get credit for compilation unless you've made
a valid attempt to implement all the components .
- 5% Coding guidelines:
You must make a valid effort to follow the coding guidelines whenever
appropriate. Use your best judgement to determine which guidelines
should be followed. If you are in doubt, explain (in your comments)
your choice to follow or not to follow certain guidelines. You can not
get credit for the coding guidelines unless you've made a valid
attempt to implement all the components.
Project
3 [postscript]
Final
Submission Deadline (extended): Sunday, April 2 at 11:59:59 pm
Bug fix: You should
make the variable outfile in main.cpp static to avoid
a possible crash when your program exits.
Example
code given in Eric Breimer's lecture Feb.17
Note: Only valid submission recieved before Saturday, Mar.
5 at 1:00 AM were accepted for grading.
Example of file I/O code.
Note: Only valid submissions recieved before Saturday,
Feb. 5 at 1:00 AM were accepted for grading.
Here is the section and TA information.
-
Karan Gupta
E-Mail: guptak2@cs.rpi.edu
Section 1: Friday, 8:00 - 9:50 AM, Sage 3101
Section 7: Friday, 6:00 - 7:50 PM, Sage 3101
-
Ann Grace
E-Mail: gracea@cs.rpi.edu
Section 6: Friday, 12:00 - 1:50 PM, VCC North
Section 8: Friday, 10:00 - 11:50 AM, Pittsburg 4114
-
Shrikrishna Karand
E-Mail: karans@cs.rpi.edu
Section 2: Thursday, 8:00 - 9:50 PM, Sage 3101
Section 5: Thursday, 6:00 - 7:50 PM, Sage 3101
-
Sidhartha
E-Mail: sidha@rpi.edu
Section 3: Friday, 12:00 - 1:50 PM, Sage 3101
Section 4: Friday, 2:00 - 3:50 PM, Sage 3101