diff --git a/css/bjc.css b/css/bjc.css index f615ee4943..9fb836e518 100755 --- a/css/bjc.css +++ b/css/bjc.css @@ -326,7 +326,7 @@ img.noshadow { padding: 1em; } -.forYouToDo:before, .forYouToDoHeader, .ifTime:before, .dialogue:before, .takeItFurther:before, .takeItTeased:before, .takeNote:before, .narrower:before, .narrowblue:before, .narrowpurple:before, .endnote > div:not(.sidenote):not(.sidenoteBig):not(.sideHOM):not(.sideHOMbig):not(.todo):not(.comment):not(.commentBig):not(.takeNote):not(.collapse):not(.collapsing):not(.takeItFurther):not(.endnote):not(.vocabFullWidth):not(.vocabSummary):not(.pseudop), .time:before { /* Shared Heading Formatting */ +.forYouToDo:before, .forYouToDoHeader, .ifTime:before, .dialogue:before, .takeItFurther:before, .takeItTeased:before, .takeNote:before, .narrower:before, .narrowblue:before, .narrowpurple:before, .endnote > div:not(.sidenote):not(.sidenoteBig):not(.sideHOM):not(.sideHOMbig):not(.todo):not(.comment):not(.commentBig):not(.takeNote):not(.collapse):not(.collapsing):not(.takeItFurther):not(.endnote):not(.vocabFullWidth):not(.vocabSummary):not(.pseudop):not(.bordered-table), .time:before { /* Shared Heading Formatting */ font-size: 18px; font-weight: bold; line-height: 2.5em; @@ -660,6 +660,7 @@ table.videos td { .bordered-table > div {padding: 10px; border: solid 1px black;} .two-col {grid-template-columns: auto auto;} .three-col {grid-template-columns: auto auto auto;} +.four-col {grid-template-columns: auto auto auto auto;} /* Expansion Menus*/ a.expansion-menu h4, a.expansion-menu {color: #2a6496;} diff --git a/img/blocks/divide.png b/img/blocks/divide.png new file mode 100644 index 0000000000..c79639956b Binary files /dev/null and b/img/blocks/divide.png differ diff --git a/img/blocks/minus.png b/img/blocks/minus.png old mode 100755 new mode 100644 index 14f3812b07..9bbf1c07e6 Binary files a/img/blocks/minus.png and b/img/blocks/minus.png differ diff --git a/img/blocks/plus.png b/img/blocks/plus.png old mode 100755 new mode 100644 index bc78a46711..80d469cf85 Binary files a/img/blocks/plus.png and b/img/blocks/plus.png differ diff --git a/img/blocks/times.png b/img/blocks/times.png index 73deaced48..193c643afe 100644 Binary files a/img/blocks/times.png and b/img/blocks/times.png differ diff --git a/llab/script/curriculum.js b/llab/script/curriculum.js index 52ab172106..538448b6ea 100755 --- a/llab/script/curriculum.js +++ b/llab/script/curriculum.js @@ -43,8 +43,22 @@ llab.secondarySetUp = function() { // making ifTime and takeItFurther DIVs hide until clicked --MF, 2/9/18 $('div.ifTime').each(function(i) { - var divcontent = this.innerHTML; - this.innerHTML = " If There Is Time...
", divcontent, "
"); + let isVisible = Array.from(this.classList).indexOf('show') > -1; + let id = `hint-ifTime-${i}`; + this.innerHTML = ` + + If There Is Time... + +
+ ${this.innerHTML} +
`; + // Use class "ifTime show" to show by default. + // BS3 uses the 'in' class to show content, TODO: update this for v5. + if (isVisible) { + $(`#${id}`).addClass('in'); + $(this).removeClass('show'); + } }); $('div.takeItFurther').each(function(i) { var divcontent = this.innerHTML; diff --git a/middle-school/img/U1/60*5-reporting.png b/middle-school/img/U1/60*5-reporting.png new file mode 100644 index 0000000000..28715bf8c5 Binary files /dev/null and b/middle-school/img/U1/60*5-reporting.png differ diff --git "a/middle-school/img/U1/lab05/(20*5)\303\2674.png" "b/middle-school/img/U1/lab05/(20*5)\303\2674.png" new file mode 100644 index 0000000000..1f512340ca Binary files /dev/null and "b/middle-school/img/U1/lab05/(20*5)\303\2674.png" differ diff --git a/middle-school/img/U1/lab05/1010-binary-reporting.png b/middle-school/img/U1/lab05/1010-binary-reporting.png new file mode 100644 index 0000000000..4e3f59f067 Binary files /dev/null and b/middle-school/img/U1/lab05/1010-binary-reporting.png differ diff --git a/middle-school/img/U1/lab05/20*5.png b/middle-school/img/U1/lab05/20*5.png new file mode 100644 index 0000000000..cb78020e0b Binary files /dev/null and b/middle-school/img/U1/lab05/20*5.png differ diff --git a/middle-school/img/U1/lab05/239-decimal-reporting.png b/middle-school/img/U1/lab05/239-decimal-reporting.png new file mode 100644 index 0000000000..6a963bc8c7 Binary files /dev/null and b/middle-school/img/U1/lab05/239-decimal-reporting.png differ diff --git "a/middle-school/img/U1/lab05/28-((20*5)\303\2674).png" "b/middle-school/img/U1/lab05/28-((20*5)\303\2674).png" new file mode 100644 index 0000000000..12451182ab Binary files /dev/null and "b/middle-school/img/U1/lab05/28-((20*5)\303\2674).png" differ diff --git a/middle-school/img/U1/lab05/28-.png b/middle-school/img/U1/lab05/28-.png new file mode 100644 index 0000000000..239a78751f Binary files /dev/null and b/middle-school/img/U1/lab05/28-.png differ diff --git a/middle-school/img/U1/lab05/bin-to-elec(dec-to-bin-10)-reporting.png b/middle-school/img/U1/lab05/bin-to-elec(dec-to-bin-10)-reporting.png new file mode 100644 index 0000000000..2d979a2f5a Binary files /dev/null and b/middle-school/img/U1/lab05/bin-to-elec(dec-to-bin-10)-reporting.png differ diff --git a/middle-school/img/U1/lab05/bin-to-elec-reporting.png b/middle-school/img/U1/lab05/bin-to-elec-reporting.png new file mode 100644 index 0000000000..37dea26492 Binary files /dev/null and b/middle-school/img/U1/lab05/bin-to-elec-reporting.png differ diff --git a/middle-school/img/U1/lab05/bin-to-elec.png b/middle-school/img/U1/lab05/bin-to-elec.png new file mode 100644 index 0000000000..cd6f6dc8cb Binary files /dev/null and b/middle-school/img/U1/lab05/bin-to-elec.png differ diff --git a/middle-school/img/U1/lab05/capacitors-1010.png b/middle-school/img/U1/lab05/capacitors-1010.png new file mode 100644 index 0000000000..e0def2c96f Binary files /dev/null and b/middle-school/img/U1/lab05/capacitors-1010.png differ diff --git a/middle-school/img/U1/lab05/capacitors.png b/middle-school/img/U1/lab05/capacitors.png new file mode 100644 index 0000000000..3a90b18938 Binary files /dev/null and b/middle-school/img/U1/lab05/capacitors.png differ diff --git a/middle-school/img/U1/lab05/dec-to-bin-300-reporting.png b/middle-school/img/U1/lab05/dec-to-bin-300-reporting.png new file mode 100644 index 0000000000..c8ee05e288 Binary files /dev/null and b/middle-school/img/U1/lab05/dec-to-bin-300-reporting.png differ diff --git a/middle-school/img/U1/lab05/dec-to-bin-60x5-reporting.png b/middle-school/img/U1/lab05/dec-to-bin-60x5-reporting.png new file mode 100644 index 0000000000..0c21dede2d Binary files /dev/null and b/middle-school/img/U1/lab05/dec-to-bin-60x5-reporting.png differ diff --git a/middle-school/img/U1/lab05/dec-to-bin.png b/middle-school/img/U1/lab05/dec-to-bin.png new file mode 100644 index 0000000000..fa329215d4 Binary files /dev/null and b/middle-school/img/U1/lab05/dec-to-bin.png differ diff --git "a/middle-school/img/U1/lab05/\303\2674.png" "b/middle-school/img/U1/lab05/\303\2674.png" new file mode 100644 index 0000000000..c335f78775 Binary files /dev/null and "b/middle-school/img/U1/lab05/\303\2674.png" differ diff --git a/middle-school/img/U1/nested-math-expression.png b/middle-school/img/U1/nested-math-expression.png new file mode 100644 index 0000000000..51dff47ede Binary files /dev/null and b/middle-school/img/U1/nested-math-expression.png differ diff --git a/middle-school/prog/bingo-caller.xml b/middle-school/prog/bingo-caller.xml new file mode 100644 index 0000000000..083314c804 --- /dev/null +++ b/middle-school/prog/bingo-caller.xml @@ -0,0 +1 @@ +data:image/png;base64,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data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==
ready?true
G:47,N:33,I:21,B:3,O:66,B:2trueB:1,B:4,B:5,B:6,B:7,B:8,B:9,B:10,B:11,B:12,B:13,B:14,B:15,I:16,I:17,I:18,I:19,I:20,I:22,I:23,I:24,I:25,I:26,I:27,I:28,I:29,I:30,N:31,N:32,N:34,N:35,N:36,N:37,N:38,N:39,N:40,N:41,N:42,N:43,N:44,N:45,G:46,G:48,G:49,G:50,G:51,G:52,G:53,G:54,G:55,G:56,G:57,G:58,G:59,G:60,O:61,O:62,O:63,O:64,O:65,O:67,O:68,O:69,O:70,O:71,O:72,O:73,O:74,O:75
\ No newline at end of file diff --git a/middle-school/prog/numbers-bits-electricity.xml b/middle-school/prog/numbers-bits-electricity.xml index 0f44adfc7f..86eccfd2f7 100644 --- a/middle-school/prog/numbers-bits-electricity.xml +++ b/middle-school/prog/numbers-bits-electricity.xml @@ -1 +1 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAABt0lEQVR4nO3Z0WmDYBSAUaELhBK6RHyqW2SAjBC6RdIlSsmy9rUvgWCEr9Jz4H+7XAQ/RHGYITTUF8D/JkBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiS1KMDP6/Xu+e3jfE7m2I5FAb4Mw93zF+bYjqcDnE/HVcNaYx/bIUBSiwP8ej/Mt2mc59Nxvk3jfJvGpwJccx/b4QlI6ukAv6fDqgGusY/t8BVMSoCkFt25193uoRDe9vtkju1Y/CfkobnLJZljOwRISoCkBEjK2zspAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGSEiApAZISICkBkhIgKQGS+gFhn8wtH3dTKQAAAABJRU5ErkJggg==data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAE10lEQVR4nO3dsYqUVxzG4XdmB0whSgoLSWMTENwQdDFEtggSCe5gDEJ2CEluIlcwdiltgrg2uQCbXEGUmCJeg52VYCFoGdhj4Qgrgn4f+cKc78zzwKkG9uVf/Ri2mAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACo0O40WQ75kux22P15KzkYcPNOkp/sAjAK02Q5S+5vJWWIN0vurwLxXlvJwSR5MNTu5PUNB3YBGIVpshwqCm9elwD/H7uz5KZdAEZBgNveBaBSXcLwy6dnyuH+Xrl36fxGBLjvvQIMQG9dwvDX5S9LWczLyxvfbESA+94rwAD01iUMDzcswH3vFWAAehNgAQZgDQRYgAFYAwEWYADW4GgYfr/4WTnc3ytlMe/1Hu99NcoAD3WvAAPQ29EwPLl2uXeMymJeDvf3Rhngoe4VYAB6OxqG7RPHy+0L58rdne233rPvrpSymJd/v7/6zmd3d7bLt6dPjTLAQ90rwAD05n/A//1eAQagNwEWYADWQIAFGIA1EGABBmANuoThj92dUhbz8vT61xsR4L73CjAAvXUJwycfHSt3ds6VLz4+uREB7nuvAAPQm98DbnsXgEoJcNu7AFRKgNveBaBSAtz2LgCVEuC2dwGolAC3vQtApQS47V0AKiXAbe8CUKlpspwmzweM7/MuAZ4l96bJswF3X0ySR3YBGIVpspwlt5KcGeLNklsdA/zrVvJbkrNDvEnyzyT52y4Ao7D6BvzBYA7991bhvznU7iT5c5I8sAvAKAhw27sAVEqA294FoFIC3PYuAJUS4LZ3AaiUALe9C0ClBLjtXQAqJcBt7wJQKQFuexeASglw27sAVEqA294FoFIC3PYuAPX6fPWGsrt6H3I+yYUBd39I8qNdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABr0CuNTgtMmr0SgAAAAAElFTkSuQmCC forward turn turnLeft setHeading doFaceTowards gotoXY doGotoObject doGlide changeXPosition setXPosition changeYPosition setYPosition bounceOffEdge xPosition yPosition direction doSwitchToCostume doWearNextCostume getCostumeIdx reportGetImageAttribute reportNewCostume reportNewCostumeStretched doSayFor bubble doThinkFor doThink changeEffect setEffect getEffect clearEffects changeScale setScale getScale show hide reportShown goToLayer goBack doScreenshot reportCostumes alert log playSound doPlaySoundUntilDone doPlaySoundAtRate doStopAllSounds reportGetSoundAttribute reportNewSoundFromSamples doRest doPlayNote doPlayFrequency doSetInstrument doChangeTempo doSetTempo getTempo changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq reportSounds clear down up getPenDown setColor setPenHSVA changePenHSVA getPenAttribute setBackgroundColor setBackgroundHSVA changeBackgroundHSVA changeSize setSize doStamp floodFill write reportPenTrailsAsCostume reportPentrailsAsSVG doPasteOn doCutFrom receiveInteraction receiveGo receiveKey receiveMessage receiveCondition doBroadcast doBroadcastAndWait getLastMessage doSend doWait doWaitUntil doForever doRepeat doUntil doFor doIf doIfElse reportIfElse doStopThis doRun fork evaluate doReport doCallCC reportCallCC doTellTo reportAskFor receiveOnClone createClone newClone removeClone doPauseAll doWarp reportTouchingObject reportTouchingColor reportColorIsTouchingColor reportAspect reportStackSize reportFrameCount reportYieldCount reportThreadCount doAsk reportLastAnswer getLastAnswer reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo doResetTimer reportTimer getTimer reportAttributeOf reportObject reportURL doSetGlobalFlag reportGlobalFlag reportDate reportGet reportAudio doSetVideoTransparency reportVideo reportLessThan reportGreaterThan reportEquals reportAnd reportOr reportNot reportBoolean reportJoinWords reportTextSplit reportLetter reportStringSize reportUnicode reportUnicodeAsLetter reportIsA reportIsIdentical reportJSFunction reportRandom doSetVar doChangeVar doShowVar doHideVar doDeleteAttr doDeclareVariables reportNewList reportNumbers reportCONS reportListItem reportCDR reportListAttribute reportListIndex reportConcatenatedLists reportReshape reportListContainsItem reportListIsEmpty doForEach reportMap reportKeep reportFindFirst reportCombine doAddToList doDeleteFromList doInsertInList doReplaceInList
\ No newline at end of file +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAABDRJREFUeF7t2L9L1AEYx/HHQVNQKmgQBFtqajlxCJwSGtyyQQKF3PsjGnQLW230Hwi6RqE5CAp1aIgiSPphCUnckRBXF10p0Wng1688n++Hd+t9+T7P8/m8qOt62u12O/hDAkkJ9AAwKXnGdhIAIBBSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMByAGUhMAYGr8DAcgBlITAGBq/AwHIAZSEwBgavwMLwRwZWUlNjc3u9Ib6O+Pm/PzMTw83Pns3vJybG9vdz3X19cXs3NzMTo6eiLPUWt1EigEcLxWi42Njc6V42dPx7OdL/sXP11bi1qt9vuzsbHYWF8/MI3DnivjfdWJn02PDfDJ1Ym4/OhxaQDLeB+1VieBwgBHPn2Ic6d64/ali7Hw/GV8bX2P+2+3oujfgCMf35f2vurEz6aFAU40d+JMX2/cunA+ll+9iW8/2nH3xevCACcan0t7H7VWJ4HCAPe+A5bxT+bf3xXLeF914mfTYwO8PjIcD95tlfYdsIz3UWt1Ejg2wH9PLfod8Kj/W/7f3OrEz6YAxEBqAoUAzs3Oxu7ubtfizUYj7iwt7f8OeGNmJlqtVtdzv36cXlhcjCuTk53Pyn4uNVGGHymBQgDr9XpMT093DVr/86Pz3g/RD+v1uHbAc6urq9Fut2NqaqrzjrKfO1ICPJyaAABT42c4ADGQmgAAU+NneCGAzWYzBgcHu9Lb+4/JwMBA57PDnms0Gp3Ph4aGTuQ5aq1OAoUAVuc8NlVPAIDqDZnvB0DzgtXPA6B6Q+b7AdC8YPXzAKjekPl+ADQvWP08AKo3ZL4fAM0LVj8PgOoNme8HQPOC1c8DoHpD5vsB0Lxg9fMAqN6Q+X4ANC9Y/TwAqjdkvh8AzQtWPw+A6g2Z7wdA84LVzwOgekPm+wHQvGD18wCo3pD5fgA0L1j9PACqN2S+HwDNC1Y/D4DqDZnvB0DzgtXPA6B6Q+b7AdC8YPXzAKjekPl+ADQvWP08AKo3ZL4fAM0LVj8PgOoNme8HQPOC1c8DoHpD5vsB0Lxg9fMAqN6Q+X4ANC9Y/TwAqjdkvh8AzQtWPw+A6g2Z7wdA84LVzwOgekPm+wHQvGD18wCo3pD5fgA0L1j9PACqN2S+HwDNC1Y/D4DqDZnvB0DzgtXPA6B6Q+b7AdC8YPXzAKjekPl+ADQvWP08AKo3ZL4fAM0LVj8PgOoNme8HQPOC1c/7CZAJrsaDyRJxAAAAAElFTkSuQmCC forward turn turnLeft setHeading doFaceTowards gotoXY doGotoObject doGlide changeXPosition setXPosition changeYPosition setYPosition bounceOffEdge xPosition yPosition direction doSwitchToCostume doWearNextCostume getCostumeIdx reportGetImageAttribute reportNewCostume reportNewCostumeStretched doSayFor bubble doThinkFor doThink changeEffect setEffect getEffect clearEffects changeScale setScale getScale show hide reportShown goToLayer goBack doScreenshot reportCostumes alert log playSound doPlaySoundUntilDone doPlaySoundAtRate doStopAllSounds reportGetSoundAttribute reportNewSoundFromSamples doRest doPlayNote doPlayFrequency doSetInstrument doChangeTempo doSetTempo getTempo changeVolume setVolume getVolume changePan setPan getPan playFreq stopFreq reportSounds clear down up getPenDown setColor setPenHSVA changePenHSVA getPenAttribute setBackgroundColor setBackgroundHSVA changeBackgroundHSVA changeSize setSize doStamp floodFill write reportPenTrailsAsCostume reportPentrailsAsSVG doPasteOn doCutFrom receiveInteraction receiveGo receiveKey receiveMessage receiveCondition doBroadcast doBroadcastAndWait getLastMessage doSend doWait doWaitUntil doForever doRepeat doUntil doFor doIf doIfElse reportIfElse doStopThis doRun fork evaluate doReport doCallCC reportCallCC doTellTo reportAskFor receiveOnClone createClone newClone removeClone doPauseAll doWarp reportTouchingObject reportTouchingColor reportColorIsTouchingColor reportAspect reportStackSize reportFrameCount reportYieldCount reportThreadCount doAsk reportLastAnswer getLastAnswer reportMouseX reportMouseY reportMouseDown reportKeyPressed reportRelationTo doResetTimer reportTimer getTimer reportAttributeOf reportObject reportURL doSetGlobalFlag reportGlobalFlag reportDate reportGet reportAudio doSetVideoTransparency reportVideo reportLessThan reportGreaterThan reportEquals reportAnd reportOr reportNot reportBoolean reportJoinWords reportTextSplit reportLetter reportStringSize reportUnicode reportUnicodeAsLetter reportIsA reportIsIdentical reportJSFunction reportRandom doSetVar doChangeVar doShowVar doHideVar doDeleteAttr doDeclareVariables reportNewList reportNumbers reportCONS reportListItem reportCDR reportListAttribute reportListIndex reportConcatenatedLists reportReshape reportListContainsItem reportListIsEmpty doForEach reportMap reportKeep reportFindFirst reportCombine doAddToList doDeleteFromList doInsertInList doReplaceInList
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAEbZJREFUeF7t3TGI3gcdx+HfXSLUQYpoA61CKdYWrAiNQxENDTiKzoIObkVd3Ds0BUF3bcHNRRd1rQ5WIkEXRQRBUQSdLLSiRasOxjtJWwRrzHvvvW/6uf8/T8BF3/e+9z7v7+WTNEc9GL8IECBAgACBN13g4E1fNEiAAAECBAiMADsCAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAICHCAbpIAAQIECAiwGyBAgAABAoGAAAfoJgkQIECAgAC7AQIECBAgEAgIcIBukgABAgQICLAbIECAAAECgYAAB+gmCRAgQICAALsBAgQIECAQCAhwgG6SAAECBAgIsBsgQIAAAQKBgAAH6CYJECBAgIAAuwECBAgQIBAInOkAn5+5dDTz0X26HM48f33m2oav+enDmUsz84d9bB/N3DuvbX7D7j5EfQ0CBAgsX+BMB/hw5srBzOMzc3lP1FePZ354NHPlVl/vcOZrxzMPH762vfOvo5mrBzO/OZp5wu7OnL4AAQIEViGwhAA/tU/p45mnTxDgpw42RHrb78nutmIeT4AAgXULCPBN3t/DGQHe8e5P8huOHSc8nQABAosWWHyAP3bvhfnOhy/OF3/521f/s+nXScJwlgO8pte76b3yvxMgQGDNAosP8FcuPjKfffD++d0rf5/3Pnd143u19ACv6fVufLM8gAABAisWWHyAn/ngI/PEe+6cAK/p9a74c+WlESBAYKOAAC/s74AFeONNewABAgQWISDAAjzV33kv4hPimyRAgMBtEhBgARbg2/Th8mUJECBwK4HFBPgLDz0wX/7Aw3P+8HCrd/S7L7w4H7/20/88Zyk/hHUnvN6t3kgPJkCAwMoEFhPg5y8/No9feMfW/NePjuaub39vcQG+E17v1m+mJxAgQGBFAosJ8H1vvWs+cd+FOXfw39/yZx549zz69rvnlX9enyd/8ev/eWt+9Mc/z89f/sviAnwnvN4VfY68FAIECGwtsJgA/79XtqafCj7JD0Ot6fVufa2eQIAAgRUJCPBN3syThHDbG9jX3z0L8LbyHk+AAIGzKSDAAuynoM/mZ9N3RYDAygUEWIAFeOUfci+PAIGzKbD4AD/9/ofmyfc9OD/508vzoe//eKPyvv5R8MahNzxgX7trer3bGno8AQIE1iSw+ADf/Zbz86n73zXPvfDi/P5v/9j43uwrhBuHblOA1/R6tzX0eAIECKxJYPEB3vbNWHqA1/R6t30tHk+AAIE1CQjwwv4OeNvjO8u/4dj2tXg8AQIE1iQgwALsh7DW9In2WggQWIyAAAuwAC/m4+obJUBgTQICLMACvKZPtNdCgMBiBARYgAV4MR9X3ygBAmsSEGABFuA1faK9FgIEFiMgwAIswIv5uPpGCRBYk8ASAvy5mblnT+gvHc88ezRz5VZf79zMt45nLh/MvHMfu8czfz2e+dXxzGN29yHqaxAgQGD5AksI8D3/mnlmH9TnZj5/PPPSpgAfznxpZt52NPPVfewezHx9Zq4fz3zkVl/vTtvdh62vQYAAgaUKnPkA34DdFMyT4h++/iffTV/vxv8d4cwcbHrcSXcPZn4wM4c3/lS9IcB31O5J/TyOAAECaxQQ4Ju8qwK826mf9Dccu614NgECBJYtIMAC/OoPYRV/4l/2R8d3T4AAgd0EBFiABXi3z5BnEyBA4FQCAizAAnyqj44nESBAYDcBARZgAd7tM+TZBAgQOJWAAAuwAJ/qo+NJBAgQ2E1AgAVYgHf7DHk2AQIETiUgwAIswKf66HgSAQIEdhMQYAEW4N0+Q55NgACBUwkIsAAL8Kk+Op5EgACB3QQEWIAFeLfPkGcTIEDgVAJnOsAzc/H1V/WzU726Nzzp/MylG//V9ZlrG77eozf+zVAzs5fdmfnkjX8X9Mx80+4+3klfgwABAssXOOsBXr6wV0CAAAECBG4iIMDOggABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAgLsBggQIECAQCAgwAG6SQIECBAgIMBugAABAgQIBAICHKCbJECAAAECAuwGCBAgQIBAICDAAbpJAgQIECAgwG6AAAECBAgEAgIcoJskQIAAAQIC7AYIECBAgEAgIMABukkCBAgQICDAboAAAQIECAQCAhygmyRAgAABAv8GTKJwlqbvqXAAAAAASUVORK5CYII=
\ No newline at end of file diff --git a/middle-school/student-pages/U1/L2/03-creating-editing-blocks.html b/middle-school/student-pages/U1/L2/03-creating-editing-blocks.html index 01bdc73045..1dd082df0c 100644 --- a/middle-school/student-pages/U1/L2/03-creating-editing-blocks.html +++ b/middle-school/student-pages/U1/L2/03-creating-editing-blocks.html @@ -51,7 +51,7 @@

Editing the Story Structure

-
+
  1. To make the color match, choose the "Lists" as the palette in the block editor.
    @@ -67,4 +67,4 @@

    Editing the Story Structure

    - \ No newline at end of file + diff --git a/middle-school/student-pages/U1/L3/02-visualizing-data.html b/middle-school/student-pages/U1/L3/02-visualizing-data.html index 3c6fbdcf62..efbca614dd 100644 --- a/middle-school/student-pages/U1/L3/02-visualizing-data.html +++ b/middle-school/student-pages/U1/L3/02-visualizing-data.html @@ -148,7 +148,7 @@

    Visualizing Your Results

  2. Talk with Your Partner How does it look? Is your data as clean as you hoped? You can still clean up data now, if the graph has made some messy data more obvious than before.
-
+
  1. If you want to customize your graph, you can use the sort data block to order the data so that the categories are ordered by largest to smallest values, smallest to largest values, or alphabetically.
    diff --git a/middle-school/student-pages/U1/L4/02-exploring-rgb-colors.html b/middle-school/student-pages/U1/L4/02-exploring-rgb-colors.html index 112bdb0f89..d39cf1c15a 100644 --- a/middle-school/student-pages/U1/L4/02-exploring-rgb-colors.html +++ b/middle-school/student-pages/U1/L4/02-exploring-rgb-colors.html @@ -29,7 +29,7 @@

    Exploring RGB Colors

  • The draw pixel 'list input slot' block takes a list of RGB values as input and draws a pixel with those values on the stage. Find the draw pixel block in the palette, drag it into the scripting area, snap the RGB pixel block into the open input slot, and run the script to draw a pixel with those color values.
    - draw pixel (RGB pixel, red: (85) green: (170) blue: (255)) + draw pixel (RGB pixel, red: (85) green: (170) blue: (255))
  • RGB pixels have integer color values from 0 to 255. Experiment with the input values to the RGB pixel block inside draw pixel, and see how it changes the pixel drawn on the stage.
    @@ -59,12 +59,12 @@

    Exploring RGB Colors

    Why can't you mix white or other light colors with the paint color from pixel block ?

    These aren't really pixels but are instead models of pixels made to show how pixels blend to make colors. They are only a third as bright as real pixels because the real pixels that display these model pixels on your screen each include only a third of their total possible brightness. (Real white pixels have 100% red, 100% green, 100% blue not just 100% red but no green or blue near a pixel with 100% green but no red or blue and a pixel with 100% blue but no red or green.)

    -

    This project also includes a paint color, red: () green: () blue () block that doesn't use model pixels at all and instead paints with the real RGB colors. Try it out. How can you make white or another light color?

    +

    This project also includes a paint color, red: () green: () blue () block that doesn't use model pixels at all and instead paints with the real RGB colors. Try it out. How can you make white or another light color?

    -

    -
  • +

    +
    -
    +
    1. Try to get other familiar colors like yellow, orange, gray, and brown.
    @@ -74,7 +74,7 @@

    Exploring RGB Colors

    Why do RGB colors mix differently than paint?

    You might be familiar with subtractive color mixing where the primary colors are red, yellow, and blue and you can get secondary colors by mixing red and yellow to make orange, yellow and blue to make green, and red and blue to make purple. Mixing paints is subtractive color mixing, but mixing light (like the images on a screen) is additive color mixing. In additive color mixing, the primaries are red, green, and blue, and the secondary colors that you get by mixing equal parts of the primaries are yellow, cyan, and magenta.

    -

    Additive color mixing (like on a screen) is called additive because you start with no light and add light to get colors. Subtractive color mixing (like with paint) is called subtractive because you start with white light (which includes all the colors), and the paint absorbs (takes away) all the colors except the one reflected back to your eye. (For example, when white light hits red paint, all colors are absorbed except red.)

    +

    Additive color mixing (like on a screen) is called additive because you start with no light and add light to get colors. Subtractive color mixing (like with paint) is called subtractive because you start with white light (which includes all the colors), and the paint absorbs (takes away) all the colors except the one reflected back to your eye. (For example, when white light hits red paint, all colors are absorbed except red.)

    More optional reading: What Is the Difference Between Additive and Subtractive Color Mixing?

    @@ -82,6 +82,6 @@

    Exploring RGB Colors

    In this activity, you used RGB color values to represent colors, used the list reported by the RGB pixel block as the input to the draw pixel block, and experimented with RGB color mixing.
    - + diff --git a/middle-school/student-pages/U1/L4/03-investigating-and-storing-images.html b/middle-school/student-pages/U1/L4/03-investigating-and-storing-images.html index f98a5380a3..535b40c1b9 100644 --- a/middle-school/student-pages/U1/L4/03-investigating-and-storing-images.html +++ b/middle-school/student-pages/U1/L4/03-investigating-and-storing-images.html @@ -56,7 +56,7 @@

    Checking Out Some Pixels

    Try Your Own Image

    These are optional extra steps for anyone who has access to a webcam or has a own photo of their own.

    -
    +
      Does it raise privacy issues for UCB if we have students saving photos of themselves in Snap? --MF, 8/14/21
    1. diff --git a/middle-school/student-pages/U1/L4/04-pixel-mapper.html b/middle-school/student-pages/U1/L4/04-pixel-mapper.html index 22ef6be648..9996d496f5 100644 --- a/middle-school/student-pages/U1/L4/04-pixel-mapper.html +++ b/middle-school/student-pages/U1/L4/04-pixel-mapper.html @@ -38,7 +38,7 @@

      Selecting a Single Color

    -
  • Talk with Your Partner How would you change your code to report just the blue color value?
  • +
  • Talk with Your Partner How would you change your code to report just the blue color value?
  • @@ -55,16 +55,16 @@

    Selecting a Single Color

    -
    +
    1. The color from pixel block uses the item of block to select the right item. To see how it works, right-click color from pixel, and select "edit…".
    - - + +
    I want to use the draw pixel block as a one-pixel segue into mapping channel edits over an image. --MF, 8/27/21
    - +

    Mapping over a List

    You can use map 'reporter input slot' over 'list input slot' to apply any block that works on one list item every item in a list.

    @@ -121,7 +121,7 @@

    Mapping over a List

    Map takes a function as input so it can apply that function to each item in the list. The empty input slot in the function (in this case, the pixel) is where each item from the list (in this case, the list of pixels) goes every time the function is applied.

    - +

    Consider a page break here. --MF, 9/13/21


    Playing with Filters

    @@ -142,7 +142,7 @@

    Playing with Filters

    Run the "Mystery Filter #1." If it's not using your favorite costume, you can change the costume in the use costume dropdown menu.
    use costume (parrots) with pixel filter ((map (RGB pixel, red: (color (red) from pixel 'empty list input slot') green: (0) blue: (0)) over (pixels of costume))) -
  • What does Mystery Filter #1 do?
  • +
  • What does Mystery Filter #1 do?
  • Image needs to be updated. --MF, 9/13/21

    Click for a description of what Mystery Filter #1 does.

    @@ -161,10 +161,10 @@

    Playing with Filters

    - +
    -
    +
    1. How could you make a filter that showed only the green or only the blue values?
    2. How could you make a filter that blocked only the red, green, or blue values?
    3. @@ -217,7 +217,7 @@

      Playing with Filters

    -
    +
    1. The scale up block won't change black pixels. Why not?
    @@ -227,7 +227,7 @@

    Playing with Filters

  • Try building an image filter of your own.
  • - +
    Cut for now. Maybe build into an extension activity... --MF, 9/13/21
    @@ -244,11 +244,11 @@

    Playing with Filters

    -
    +
    In this activity, you learned how to select a single pixel out of an image or and a single color value out of a pixel, how to apply a function to every element of a list using map, and used map to explore several filters that transformed each pixel in the image.
    - + diff --git a/middle-school/student-pages/U1/L5/01-numbers-bits-electricity.html b/middle-school/student-pages/U1/L5/01-numbers-bits-electricity.html deleted file mode 100644 index 2941d827f5..0000000000 --- a/middle-school/student-pages/U1/L5/01-numbers-bits-electricity.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - Unit 1 Lab 5: Storing and Securing Data, Activity 1 - - - -

    Numbers, Bits, and Electricity

    -
    - - -
    - - - - \ No newline at end of file diff --git a/middle-school/student-pages/U1/L5/01-numbers-computers.html b/middle-school/student-pages/U1/L5/01-numbers-computers.html new file mode 100644 index 0000000000..11c90ff9bc --- /dev/null +++ b/middle-school/student-pages/U1/L5/01-numbers-computers.html @@ -0,0 +1,144 @@ + + + + + + Unit 1 Lab 5: Storing and Securing Data, Activity 1 + + + +

    Numbers and Computers

    +
    In this activity, you will learn how to use Snap! like a calculator and how computers store numbers.
    + +

    Crunching Numbers

    +

    + Snap! can do calculations just like a calculator. You can even nest operations inside each other, and they will behave just like when you use parentheses in a math expression.
    + () + () + () - () + () × () + () / () +

    + +
    +
      +
    1. Open this project in Snap! and save it to your account.
    2. +
    3. + Build and run each of the following expressions: +
        +
      1. 20 × 5
      2. +
      3. (20 × 5) / 4
      4. +
      5. 28 - ((20 × 5) / 4)
      6. +
      +
    4. +
    +
    +

    Notice that for the expression (20 × 5) / 4, the first input to the () / (4) block is the output of the 20 × 5 block (that is, 100), so this expression means (20 × 5) / 4.

    +

    Similarly for the expression 28 - ((20 × 5) / 4), the second input to the (28) - () block is the output of the (20 × 5) / 4 expression (that is, 25), so this expression means 28 - ((20 × 5) / 4). You can imagine the rounded corners of the blocks to be parentheses.

    +
    +
      +
    1. Build Snap! expressions to calculate the following: +
        +
        55, 27
        +
      1. 5 × (7 + 4)
      2. +
      3. (11 – (48 / 6)) × 9
      4. +
      +
    2. +
    +
    +
    +
      +
    1. Build Snap! expressions to calculate the following: +
        +
        239, 10
        +
      1. (2 × (10^2)) + (3 × (10^1)) + (9 × (10^0))
      2. +
      3. (1 × (2^3)) + (0 × (2^2)) + (1 × (2^1)) + (0 × (2^0))
      4. +
      +
    2. +
    +
    + +

    Numbers Systems for Humans vs. Machines

    +
    CSP treatment of binary
    + +

    The numbers you use in daily life are decimal numerals.

    +
    : Decimal Numerals +

    A decimal numeral is part of the base 10 system, the system we learn by counting on ten fingers.

    +

    In base 10, there are ten digits (0-9), and each place is worth ten times as much as the place to its right.

    +
    +

    For example, consider the number 239...

    +
    +
    +
    2
    +
    3
    +
    9
    +
    100s place
    +
    10s place
    +
    1s place
    +

    + The number 239 is equal to (2 × 100) + (3 × 10) + (9 × 1). You could write it in Snap! like this to show how base 10 works:
    + ((2 × 100) + (3 × 10)) + (9 × 1) reporting 239 +
    +
    +
    +
    +
      +
    1. Talk with Your Partner Describe each of the digits and their place values for the decimal numeral 2405.
    2. +
    +
    + +

    Instead of counting on ten fingers, computers count with only two options: on and off. So, computers store numbers as binary numerals. All their calculations are in binary. They convert the decimal numerals we use to interact with computers into binary numerals before performing any calculations.

    + +
    : Binary Numerals +

    A binary numeral is part of the base 2 system.

    +

    In base 2, there are twp digits (0-1), and each place is worth twice times as much as the place to its right.

    +
    +

    For example, consider the binary numeral 1010...

    +
    +
    +
    1
    +
    0
    +
    1
    +
    0
    +
    8s place
    +
    4s place
    +
    2s place
    +
    1s place
    +

    + We can figure out the decimal equivalent by adding up all the places that have a one (that is, 8 + 2 = 10). You could write it in Snap! like this:
    + (((1 × 8) + (0 × 4)) + (1 × 2)) + (0 × 1) reporting 1010 +
    +
    +
    +
    +
      +
    1. 39
      Talk with Your Partner Find the decimal representation for the binary numeral 100111.
    2. +
      + Need help reading binary? +
      +

      + place values in decimal 3761: 3 1000's 7 100's 6 10's 1 1's + In base 10 notation, each place value represents a power of ten: the units place (100 = 1), the tens place (101 = 10), the hundreds place (102 = 100), the thousands place (103 = 1000), etc. So, for example:

      +

      3761   =   3 × 103  +  7 × 102  +  6 × 101  +  1 × 100 +

      +

      + place values in binary 10010: 1 16's 0 8's 0 4's 1 2's 0 1's + Base 2 uses the same idea but with powers of two instead of powers of ten. Binary place values represent the units place (20 = 1), the twos place (21 = 2), the fours place (22 = 4), the eights place (23 = 8), the sixteens place (24 = 16), etc. So, for example: +

      +

      100102   =   1 × 24  +  0 × 23  +  0 × 22  +  1 × 21  +  0 × 20   =   16  +  2   =   1810

      + + +
      +
      +
    +
    +
    +
      +
    1. Try writing a number in binary and see if a friend can convert back to your original number. If they have trouble, go through both calculations (yours and theirs) together. If they succeed in finding your original number, try a bigger number!
    2. +
    +
    + +
    In this activity, you explored calculations in Snap! and learned to read numbers in binary representation.
    + + + + diff --git a/middle-school/student-pages/U1/L5/02-bits-electricity.html b/middle-school/student-pages/U1/L5/02-bits-electricity.html new file mode 100644 index 0000000000..864edf62b1 --- /dev/null +++ b/middle-school/student-pages/U1/L5/02-bits-electricity.html @@ -0,0 +1,72 @@ + + + + + + Unit 1 Lab 5: Storing and Securing Data, Activity 2 + + + +

    Bits and Electricity

    +
    In this activity, you will use Snap! to convert to binary and learn how data is stored in a computer.
    + +

    Storing Numbers in Bits

    +
    : Bit +

    The word "bit" is an abbreviation for binary digit.

    +
    +

    In a binary numeral, the digit in each place value is called a bit. So 1010 is a 4-bit number. Because there are fewer digits in binary (only 0 and 1) than in decimal (0-9), a number that's only a few digits long in decimal may be many bits long in binary.

    +
    +
      +
    1. If your project isn't open already, log in to Snap! and open your "Numbers Bits Electricity" project.
    2. +
    3. + Drag the  decimal → binary () block into the main area. You can type decimal numbers directly into that block or you can even drag your previous calculations into the block.
      + decimal → binary (300) reporting 100101100 + decimal → binary (60 × 5) reporting 100101100 +
    4. +
    5. + Talk with Your Partner +
        +
      1. Can you find a number that's the same in decimal and binary?
      2. +
      3. Can you get a result that's all 1s? Hint: Start by trying to get just one 1, then two 1s, etc.
      4. +
      5. Can you get a result that's 11110000? You may need a calculator and/or a teacher to figure this one out.
      6. +
      +
    6. +
    +
    + +

    Storing Bits as Electricity

    +

    You might be wondering what the ones and zeros look like inside the computer, but actually, computers don't really store the digits 0 and 1. Computers store data using electricity. Generally, a 1 is stored as a positively charged electric signal and a 0 is stored as no charge at all.

    +

    + For example, the memory of your computer most likely stores bits by storing charge in a capacitor. Here are some capacitors of varying sizes:
    +

    Wikipedia claims image is in public domain: https://commons.wikimedia.org/wiki/File:Electronic-Component-Elec-Capacitors.jpg
    + three images of different-sized capacitors, which look like little cylinders with text and numbers on them and two wires coming out of one base +

    +

    The bits inside your computer are teeny tiny—around 20 nanometers, and a nanometer is so small that a billion of them (1,000,000,000) are in one meter! That's why computers are able to store so much information.

    +

    + For the binary number 1010, we could imagine the computer storing it like this:
    + four drawings of capacitors with charges: +, none, +, none +

    +

    The binary → electric () block will help you visualize how the computer stores any binary number.

    +
    +
      +
    1. + Drag the binary → electric block into the Scripts area, and experiment with it. You can type binary numbers directly into that block, or you can drag in a decimal to binary block. Try both ways.
      + binary → electric (1010) reporting four drawings of capacitors with charges: +, none, +, none + binary → electric (decimal → binary (10)) reporting four drawings of capacitors with charges: +, none, +, none +
    2. +
    3. + Talk with Your Partner +
        +
      1. What numbers result in no capacitors charged at all?
      2. +
      3. What numbers make all the capacitors light up with charge?
      4. +
      5. What's a decimal numeral that charges every capacitor but one?
      6. +
      +
    4. +
    +
    + +
    In this activity, you explored binary representation further and learned that binary data is stored as electric signals by capacitors in a computer.
    + + + + diff --git a/middle-school/student-pages/U1/L5/03-hex-rgb-colors.html b/middle-school/student-pages/U1/L5/03-hex-rgb-colors.html new file mode 100644 index 0000000000..3c3aa0f835 --- /dev/null +++ b/middle-school/student-pages/U1/L5/03-hex-rgb-colors.html @@ -0,0 +1,450 @@ + + + + + + Unit 1 Lab 5: Storing and Securing Data, Activity 5 + + + +

    Hexadecimal Numerals and RGB Colors

    +
    In this activity, you
    + +

    Another Number System Used with Computers

    + +

    Typing long strings of ones and zeros is inconvenient and prone to error. A more efficient method is to use hexadecimal (base 16). One hex digit represents any whole number between 0 an 15. So eight digits of binary can be translated into two digits of hexadecimal, which is much easier and much less error-prone for humans.

    +
    Mary should fix up the CSS in these tables some day. --MF, 12/18/17
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Eight bits in base two...
    2726252423222120
    128s place64s place32s place16s placeeights placefours placetwos placeones place
    ...is two digits in base 16.
    161160
    sixteens placeones place

    + + + + + + + + + + + + + + + + + + +
    For example: 12110 = 011110012 = 7916
    01111001
    79
    + + +

    +

    + Place value notation uses only one digit in each place. We need to represent 0 through 15, and we have digits for 0-9, so we choose A-F for the remaining values: + + + + + + + + + + + + + + + + + +
    101112131415
    ABCDEF
    +
    + In base 16, there are sixteen digits (0-9 and A-F), and each place is worth sixteen times the place to its right. One hex digit has 16 possible values, the equivalent of four binary digits (bits).
    + place values in hexadecimal 3B7: 3 256's 11 16's 7 1's

    + +
    Mary, you reduced this katex with a style tag (not proper CSS) because you couldn't figure out how to make it work with CSS. Fix this later. --MF, 12/18/17
    +

    This stands for 3 \times 256 + 11\times 16 +7\times 1 or 951.

    + + + +
    +
      +
    1. + Talk with Your Partner + + Watch this Hexadecimal and Binary Timer Snap! program run. The top row counts in binary, the middle in decimal, the bottom in hex. Write a description of the hex counter's behavior.
      + Hexadecimal timer
    2. +
    +
    + +

    Reading Hexadecimal

    +
    +

    + + Base 16 uses powers of sixteen instead of powers of two or ten. Place values in hexadecimal represent the units place (160 = 1), the sixteens place (161 = 16), the two hundred fifty-sixes place (162 = 256), the four thousand ninety-sixes place (163 = 4096), etc. So, for example: +

    +

    3B16   =   3 × 161  +  11 × 160   =   48  +  11   =   5910

    +
    + + + +
    +

    To translate from hexadecimal (for example, 7B316) to base 10, first, write the digits on paper. Then write out the hexadecimal place values: start at the right with 1, then write 16 in the next place to the left, then write 256 (which is 162), and so on. Each new place will be worth 16 times the one to its right.

    +
    + Remember: A-F cover the digits after 9: + + + + + + + + + + + + + + + + + +
    101112131415
    ABCDEF
    +
    + + + + + + + + + + + + + + +
    7B3
    256161
    + right-to-left arrow +
    +

    So, 7B316 = (7 × 256) + (11 × 16) + (3 × 1) = 1792 + 176 + 3 = 197110.

    +
    + +
    +
      +
      + FF16
      + = (15 × 161 + 15 × 160)10
      + = (15 × 16 + 15)10
      + = 25510 +
      +
    1. Translate these hexadecimal numerals into base 10 notation: +
        +
      1. AF16
      2. +
      3. 5D16
      4. +
      5. 1816
      6. +
      7. 3E816
      8. +
      +
      A numeral such as 11 means eleven in the usual decimal notation, or three if it is a binary numeral, or seventeen in hexadecimal notation. The only way you know that the "18" in part (c) above doesn't mean eighteen is that subscript "16" means hexadecimal.
      +
    2. +
    +
    + + +

    Writing Hexadecimal

    +
    +

    To translate from base 10 (for example, 29910) to base 16, first write out the hexadecimal place values by multiplying by 16 moving left from the units place until you get to a value larger than your number (4096 for this example). Then think, "My number is smaller than 4096, so I leave that place blank. But I can subtract two hundred fifty-six once, so I write a 1 there, and there's 43 left. Now, I can subtract two sixteens, and there's 11 left. And 11 is B in hex."

    + + + + + +
    299
    43
    11
    0
    + + + + + + + + + + + + + + + + +
    + right-to-left arrow +
    4096256161
     12B
    +

    Now, read the number off: 12B16 = 29910.

    +
    + + + +
    +
      +
    1. Translate these decimal numerals to hexadecimal notation: +
        +
      1. 59
      2. +
      3. 144
      4. +
      5. 229
      6. +
      7. 316
      8. +
      +
    2. +
    +
    + +

    Notice that the algorithms for converting between binary and decimal are the same as the algorithms for converting between hexadecimal and decimal. These algorithms can be used to convert to and from any base.

    + +
    +
      +
    1. + Talk with Your Partner + This algorithm runs into a problem after base 36. What's the problem and what's the solution? +
    2. +
    3. Convert 29910 to base 7.
    4. +
    +
    + +
    In the future, consider moving 8.3.3 and 8.3.4 here as TIF and removing from 8.3. --MF, 12/1/17
    + + +
    BJC page 2 (currently cut):
    + +

    More About Hexadecimal

    +
    +

    BH: SCRAP. Two pages on... hexadecimal??

    +
    + +
    There is commented out content on this page that probably could be removed. --MF, 2/26/18
    + +

    We can pack four bits (binary digits) into one hexadecimal digit because 16 is a power of two (16 = 24). So, a group of four bits represents a value between 0 and 15, and one hex digit also represents values from 0-15 (using 0-9 and A-F). This makes it easier to translate between binary and hex than between other bases.

    +

    Hexadecimal is an abstraction over binary: we use hexadecimal to abbreviate binary in a more readable way.

    +
    +

    You can create a table like this whenever you need one.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    binaryhex
    00002016
    00012116
    00102216
    00112316
    01002416
    01012516
    01102616
    01112716
    10002816
    10012916
    10102A16
    10112B16
    11002C16
    11012D16
    11102E16
    11112F16
    +
    +

    Translating between Binary and Hex

    +
    +

    To translate a binary numeral (for example, 11010111012) to hexadecimal, start by splitting it into groups of four bits, from right to left (like this: 11 0101 1101).

    +

    Then determine the value of each group and write the corresponding hex digit (look it up on the table at right).

    +

    For example: 112 = 316, 01012 = 516, and 1101 = D16. So, 11010111012 = 35D16.

    +
    +
    +
      +
    1. Translate these binary numerals to hexadecimal notation: +
        +
      1. 1110112
      2. +
      3. 11011112
      4. +
      5. 101100012
      6. +
      +
    2. +
    +
    + + +
    +

    To translate a hex numeral (like 4E116) to binary, write each hex digit as a group of four bits (including any leading zeros).

    +

    For example: 416 = 01002, E16 = 11102, and 116 = 00012. So, 4E116 = 0100111000012 or just 100111000012 because we can drop the leading zero once the digits are all in their places.

    +
    +
    +
    In practice, you rarely change number bases by hand, except of course on the AP exam. Once you understand the basic principles of these representations, it's perfectly fine to use a Binary to Decimal to Hexadecimal Converter.
    +
      +
    1. Translate these hexadecimal numerals to binary notation: +
        +
      1. 1816
      2. +
      3. 5D16
      4. +
      5. F816
      6. +
      +
    2. +
    +
    + + + +

    Hexadecimal Colors

    +
    +

    A pixel is a single dot of color on the computer screen. It's short for "picture element."

    +
    +

    Computers have several ways of representing color depending on the purpose. For example, three-color RGB (red, green, blue) is used for screen display, and four-color CMYK (cyan, magenta, yellow, black) is used for printing. On a computer screen, each pixel that makes up a picture is assigned an RGB color code that defined by the intensity of red, green, and blue in that color. These three color intensities each range from 0 to 255 (one byte is used for each of the three colors), which is 00 to FF in hex notation.

    +

    If (R, G, B) = (128, 0, 255), the color is purple: some red and as much blue as possible, but no green at all. If all three colors are as bright as possible (all are 255), we see white; if they are as dark as possible (all are 0), we see black. Instead of writing (255, 255, 255) for white and (128, 0, 255) for purple, we often use hex notation: FFFFFF and 8000FF. And this color is red 255, green 127, and blue 0, which is FF7F00 in hex.

    +
    + Learn more about color codes. +
    +

    Sometimes a fourth number is used to represent the color transparency, like the ghost effect you used in your very first BJC project on Unit 1 Lab 1 Page 3: Make It a Game.

    +

    RGB works well for lights, such as the tiny lights (pixels) in your computer screen, so it is great for computers. But it's not good for printers: no combination of Red, Green and Blue sprayed on paper would quite make black, zero of each would leave the paper white (not black), and artists know that mixing red and green paint does not make yellow (but that's how you make yellow with light: FFFF00). Ink or paint colors are measured in CMYK: Cyan, Magenta, Yellow, and Black. And some colors such as brown and brick-red (darker than pure red) are hard to figure out in RGB units, even for display in lights. Another color system is called HSB, for hue, saturation, brightness.

    +

    Snap!'s system is similar to HSB. "Pen color" is hue (location on the rainbow), and "pen shade" is more or less saturation (zero means black, 100 means full rainbow color).

    +
    +
    + + +
    +
      +
    1. Represent these colors in hex notation: +
        +
      1. red 0, green 149, and blue 235
      2. +
      3. red 128, green 90, and blue 0
      4. +
      5. red 163, green 0, and blue 84
      6. +
      +
    2. +
    3. Predict what this RGB color will look like based on its values: red 145, green 0, blue 226.
    4. +
    5. Predict what this hex RGB color will look like: 04FF61.
    6. +
    7. Another way to represent colors is by their names. For example, the color 4B0082 is called Indigo and the color 8B4513 is called SaddleBrown. Compare these two representations (hex RGB codes vs. color names) in terms of: space required, ease of understanding, and ease of use.
    8. +
    9. Why do we use binary, decimal, and hexadecimal? Why not just one?
    10. +
    11. In earlier units, we used abstraction to describe creating custom blocks and abstract data types. Here, we use abstraction to talk about hexadecimal vs. binary. How can abstraction describe these very different things? What do these things have in common?
    12. +
    +
    +
    +
      +
    1. Explore this RGB/HEX color converter: http://hex.colorrrs.com/
    2. +
    3. Play with this Interactive Color Wheel
    4. +
    5. Read more about RGB colors and hexadecimal notation.
    6. +
    +
    +
    They have not seen the Libraries page referenced in this TIF. --MF, 6/13/19
    +
    +
      +
    1. +
      As in all Snap! blocks, the numeric input slots take values represented in base 10 (not hex). Each color component has a value between 0 and 255.
      + Load the Snap! RGB library into one of your projects to explore RGB color further. In the File menu, choose "Libraries..." and then choose "Set RGB or HSV pen color" as shown on the Libraries page.
      + This will give you a new "Pen" block: + set pen color to r: (255) g: (0) b: (0)
      + Snap! 'Import library' dialog box highlighting 'Set RGB or HSV pen color' library +
    2. +
    +
    + + +
    In this activity, you
    + + + + diff --git a/middle-school/student-pages/U1/L5/04-secret-messages.html b/middle-school/student-pages/U1/L5/04-secret-messages.html new file mode 100644 index 0000000000..54c461f622 --- /dev/null +++ b/middle-school/student-pages/U1/L5/04-secret-messages.html @@ -0,0 +1,110 @@ + + + + + + Unit 1 Lab 5: Storing and Securing Data, Activity 3 + + + +

    Secret Messages

    +
    "Apply multiple methods of encryption to model the secure transmission of information. + Encryption can be as simple as letter substitution or as complicated as modern methods used to secure networks and the Internet. Students should encode and decode messages using a variety of encryption methods, and they should understand the different levels of complexity used to hide or secure information. For example, students could secure messages using methods such as Caesar cyphers or steganography (i.e., hiding messages inside a picture or other data). They can also model more complicated methods, such as public key encryption, through unplugged activities. + Practice(s): Developing and Using Abstractions: 4.4"
    +
    + +
    +

    In this lab, you will learn about security risks on the Internet and how data can be encoded to protect it.

    +

    On this page, you will experiment with different ways of encoding and decoding a message and learn a simple method of symmetric encryption.

    +
    +

    Messages sent across the Internet need to be secure so that they can't be read by computers along the way.

    +
    + +
    +

    There are many ways to encrypt information...

    + +
    +
      +
    1. Write a secret message, invent some way of encoding the message, and then give the encoded message to someone else.
    2. +
    3. Try to decode the message you receive. What strategies are you using to decode it?
    4. +
    5. With other students, compare the methods you used to encode your messages. Was anyone able to decode the message they received? If so, how?
    6. +
    7. If anyone wasn't able to decode the message they received, discuss how to decode that message and then let them decode it.
    8. +
    +
    + +

    Caesar Cipher

    +

    + One way to encode a message is with a Caesar cipher (named for Julius Caesar), which is also know as a shift cipher. To encode a message with a Caesar cipher: +

      +
    1. Write out the alphabet. Then write it again just below, but start with the A under a different letter and wrap around to the beginning when you reach the end. For example, this is a shift of 3: +
      ABCDEFGHIJKLMNOPQRSTUVWXYZ
      +
      DEFGHIJKLMNOPQRSTUVWXYZABCThis is the key.
      +
    2. +
    3. For each letter in your secret message, find the letter in the top row, and then write down the letter below it.
    4. +
    +

    +

    To decode a message: find each letter from the coded message in the second row (in the key) and write down the letter above it.

    + +
    +
      +
    1. + Decode this message using the Caesar cipher shown above:
      +
      FDHVDU'V PHVVDJHV ZHUHQ'W YHUB VHFXUH.
      +
      CAESAR'S MESSAGES WEREN'T VERY SECURE.
      +
    2. +
    3. + The following message was also encoded using a Caesar cipher but with a shift of 11 instead of a shift of 3. Write out a key for messages with a shift of 11, and decode this message:
      +
      SZH NZFWO JZF XLVP L MPEEPC NTASPC?
      +
      HOW COULD YOU MAKE A BETTER CIPHER?
      +
    4. +
    +
    +
    +
      +
    1. + This message was also made with a Caesar cipher. Can you decode it?
      +
      PIAWLTY EZ JZFC NWLDDXLEPD SZH JZF OPNZOPO ESTD XPDDLRP. +
      +
      EXPLAIN TO YOUR CLASSMATES HOW YOU DECODED THIS MESSAGE.
      +
    2. +
    +
    +
    +
      + Talk with Your Partner +
    1. Discuss how to decode a Caesar cipher even if you don't know the shift.
    2. +
    3. How could you encode a message more securely?
    4. +
    +
    + +

    Other Simple Substitution Ciphers

    +

    + The Caesar cipher is one kind of simple substitution cipher that is particularly easy to encode and decode. But simple substitution ciphers don't have to substitute letters in order. Here is a more secure example of a substitution cipher: +

    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    +
    PQVFUBZOTHWYELIXRNAMGDSCKJThis is the key.
    +

    +
    +
      +
    1. + Decode this message using the simple substitution cipher shown just above:
      +
      VTXOUNA PNU UPAK MI VNPVW.
      +
      CIPHERS ARE EASY TO CRACK.
      +
    2. +
    +
    + +
    +
      + Talk with Your Partner +
    1. If you intercepted a message that was created with a simple substitution cipher, how might you decode it without knowing the key?
    2. +
    3. What are some ways the sender and receiver could make the encryption more secure than a simple substitution cipher?
    4. +
    +
    +
    + + + + diff --git a/middle-school/student-pages/U1/L5/02-caesar-cipher.html b/middle-school/student-pages/U1/L5/05-caesar-cipher.html similarity index 61% rename from middle-school/student-pages/U1/L5/02-caesar-cipher.html rename to middle-school/student-pages/U1/L5/05-caesar-cipher.html index 219a2a52d4..296f6c74be 100644 --- a/middle-school/student-pages/U1/L5/02-caesar-cipher.html +++ b/middle-school/student-pages/U1/L5/05-caesar-cipher.html @@ -3,120 +3,20 @@ - Unit 1 Lab 5: Storing and Securing Data, Activity 2 + Unit 1 Lab 5: Storing and Securing Data, Activity 4 -

    Writing and Decoding Secret Messages

    -
    "Apply multiple methods of encryption to model the secure transmission of information. - Encryption can be as simple as letter substitution or as complicated as modern methods used to secure networks and the Internet. Students should encode and decode messages using a variety of encryption methods, and they should understand the different levels of complexity used to hide or secure information. For example, students could secure messages using methods such as Caesar cyphers or steganography (i.e., hiding messages inside a picture or other data). They can also model more complicated methods, such as public key encryption, through unplugged activities. - Practice(s): Developing and Using Abstractions: 4.4"
    -
    - -
    -

    In this lab, you will learn about security risks on the Internet and how data can be encoded to protect it.

    -

    On this page, you will experiment with different ways of encoding and decoding a message and learn a simple method of symmetric encryption.

    -
    -

    Messages sent across the Internet need to be secure so that they can't be read by computers along the way.

    -
    - -
    -

    There are many ways to encrypt information...

    - -
    -
      -
    1. Write a secret message, invent some way of encoding the message, and then give the encoded message to someone else.
    2. -
    3. Try to decode the message you receive. What strategies are you using to decode it?
    4. -
    5. With other students, compare the methods you used to encode your messages. Was anyone able to decode the message they received? If so, how?
    6. -
    7. If anyone wasn't able to decode the message they received, discuss how to decode that message and then let them decode it.
    8. -
    -
    - -

    Caesar Cipher

    -

    - One way to encode a message is with a Caesar cipher (named for Julius Caesar), which is also know as a shift cipher. To encode a message with a Caesar cipher: -

      -
    1. Write out the alphabet. Then write it again just below, but start with the A under a different letter and wrap around to the beginning when you reach the end. For example, this is a shift of 3: -
      ABCDEFGHIJKLMNOPQRSTUVWXYZ
      -
      DEFGHIJKLMNOPQRSTUVWXYZABCThis is the key.
      -
    2. -
    3. For each letter in your secret message, find the letter in the top row, and then write down the letter below it.
    4. -
    -

    -

    To decode a message: find each letter from the coded message in the second row (in the key) and write down the letter above it.

    - -
    -
      -
    1. - Decode this message using the Caesar cipher shown above:
      -
      FDHVDU'V PHVVDJHV ZHUHQ'W YHUB VHFXUH.
      -
      CAESAR'S MESSAGES WEREN'T VERY SECURE.
      -
    2. -
    3. - The following message was also encoded using a Caesar cipher but with a shift of 11 instead of a shift of 3. Write out a key for messages with a shift of 11, and decode this message:
      -
      SZH NZFWO JZF XLVP L MPEEPC NTASPC?
      -
      HOW COULD YOU MAKE A BETTER CIPHER?
      -
    4. -
    -
    -
    -
      -
    1. - This message was also made with a Caesar cipher. Can you decode it?
      -
      PIAWLTY EZ JZFC NWLDDXLEPD SZH JZF OPNZOPO ESTD XPDDLRP. -
      -
      EXPLAIN TO YOUR CLASSMATES HOW YOU DECODED THIS MESSAGE.
      -
    2. -
    -
    -
    -
      - Talk with Your Partner -
    1. Discuss how to decode a Caesar cipher even if you don't know the shift.
    2. -
    3. How could you encode a message more securely?
    4. -
    -
    - -

    Other Simple Substitution Ciphers

    -

    - The Caesar cipher is one kind of simple substitution cipher that is particularly easy to encode and decode. But simple substitution ciphers don't have to substitute letters in order. Here is a more secure example of a substitution cipher: -

    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    -
    PQVFUBZOTHWYELIXRNAMGDSCKJThis is the key.
    -

    -
    -
      -
    1. - Decode this message using the simple substitution cipher shown just above:
      -
      VTXOUNA PNU UPAK MI VNPVW.
      -
      CIPHERS ARE EASY TO CRACK.
      -
    2. -
    -
    - -
    -
      - Talk with Your Partner -
    1. If you intercepted a message that was created with a simple substitution cipher, how might you decode it without knowing the key?
    2. -
    3. What are some ways the sender and receiver could make the encryption more secure than a simple substitution cipher?
    4. -
    -
    -
    +

    Programming a Caesar Cipher

    -

    New Page


    Only drafted up to here. Below is just CSP. --MF, 9/10/21

    -

    Programming a Shift Cipher

    - -
    1. Talk with Your Partner Describe an algorithm for decoding a message that was created with a shift cipher.
    - - + +
    Add to TG
      @@ -137,18 +37,18 @@

      Programming a Shift Cipher

      Computers store keyboard characters (capital and small letters, punctuation marks, space, digits, symbols, and so on) as numbers called Unicode. This table shows the Unicode for some of the keyboard characters:
      Unicode Table

      - +

      The unicode of block reports the number that is used for a particular character:
      unicode of (a) reporting '97'
      - The unicode as letter block reports the character that a given Unicode number represents:
      + The unicode as letter block reports the character that a given Unicode number represents:
      unicode (65) as letter reporting 'A'

      - +
      1. Experiment with the unicode of and unicode as letter blocks. Try changing a word into Unicode, telling the Unicode to a friend, and then having them change it back into a word.
      2. -
      3. On paper, use a shift cipher to encrypt and decrypt a short message to get a feel for how this cipher works.
      4. +
      5. On paper, use a shift cipher to encrypt and decrypt a short message to get a feel for how this cipher works.
      6. Write a shift cipher procedure that works for any input text and any shift value.
      7. Why do we see characters like = ? @ # ^ * { or ~ ?

        @@ -177,8 +77,8 @@

        Programming a Shift Cipher

      - -
      + +
      1. Improve your initials block from your U3L2-ContactList project so that it will find the initials for a person with a hyphenated name like Alexandria Ocasio-Cortez.
        @@ -186,10 +86,10 @@

        Programming a Shift Cipher

        Click for some hints.
        - There are several ways you could solve this problem. Both of the following ways require higher order functions. (You can review the higher order functions map, keep, and combine on Unit 3 Lab 2 Page 5: Transforming Every List Item.) + There are several ways you could solve this problem. Both of the following ways require higher order functions. (You can review the higher order functions map, keep, and combine on Unit 3 Lab 2 Page 5: Transforming Every List Item.)
        • - One way is to use the unicode block to select all the capital letters rather than splitting by word breaks. + One way is to use the unicode block to select all the capital letters rather than splitting by word breaks.
          • If you want to use Unicode, you'll probably want to build or import a block like is between? from your U2L4-MathLibrary project to check which Unicode values are capital letters. (You learned about exporting and importing blocks on Unit 2 Lab 4 Page 2: Making a Mathematical Library.)
          @@ -206,8 +106,8 @@

          Programming a Shift Cipher

      - - + +
      1. Implement a version of the shift cipher that not only shifts the characters but also wraps them around the alphabet when the end of the alphabet is reached. You may wish to restrict your alphabet to the set of printable characters given above in the Unicode table.
      2. @@ -221,6 +121,6 @@

        Programming a Shift Cipher

        - + - \ No newline at end of file + diff --git a/middle-school/teaching-guide/U1/05-storing-securing-data.html b/middle-school/teaching-guide/U1/05-storing-securing-data.html index 9071eccb42..0e1fede3f8 100644 --- a/middle-school/teaching-guide/U1/05-storing-securing-data.html +++ b/middle-school/teaching-guide/U1/05-storing-securing-data.html @@ -12,11 +12,18 @@

        Lab 5: Storing and Securing Data

        Pacing

        +

        This will be updated after the pacing for each activity has settled down. --MF, 9/17/21
        This lab is designed for 3–9 class periods (110–330 minutes).

        @@ -30,23 +37,75 @@

        Daily Activity: Computing in the News. 

      ↑ Back to Top -

      Activity 1: Numbers, Bits, and Electricity. 

      -
      Are we going to include the : How binary digits work?
      +

      Activity 1: Numbers and Computers. 

      +
      +
        +
        Pamela, do we have rights to the image of capacitors in this document? Do we need attribution? --MF
        + +
      • Materials: Numbers in Computers student page
      • +
      • + Prepare: + +
      • +
      • + Learning Goals: +
          +
        • Explore mathematical operations in Snap! using complex expressions with nesting functions.
        • +
        • Understand that in a mathematical expression in Snap!, the blocks themselves serve the role of the parentheses.
        • +
        • Understand the basics of reading binary numerals.
        • +
        +
      • +
      • + Activity Plan: +
          +
        • Optionally, spend one class period working through the CS Unplugged: How binary digits work activity. (45 minutes)
        • +
        • Crunching Numbers: Students build and run several arithmetic operations in Snap!. (5–10 minutes)
        • +
        • Numbers Systems for Humans vs. Machines: Students learn the basic distinction between decimal and binary notation of numbers and convert from decimal to binary. (5–10 minutes)
        • +
        +
      • +
      • + Tips: +
          +
        • If you opt not to use the CS Unplugged activity and then later decide that your students would benefit from a deeper treatment of binary representation, you can also cover it after this activity.
        • +
        +
      • +
      • + Standards: +
          +
        • 2-DA-07: Represent data using multiple encoding schemes.
        • +
        +
      • +
      • + Solutions +
        +
          +
        • 5 × (7 + 4) = 55
        • +
        • (11 – (48 / 6)) × 9 = 27
        • +
        • (2 × (10^2)) + (3 × (10^1)) + (9 × (10^0)) = 239
        • +
        • (1 × (2^3)) + (0 × (2^2)) + (1 × (2^1)) + (0 × (2^0)) = 10
        • +
        • In the number 2,405, there is a 2 in the thousands place, a 4 in the hundreds place, a 0 in the tens place, and a 5 in the ones place. So, 2,405 = (2 × 1000) + (4 × 100) + (0 × 10) + (5 × 1)
        • +
        • The binary numeral 100111 is (1 × 32) + (0 × 16) + (0 × 8) + (1 × 4) + (1 × 2) + (1 × 1) = 32 + 4 + 2 + 1 = 39.
        • +
        +
        +
      • +
      +
      + + ↑ Back to Top +

      Activity 2: Bits and Electricity. 

      • Materials: @@ -54,37 +113,48 @@

        Activity 1: Numbers, Bits, and Electricity. 
      • Prepare:
      • Learning Goals: -
        Calling a block inside a block, Math operators
          -
        • +
        • Deepen understanding of binary representation.
        • +
        • Appreciate that computers store binary as electrical signals on capacitors.
      • -
        - [45 minutes] Optional - CSUnplugged How Binary Digits Work -[5 minutes] Crunch some numbers! -[10 minutes] Decimal numbers in bits -[10 minutes] Storing bits as electricity -[20 minutes] Optional - Binary Bingo -Print out enough Binary Bingo cards for each student or pair -Call numbers using the Bingo caller Snap project, just click call number repeatedly. You can see the called numbers on the stage if you'd like to see what you already called. -Students can convert numbers using the decimal to binary block - -
        Activity Plan:
          -
        • +
        • Storing Numbers in Bits: Students use a  decimal → binary () block to discuss several questions about binary representation designed to deepen understanding. (5–10 minutes)
        • +
        • Storing Bits as Electricity: Students use a binary → electric () block to visualize how binary numerals are stored as electric signals on capacitors (10–20 minutes)
        • +
        • Optionally, wrap up your treatment of binary with "Binary Bingo." (approximately 20 minutes). Call numbers using the Bingo caller Snap! project. Students can convert numbers using the decimal → binary block.
      • Tips:
          -
        • +
        • + If you have time after students answer the questions on the student activity page in their pairs, you may wish to discuss the various "Talk with Your Partner" questions as a class: +
            +
          • + After the "Storing Numbers in Bits" section: +
              +
            • Can you find a number that's the same in decimal and binary?
            • +
            • Can you get a result that's all 1s? Hint: Start by trying to get just one 1, then two 1s, etc.
            • +
            • Can you get a result that's 11110000? You may need a calculator and/or a teacher to figure this one out.
            • +
            +
          • +
          • + After the "Storing Bits as Electricity" section: +
              +
            • What numbers result in no capacitors charged at all?
            • +
            • What numbers make all the capacitors light up with charge?
            • +
            • What's a number that charges every capacitor but one?
            • +
            +
          • +
          +
      • @@ -94,20 +164,110 @@

        Activity 1: Numbers, Bits, and Electricity. 

    1. - Solutions: -
        -
      • -
      +
      Solutions +
      +
        +
      • + Can you find a number that's the same in decimal and binary? +
          +
        • 0 and 1 are the only numbers that are the same.
        • +
        +
      • +
      • + Can you get a result that's all ones? +
          +
        • + Every decimal that is one less than a power of 2 is all ones. For example: +
            +
          • 110 = 12 = (2 - 1)10
          • +
          • 310 = 112 = (4 - 1)10
          • +
          • 710 = 1112 = (8 - 1)10
          • +
          • etc.
          • +
          + That's because in binary, powers of 2 are always a one followed by a bunch of zeros, so the number just before is all ones. It's analogous to 9, 99, 999, etc. in decimal; the number that is all nines is always one less than the power of 10. +
        • +
        +
      • +
      • + Can you get a result that's 11110000? +
          +
        • +

          An easy way is to type "11110000 in decimal" in Google, and it will calculate it for you!

          + To manually calculate it, write out the powers of 2 under each bit in the number: +
          +
          1
          +
          1
          +
          1
          +
          1
          +
          0
          +
          0
          +
          0
          +
          0
          +
          128
          +
          64
          +
          32
          +
          16
          +
          8
          +
          4
          +
          2
          +
          1
          +
          + Then add up the powers that have a 1 in that place: 128 + 64 + 32 + 16 = 240 +
        • +
        +
      • +
      • + What numbers result in no capacitors charged at all? +
          +
        • Only the number 0 results in no capacitors charged. Every other number would need at least one capacitor charged.
        • +
        +
      • +
      • + What numbers make all the capacitors light up with charge? +
          +
        • This is the same as the question about making numbers with all ones from the previous section. Any decimal number that's one less than a power of 2 will result in a row of charged capacitors.
        • +
        +
      • +
      • + What's a decimal numeral that charges every capacitor but one? +
          +
        • + There are lots of numbers that can answer this question! Here are some early ones: +
          +
          Decimal
          +
          Binary
          +
          2
          +
          10
          +
          5
          +
          101
          +
          6
          +
          110
          +
          + There's not a pattern to all the answers, so students can play with different decimal values until they find ones with a matching capacitor pattern, or they can write out binary sequences with only one 0 and then work out the decimal equivalent. +
        • +
        +
      • +
      +
    2. -
      - ↑ Back to Top -

      Activity 2: Caesar Cipher. 

      +
      Additional Lab 5 activities coming soon....
      +
      + Links to the unfinished student pages... +
      + + + @@ -161,6 +321,7 @@

      Solutions

      Correlation with CSTA Standards 

        +
      • 2-NI-06: Apply multiple methods of encryption to model the secure transmission of information. Encryption can be as simple as letter substitution or as complicated as modern methods used to secure networks and the Internet. Students should encode and decode messages using a variety of encryption methods, and they should understand the different levels of complexity used to hide or secure information. For example, students could secure messages using methods such as Caesar cyphers or steganography (i.e., hiding messages inside a picture or other data). They can also model more complicated methods, such as public key encryption, through unplugged activities.
      • 2-DA-07: Represent data using multiple encoding schemes. Data representations occur at multiple levels of abstraction, from the physical storage of bits to the arrangement of information into organized formats (e.g., tables). Students should represent the same data in multiple ways. For example, students could represent the same color using binary, RGB values, hex codes (low-level representations), as well as forms understandable by people, including words, symbols, and digital displays of the color (high-level representations).
      diff --git a/topic/middle-school/1-functions-data.topic b/topic/middle-school/1-functions-data.topic index 11bf21f51c..5c150d0cf5 100755 --- a/topic/middle-school/1-functions-data.topic +++ b/topic/middle-school/1-functions-data.topic @@ -25,8 +25,11 @@ heading: Lab 4: Image Manipulation resource: Pixel Mapper [/bjc-r/middle-school/student-pages/U1/L4/04-pixel-mapper.html] heading: Lab 5: Storing and Securing Data - //resource: Numbers, Bits, and Electricity [/bjc-r/middle-school/student-pages/U1/L5/01-numbers-bits-electricity.html] - //resource: Caesar Cipher [/bjc-r/middle-school/student-pages/U1/L5/02-caesar-cipher.html] + resource: Numbers and Computers [/bjc-r/middle-school/student-pages/U1/L5/01-numbers-computers.html] + resource: Bits and Electricity [/bjc-r/middle-school/student-pages/U1/L5/02-bits-electricity.html] + //resource: Hexadecimal Numerals and RGB Colors [/bjc-r/middle-school/student-pages/U1/L5/03-hex-rgb-colors.html] + //resource: Secret Messages [/bjc-r/middle-school/student-pages/U1/L5/04-secret-messages.html] + //resource: Programming a Caesar Cipher [/bjc-r/middle-school/student-pages/U1/L5/05-caesar-cipher.html] heading: Lab 6: Texting Tricks //resource: Texting Time [/bjc-r/middle-school/student-pages/U1/L6/01-texting-time.html] diff --git a/topic/middle-school/1-teaching-guide.topic b/topic/middle-school/1-teaching-guide.topic index 6306135ee5..c306997141 100644 --- a/topic/middle-school/1-teaching-guide.topic +++ b/topic/middle-school/1-teaching-guide.topic @@ -25,10 +25,9 @@ h3: Teacher Guides for Student Labs resource: Lab 3: Dealing with Data [/bjc-r/middle-school/teaching-guide/U1/03-dealing-with-data.html] raw-html:
      • approximately 2–4 class periods
      resource: Lab 4: Image Manipulation [/bjc-r/middle-school/teaching-guide/U1/04-image-manipulation.html] - //raw-html: Lab 4: Image Manipulation (under development) raw-html:
      • approximately 2–4 class periods
      We have: the image manipulation project that I built, the library that Dan made, the pixel viewer that Pamela built, and the RGB Pixels project from Jens.
      - //resource: Lab 5: Storing and Securing Data [/bjc-r/middle-school/teaching-guide/U1/05-storing-securing-data.html] - raw-html: Lab 5: Storing and Securing Data (under development) + resource: Lab 5: Storing and Securing Data [/bjc-r/middle-school/teaching-guide/U1/05-storing-securing-data.html] + //raw-html: Lab 5: Storing and Securing Data (under development) raw-html:
      • approximately 3–9 class periods
      This depends on whether we include the external videos
      //resource: Lab 6: Texting Tricks [/bjc-r/middle-school/teaching-guide/U1/06-texting-tricks.html] resource: Lab 6: Texting Tricks (under development)