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:
Sarah Rietkerk 2024-03-06 11:45:39 -08:00 коммит произвёл GitHub
Родитель 7b6ee0640b
Коммит 74b1e41f2f
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
4 изменённых файлов: 443 добавлений и 8 удалений

Просмотреть файл

@ -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"]
}
]
}
]
}