Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE NZQA Approved Internal Assessment Resource Digital Technologies Level 1 This resource supports assessment against: Achievement Standard 91076 version 4 Construct a basic computer program for a specified task Resource title: Create a Program for a Computer Game 3 credits This resource: Clarifies the requirements of the standard Supports good assessment practice Should be subjected to the school’s usual assessment quality assurance process Should be modified to make the context relevant to students in their school environment and ensure that submitted evidence is authentic Date version published by Ministry of Education February 2015 Version 3 Quality assurance status These materials have been quality assured by NZQA. To support internal assessment from 2015 NZQA Approved number A-A-02-2015-91076-02-4636 Authenticity of evidence Teachers must manage authenticity for any assessment from a public source, because students may have access to the assessment schedule or student exemplar material. Using this assessment resource without modification may mean that students’ work is not authentic. The teacher may need to change figures, measurements or data sources or set a different context or topic to be investigated or a different text to read or perform. This resource is copyright © Crown 2015 Page 1 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE Internal Assessment Resource Achievement Standard Digital Technologies 91076: Construct a basic computer program for a specified task Resource reference: Digital Technologies 1.46 v3 Resource title: Create a Program for a Computer Game Credits: 3 Teacher guidelines The following guidelines are supplied to enable teachers to carry out valid and consistent assessment using this internal assessment resource. Teachers need to be very familiar with the outcome being assessed by Achievement Standard Digital Technologies 91076.The achievement criteria and the explanatory notes contain information, definitions, and requirements that are crucial when interpreting the standard and assessing students against it. Context/setting This activity requires the student to construct a basic computer program for a computer game. Several approaches are possible when using this standard for assessment. Student planning is assessed: The plan is developed by the student and approved by the teacher in conjunction with Achievement Standard 91075 (DT 1.45). The students have been engaged in technological practice and are at the point where they have fully established the specifications or plan for a computer program and are ready to create it. These specifications or plan can be assessed against (brief development and prototyping) 91044 (1.1) and 91047 (1.4) Technology Achievement Standards. Student planning is not assessed: The plan is developed by the teacher and class together. An example abstract plan can be found in Student Resource A that accompanies this assessment activity. The teacher may develop this plan further with the class. The plan is developed by the teacher and given to the class. In all cases ensure that the plan for the basic computer game program specifies: variables, assignment and their data types procedural structure that combines predefined actions with sequence, selection and iteration control structures input from a user, sensors, or other external source input test cases Note: It is expected that the plan will evolve as programming takes place however the plan is not assessed as part of this activity. This resource is copyright © Crown 2015 Page 2 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE Prior learning Before being given this task, ensure that your students have had ample opportunity to practise using the programming language that they will use for this purpose. Students need to have practised writing a program, working with an abstract plan, and testing and debugging to ensure that the program is correct on all inputs – expected, boundary, and invalid. Students need to know how to use: variables involving at least two types of information (e.g. numeric, characters, text) and assign data to the variables sequence, selection and iteration control structures predefined actions (e.g. predefined methods, functions, or procedures) input from a user, sensors, or other external source. Students must also know how to: select explanatory variable names set code out clearly and concisely document the program with succinct comments that explain and justify decisions and accurately describe code function and behaviour make a program more flexible and robust by using actions, conditions and control structures effectively and/or checking input data for validity, correctly handling expected, boundary and invalid inputs, and using constants, variables and derived values in place of literals write an effective procedural structure where each individual control structure has a clear and well defined purpose within the structure of the program, and which has no unnecessary duplication or repetition. Conditions The teacher will specify the language in which the students construct the program. The programming language could be graphical, drag-and-drop or text based. The language chosen must support the required data types and procedural structures, and good comment facilities. This is an individual assessment activity. It is recommended that students be given 6 weeks of in-class time to complete it. (This timeframe includes teaching learning and assessment.) Resource requirements A programming development environment for a programming language with an appropriate text editor, compiler or interpreter, or integrated development environment (IDE). IDE’s such as Scratch or Game Maker are suitable for this task. A different task might require additional specialised resources, such as soundrecording equipment, image-manipulation software, robots or other electronics. Additional information This standard requires you to make judgements about the ways in which the student has constructed their program, as well as about the quality of the finished program. For example, you are required to judge (for Merit) whether the student has shown “independence and accuracy” in the construction of their program. Independence relates to the student’s manner of working. Specifically, do they get on and make This resource is copyright © Crown 2015 Page 3 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE their program with minimal advice and guidance from their teacher and without relying on help from fellow students? Some evidence will come from classroom observation and from conferencing with the student. You must be able to justify such judgements with evidence e.g. notes that you have made. Accuracy can be measured within the program (e.g. the student has accurately named their variables and used comments which accurately describe code function and behaviour) and in the way the student has tested and debugged their program etc. The criterion for Excellence relates to the efficiency of the basic computer program. Evidence for efficiency can be found within the program. For example the program code will be set out concisely and documented with succinct comments that explain and justify decisions. Efficient programming will also include comprehensive testing procedures. Independence Ensure that all students know what “construct with independence” means in practice. Achieved – construct (with some guidance) “With some guidance” means the teacher (or peers) may: respond to student-initiated requests for assistance, for example, where to find suitable resources, what tool to use sometimes prompt the student to, for example, consider other options, think about the wisdom of a choice, reread the brief. The teacher (or peers) may NOT, however: make any decisions for students assist a student in any hands-on way (do any part of the project for them) respond to frequent questions or requests for step-by-step guidance. Merit – construct “with independence and accuracy” “With independence” means the student: owns the programming (takes responsibility for achieving a quality program) is well organised, self-starting, self-managing does their own decision-making books any equipment/machines they need in timely fashion brings required materials/resources in timely fashion manages their files carefully so that they are easily retrieved at the start of the next period carries out appropriate checking and testing and takes corrective action as necessary recognises and deals with issues promptly instead of allowing them to blow the timeline is always able to describe what they are doing, why, and where their programming is up to. It does NOT mean that the student: is unable to ask for help with technical or software issues (for example, faulty equipment). This resource is copyright © Crown 2015 Page 4 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE Excellence – construct “with independence and accuracy” There is no step-up on “independence and accuracy” for Excellence – see Merit. This resource is copyright © Crown 2015 Page 5 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR STUDENT USE Internal Assessment Resource Achievement Standard Digital Technologies 91076: Construct a basic computer program for a specified task Resource reference: Digital Technologies 1.46 v3 Resource title: Create a Program for a Computer Game Credits: 3 Achievement Construct a basic computer program for a specified task. Achievement with Merit Skilfully construct a basic computer program for a specified task. Achievement with Excellence Efficiently construct a basic computer program for a specified task. Student instructions Introduction This assessment task requires you to construct a basic computer game program using the plan you have developed or has been supplied by your teacher. This task gives specific examples for an Asteroids Game. However, you may have developed your game idea and program plan as part of technological practice or your teacher may have specified a different game idea and program plan. Your teacher will specify the language or IDE in which you construct your computer game program. You will be assessed on how skilfully you construct the program and the efficiency of the program. The criterion for Excellence relates to the efficiency of the constructed basic computer program. The evidence for efficiency can be found within the program e.g. constructing a flexible and robust program, using an effective procedural structure that constitutes a well-structured logical solution to the task, comprehensively testing the program with expected, boundary and invalid input. See Student Resource A for further clarification of these terms. This is an individual assessment activity. You will have 6 weeks of in-class and outof-class time for teaching, learning and assessment. Teacher note: Adapt the time allowed and the format of the assessment to meet the needs of your students. Task Teacher note: Below is a set of generic requirements for a basic computer game program. There is also an interpretation of these into a specific Asteroid computer game and a sample abstract plan. You should rework these requirements to suit your particular context or game idea. Example of specifications for a basic computer game program Using a plan (provided by the teacher or one you have developed) to construct a basic computer game program that includes: This resource is copyright © Crown 2015 Page 6 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR STUDENT USE a variety of variables (e.g. score, health, lives, can_move) storing at least two types of information (e.g. number, boolean) assignment of variables (e.g. set the score to 0) predefined actions (e.g. move free, move steps, switch to costume, change sprite) user input (e.g. Keyboard Left, Space) sequence Control Structure (e.g. the order of your programming commands when the start game button is clicked) selection Control Structure (e.g. conditional statements such as if, then, else or when event occurs, wait until, alarms, test variable) iteration Control Structure (e.g. loops such as repeat or step event) accurate and explanatory variable names (e.g. playerName, spr_SpaceShip) comprehensive testing and debugging to identify and fix errors in the program’s functionality (e.g. does the space ship shoot bullets when the space bar is pressed). Example of specifications for a particular Asteroids computer game program Using a plan (provided by the teacher or one you have developed) construct a basic Asteroids computer game program which includes: a title screen with playing instructions and a start button a spaceship, bullets and at least two asteroids initialisation code for the appearance and locations of the spaceship, bullets and asteroids on game start at least two variables (e.g. pilot_name, score) comprised of multiple data types (e.g. String, Int) code to assign values to variables (e.g. set score to 0 on game start) player input (e.g. keyboard presses to move the spaceship and fire bullets at the asteroids) collisions between asteroids and bullets, and between asteroids and the spaceship with related effects on score and lives increasing difficulty as the game progresses (e.g. the asteroids move faster, or more asteroids appear) feedback to the player on their performance on a ‘Game Over’ screen a way for Asteroids to continue moving (e.g. wrap around screen, bounce off edge) a way for the spaceship to keep in game play when it hits the edge of the screen (e.g. wrap around screen, bounce off edge). As you code your program for your asteroid game be sure that your program contains: predefined actions (e.g. move free, move steps, switch to costume, change sprite) sequence control Structure (e.g. the order of your programming commands when the start game button is clicked) selection control Structure (e.g. conditional statements such as if, then, else or when event occurs, wait until, alarms, test variable) This resource is copyright © Crown 2015 Page 7 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR STUDENT USE iteration control Structure (e.g. loops such as repeat or step event) accurate and explanatory variable names and object names (e.g. pilot_name, spr_SpaceShip). Throughout the development of your program ensure that you are comprehensively testing and debugging to identify and fix any errors in the program’s functionality (e.g. test to check whether the score always increases by the correct amount when a bullet hits an asteroid, the score variables reset when all lives are used making the game ready for a new round). It is suggested that you utilise others to test your game throughout the development. Comment your program code so that the function and behaviour of each part of the program is clear. Use succinct comments which explain and justify decisions (e.g. Set the move speed to a negative value. It means I don't need to use two variables to store a positive and negative value for thrust-speed). Use explanatory variable names (e.g. pilotName or pilot_name). Set out the program code clearly and concisely so that it is easy to read and does not contain unnecessary duplication. To achieve with Merit you will need to demonstrate independence when constructing your plan and ensure that you specify a procedural structure that results in a sequence of actions that correctly performs the task and has no unintended behaviour or consequences. To demonstrate an efficient program, ensure you have an effective procedural structure where each individual control structure has a clear and well defined purpose within the structure of the program, and which has no unnecessary duplication or repetition and is flexible and robust (e.g. The program uses a controller object, so that all variables can be initialised in one script and in one location. This means the program is more efficient to maintain and debug). Follow the testing schedule that you created in your plan to ensure that your program works correctly on all inputs – expected, boundary, and exceptional. Hand in your final program. This resource is copyright © Crown 2015 Page 8 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR STUDENT USE Student Resource A: Abstract program plan for an Asteroid game Variables Some example variables required could be: asteroid_speed lives number_of_asteroids pilot_name score. Main program structure (Specific procedural details such as sequence, selection, iteration control structures and use of predefined actions should be determined by the student.) show introduction screen with instructions on how to play the game and a startup button ask for the pilot’s name (i.e. player name) when start button is clicked: initialise the appearance and locations of the spaceship, bullets and asteroids the starting score and number of lives should be displayed on the screen asteroids should start to move around the screen when an asteroid hits the edge of the screen, it should bounce off the edge or wrap to the opposite side of the screen when the player uses the space bar the bullets should shoot at the asteroids to destroy them in order to prevent them from hitting the space ship when a bullet collides with an asteroid the score should increase and the asteroid should be destroyed (disappear) when the left or right arrow keys are pressed the space ship should rotate in the correction direction when the up arrow is pressed the spaceship should move around the screen in the direction the spaceship is facing the lives should decrease if the asteroid collides with the spaceship if the pilot shoots all the asteroids, the difficulty should increase by increasing the speed of the asteroid and/or adding more asteroids and a new round (level) should begin the game should end when the pilot has lost all the available lives a game over screen should appear which gives feed back to the player on their game performance. Example input test cases Check to determine if: the arrow keys rotate the ship in the right direction the game ends when the number of lives reaches 0 the program still functions if two arrow keys are pressed at the same time. This resource is copyright © Crown 2015 Page 9 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE Assessment schedule: Digital Technologies 91076 Create a Program for a Computer Game Evidence/Judgements for Achievement Evidence/Judgements for Achievement with Merit Evidence/Judgements for Achievement with Excellence The student has constructed a basic computer program for a specified task. The student has skilfully constructed a basic computer program for a specified task. The student has efficiently constructed a basic computer program for a specified task. The student has, with guidance: The student has: The student has: implemented a plan for a basic program in a suitable programming language The student implemented the plan for the Asteroids game using Scratch to meet the specifications. The student’s program includes: – at least two variables types (e.g. pilot_name - String and score - Integer) – predefined methods (e.g. turn X degrees, move X steps) – user input (e.g. when left key pressed) – sequence (e.g. go to spaceShip, point in direction spaceShip, show) – selection (e.g. if touching asteroid, else) – iteration (e.g. repeat 20, move 5 steps) set out the program code clearly and documented the program with comments The student has set out the scripts clearly and placed them in a logical order within the Scripts window. The student has included comments for each of their main scripts. tested and debugged the program to ensure that it works on a sample of expected inputs. This resource is copyright © Crown 2015 independently implemented the plan for a basic program in a suitable programming language that uses a procedural structure with wellchosen actions, conditions and control structures independently implemented the plan for a basic program in a suitable programming language that uses a procedural structure with wellchosen actions, conditions and control structures The student independently implemented the plan for the Asteroids game using Scratch to meet specifications. The student independently implemented the plan for the Asteroids game using Scratch to meet specifications. The student’s program includes: The student’s program includes: – at least two variables types (e.g. pilot_name - String and score - Integer) – at least two variables types (e.g. pilot_name - String and score - Integer) – predefined methods (e.g. turn X degrees, move X steps) – predefined methods (e.g. turn X degrees, move X steps) – user input (e.g. when left key pressed) – user input (e.g. when left key pressed) – sequence (e.g. go to spaceShip, point in direction spaceShip, show) – sequence (e.g. go to spaceShip, point in direction spaceShip, show) – selection (e.g. if touching asteroid, else) – selection (e.g. if touching asteroid, else) – iteration (e.g. repeat 20, move 5 steps) – iteration (e.g. repeat 20, move 5 steps) The procedural structure of the student’s program demonstrates well-chosen actions, conditions and control structures. For example: The procedural structure of the student’s program demonstrates well-chosen actions, conditions and control structures. For example: – The program uses one script for the asteroids which initializes their start position, number and direction. This script uses the built-in randomisation function to – The program uses one script for the asteroids which initializes their start position, number and direction. This script uses the built-in randomisation function to Page 10 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE The Asteroids game functions correctly in normal game play. give more realistic movement to the game and make it more challenging as the asteroids don’t all start moving in the same direction. The student has checked that the game works correctly on expected inputs (e.g. checks that when the space bar is pressed a bullet fires from the spaceship, or when the left arrow key is pressed it rotates the ship to the left). This description relates to only part of what is required, and is indicative only. give more realistic movement to the game and make it more challenging as the asteroids don’t all start moving in the same direction. – The program uses the join function to join variables together so that the player feedback is displayed more naturally, rather than staggered in separate speech bubbles. – The program uses the join function to join variables together so that the player feedback is displayed more naturally, rather than staggered in separate speech bubbles. – The program uses the > and < operators to check the position of the spaceship and "wrap" it around the screen, instead of simply having it stop at the edge. – The program uses the > and < operators to check the position of the spaceship and "wrap" it around the screen, instead of simply having it stop at the edge. documented the program with variable names and comments that accurately describe code function and behaviour The student has set out the scripts clearly and placed them in a logical order within the Scripts window. The student’s program has used actions, conditions, and control structures to make the program more flexible and robust. For example: The student has used accurate variable names which describe the variable’s purpose within the program and has used a consistent naming convention such as underscores or camelCase (e.g. number_of_asteroids, asteroid_speed or numberOfAsteroids, asteroidSpeed). The student has included comments that accurately describe the function and behaviour of their Scripts (e.g. The wrapDectection script is called when the game starts and constantly checks to see if the player is touching the edge of the screen. If touching edge is true, then the player wraps around the screen). tested and debugged the program in an organised way to ensure that it works on expected and boundary inputs. The student tested the program incrementally This resource is copyright © Crown 2015 constructed a basic program which uses actions, conditions and control structures effectively to increase the flexibility and robustness of the program The program contains a script to initialise the variables that pertain to difficulty when the player selects the difficulty (Easy or Hard), instead of starting all players at the same level. The program uses a controller object, so that all variables can be initialised in one script and in one location. Correct handling of expected, boundary and invalid inputs or checking input data for validity. This means the program is more efficient to maintain and debug. used an effective procedural structure that results in a well-structured, logical solution to the task The procedural structure of the student’s Asteroids game uses control structures with a well-defined purpose and contain no Page 11 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE throughout the development of the Asteroids game program (e.g. the student tested the startGame script to ensure score, lives, asteroid and space ship placement are initialised correctly before proceeding to the next stage of development). unnecessary duplication or repetition. For example: – All elements of the program which are dependent upon checking the boolean variable "canMove" are in one script. Thus, “canMove” is only checked only one time every step. The program is more efficient because it is not checking the same variable in three different scripts (wrap detection, collision detection, input detection). The student tested expected inputs as well as boundary cases. For example, the student tested: – that when the space bar is pressed a bullet fires from the spaceship, or when the left arrow key is pressed it rotates the ship to the left. – The collision detection for the spaceship uses a well-constructed OR expression to detect collisions with any asteroid and perform the necessary actions upon collision, instead of using nested if statements for each individual asteroid with resulting redundant code to perform the necessary actions upon collision. – that the game functions as expected when the number of lives equals 0 and lives are not allowed to reach a negative number. This description relates to only part of what is required, and is indicative only. set out the program code concisely and documented the program with succinct comments that explain and justify decisions The student has set out the scripts clearly and placed them in a logical order within the Scripts window. The student has used accurate variable names which describe the variable’s purpose within the program and has used a consistent naming convention such as underscores or camelCase (e.g. number_of_asteroids, asteroid_speed or numberOfAsteroids, asteroidSpeed). The student has included succinct comments that explain and justify decisions (e.g. If the spaceship is touching any asteroid, this Boolean statement returns true indicating that a collision has occurred, which is more efficient than using This resource is copyright © Crown 2015 Page 12 of 13 Internal assessment resource Digital Technologies 1.46 v3 for Achievement Standard 91076 PAGE FOR TEACHER USE nested if statements since the result of any collision is the same). comprehensively tested and debugged the program in an organised and time-effective way to ensure the program is correct on expected, boundary and invalid inputs. The student used a testing plan to test the program incrementally throughout the development of the Asteroids game program (e.g. the student tested the startGame script to ensure score, lives, asteroid and space ship placement are initialised correctly before proceeding to the next stage of development). The student had players test the Asteroids game throughout the development of the program (not just at the end). The student tested expected inputs as well as boundary cases and invalid inputs. For example, the student tested: – that when the space bar is pressed a bullet fires from the spaceship, or when the left arrow key is pressed it rotates the ship to the left. – that the game functions as expected when the number of lives equals 0 and lives are not allowed to reach a negative number. – that when the escape key and up arrow are pressed at the same time, the game functions as intended and ignores the invalid escape key. This description relates to only part of what is required, and is indicative only. Final grades will be decided using professional judgement based on a holistic examination of the evidence provided against the criteria in the Achievement Standard. This resource is copyright © Crown 2015 Page 13 of 13