Dossier

[[file:Teacher Program_Dossier Marksheet.xls]]
Note documentation starting at page 141.
 * Dossier - The Internal Assessment**
 * Object of the Dossier**: Find a task or work procedure in the real world that can be made easier with a program. Your task or work procedure should have a user that you will interview to help determine what the requirements of the program is. Once you have determined the task or work procedure you will go through the software development process. You will document this process in the Dossier. All IB HL Computer Science students are required to complete a program dossier. This is an in-depth project containing a single problem that enables the student to demonstrate mastery of the required aspects of identifying a problem and a programmable solution.
 * Official IB Dossier Requirements Document and Examples:

My Dossier Grading Rubric Abridged: Grading Rubric in Excel with Mastery Skills Listed: SOFTWARE DEVELOPMENT PROCESS OVERVIEW 1. Analysis **- investigating and analyzing the problem, creating a prototype and discussing it with the user. The analysis determines the user's requirements for the software and sets the stage for design and development. At a high-level it consists of:** Tasks, Rules and Results** You analysis must contain the following: System Design: State the features (error handling and responses) and interfaces (screens - terminal windows or GUIs?) Program Design: Show your algorithms and logic using pseudo-code and flowchart. Define your Data Structures, Classes and Methods,
 * Provide the background: state the user, the job they perform and the problem to be solved.
 * State how you will solve the problem with your program.
 * List all the fields in your data structure (all the fields that you need to store in a record) for your program to do its job.
 * Define the field's data types (Will a month be May or 05?),
 * List example data under each field; display a mock record.
 * Provide a diagram of how the menus will flow for each menu selection. Main Menu-->.....list the result of each choice.
 * List the rules of your software.
 * Show your analysis to your user and include user feedback on the last page. Make the appropriate adjustments to your analysis.
 * 2. Design** -
 * 3. Programming** - writing the program (code). Sample of a program that writes, search and deletes records to a flat file:[[file:ReadWriteFile5.java]]
 * 4. Documentation** - Testing Documentation and User Documentation. Include testing procedures (what data will you test your program with and what is the output). Enter expected, valid data and unexpected, invalid data. Include user instructions and a final evaluation of the success of the solution (your software program). Have the user use and test it.
 * Flowcharting: Use a free online flowcharting tool! []** Or a tool of choice**.**
 * Example Flowchart:**


 * Dossier Overview and How to Start:**





Open and go to page 73 - end Visit: [|Student Examples] Go to the bottom of the pages and look for: Jopp Dossier, House Dossier and Recipe Dossier
 * Student Examples:**

To achieve a mastery factor of 1.0, you must have mastered at least 10 of the following 19 aspects:
 * Higher Level Mastery Skills that must be demonstrated:**
 * 1) Adding data to an instance of the RandomAccessFile class by direct manipulation of the file pointer using the seek method.
 * 2) Deleting data from an instance of the RandomAccessFile class by direct manipulation of the file pointer using the seek method. (Data primitives or objects may be shuffled or marked as deleted by use of a flag field, therefore files may be ordered or unordered).
 * 3) Searching for specified data in a file.
 * 4) Recursion.
 * 5) Merging two or more sorted data structures
 * 6) Polymorphism.
 * 7) Inheritance.
 * 8) Encapsulation
 * 9) Parsing a text file or other data stream
 * 10) Implementing a hierarchical composite data structure. A composite data structure in this definition is a class implementing a record style data structure. A hierarchical composite data structure is one that contains more than one element and at least one of the elements is a composite data structure. Examples are, an array or linked list of records, a record that has one field that is another record, or an array.
 * 11) The use of any **five** standard level mastery factors (this can be applied only once
 * 12) Up to four aspects can be awarded for the implementation of abstract data types (ADT's).
 * 13) ADT 2
 * 14) ADT3
 * 15) ADT4
 * 16) Use of additional libraries (such as utilities and graphical libraries not included in syllabus appendix 2 Java Examination Tool Subsets).
 * 17) Inserting data into an ordered sequential file without reading the entire file into RAM.
 * 18) Deleting data from a sequential file without reading the entire file into RAM.
 * 19) Arrays of two or more dimensions.


 * Grade Descriptors**