Teacher tool: blow away rubric (#5511)
* blow away validator plans init * gave descriptions to catalog entries that needed it * hide all catalog entries for blow away criteria * rubric for blow away tutorial now in tutorial card * reworded some criteria, added project completeness criteria * got rid of no catalog entry comments * reworded more criteria, and reorderd some criteria to better match the flow * wrap positions in parenthesis like a point * remove descriptions for forever, repeat loops * reword led lit criteria Co-authored-by: Thomas Sparks <69657545+thsparks@users.noreply.github.com> * rewording for project completeness criteria Co-authored-by: Thomas Sparks <69657545+thsparks@users.noreply.github.com> * fixed spelling, hideincatalog set to true for project completeness check * reword the plot, unplot criteria * get rid of truthy * refactored blow away blocks exist validator plans to have the new pattern * added the blow away rubric card to the home page * removed comment on led is on condition --------- Co-authored-by: Thomas Sparks <69657545+thsparks@users.noreply.github.com>
This commit is contained in:
Родитель
7b6ee0640b
Коммит
74b1e41f2f
|
@ -1,5 +1,11 @@
|
|||
{
|
||||
"cards": [
|
||||
{
|
||||
"cardType": "rubric-resource",
|
||||
"cardTitle": "Blow Away",
|
||||
"imageUrl": "/static/mb/projects/blow-away.png",
|
||||
"rubricUrl": "/teachertool/rubrics/blow-away-mbv2.json"
|
||||
}
|
||||
],
|
||||
"cards.hidden": [
|
||||
{
|
||||
|
@ -26,12 +32,6 @@
|
|||
"imageUrl": "/static/mb/projects/clap-lights.png",
|
||||
"rubricUrl": "/teachertool/rubrics/clap-lights-mbv2.json"
|
||||
},
|
||||
{
|
||||
"cardType": "rubric-resource",
|
||||
"cardTitle": "Blow Away",
|
||||
"imageUrl": "/static/mb/projects/blow-away.png",
|
||||
"rubricUrl": "/teachertool/rubrics/blow-away-mbv2.json"
|
||||
},
|
||||
{
|
||||
"cardType": "rubric-resource",
|
||||
"cardTitle": "Cat Napping",
|
||||
|
|
|
@ -88,6 +88,108 @@
|
|||
"template": "Show an icon on display when a condition is met",
|
||||
"description": "The project shows an icon on the display when a condition is met",
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "850DBBDE-71BA-48D2-A1E4-7AC19716C976",
|
||||
"use": "get_sound_level",
|
||||
"template": "Sound level is detected in the program",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "F82F6BB4-2B1C-4CFF-92BA-65CE63DD6399",
|
||||
"use": "soundlevel_greater_than_check",
|
||||
"template": "Check that the sound level is greater than some number",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "B835FAA0-8CA6-4E4A-95B4-7FC6D15231BD",
|
||||
"use": "soundlevel_gt_condition",
|
||||
"template": "If a detected sound level is greater than some number, then two variables are set to random values",
|
||||
"description": "An if statement checks a detected sound level is greater than a predetermined number. If this is true, variables 'row' and 'col' are set to random values",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "CCA30B9D-4ED7-4916-94AF-050FC473FAA1",
|
||||
"use": "col_variable_set_random",
|
||||
"template": "Variable named 'col' is set to a random value",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "162222FB-8E2B-4131-9EA3-EC6B83DDAFB2",
|
||||
"use": "row_variable_set_random",
|
||||
"template": "Variable named 'row' is set to a random value",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "01A65046-D4BE-44B6-8273-7A878A71B3D0",
|
||||
"use": "point_bool_check",
|
||||
"template": "Check that an LED is lit on the screen",
|
||||
"description": "At the spot ('col', 'row') on the LED screen, the LED is on",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "E3286B6D-5BEB-43EC-B246-C956AAC34C3E",
|
||||
"use": "unplot_vars_used",
|
||||
"template": "Turn off an LED at point ('col', 'row')",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "46AFEDA3-35CB-4041-BEC4-53C0D29E57BA",
|
||||
"use": "col_add_num",
|
||||
"template": "Sum the value of the 'col' variable and a given number",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "6BA59761-9464-4C8D-9D8F-E8985273FB92",
|
||||
"use": "plot_vars_used",
|
||||
"template": "Turn on an LED at point ('col' + 1, 'row')",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "1B331451-081E-4F26-9CB6-F5A649432BF9",
|
||||
"use": "repeat_loop_used",
|
||||
"template": "Repeat loop is used",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "A4F05FAB-72F2-48F5-8E33-7AE2CBB6CD43",
|
||||
"use": "forever_used",
|
||||
"template": "Forever loop is used",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "5934E4C6-7AE4-46A4-8F92-99101987D064",
|
||||
"use": "show_icon_on_start",
|
||||
"template": "Show an icon on the LED screen when the program starts",
|
||||
"description": "An icon block is used inside the on start block",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "0B2BC680-D79D-42C8-BA13-B6B189E2BF7D",
|
||||
"use": "point_condition",
|
||||
"template": "If an LED is on, turn it off and light up a different LED",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
},
|
||||
{
|
||||
"id": "ECC79C65-56DC-44A9-98FC-147F5EED87CC",
|
||||
"use": "blow_away_completeness",
|
||||
"template": "Project completeness",
|
||||
"description": "The project contains all the blocks required at the end of the tutorial",
|
||||
"hideInCatalog": true,
|
||||
"docPath": "/teachertool"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,4 +1,61 @@
|
|||
{
|
||||
"name": "Blow Away",
|
||||
"criteria": []
|
||||
"criteria": [
|
||||
{
|
||||
"catalogCriteriaId": "ECC79C65-56DC-44A9-98FC-147F5EED87CC",
|
||||
"instanceId": "fggyi4CNUVLjYUPUVwb84"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "5934E4C6-7AE4-46A4-8F92-99101987D064",
|
||||
"instanceId": "-3sSPpeXd-M2WaHObA1yq"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "A4F05FAB-72F2-48F5-8E33-7AE2CBB6CD43",
|
||||
"instanceId": "2H_lA-5kA1bpPhHitt_Gs"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "1B331451-081E-4F26-9CB6-F5A649432BF9",
|
||||
"instanceId": "Bw5GPuGHqfWG14AWmnvaY"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "B835FAA0-8CA6-4E4A-95B4-7FC6D15231BD",
|
||||
"instanceId": "IlpiBn6Tjn0mkjCrVGI0v"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "850DBBDE-71BA-48D2-A1E4-7AC19716C976",
|
||||
"instanceId": "rvzANbK3nhtd7dPcVBYF4"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "F82F6BB4-2B1C-4CFF-92BA-65CE63DD6399",
|
||||
"instanceId": "WGLq8LWXIjX_QCFVNqp0k"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "162222FB-8E2B-4131-9EA3-EC6B83DDAFB2",
|
||||
"instanceId": "rU4BPrH6Nahnv6J39YfMH"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "CCA30B9D-4ED7-4916-94AF-050FC473FAA1",
|
||||
"instanceId": "RMO6vzSM23tAFMI6gXcZ9"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "0B2BC680-D79D-42C8-BA13-B6B189E2BF7D",
|
||||
"instanceId": "5xPrZDcNRg9_uafq1Zx6z"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "01A65046-D4BE-44B6-8273-7A878A71B3D0",
|
||||
"instanceId": "zZ2W7pPE5UPN0iGeXtvf2"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "E3286B6D-5BEB-43EC-B246-C956AAC34C3E",
|
||||
"instanceId": "GYTTG8c1fw0TEp4YqVsQD"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "6BA59761-9464-4C8D-9D8F-E8985273FB92",
|
||||
"instanceId": "EfcUfpne2r6IO1Vu1tzJ3"
|
||||
},
|
||||
{
|
||||
"catalogCriteriaId": "46AFEDA3-35CB-4041-BEC4-53C0D29E57BA",
|
||||
"instanceId": "GgG4fod3VaXUTGYbW7Utj"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -342,6 +342,282 @@
|
|||
"childValidatorPlans": ["show_icon_on_screen"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "get sound level",
|
||||
"name": "get_sound_level",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_get_sound_level",
|
||||
"count": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "sound level greater than number",
|
||||
"name": "soundlevel_greater_than_check",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "OP",
|
||||
"fieldValue": "GT",
|
||||
"blockType": "logic_compare",
|
||||
"childValidatorPlans": ["get_sound_level", "math_num_exists"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "variable with name col is set to random number",
|
||||
"name": "col_variable_set_random",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "VAR",
|
||||
"fieldValue": "col",
|
||||
"blockType": "variables_set",
|
||||
"childValidatorPlans": ["device_random_used"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "variable with name row is set to random number",
|
||||
"name": "row_variable_set_random",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "VAR",
|
||||
"fieldValue": "row",
|
||||
"blockType": "variables_set",
|
||||
"childValidatorPlans": ["device_random_used"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "variable with name col is accessed",
|
||||
"name": "col_variable_accessed",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "VAR",
|
||||
"fieldValue": "col",
|
||||
"blockType": "variables_get"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "variable with name col is accessed",
|
||||
"name": "row_variable_accessed",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "VAR",
|
||||
"fieldValue": "row",
|
||||
"blockType": "variables_get"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "sound level check in if statement wtih two variables set blocks",
|
||||
"name": "soundlevel_gt_condition",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "controls_if",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["soundlevel_greater_than_check", "row_variable_set_random", "col_variable_set_random"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "point block used for boolean check",
|
||||
"name": "point_bool_check",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_point",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["row_variable_accessed", "col_variable_accessed"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "unplot block filled with row, col variables",
|
||||
"name": "unplot_vars_used",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_unplot",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["col_variable_accessed", "row_variable_accessed"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "variable with name col is accessed",
|
||||
"name": "col_add_num",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blockFieldValueExists",
|
||||
"fieldType": "OP",
|
||||
"fieldValue": "ADD",
|
||||
"blockType": "math_arithmetic",
|
||||
"childValidatorPlans": ["col_variable_accessed", "math_num_exists"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "plot block filled with math add between row, num; and col variables",
|
||||
"name": "plot_vars_used",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_plot",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["col_add_num", "row_variable_accessed"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "point block in if statement with unplot, plot in its body",
|
||||
"name": "point_condition",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts":[
|
||||
{
|
||||
"blockId": "controls_if",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["point_bool_check" , "unplot_vars_used", "plot_vars_used"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "repeat loop nests two conditions in its body",
|
||||
"name": "repeat_loop_nested_conditions",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "controls_repeat_ext",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["point_condition" , "soundlevel_gt_condition"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "forever loop is in the program",
|
||||
"name": "forever_used",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_forever",
|
||||
"count": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "repeat loop is in the program",
|
||||
"name": "repeat_loop_used",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "controls_repeat_ext",
|
||||
"count": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "show icon on start",
|
||||
"name": "show_icon_on_start",
|
||||
"threshold": 1,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "pxt-on-start",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["show_icon_on_screen"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
".desc": "checks that the program aligns to the end tutorial program",
|
||||
"name": "blow_away_completeness",
|
||||
"threshold": 2,
|
||||
"checks": [
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "device_forever",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["repeat_loop_nested_conditions"]
|
||||
},
|
||||
{
|
||||
"validator": "blocksExist",
|
||||
"blockCounts": [
|
||||
{
|
||||
"blockId": "pxt-on-start",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"childValidatorPlans": ["show_icon_on_screen"]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче