Lab 10: Final Project
CS 141: Introduction to Programming ,
Fall 2015
See Deadlines and Final Deliverables below.
This lab is worth 50 pts, i.e 2.5 times a normal lab
Instructions
For this lab, you may implement an application of your choice. The primary requirements
are that:
- You collaborate with one other person.
- Your program uses a Graphical User Interface (GUI)
- Your program reads and/or writes to files.
- Your program makes use of arrays or ArrayLists or some non-trivial data structure.
Examples include:
- A game (e.g. card game, board game, etc). It is suggested that you avoid games involving animation as they generally require something called Threads, which we have not covered in class.
- Image creation, e.g, fractal generator, convolution filter.
- A database. This will require reading in data from a file and writing out an updated file.
For some general directions at how to proceed, you can look at DBAssign.pdf. While this pertains to creating a database, much of it will also apply to
any project you do.
Coordination with your Partner
Attendance: You are both expected to attend all labs and lectures so that you can
collaborate.
Maintain Good Communication: After you pick a partner, be sure to exchange methods of communication (email, phone, etc). You may not need to get together outside of class or lab, but you need a way of communicating in case there are
problems or questions. The most common reason for frustration and failure to get the assignment done is due to poor communication. If you must miss a class or lab,
be sure to 1) inform your partner ahead of time and 2) provide your partner with
any files or information they need in order to work on the project by themselves.
Backup and Version Control of Software: Normally, when doing a large project, programmers use version control software as a way to share and maintain versions of the software. We will not require such software in this lab because learning to use such software can take time and because you are not creating a very complex application. That said, keeping code organized and up-to-date is a challenge. Be sure to discuss with your partner how you plan on doing this.
We make the following suggestions and comments:
- Create a single Netbeans project for your entire program. Call this the "current working version". It should be stored somewhere where each partner has access.
- Each partner will make a copy of the project where they can develop and test their code on their own. Be careful that you and your partner are never working on the same
version of the project
concurrently!
- After a partner completes and tests parts of the program, they can incorporate it back into the
"current working version", testing to make sure things still work.
- Backup copies of the "current working version" must be
made periodically so that if something goes wrong, you don't have to reimplement too much of the program. Keep the backups in a safe place.
Losing files is not a legitimate
excuse for not completing your project on time.
Deadlines
- Friday, Nov 20: By the end of lab, submit to the instructor a typed 1/2 - 1 page
description
of what your program will do. Also submit to WISE. Implementation details are not expected, however, you should
include as many specifics about the project as possible. For example, if it is a game,
include the rules of the game, what the board looks like (if there is one), how many players,
are you playing against the computer or not, etc. If you are doing a database, you should include a list of the kind of data you intend to include along with sample queries.
- Wednesday, Nov 25: By the end of lab, turn in a hard copy of your UML diagram showing the class structure of your code. Also submit ti WISE. Identify who intends to implement what.
- Wednesday, Dec 2: By the end of lab, show the instructor a preliminary running version of your
program. Not everything will be implemented but a large fraction of it should be done.
- Section 2:
- Demo your program no later than Monday, Dec 7, 5pm
- Presentations are on Tuesday, Dec 8, 8:30-11am.
- Submit final deliverables (see below) to WISE on presentation day,
Tuesday, Dec 8, 8:30-11am.
- Section 1:
- Demo your program no later than Friday, Dec 11, 5pm
- Presentations are on Saturday, Dec 12, 8:30-11am.
- Submit final deliverables (see below) to WISE on presentation day,
Saturday, Dec 12, 8:30-11am.
Grading
Grading will be based on
- the ability to meet deadlines.
- the ability to communicate and collaborate with your partner.
- meeting the primary requirements.
- the quality of the work (code structure/comments/formatting, UML, presentation).
- the completeness of the work (was everything turned in).
Final Deliverables
-
Demonstrate your program to the instructor before the day of the presentation to insure that it is complete and meets expectations.
-
Presentation: Plan to give a 5-10 minute presentation of your project on the day of the final exam slot. It should include:
- Introduction - your names and a brief description of what the project did.
- The UML diagram - explain what each class does and who did what.
- Run the program to demonstrate how it works.
-
Submit to WISE: No later than the day of the presentation, one of the partners should submit the following items
to Wise as attachments to Lab 10.
-
UML Diagram: The final version, which is clean and clearly drawn, of your UML diagram for your entire program.
Include authors on the diagram. If it was hand drawn, you can submit a photo or scan. Please
make sure the photo/scan is readable.
-
Project Description: The final revised version of your 1/2 - 1 page type written project description (e.g. in Word).
-
Code:
- Comments: Your Java code should be well commented, including at the top of each file, lab name, program name, date, brief description of what the class does. Since you are working with a partner, it is important
that you specify who wrote what. If one person wrote an entire class, their name should be
listed as author
at the top of the class. If the methods in a single class were done by different partners, then each method should specify an author. Some of the methods might be written collaboratively in which case the names of both partners should be listed. However, most classes or methods should be written predominately by a single person. It is not ok to just say that both people wrote everything together. The code implementation should be divided among both partners.
- Formatting: Your Java code should be well formatted, i.e. proper indentation and line returns.
- Netbeans Project: Zip together your entire Netbeans Project. The zip file
should include all files necessary
for running the program including data files and images.
Submit the zipped file
as an attachement. If WISE complains about the size of the program or anything else,
you can try deleting all .class and .jar files from your project before zipping.
>