CSC212 Final Project 2014
--D. Thiebaut (talk) 11:09, 28 November 2014 (EST)
|
This project is to be done individually. It is given under the rules of Smith's Honor Code. You have access to all your class notes, solution programs made available for various labs and/or homework assignments, to the textbook, and to the Web. The project is due on the last day of exam period, 19 Dec. 2014, at 4:00 p.m. No extensions will be granted. |
Assignment
- Implement a Model-View-Controller in Processing that visualizes a network of vertices.
- The model should use the graph implementation shown on this page.
- Inspire yourself from the video below when designing your MVC.
- Your MVC should provide 3 different features:
- It should be able to highlight all the vertices connected to the vertex under the mouse pointer.
- It should be able to display the shortest path from the last clicked vertex (marked with a red dot) to the vertex currently under the mouse pointer.
- It should implement a third functionality that you are free to choose, and will depend on how ambitious you are.
Features
Your MVC should have at least 3 buttons:
- one button will control whether the connected component of a vertex is shown or not.
- one button will control whether the shortest path from the last-clicked vertex to the one under the mouse should be shown or not
- one button will display a simple box on the applet that will contain:
- Your name
- The date you submitted your project
- A short description of your project (40 to 50 words, max)
- one or more button(s) (optional) that will control your selected feature (see Assignment section above)
Ideas
Here is a non-exhaustive list of possible "third feature" you may want to consider. The maximum number of points for the 3rd feature is 30 out of a total of 100 for the whole project.
- Your MVC displays the number of connected component (5 points)
- Your MVC can generate a brand new graph when the user clicks on a button (5 points)
- Your MVC colors each connected component with a different color (15 points)
- Your MVC allows the user to dynamically add/remove edges to/from the network. The connected components, shortest paths, and all other graph properties are automatically updated after each operation (30 points)
- Your MVC allows the user to dynamically change the probability of creating edges, and creates a brand new graph (with its associated properties) every time the probability is changed (30 points)
- Your MVC draws the tree created by DFS when starting on the vertex under the mouse pointer.
Submission
You need to create a runable jar containing your project, and submit it. Jar means Java-archive file. The steps are tricky, and may require several attempts to create the right kind of file. Make sure you give yourself enough time before the deadline to create the right type of file. Practice! I strongly recommend that you submit your project every time you have implemented a new major feature in your project. This way you avoid getting a 0 for not being able to submit your file at the last minute. Submitted files that are not jar files will automatically receive a 0 as a grade.
Steps:
- 1. add a new main() method to your viewer. We normally don't need one, as the PApplet has its own, but we need to fool eclipse in thinking it is exporting an application and not an applet. The string inside main should contain the name of your viewer class. In my case, the class is MVC1_viewer. Change this according to your own naming convention.
static public void main(String args[]) { PApplet.main( "MVC1_viewer" ); }
- 2. Click on the viewer edit window, to make sure it is selected. Find the Run As option, to run the program, and select Run as Java Application. Make sure your applet runs normally.
- 3. Stop your program
- 4. In the Package Explorer, select the project containing your java files. Right/Control click on it, and click Export. Select Java, Runnable JAR file, then Next.
- 5. In the Launch configuration, select your viewer class. Pick a destination folder, and name your file yourLastName_project.jar (replace "yourLastName" by your actual last name). Select Extract required libraries into generated JAR. Click Finish. Don't worry about generated warnings.
- 6. Open a DOS window or a Terminal, depending on your computer, and cd your way to the folder/directory containing the jar file you just created. Once you're there, type the following command at the prompt:
- java -jar yourLastName_project.jar
- Verify that your applet starts and works correctly.
You have now created a self-contained, running java applet inside a java archive file. This is the file you need to submit in the Final Project section in Moodle.
Option 2
- This option will be worth at most 70 points.
- If you cannot create a runnable jar that runs on your computer from the command line, then create a zip file containing
- all the java classes you are using for your project (including buttons and other graphic elements you may have created classes for)
- core.jar
- Connect to Moodle, and submit the .zip file instead of the .jar file.