Documentation for a Visual Basic Mathematics Program

1,618 views

Published on

Documentation for a Mathematics Program written in Visual Basic for the AQA A2 Computing course.

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,618
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
81
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Documentation for a Visual Basic Mathematics Program

  1. 1. June 2012 RACHEL MCGREEVY MATHEMATICS TESTING PROGRAM
  2. 2. 2 Contents Analysis...................................................................................................................... 8 Background to and identification of problem...........................................................8 Analysis of current system......................................................................................9 Identification of the prospective user(s) ................................................................18 Identification of user needs and acceptable limitations.........................................19 initial user requirements........................................................................................22 Data dictionary (from perspective of end user)......................................................23 Data source(s) and destination(s).........................................................................25 Data flow diagrams (DFDs)...................................................................................26 Volumetrics........................................................................................................... 28 Realistic appraisal of the feasibility of potential solutions......................................28 Justification of chosen solution .............................................................................29 Obviously a bespoke solution is the best option for my program, as it can be made exactly to the needs of the user and their specifications, without unnecessary addons. Creating the program myself, means it will be an original piece of work and so will be unlike any other program that already exists. A self-created piece of software means that it can be updated and re-worked if the user feels that it does not fulfil all of the requirements or have found problems or other improvements that can be made to the system. Creating the program directly from the user’s specification means that the program will run in the most efficient way for them. I have decided to create a program using a Visual Basic front end, with file handling to store data. This is the simplest solution, and although the amount of information the program will need to store is large, it does not require any extra software installed. This solution also does not require any complex front end programming, due to the front end creation tool of Visual Basic. Using the Visual Basic front end creation tool will provide the most user-friendly and effective front end, and therefore is the most efficient solution as I am able to tailor it to the needs of the user....................................................................................................................... 29 Prototype ............................................................................................................. 30 Final user requirements........................................................................................40 Design...................................................................................................................... 42 Overall system design ..........................................................................................42 Description of modular structure of system ..........................................................42 Data dictionary......................................................................................................44 Description of record structure .............................................................................49 Validation required ...............................................................................................50 Identification of processes & suitable algorithms for data transformation..............54 User interface design (HCI) rationale ...................................................................58 Sample of planned data capture and entry designs .............................................60 Sample of planned valid output designs ...............................................................61 Description of measures planned for security and integrity of data.......................63 Description of measures planned for system security...........................................63 Overall test strategy .............................................................................................64 Implementation......................................................................................................... 65 Program listing & Screen shots of working program..............................................65 New Student User...................................................................................................101 New Teacher User..................................................................................................102 Admin Login Page..................................................................................................104 Admin Homepage...................................................................................................105 Edit Student User....................................................................................................109 Search Teacher User..............................................................................................111 Edit Teacher User...................................................................................................113 Global Variables.....................................................................................................115
  3. 3. 3 Public Functions.....................................................................................................115 Structures Module...................................................................................................118 Test Data............................................................................................................ 120 Test Plan............................................................................................................. 122 Hard copy evidence............................................................................................129 1.1 ........................................................................................................................ 129 1.5.......................................................................................................................... 129 2.1.......................................................................................................................... 130 4.1.......................................................................................................................... 130 5.1.......................................................................................................................... 131 5.2.......................................................................................................................... 131 6.5, 6.3 .................................................................................................................. 131 6.4.......................................................................................................................... 132 7.1.......................................................................................................................... 132 9............................................................................................................................. 132 17.1........................................................................................................................ 133 18 .......................................................................................................................... 133 19.5........................................................................................................................ 134 20.1........................................................................................................................ 134 22.4........................................................................................................................ 134 23........................................................................................................................... 136 25.1........................................................................................................................ 136 25.4........................................................................................................................ 136 25.5........................................................................................................................ 137 26.2........................................................................................................................ 137 27.1........................................................................................................................ 137 .............................................................................................................................. 137 28.4........................................................................................................................ 138 29.2........................................................................................................................ 138 30.3, 31.3................................................................................................................ 138 32.1........................................................................................................................ 139 32.2........................................................................................................................ 139 33.1........................................................................................................................ 139 34.3........................................................................................................................ 140 36.1........................................................................................................................ 140 37.3........................................................................................................................ 140 39.1........................................................................................................................ 141 42.3........................................................................................................................ 141 ............................................................................................................................. 141 Code Amendment...................................................................................................142 End If.............................................................................................................. 142 Revised Code;........................................................................................................142 Test 5.1 Original Code;.........................................................................................................142 Revised Code;........................................................................................................142 Revised Code;........................................................................................................143 End If.............................................................................................................. 143 Revised Code;........................................................................................................143 Test 23 Original Code;.........................................................................................................144 Revised Code;........................................................................................................144
  4. 4. 4 Test 42.3 Original Code;.........................................................................................................144 Revised Code;........................................................................................................144 End If ............................................................................................................................... 145 Retests................................................................................................................... 145 Student Login......................................................................................................... 145 1.5.......................................................................................................................... 145 Test Username & Password Textbox Validation.....................................................145 Correct username: “KTurn” Half of password: “gre”........................................................................................................................ 145 E............................................................................................................................. 145 Message Box with error statement appears, and Username and Password textboxes are cleared.............................................................................................................. 145 As Expected........................................................................................................... 145 Student Grade Breakdown......................................................................................145 5.1.......................................................................................................................... 145 Test Student Score Graph......................................................................................145 No quizzes created by teacher user yet..................................................................145 B............................................................................................................................. 145 Error message box appears and Student Grade Breakdown is not loaded up........145 As Expected........................................................................................................... 145 5.2.......................................................................................................................... 145 Test Student Score Graph......................................................................................145 No quizzes taken by student yet.............................................................................145 B............................................................................................................................. 145 Error message box appears and Student Grade Breakdown is not loaded up........145 As Expected........................................................................................................... 145 Teacher Login.........................................................................................................145 19.5........................................................................................................................ 145 Test Username & Password Textbox Validation.....................................................145 Correct username: “SMWhite” Half of password: “bubble”.................................................................................................................. 145 E............................................................................................................................. 145 Message Box with error statement appears, and Username and Password textboxes are cleared.............................................................................................................. 145 As Expected........................................................................................................... 145 23........................................................................................................................... 145 New Teacher User..................................................................................................145 42.3........................................................................................................................ 145 Test Classes Taught combo boxes.........................................................................145 Hard Copy Evidence...............................................................................................146 System Maintenance..............................................................................................148 System overview ................................................................................................148 See ‘Overall System Design’ in the Design section.............................................148 Detailed algorithms.............................................................................................148 Annotated listings................................................................................................148 Variable Lists ............................................................................................................................ 148 Procedure/function and variable lists..................................................................148 Name...................................................................................................................... 148
  5. 5. 5 Public Sub FindStudentUser...................................................................................148 Location.................................................................................................................. 148 Page 103................................................................................................................ 148 Input Parameters....................................................................................................148 Byval Username As String......................................................................................148 Output Parameters.................................................................................................148 -.............................................................................................................................. 148 Local Variables.......................................................................................................148 Student as StudentRecord......................................................................................148 Description.............................................................................................................. 148 Finds the student user from the student file by matching the username the user entered whilst logging in, to the saved usernames in each of the individual student records in the student file. Once the username has found a match, the global variable RecordLocation will then be changed to equal the location number of this student record..................................................................................................................... 148 Name...................................................................................................................... 148 Public Sub FindTeacherUser..................................................................................148 Location.................................................................................................................. 148 Page 103................................................................................................................ 148 Input Parameters....................................................................................................148 Byval Username As String......................................................................................148 Output Parameters.................................................................................................148 -.............................................................................................................................. 148 Local Variables.......................................................................................................148 Teacher as TeacherRecord....................................................................................148 Description.............................................................................................................. 149 Finds the teacher user from the teacher file by matching the username the user entered whilst logging in, to the saved usernames in each of the individual teacher records in the teacher file. Once the username has found a match, the global variable RecordLocation will then be changed to equal the location number of this teacher record..................................................................................................................... 149 Name...................................................................................................................... 149 Public Sub ListClassesInComboBox.......................................................................149 Location.................................................................................................................. 149 Page 104................................................................................................................ 149 Input Parameters....................................................................................................149 Byval ComboBox as object.....................................................................................149 Output Parameters.................................................................................................149 -.............................................................................................................................. 149 Local Variables.......................................................................................................149 ClassR as ClassRecord..........................................................................................149 Description.............................................................................................................. 149 This procedure will read the saved classes from the class file, and will list each of the class names into the combo box that has been passed into the procedure............149 Name...................................................................................................................... 149 Public Function ValidateTextBox............................................................................149 Location.................................................................................................................. 149 Page 104................................................................................................................ 149 Input Parameters....................................................................................................149 ByVal Text As String, ByVal SaveLength As Integer, ByVal MsgText As String, ByVal RegexPattern As String, ByRef ValidInput As Boolean...........................................149 Output Parameters.................................................................................................149 ByRef ValidInput As Boolean..................................................................................149 Local Variables.......................................................................................................149 MyRegex As New System.Text.RegularExpressions.Regex(RegexPattern)..........149 Description.............................................................................................................. 149
  6. 6. 6 This function checks that the text entered into a textbox is of the right format using a RegEx pattern that is passed into the function, and checks the text is less than or equal to the save length limit. The global variable ValidInput is then returned false if the text is not valid, and will then display an error message if so............................149 Name...................................................................................................................... 149 Public Function ValidateComboBox........................................................................149 Location.................................................................................................................. 150 Page 104................................................................................................................ 150 Input Parameters....................................................................................................150 Byval Text As String, ByVal MsgText As String, ByRef ValidInput As Boolean.......150 Output Parameters.................................................................................................150 ByRef ValidInput As Boolean..................................................................................150 Local Variables.......................................................................................................150 -.............................................................................................................................. 150 Description.............................................................................................................. 150 This function checks that the user has not left the combo box that is being checked has not been left empty, and that one of the choices has been selected. The global variable ValidInput is then returned false if the and option has not been chosen, and will then display an error message if so..................................................................150 Name...................................................................................................................... 150 Public Sub ShowDataInTable.................................................................................150 Location.................................................................................................................. 150 Page 104 ............................................................................................................... 150 Input Parameters....................................................................................................150 ByVal QuizList As Object, ByVal NoQuizzesLbl As Object.....................................150 Output Parameters.................................................................................................150 -.............................................................................................................................. 150 Local Variables.......................................................................................................150 StudentQuiz As StudentQuizRecord, Quiz As QuizRecord, y, NewQuizId, Exists, QuizInformation(4), QuizItem As ListViewItem........................................................150 Description.............................................................................................................. 150 This procedure is used to fill the quiz information table on the student homepage as well as on the student grade breakdown form. Columns are created in the list box that is passed in and fills them with the students results for each quiz that has been created in the system, from reading the student quiz file, matching the quiz ID and the student ID fields................................................................................................150 Name...................................................................................................................... 157 Public Sub DrawScoreGraph..................................................................................157 Location.................................................................................................................. 157 Page 105................................................................................................................ 157 Input Parameters....................................................................................................157 Byval Scores() As String, Byval k As Integer, Byval GraphPanel As Object ..........157 Output Parameters.................................................................................................157 Local Variables.......................................................................................................157 Description.............................................................................................................. 157 This procedure uses the results saved that are passed in using the Scores array to map co-ordinates between each quiz. A line is then drawn using the graphics tools, which is done for each quiz that have been created in the system. This then creates a full graph that is then displayed to the user..........................................................157 Name...................................................................................................................... 157 Public Function ValidateAlterPasswordInputs.........................................................157 Location.................................................................................................................. 157 Page 106................................................................................................................ 157 Input Parameters....................................................................................................157 ByVal OldPassword As String, ByVal NewPassword As String, ByVal ReEnteredNewPassword As String........................................................................157
  7. 7. 7 Output Parameters.................................................................................................157 Local Variables.......................................................................................................157 Description.............................................................................................................. 157 This function checks to make sure that the passwords entered on both of the Alter Student & Alter Teacher Password forms are valid before the new password is saved and overwrites the old password. It passes the passwords into the ValidateTextBox function, and if all of the inputs are valid, the function is returned as a Boolean value of true...........................................................................................157 Name...................................................................................................................... 158 Private Sub Quicksort.............................................................................................158 Location.................................................................................................................. 158 78........................................................................................................................... 158 Input Parameters....................................................................................................158 ByRef StudentNames() As String, ByVal First As Integer, ByVal Last As Integer...158 Output Parameters.................................................................................................158 Local Variables.......................................................................................................158 LeftPointer, RightPointer As Integer, Temp As String.............................................158 Description.............................................................................................................. 158 This sub Sorts the names in the student names array into alphabetical order by first name, using left and right pointers and a pivot to compare and swap name in the array, and once finished then calls itself recursively to compare names either side of the pivot.................................................................................................................. 158 Name...................................................................................................................... 158 Private Function CheckForCorrectAnswer..............................................................158 Location.................................................................................................................. 158 Page 66.................................................................................................................. 158 Input Parameters....................................................................................................158 ByVal RadioButton As RadioButton, ByVal CorrectAnswer As String, ByVal QuestionMarks As Integer, ByRef CorrectAnswerChosen As Boolean...................158 Output Parameters.................................................................................................158 Local Variables.......................................................................................................158 -.............................................................................................................................. 158 Description.............................................................................................................. 158 This function checks for each of the 4 possible answers of the question if the radio button for that answer was selected and if so if that is the correct answer which is passed into the function. If the answer selected was the correct answer then the function is returned as a Boolean answer of true, else it is returned as false. ........158 Name...................................................................................................................... 159 Private Function ValidateGradeBoundary...............................................................159 Location.................................................................................................................. 159 Page 83.................................................................................................................. 159 Input Parameters....................................................................................................159 ByVal GradeBoundary As String, Byval HigherGradeBoundary As String, Byval MsgText As String, ByVal RegexPattern As String, ByRef ValidInput As Boolean..159 Output Parameters.................................................................................................159 Local Variables.......................................................................................................159 MyRegex As New System.Text.RegularExpressions.Regex(RegexPattern)..........159 Description.............................................................................................................. 159 This function checks to make sure that the grade boundary that has passed into it is valid or not. It checks to make sure the text if of the correct format using the RegEx pattern that has been passed in, and is lower than the higher grade boundary. If the input is valid then ValidInput is returned at true, else it is returned as false............159 Name...................................................................................................................... 159 Private Sub New()...................................................................................................159 Location.................................................................................................................. 159 Page 80.................................................................................................................. 159
  8. 8. 8 Input Parameters....................................................................................................159 -.............................................................................................................................. 159 Output Parameters.................................................................................................159 Local Variables.......................................................................................................159 LblArray(7, 7) As Label, Scores(6) As String, i, j, k As Integer, z As Integer = 100, loc As Point, Quiz As QuizRecord................................................................................159 Description.............................................................................................................. 159 This procedure is used to dynamically create the X and Y axis labels in the XaxisGraphLabelPnl & YaxisGraphLabelPnl for the student and teacher grade breakdown graphs using 0-100 for the y axis an the quiz names along the X axis. 159 User Manual........................................................................................................... 161 Contents page ....................................................................................................161 Installation instructions........................................................................................162 Detailed description of how to use one section of the system.............................163 Samples of error messages and recovery procedures - troubleshooting.............182 Appraisal................................................................................................................. 193 Comparison of project performance against objectives.......................................193 Possible extensions............................................................................................197 User feedback.....................................................................................................198 Analysis Background to and identification of problem The maths department of Parkstone Grammar School hands out one set of past papers to each student to pupils at GCSE level each year. The past papers are used by the students to revise and consolidate their knowledge and practice their exam technique. The teacher will record the marks and before the end of term will predict the final grade and aspirational grade for the pupil in their end of term report. The current system is completely paper-based, and I believe making a computerised system for both the teachers and the students will save time and effort as well as being a lot easier to use. When taking my maths GCSE, I found that I began to lose track of which papers were due on which date, and even began to misplace some of the papers so the teachers would have to re-photocopy some of the papers. To see if other students had the same problem as I did, I conducted a survey with 20 students that were either currently studying for their maths GCSE or have already taken it. Here are the results of the questions I asked them; Question Did you ever lose one of the past papers you were given to complete? Did you ever forget or miss the deadline to hand in one of the papers you were given to complete? Would you prefer a computerised version of this system? Tally ( /20 ) Yes – 14 No - 6 Yes – 17 No - 3 Yes – 18 No - 2 This poll shows that other students have had a similar experience to me with the current system, and shows that there is a problem with it. I therefore propose to create a system where students can take quizzes containing a number of questions that are similar to questions asked in real exam papers. The teachers can keep track of which quizzes the students have taken and the grades they achieve, and can use the system to predict grades for the students’ final GCSE exams.
  9. 9. 9 Analysis of current system Students currently pay £1 for a pack of around 36 past papers, 16 calculator papers, and 16 non-calculator pages. An example of a calculator past paper and the kinds of questions asked at GCSE level is pictured below, along with the mark scheme. November 2010 Past Paper
  10. 10. 10
  11. 11. 11
  12. 12. 12
  13. 13. 13
  14. 14. November 2010 Mark Scheme 14
  15. 15. 15
  16. 16. 16
  17. 17. 17 Teachers will set deadlines for when they would like the paper back in. The teacher then marks the papers, grade them, and hand them back to the students. To record how well each student is doing, the teacher has a book in which they have a list of students and a list of papers, and mark the grade they have achieved. A section of this mark book, for the non-calculator past papers is shown below. Teachers then take an average of the all of the grades the student have achieved, and uses this as their predicted grade in their end of term report, and also predict an aspirational grade. The aspirational grade is usually one grade higher than the predicted grade, and reflects what the teacher thinks the student could achieve with more revision. When the papers are handed back the students can see where they have gone wrong, and are expected to revise the topics they didn’t answer questions correctly on before completing the next paper. However, students have been known to forget the deadline, lose or do the wrong paper, so not everyone will hand their paper in before the deadline. It can be hard for the teacher to keep track of who has and has not handed their work in, and can only tell whose papers are missing after they have marked the ones that have been handed in. Students then have missing marks and the teachers find it harder to make the final predicted grades.
  18. 18. 18 Some students have also been known to cheat. As these papers are real, the mark schemes for each paper are easily available to online through a quick search of the internet. They then have all the correct answers to work from giving them an unfair advantage over the other students. This does not portray the real level of ability of the student to the teacher and so they predict higher grades than the student is able to achieve, causing them disappointment on results day. The current system also uses a lot of resources that could be saved by computerising the system. This year, the set that will be handed to the students include the papers from 2003 to 2011, including both the two papers from June and two papers from November. This is 4 papers per year; each printed on two sheets of paper, of 9 years’ worth of past papers. This equals around 72 sheets of paper each student is given and as there are 180 students in one year group, around 12,960 sheets of paper are used for the system every year, before any re-copying of papers as well. This is a massive waste of resources, as well as the price of photocopying all of these papers, costs the school a large sum of money to carry out each year. Identification of the prospective user(s) There will be three groups of users – students, teachers & administrators. None of these groups of users will have had any previous experience with computer coding, so none should have to be input by the users in the final program. Therefore the final layout of the program should be usable by any one, and easy to understand for new users to the system. The teachers will need to be able to create the quizzes for the students that will take them. As the teachers and students will be carrying out different tasks and therefore need different facilities, the students and teachers should have a separate site in the program. This means that different users will have restricted access to certain parts of the program. The students should not be able to access the teacher’s part of the program to have access to their grades & scores of other users, so therefore both the teachers and students should have a password protected area. The administrators should also have a separate user space to the student and normal teacher accounts, but the user will just be a teacher. The administrators should be able to edit student and teacher information, as well as creating new classes. Therefore the area should be password protected so students are unable to access and edit the student or teacher files. The teachers are not as computer literate as the students may be so the area of the program designed for the teachers must be simple to use and easy to read and understand, and so they must not have to input any unnecessary items into the final system. The system also needs to be reusable with each cycle of GCSE students, the number of which may vary slightly from year to year, so the program should allow a varying number of student accounts to be created. The students are all of the same age in year 11, but some will be more computer literate than others, so the student facilities will have to be flexible and simple to understand for any of the users. Some of the more able students could possibly try to exploit any bugs in the system and even try to break the program by inputting erroneous data, so the validation in the system should be as robust as possible. Therefore, the system should use textbox inputs as little as possible to prevent the users from inputting incorrect data to break the system. Students will own computers with varying specifications, so the program will need to run smoothly on any type of computer. As the program will be storing private information, it must be secure in accordance with the 1998 Data Protection act.
  19. 19. 19 Identification of user needs and acceptable limitations To identify what the user will need, I have conducted an interview with one of the GCSE maths teachers. Interview R: Do you think a maths quiz for GCSE students will be useful? T: I think there is a need for this system as the current system is very inefficient and a computerised system would help both the teachers and the students. R: What do you think are the most important points of the current system that should be transferred into the new system? T: The students should be able to take a quiz to practice answering questions for their final exam. They should receive solutions to where they have gone wrong for the questions they have not answered correctly, and receive a mark for each quiz they take. The teachers must be able to keep track of which quizzes each student has taken, and the grade they achieve. They should then be able to calculate the average grade achieved to make a final exam prediction for the student. R: What do the students need to be able to do on this system? T: Students should be able to log on to the system and have a list of available quizzes that they can take, and a list of due dates alongside them. They should be able to see how well they’ve done in each quiz they have taken so far and give them a round-up of their grades. R: How many quizzes should be available to the students? T: The maths departments have collected many exam papers from previous years so we have many questions that can be compiled into a quiz. The students should have as many quizzes as possible available to them to practice with. The students should be able to see a list of quizzes they can take, and which ones they have and have not completed. They should also be able to see any quizzes that have deadlines set by the teachers in order of date. R: Should the teachers be able to create new quizzes? T: To make the system worthwhile, it should be able to be reused every year. Each year there are two sets of GCSE exams, one in November and the other in June, and teachers should be able to add questions from these papers and make them available for the students. R: How would you expect the quiz to be laid out? T: There should be one question per slide, with some multiple choice answers to pick from. The student should then click the answer they think is correct, which will then send them to another slide with the correct answer and working on. After that they should be directed to the next slide which displays the next question. There are usually around 30 questions per exam on the real papers, so this would roughly be the same in the quiz, but you could make it so the user chooses the amount of questions. The questions usually start off easy and as the test progresses they steadily become more complex. R: How many answer choices should there be? T: There should be enough to make sure the student has to work the question out without guessing the answer, but not too many to confuse the pupil. I would say there should be four or five answers to choice from for each question.
  20. 20. 20 R: Should the student be able to see the correct answers? T: The whole point of doing this exercise is to help students improve, and they can only do this if they can see where they went wrong. Therefore I do think they should be able to see the correct answers after they have answered each question. R: How would you like the answers to be shown? T: Well I think it would be most effective to show them the correct answer, and maybe even the solution of how the answer can be attained, after they have answered each question. Otherwise if they are shown all the answers at once, the student might just skip through them and that defeats the object of doing practice papers. R: Should anything be done with the results that the students can see? T: It would be nice for them to be able to see their marks visually, how their marks from one quiz compares to another. Their results of the quizzes they have taken so far could possibly be displayed on a graph to show them if they are improving – or not. You could possibly also show them the topic areas they scores well on and which areas they may need to revise more. Then they can go away and revise the topics they haven’t attained grate marks on and come back for the next quiz a little more prepared. It would be useful for the teacher to see all of this for each pupil as well, so we can see which topics we need to revise with the pupils in class. R: How many questions should there be per quiz and should it be flexible? T: There are usually around 30 questions per exam, which fit with a 1 hour 45 minute time limit. However it does vary sometimes as it depends on the marks given to each question, so it does vary slightly so you should probably make that flexible. The timing of the exam is something the students should be able to work with so the amount of questions should be similar to the real exam. R: Are the grade boundaries always the same for each exam or should they be flexible? T: The maximum mark for each exam is always 100, however the grade boundaries change, depending on the exam. If the exam is considered harder than normal, then the grade boundaries are lower as they are harder to reach. However, if the exam is considered easier than normal the grade boundaries will be higher as the will be easier to reach. Therefore I think you should allow the teacher user to input grade boundaries for each quiz separately. R: Is the timing of the quiz important then? T: One of the main issues for some of the students is finishing the exam on time, leaving enough time to check through their answers at the end. Therefore I think it’s vital that the students should be able to practice finishing within the time limit, but should be able to finish the quiz if they do exceed it. In the real exam, the students have 1 hour and 45 minutes to answer all of the questions. If the quiz has a similar amount of questions then the time limit should be the same. R: Are there any considerations I need to make in terms of the pupils and their ability level? T: There are 4 different levels of maths sets at GCSE standard, Set 1 being the most able at maths, and Set 4 being the least able. Due to students in set 4 struggling with some concepts in maths, they are not taught the whole syllabus. Therefore when they take the quiz, they won’t be able to answer some of the harder questions. However they couldn’t answer them in the real exam either so I do not think you need to worry too much about that. R: What are the names of the topics in the GCSE syllabus that appear in the exam? T: The topics are; Number, Algebra, Geometry, Measure, Statistics & Probability. Normally there is at least one question from each topic that appears in the quiz.
  21. 21. 21 R: What do the teachers need to be able to do on this system? T: Teachers should be able to log on to the system separately from the students, and should be able to see a list of all the students in each class they teach, and show all of the results of the quizzes the students have taken so far. We should also be able to set deadlines on each quiz and then be able to see who has and has not met the deadline so far. R: How many classes does each teacher usually have? T: Each teacher is allocated two classes, and each class normally has two teachers, but they can sometimes have three. R: What should be done with the results of the quiz? T: The teacher should be able to see the grade attained on each quiz by each pupil, possibly as a graph so we can visualise how many people are attaining which grades. An average grade should also be calculated, depending on how well the students have done in the quizzes they have taken. From this we can then make a final predicted grade and an aspirational grade which they could achieve with some work. R: What kind of interface would you be expecting on this system? T: Well students should find it easy to navigate around the system without getting lost, and be able to easily find whatever they are looking for. If they cannot find the papers easily then they will use this as an excuse not to do the papers. Some of the older teachers are not that confident using technology, so the system must be very easy to navigate, any writing should be big enough & easy to read and any instructions should be simple. R: What would expect the administrator to be able to do on the system? T: Well if the student or teacher has entered their information wrong, the admin should be able to change or correct this. They could also change the passwords of any of the users if they have forgotten it, or someone else had found out what it was. If one year the school decided to split maths classes into smaller group and have more classes, the admin should probably also be able to add a new class, and input the set number of the class. R: What aspects of the current system would you like to see improved with this system? T: It should be really easy to see who’s done what in terms of which quizzes have been taken, because sometimes it’s hard for me to keep track of. Acceptable Limitations Usually in the final exam papers, students will gain marks for how they work out their answer, even if their final answer is incorrect. Because my system is computerised, there will be no marks for working out as students will only be able to select one answer, and so will either gain full or zero marks for each question. Quiz grading and predicted grades will be based on the amount of correct answers attained in the quiz so they may be slightly inaccurate to the real ability level of the student. Another limitation of the computerised system is that at GCSE level, there are usually questions that involve drawing or sketching graph and shape reflections and transformations. However, there is only ever one or at most two of these questions in the exam papers so I have decided to exclude this from my program. This could be a possible extension in the future to have image answers in the quiz as well as plain text. As the questions will be multiple-choice, the students will have a selection of fixed
  22. 22. 22 answers to choose from. When the student is working the answer out to the question and they get a different answer to the four available answers, they can choose the nearest one to the answer they worked out. This means the students are able to guess answers, which can boost their grade higher than it would be otherwise. Another limitation to the multiple choice answer style is that there can be only one part and answer to the question. In the real exams, most questions have several parts to it – i.e. part a), b) & c). However this problem is the same for any multiple choice quiz, and so I have not addressed this in my system. There will be a new set of students each year, so teachers will have to delete all of the previous years’ users each time a new set of student begins the year. This could be done automatically but this is not the main focus of my system, so I have not incorporated this into my program at the start. If I feel there is room for improvement in my program I may include it later on. Although there in the real exams, the students take 2 papers, a calculator & a noncalculator paper, I have decided not to include this in my program as student would easily be able to use calculators even if they are not meant to, which would skew their results. By not including it and allowing a calculator to be used in all of the questions, the final predicted grades of the students will be more accurate to what they are able to achieve. initial user requirements • • • • • • • • • • • • • • • • Student Functions There must be a secure login page so the students and teachers can log in separately Each student must have their own username and password to log in to their user space The program must display a list of quizzes to that are available to be taken by the student The program should display whether the user has taken a quiz or not for each of the available quizzes, and the grades achieved for the quizzes that have been taken The deadline of each quiz must be shown on the list of quizzes The program must not allow the student to take quizzes that have already been taken once by the student, or where the deadline has already passed The program should allow the students to take quizzes created by the teacher user Each question should have a choice of four answers to choose from, with one being the correct answer The program should only display one question at one time After a student has answered a question, the correct answer should be shown to them There should be a timer that counts down from 1 hour and 45 minutes displayed to the student whilst they are taking the quiz The timer reaching 00:00 should not impede the student’s progress if they have not finished answering the questions after this time The quiz timer should pause whilst the user is viewing the answer to the question At the end of the quiz the student should see the score they achieved & the corresponding grade The student should be able to see which topic areas they have scored best and worst in More complex questions, and questions from topics not taught to them should be filtered in quizzes taken by set 4 students Teacher Functions
  23. 23. 23 • • • • • • • • • • • • • • • • • • • • The teacher should be able to create new quizzes for the students to take, including the quiz name, deadline and number of questions Each quiz should be worth 100 marks, and have a time of 1:45 The user must have a list of pupils in each of the classes they teach showing who has and has not completed each quiz that has been created The user should be able to create a number of questions for each quiz, including the question text, choice of answers, correct answer, question topic, question marks, question difficulty and question working There should be between 25 and 35 questions in each quiz Each question in each quiz must be grouped into one of the six topic areas in the GCSE maths syllabus Questions should be ranked by difficulty, with questions starting the quiz being simple and becoming more complex The teacher should be able to set a deadline for each quiz, after which the student is unable to take it The program should show visually how well their students are scoring in each of the topic areas as a whole, as well as individually Teachers should be able to access data which visually shows the grades attained by each student. Administrator Functions The administrator should have a completely separate log in space from the teacher and student users The administrator should have a secure username and password log in to the program The administrator should be able to create new classes setting the class name and set There should be an editing function for the admin to search for a user and edit their details to make sure the data is correct and up to date The admin should be able to delete users that no longer use the program Design The interface of the program should be simple to use and easy to understand The program must be simple to navigate through The text on screen should be large enough for easy reading, and in a readable font The program needs to sort data quickly and efficiently due to updates of the information on a regular basis The program should be professional and efficient to use Data dictionary (from perspective of end user) Data Name Teacher ID Full Teacher Name Teacher Username Teacher Password Teacher Classes Student ID Description Unique Teacher User ID Forename and Surname of the user Used for teacher’s login Used to secure the teacher’s login The name of the two maths sets that the user teaches Unique Student Data Type Integer Example “05” String “Dianne Hardwick” String “DHardwick” String “Circle1” String “11A, 11C” Integer “105”
  24. 24. 24 Full Student Name Student Username Student Password Student Class Quiz ID Quiz Name Quiz Deadline Number of Questions Question Number Question Text Correct Question Answer Question Answer Choices Question Topic Question Marks Question Difficulty Question Working Student Score Student Grade Student Topic Marks Class Topic Marks User ID Forename and Surname of the user Used for student’s login Used to secure the student’s login The name of the maths set that the student is in Unique Quiz ID The name of each paper The deadline set for each paper Number of questions in the quiz The number of the question in the quiz The text of each question The correct answer to the question The other incorrect answer choices of the question The topic area the question is from Amount of marks the question is worth Difficulty ranking of each question The working out for each question to reach the correct answer The score the student has achieved in the quiz The grade the student has achieved in the quiz The number of marks achieved in each topic area by each student individually The number of marks achieved in each topic area in the class as a whole. String “Rachel McGreevy” String “rachelmcgreevy” String “mrblobby” String “11B” Integer String “09” “Quiz 1” Date “3/2/12” Integer “28” Integer “10” String “Simplify (x+2)(x-3)” String “x2-x-6” String “x2+x-6, x2-x+6, x2+x+6” String “Algebra” Integer “5” Integer “1” String “(x*x)+(x*-3) +(2*x)+(2*-3)” Integer “76” String “B” Integer “11” Integer “150”
  25. 25. 25 Class Name Class Set Admin Username Admin Password The Name of the Maths Class The set number of math class Username used to login as the admin Password used to secure admin login String “11B” Integer “1” String “admin1” String “equation” Data source(s) and destination(s) Data Source Student Teacher Administrator Data Student Name, Student Username, Student Password, Student Class, Student Question Answer Teacher Username, Teacher Password, Teacher Name, Teacher Classes, Quiz Name, Number of Questions, Quiz Deadline, Question Text, Question Answer Choices, Question Difficulty, Question Answer, Question Marks, Question Working, Question Topic Class Name, Class Set Data Destination Student Record Teacher Record Class Record Quiz Record Question Record Student Quiz Record Data Student ID, Student Name, Student Username, Student Password, Student Class Teacher ID, Teacher Name, Teacher Username, Teacher Password, Classes Taught Class Name, Class Set Quiz ID, Quiz Name, Number of Questions, Quiz Deadline Quiz ID, Question Number, Question Text, Answer Choices, Question Topic, Question Difficulty, Question Marks, Question Working Quiz ID, Student ID, Quiz Score, Quiz Grade, Quiz Time
  26. 26. 26 Data flow diagrams (DFDs) Existing System High Level Low Level
  27. 27. 27 Proposed System High Level Low Level
  28. 28. 28 Volumetrics Student File Student ID 3 Student Name 30 Student Username 15 Student Password 15 Student Class 3 ----------------------------------Total: 66 Teacher File Teacher ID 2 Teacher Name 30 Teacher Username 15 Teacher Password 15 First Class Taught 3 Second Class Taught 3 ----------------------------------Total: 68 Class File Class Name 3 Class Set 1 ----------------------------------Total: 4 Quiz File Quiz ID 2 Quiz Name 10 Quiz Deadline 10 Number of Questions 2 ---------------------------------Total: 24 Question File Quiz ID 2 Question Number 2 Question Text: 100 Correct Answer 20 Answer Choice 1 20 Answer Choice 2 20 Answer Choice 3 20 Question Topic 11 Question Working 100 Question Difficulty 1 Question Marks 2 -----------------------------------Total: 298 Student Quiz File User ID 3 Quiz ID 3 Quiz Score 3 Quiz Grade 2 ---------------------------------Total: 11 The program should be able to store around 180 students, 10 teachers, 20 quizzes – each with around 30 questions. Student File 66*180 = 11880 Teacher File 68*10 = 680 Class File 4*10 = 40 Quiz File 24*20 = 480 Question File 298*(30*20) = 178800 Student Quiz File 11*20*180 = 39600 Total Information 11880 + 680 + 40 + 480 + 178800 + 39600 = 231480 231480 bytes = 231480/1024 226.1 (1dp) Kilobytes 226.1 KB Realistic appraisal of the feasibility of potential solutions Approach Visual Basic Front end with file handling Visual Basic Front end linked to a database Advantages - Visual Basic has a simple drag and drop tool to easily create a GUI - No other software is incorporated into the system so the program is simple to use. - Less complicated programming involved compared to other solutions - More efficient data storage - Only requires basic SQL for manipulation of data - Visual Basic GUI drag and drop tool Disadvantages - File handling can limit the data stored - Not the most efficient way of handling data - Data is stored in an easily accessible text file so could be easily edited or accidentally deleted. Notes This is probably the least time consuming and most flexible and simple solution for the program - More work involved in the creation of the program - More complicated solution - End users must have database software installed on their computers, which not everyone will have, and More data can be easily handled but requires other programs to be installed which is not ideal.
  29. 29. 29 Visual Basic linked to spreadsheet Java front end with database - Visual Basic GUI creator - Spreadsheet software has many functions and is flexible - Spreadsheet can hold large amounts of data - Text can be manipulated easily - Bespoke front end due to no GUI creator - As front end is tailored to user, the program will be more efficient. can be expensive. - A large amount of data may need to be stored in more than one sheet so may become complex - the solution will have constraints - No GUI creator means there will be a lot more work going into the creation of the program. - More time and effort is needed to create the program I will not be able to create an effective solution for the program using this approach More complicated to design the front end of the program and more time will need to be spent on that part, meaning the core of the program will not be as developed as needed in the time limit I have, so is not the best solution Justification of chosen solution Obviously a bespoke solution is the best option for my program, as it can be made exactly to the needs of the user and their specifications, without unnecessary add-ons. Creating the program myself, means it will be an original piece of work and so will be unlike any other program that already exists. A self-created piece of software means that it can be updated and re-worked if the user feels that it does not fulfil all of the requirements or have found problems or other improvements that can be made to the system. Creating the program directly from the user’s specification means that the program will run in the most efficient way for them. I have decided to create a program using a Visual Basic front end, with file handling to store data. This is the simplest solution, and although the amount of information the program will need to store is large, it does not require any extra software installed. This solution also does not require any complex front end programming, due to the front end creation tool of Visual Basic. Using the Visual Basic front end creation tool will provide the most user-friendly and effective front end, and therefore is the most efficient solution as I am able to tailor it to the needs of the user.
  30. 30. 30 Prototype I drew out a diagram to help me decide what pages I’ll need to create a prototype for in my program. User Feedback: Well instead of having to make the teacher create a new user each time, you could put that on the original login page, so the user themselves can create an account. There could also be a page that enables the user to change their password, or a reminder if they have forgotten their password or username. I have made the necessary changes below, which has given me a final idea of the layout of the pages for the program.
  31. 31. 31 This is the first screen the user will see on the program. The students will press on the Student Login button to be directed to their login, and the teachers will press on the Teacher Login button which redirects them to their login. User Feedback: You could have a better opening interface design because this one doesn’t really show what the program is. Solution To let the user know what the program is, I have created a splash screen that starts up when the program is opened. It flashes up for several seconds and then the login screen as shown above will appear The login screens for the students and teachers are the same, but the user can only log in with their password on the correct login space, i.e. a student could not use their username and password to log in to the teachers area. User Feedback: Using separate login screens is a good idea, as then students can’t log in to the teacher’s part of the program and see everyone else’s grades, and it also makes the program more secure.
  32. 32. 32 This is the page that allows the creation of new accounts to access the program. If the type of user selected is ‘student’, then they will be redirected to another page below that asks them to enter their class. If the type of user selected is ‘teacher’ then they will be directed to a page where they enter any classes that they teach. User Feedback: This is great, but there needs to be some kind of protection against students creating fake teacher accounts to access other users’ information. Solution On the page that the user is directed to once they have selected the type of account as ‘teacher’, the user will have to supply a security word, previously agreed upon by the teachers. For the purposes of this project the security word will be ‘circle’.
  33. 33. This is the student’s homepage, 33 which is the first page they see after they have logged onto the system. The students name is shown in the top right hand corner. The page shows each quiz that is available, whether they have taken it and the grade they achieved if they have, and also the quiz deadline. User Feedback: The information is set out nice and clearly for the student to see what they’ve already done. There could be a notification at the top showing how many days there are left until the final exams. Solution I have created a countdown timer in days to alert the user as to how long they have left until their two exams. When the amount is red in colour, there is less than two weeks until the exam. If the amount is green in colour there is more than two weeks until the exam date. This is the page where the user is able to change their password, by entering their old one first as a security measure and then entering a new password twice. User Feedback: This page is good and it has all of the necessary security requirements.
  34. 34. Solution This is the screen the student sees after they have selected ‘Take Quiz’ from their homepage, which lists all of the quizzes for the student to take. User Feedback: The quizzes that the student has already taken don’t need to be listed as they shouldn’t be able to take them more than once. 34 Only the quizzes that have not been taken, or those with deadline dates that have not yet passed are available to select from the list, as stated in the user requirements. This is the screen the student sees after they have selected the quiz they wish to take from the take quiz page. It has the question number, question text and question choices on. Once the student selects their answer, the answer page will appear. User Feedback: You could create it so the user clicks an option before pressing to go onto the next page in case the student accidentally clicks one of these options. You also should show the user on the question page the time they have left from the original 1 hour 45 minutes to finish the quiz in. Solution With the use of radio buttons, the user can now select an option, and then change their answer without automatically being sent to the answer page if they change their minds. The remaining time the user has left from the starting time of 1:45 is now shown in the top right of the form, which counts down in real time.
  35. 35. Solution This is the screen the student sees after they have selected their answer to the question. The answer page shows the question, the answer they selected, and the working which is shown regardless of whether the student answered correctly, to make sure they understand how to do the question. Once the student selects next, the next question will appear. User Feedback: The students should be able to see the amount of marks the question is worth as well as the correct answer. It should also show if the student answered correctly, as they might not remember which answer they chose. 35 The answer page now includes whether the student answered the question correctly, and the amount of marks they gained along with the full amount of marks available for the question. Solution This is the screen the student sees when they have answered all of the answers and have come to the end of the quiz. It shows their overall score achieved and the grade equivalent. User Feedback: This screen could also show the time the student has completed the quiz in. The end of quiz screen now shows the final time the user completed the quiz in. If they did not finish before the 1 hour & 45 minute time limit then the remaining time will just show as 00:00:00
  36. 36. 36 This is the teacher’s homepage, which is the first page they see after they have logged onto the system. The teachers name is shown in the top right hand corner. The page shows a table with a list of each student they teach, and the grade they have achieved after taking the quizzes that are available. User Feedback: The information is set out clearly, but you should make sure each class of students is set out on a different list, and the teachers should be able to look at all of the classes they teach. Solution This is the page where the teacher can create a new quiz, by entering its name, number of questions & set a deadline for it. User Feedback: The grade boundaries for each paper are different as depending on the questions, sometimes an A* is harder to reach than other time. Therefore an option to enter the grade boundaries for that quiz in particular on this page would be useful. Grade boundaries for the grades A* - U are now able to be entered differently for each paper. The end grade that the student achieves will then be calculated according to these grade boundaries.
  37. 37. Solution 37 This is the page where the teacher can create a question, by entering the details shown. User Feedback: There should also be an option to upload an image for the question as well, for questions that may involve graphs or histograms The user is now able to browse their files so a previously saved image can be included in the question. I have also included the question number so the user will know which question they are entering information for. This is the login page for the administrator where they enter the admin username and password, which for the purposes of this program will be ‘admin1’ & ‘equation’ User Feedback: It is a good idea to have a separate login for the admin to the teachers so they can edit both the student and teacher details. This also makes the program more secure, and prevents students finding other student’s personal information. This is the admin homepage where the user has the choice of either creating a class or editing a student or teacher’s user information. User Feedback: This is a very simple layout, I don’t thin anything needs to be added.
  38. 38. 38 This is the page where the teacher can create a new class, which they can access from their homepage. The user just has to enter the name of the class and select which set number it is. User Feedback: Excellent, this is very nice and simple. You should make sure that the user can’t write anything in the Class Set box and can only select a value from the list This is the page where the admin user searches for the student whose information they want to edit. The user types in the student name or part of the name into the search bar and any users with that name will show in the list box for the user to select. User Feedback: Excellent, this is very nice and simple. You could have a label explaining what to do here, as it isn’t very clear what is happening, other than that its fine. This is the page where the administrator can edit any information that the user entered when they signed up for an account to start using the program. Any changes will overwrite the original data in the student file. User Feedback: Again, you should have a small note telling the user what to do next In case they have forgotten or are unsure what to do.
  39. 39. This is the page where the admin user searches for the teacher39 user whose information they want to edit. The user types in the teacher’s name or part of the name into the search bar and any users with that name will show in the list box for the user to select. User Feedback: similarly to the Search Student form, this is very simple, but you could also do with a label explaining what to do here, as it isn’t very clear what is happening when you get to this page from clicking the edit teacher information button on the admin homepage. This is the page where the administrator can edit any information that the user entered when they signed up for an account to start using the program. Any changes will overwrite the original data in the teacher file. User Feedback: Like the Edit Student Information form, you could have a small note telling the user what to do next In case they are unsure what to do. This is the page where the teacher can view This is the page where the student can view the graph of the grade achieved on each the graph of the grade they have achieved quiz by a particular student user. This can be for each quiz they have taken so far. This can viewed from pressing the ‘grade be viewed from pressing the ‘grade breakdown’ button on the teacher breakdown’ button on the student homepage. homepage.
  40. 40. 40 This is the page where the teacher can view the graph of the average grade being achieved for each topic in the syllabus. This can be viewed from pressing the ‘topic breakdown’ button on the teacher homepage. This is the page where the student can view the graph of the grade they have achieved for each topic in the syllabus. This can be viewed from pressing the ‘topic breakdown’ button on the student homepage. Final user requirements • • • • • • • • • • • • • • Student Functions Students must be able to register to use the program from the start menu There must be a secure login page so the students and teachers can log in separately Each student must have their own username and password to log in to their user space Students must be able to change their password when they are logged in The program must display a list of quizzes to that are available to be taken by the student The program should display whether the user has taken a quiz or not for each of the available quizzes, and the grades achieved for the quizzes that have been taken The deadline of each quiz must be shown on the list of quizzes There must be a countdown until the final exams on the student homepage The program must not allow the student to take quizzes that have already been taken once by the student, or where the deadline has already passed The program should allow the students to take quizzes created by the teacher user Each question should have a choice of four answers to choose from, with one being the correct answer The program should only display one question at one time After a student has answered a question, the correct answer should be shown to them There should be a timer that counts down from 1 hour and 45 minutes displayed to the student whilst they are taking the quiz
  41. 41. 41 • • • • • • • • • • • • • • • • • • • • • • • • • • • • The timer reaching 00:00 should not impede the student’s progress if they have not finished answering the questions after this time The quiz timer should pause whilst the user is viewing the answer to the question At the end of the quiz the student should see the score they achieved & the corresponding grade The time the student has completed the quiz in should be listed on the end screen of each quiz The student should be able to see which topic areas they have scored best and worst in More complex questions, and questions from topics not taught to them should be filtered in quizzes taken by set 4 students Teacher Functions The teacher should be able to create new quizzes for the students to take, including the quiz name, deadline and number of questions Teachers should be allowed to enter different grade boundaries for each paper when creating a new quiz Each quiz should be worth 100 marks, and have a time of 1:45 The user must have a list of pupils in each of the classes they teach showing who has and has not completed each quiz that has been created The user should be able to create a number of questions for each quiz, including the question text, choice of answers, correct answer, question topic, question marks, question difficulty and question working There should be an option to upload images for each question There should be between 25 and 35 questions in each quiz Each question in each quiz must be grouped into one of the six topic areas in the GCSE maths syllabus Questions should be ranked by difficulty, with questions starting the quiz being simple and becoming more complex The teacher should be able to set a deadline for each quiz, after which the student is unable to take it The program should show visually how well their students are scoring in each of the topic areas as a whole, as well as individually Teachers should be able to access data which visually shows the grades attained by each student. Administrator Functions The administrator should have a completely separate log in space from the teacher and student users The administrator should have a secure username and password log in to the program The administrator should be able to create new classes setting the class name and set There should be an editing function for the admin to search for a user and edit their details to make sure the data is correct and up to date The admin should be able to delete users that no longer use the program Design The interface of the program should be simple to use and easy to understand The program must be simple to navigate through The text on screen should be large enough for easy reading, and in a readable font The program needs to sort data quickly and efficiently due to updates of the information on a regular basis The program should be professional and efficient to use
  42. 42. 42 Design Overall system design The overall system breaks down into five main modules, which each break down into smaller sub-modules. The system works using file handling, functions and procedures to complete tasks quickly & efficiently. These five modules are: Login: This module is for security, where users must register, or existing members must enter their username and password to gain access to the program. Create Quiz: This is where data is inputted by the teacher to create a quiz and its questions. It is then saved to a file which can then be accessed by the Take Quiz module. Take Quiz: This module lays out the questions that were created by the teacher, in a quiz format for the student to answer. View Results: This module processes the data from the student’s answers, and presents it in a suitable format. Data Analysis: This module will use the results to create information about the individual student, as well as the year group as a whole. Description of modular structure of system Log in Form: If the user has not used the program before, they will need to create a new account for themselves so they can log in. Here, they will need to enter their details, so they can register with the system. Once they have entered these details, or if they have already done this, they will use their username and password. The validity of the username and password will be checked against the appropriate file, and once confirmed will take them to the appropriate homepage.
  43. 43. 43 Create Quiz: A teacher user will enter the basic information about the quiz, and then create questions for the student to answer. This will then be saved to file and will appear in the list of quizzes that the student can take. Take Quiz: A student user will select one of the quizzes a teacher has created, which they will then have to answer the questions. Once the student has completed a question, their answers will be saved to file which is then accessed by the view results module. View Results: Once a student has completed a quiz, their marks are printed on screen, along with their grade. These are calculated by the program on the answers that the student gave in the quiz, compared to the correct answer given by the teacher when they created the quiz.
  44. 44. 44 Data Analysis: Either a student or teacher user can access student quiz results which are presented in a graphical form. The is calculated by the answers that the student gives to the questions, and can focus on an individual student, a particular quiz, a topic in the syllabus or the year group as a whole. Data dictionary Data Name Description Data Type String Example Validation User Type User selects student or teacher type “student ” Unique Teacher User ID Integer “05” Full Teacher Name Forename and Surname of the user String “Dianne Hardwick ” Teacher Username Used for teacher’s login String “DHardw ick” Teacher Password Used to secure the teacher’s login String “Circle1” First Class Taught The name of the first class that the user teaches String “11A” Second The name of the second class String “11C” As well as a presence check, if the user selects Teacher as their user type, they will then have to enter a security word to make sure that there is not a student pretending to be a teacher trying to access the system Value is generated by the program so does not need validation There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, one or two spaces (depending on whether the user entered a middle name or not), or a dash for a double barrelled name There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits, dashes or underscores There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits, dashes or underscores There must be a presence check performed on this value to make sure it is not left empty There must be a presence check Teacher ID
  45. 45. 45 Class Taught Security Word that the user teaches Student ID Used for security as a word which a user must enter to create a teacher account for user type validation Unique Student User ID Full Student Name Forename and Surname of the user String “Rachel McGree vy” Student Username Used for student’s login String “rachelm cgreevy” Student Password Used to secure the student’s login String “mrblob by” Student Class The name of the maths set that the student is in String “11B” Password Matches Used to check whether the password entered matches the password that is saved for that user The dates of the two final exams that the students will take Unique Quiz ID Boolean “yes” Date “23/06/1 2” Integer “09” Quiz Name The name that the quiz can be identified by String “Quiz 1” Quiz Deadline The deadline set for each paper Date “3/2/12” A* Grade Boundary The mark that the user needs to get an A* grade Integer “90” Final Exam Dates Quiz ID String “circle” Integer “105” performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty, and make sure it matches the saved security word Value is generated by the program so does not need validation There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, one or two spaces (depending on whether the user entered a middle name or not), or a dash for a double barrelled name There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits, dashes or underscores There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits, dashes or underscores There must be a presence check performed on this value to make sure it is not left empty Value is generated by the program so does not need validation None – two predetermined dates entered during the creation of the program Value is generated by the program so does not need validation There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits or dashes, and has a string length less than the save length limit Checked to make sure the date is valid, and is a future date and not a date that has already passed There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make
  46. 46. 46 A Grade Boundary The mark that the user needs to get an A grade Integer “81” B Grade Boundary The mark that the user needs to get an B grade Integer “72” C Grade Boundary The mark that the user needs to get an C grade Integer “63” D Grade Boundary The mark that the user needs to get an D grade Integer “52” E Grade Boundary The mark that the user needs to get an E grade, below which the user will get a U grade Integer “40” Number of Questions Number of questions in the quiz Integer “28” Question Number Question Text The number of the question in the quiz The text of each question Integer “10” String “Simplify (x+2)(x3)” sure the value is lower than 100 There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value is lower than the A* grade boundary There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value is lower than the A grade boundary There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value is lower than the B grade boundary There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value is lower than the C grade boundary There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value is lower than the D grade boundary There must be a presence check performed on this value to make sure it is not left empty, and a check using regex to make sure the value entered contains integers only. It should also be checked to make sure the value entered is lower than or equal to 35 and greater than or equal to 25 Value is generated by the program so does not need validation There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and
  47. 47. 47 Correct Question Answer The correct answer to the question String “x2-x-6” First Answer Choice An incorrect alternative answer to the question String “x2+x-6” Second Answer Choice An incorrect alternative answer to the question String “x2-x+6” Third Answer Choice An incorrect alternative answer to the question String “ x2+x+6” Question Topic The topic area the question is from String “Algebra ” Question Marks Amount of marks the question is worth Integer “5” Question Difficulty Difficulty ranking of each question Integer “1” Question Working The working out for each question to reach the correct answer String “(x*x)+ (x*-3) +(2*x) +(2*-3)” has a string length less than the save length limit There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and has a string length less than the save length limit There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and has a string length less than the save length limit. It must also be checked to make sure it is unique from all of the other answer choices There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and has a string length less than the save length limit. It must also be checked to make sure it is unique from all of the other answer choices There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and has a string length less than the save length limit. It must also be checked to make sure it is unique from all of the other answer choices There must be a presence check performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits dashes or punctuation marks, and has a string length less than the save length limit
  48. 48. 48 Question Image Path The path of the image that is attached to the question String Student Question Answer Quiz Taken The answer the student has selected String “C:Files My Pictures Triangle” “x2+x-6” Whether the quiz has been taken or not The score the student has achieved in the quiz The grade the student has achieved in the quiz Boolean “Yes" Integer “76” String “B” Time Class Name The time the user completed the quiz in The number of marks achieved in each topic area by each student individually The number of marks achieved in each topic area in the class as a whole. The Name of the Maths Class Class Set Student Score Student Grade Quiz Finish Time Student Topic Marks There must be a check performed to make sure that if a file path is entered it is valid, and the document type is valid There must be a presence check performed on this value to make sure it is not left empty Value is generated by the program so does not need validation Value is generated by the program so does not need validation Value is generated by the program so does not need validation Value is generated by the program so does not need validation Value is generated by the program so does not need validation Integer “11” Integer “150” Value is generated by the program so does not need validation String “11B” The set number of math class Integer “1” Old Password The current password of the user which is entered when the user wants to change their password String “yellow” New Password The password that the user wants to change to for logging in String “hippop otamus” Re Entered New Password The new password entered again for extra validation String “cardiga n” New Passwords Match Admin Username Used to check whether the new password matches the re-entered new password Username used to login as the admin Boolean “No” There must be a presence check performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty There must be a presence check performed on this value to make sure it is not left empty, and that it exactly matches the password saved in the file for that user There must be a presence check performed on this value to make sure it is not left empty. I will use regex to check that the string only contains upper and lower case letters, digits, dashes or underscores There must be a presence check performed on this value to make sure it is not left empty, and that it exactly matches the New Password value Value is generated by the program so does not need validation String “admin1 ” Admin Password Password used to secure admin login String “equatio n” Class Topic Marks None – a predetermined username entered during the creation of the program None – a predetermined password entered during the creation of the program

×