Introduction
General Introduction
Remember that the main reason for doing all of this design in Criterion B is to think, re-think, and think some more about your program before you start to code. You don't want to have to make changes to code; you'd much rather make changes to design tables or diagrams, which is much, much easier. So use all of Criterion B to really mull over and anticipate how your program is going to work.
Input & Output Introduction
The basic model of how computers work is:
input -->> processing -->> output
So with both input and output, already start to think about examples of both correct, and incorrect input, along with examples of exactly the kind of output that should be produced
Think, in some critical detail, about all the information/data that will be entered into your program, either by the user, or by some sort of import or opening of data files. Think about exactly how this data should look, when input, including data type, range and/or expected values. And think about how the processed data should come back to the screen/user/file as output.
The Input and Output parts of Criterion B are often done as tables, though you could choose to do it otherwise. It should be from the standpoint of your client, but it's for you, the programmer, so from this point on you should be using CS terms for data types etc. - terms such as String, Double etc. If using a table, it would likely have three or four columns, including things such as Input, Data Type, and Example. Though you could organize it differently.
But, for example:
Input | Data Type | Normal Range etc. | Example |
---|---|---|---|
Student name | String | Not left blank; otherwise normal names of two or more characters. Full first and last names expected.* | Henry Smith |
School grade | Integer | 9 - 12 | 11 |
Courses | String array | 6 - 8 courses |
Math, English, etc. |
Grades per course | Integer | 1 - 7 | 6 |
* Note for Strings, you won't have a range necessarily, but there still may be things to think about at this stage of your design, so add important considerations here.
The same idea as input, only what the user will see, or what will be saved to arrays, files etc. after any of the buttons etc. are clicked/triggered.
Output | Data Type | Normal Range etc. | Example |
---|---|---|---|
Student average grade | Double | 1.0 - 7.0 | 5.6 |
Highest student average | Double | 1.0 - 7.0 | 6.123 |
Alphabetical list of students | Student array | All info per student displayed, in a JTable | Henry Smith | 11 | 5.4 |
Key points from past grading
Input/Output
Though this will be mainly tables and point form, there may be places where a sentence or two makes sense - for example, in the first table above, the Courses Normal Range etc. But be careful to limit any such narrative writing, because it will have to count in the word count, and this is not a good place to use up words.
In General
It is within Criterion B that the Record of Tasks is included during the grading process, so a key point here is to keep up with it. In the past, marks have had to be deducted for inadequate number of entries in the Record of Tasks. Adding to the Record of Tasks is difficult to do after the fact; you need to be regularly updating this document.