|
The programming assignment for chapters 13, 14, 15,
and 16 will be a GUI and graphical program which answers a research question and
uses the elements we've studied in cool but useful program. It will be judged
partly on appearance, creativity, and overall "coolness". See grading
rubrics at right for further grading specifications.
The project must be a simulation that answers a research question
and draws a time plot of an important variable. The best projects are ones that
could be expanded into a science fair project.
- Milestone 1. Due on or before March 25th
- Research
Question Proposal: Must contain a paragraph discussing a research question and hypothesis suitable for a
science fair project or a statement of purpose. Must contain a second paragraph discussing required
input, possible algorithms, and graphical output in at least in general terms. Keep this simple but
complete. A person reading your proposal should be convinced that you are
capable of programming it. Remember the
program should have both a scientific and artistic side. (1 typed page max)
Choose your project
wisely. If you take Computer Science II you can use your program as a
starting point.
-
- Milestone 2. On or before May 4th earns
a 10 pt bonus, May 5th to 10th earns no bonus, May 11th to 17th earns a 10 pt
penalty, May 18th earns a 20 point penalty.
- Program Design: This will include the
following (2 to 10 pages):
- Block drawing from BlueJ showing the
relationship of the classes.
- Printouts from BlueJ outlining each class with
descriptors at the top (title, purpose, author, date), important fields, and major methods with
their descriptors (purpose, preconditions, post conditions). This is a design.
Do NOT include code.
- Drawing of the GUI interface. Note: the
operation and purpose of the program should be reasonably evident just by
looking at the GUI.
- Milestone 3. Due on or before April 6th
- Working Program: This should include
the following elements:
- GUI interface - chap. 15
- Can call a simple help file - chap. 13
- 3 classes minimum
- draw a graph or graphical output - chap. 14
- 300 lines of code minimum
- user documentation - Javadoc (This is simple
to do in BlueJ)
|
Tips
for Managing a Large Software Project |
Creating a large software project is like
ridding a horse: As long as you stay on top and the horse is going in the
right direction, you're ok. But, if you lose control you're likely to find
yourself spending a lot of time (and maybe pain) just getting back to where
you started. The following tips are offered to help keep you in the saddle.
- Do a quality job on Mile Stone 2. A
good starting design will make a big difference in controlling your
Project. Having a logical design will make it much easier to find bad
lines of code.
- Compile often. It's easy to find
compiling errors if they are few in number and are confined to a few lines
of code.
- Do not delete. If a line of code is
not working comment it out. Do not delete it until you have your code
working. This will prevent you from going in circles. When finished be
sure to delete commented out code. It's bad form to leave sections of
commented out code in your final program.
- Set up your GUI first. A GUI is
easy to trouble shoot and will move you in the right direction of
achieving output.
- Achieve Output ASAP. You cannot
spot run time errors until your program is actually running. Run time
errors are problems such as over running an array and will result in error
messages. You also cannot evaluate your program's logic and troubleshoot
logic errors until you have output. You will frequently need to add
temporary output for troubleshooting purposes.
- Take baby steps. Troubleshooting
difficulty increases exponentially with the number of errors. You need to
eliminate compiling, run time, and logic errors as you write the program.
Do not wait to the end before starting the debugging process.
- Do not let others write your code.
It's ok to seek help but if you let others—who may or may not understand
your design—actually alter your code you are almost guarantied to lose
control of your project, especially if you code is not already working.
- Comment as you code. Adding
comments as you code facilitates the troubleshooting process. It helps you
find parts of your code which are not working.
|
Your project folder is
to be placed inside a folder with your name on it. This folder will be
placed in the “Turn in Folder for Comp Sci Project” on the R or G-drive. The
project must already be compiled or a deduction will be made.
Note: Criterion and Mastery factors are
subject to change.
Criterion
- Research Question
or Purpose Answered ( 15 pts ): Does the project answer the
research question and do major
algorithms work in a meaningful manner?
Answering the research question or purpose is more important than having an
impressive GUI.
- Abstract ( 5 pts ): Does the applet
or main class
have a short paragraph in comments at the beginning that explains what
it does?
- User Friendliness (
5 pts ):
Is the purpose and operation of the program reasonably evident just by
looking at the GUI? Can a new user
understand and use the project by muddling?
- Efficiency of Code
( 15 pts ):
The program must use loops and methods rather than needlessly repeating
lines of code.
- Style ( 5 pts ): Does the program
follow conventional style and indenting forms?
- Comments ( 5 pts ): Are the
comments and Javadoc’s
adequate? For example:
each class and method should have a purpose. Each fields or variable
should have either an obvious name or comment. Each method should have a
purpose, preconditions, and post conditions. Algorithms and significant
code segments inside methods Overdoing comments will result in a
deduction.
- Help file( 10 pts
): Has a pull down menu in the GUI which can display a help feature.
- Programming
elements ( 35 pts ): The code must contain the following elements:
- methods
- loops - both simple and nested
- fields
- parameter passing
- arrays
- instances
- if-else statements
- Robustness ( 5 pts ): Is it easy to crash the
program?
Total Possible =
100
Mastery Factors
- GUI and Graphics (
0-1 ): Must have a GUI interface containing controls like buttons
and pull down menus and must have some form of graphics.
- Functionality ( 0-1
): Will the project
compile and do all the features of the GUI work?
Programs that won't compile receive a zero.
- Credits ( 0-1 ): Is all
borrowed code from open source programs clearly marked as such?
Plagiarism will result in a grade of zero.
- Number of Classes (
0-1.01 ): Are there at least
3
classes? Programs with less than 3 classes
receive a zero.
- Size ( 0-1.01 ): Are there at least
300
line of code written by the student? Repeated lines of code will not be
counted as part of the 300 line if a loop or method could do the job
more efficiently. Spaces, borrowed code, and comments do not count.
- Student
Understanding ( 0-1 ): Can the student
explain the code?
- Coolness ( .9-1.03
): Is the program cool in
some way or hum drum? Does it in some way exceed expectations?
Highest Possible =
1.05 ( Note a grade this high
would be extremely rare)
The final grade is calculated by multiplying
all the Mastery Factors (MF) times the sum of all the Criterion (C).
Grade = (MF1*MF2*...*MF8)*(C1+C2+...+C9)
The maximum grade is 105%
|