From e89d0105439b2fc7437d9a7121bbd40088fe51d2 Mon Sep 17 00:00:00 2001
From: Mary Fries Our top priority is to create a fun curriculum in which students develop programming projects and explore social implications of computing related to their own interests. We believe it’s important for students to have agency in what they create and in developing their ethical approaches to challenging issues. We want to build a curriculum with ample opportunity for creativity so that students are so passionate about their work that they naturally want to share it with their friends! Equity is a core principle that is only listed second because we believe that a truly equitable curriculum must engage students. We seek to support all students by providing open-ended creative projects that allow individuals to bring their own interests, cultures, and life experiences into the classroom. We aim to provide a structure through the selected CS content that allows students to discover how taking an active role in technology is relevant to their lives. Teachers are critical to implementation, and our curriculum will provide a companion teacher guide for each unit of study. This will include an overview of the student content, teaching tips, pacing suggestions, formative and summative assessment items, example solutions, and correlations to the CSTA standards. Throughout our multi-year development process, we will seek early and frequent feedback from teachers on the student-facing materials, the teacher guide, and what more is needed to best support classroom activities. Through our open-ended programming activities and meaningful investigations of the social implications of computing innovations, we encourage students to see that there are multiple ways to solve a problem and to develop the habit of evaluating potential solutions by considering aspects such as code-readability and impacts across social groups, and to society. We support students in developing a range of debugging skills as they learn to see programming as both a technical and a creative act, and we encourage them to seek ideas and feedback directly from intended users of their technology. Lastly, we believe in a functional-programming-first approach to teaching computer science and so begin the curriculum with a focus on functions and immutable data. Once this foundation has been established, students are introduced to iteration, variables, events, and hardware. Our curriculum is being developed to meet the CSTA standards for middle school and some of the early high school standards. BJC Middle School is being developed by the University of California, Berkeley, and Education Development Center, Inc. and is undergoing pilot testing during the 2021-2022 school year. Building on our lessons learned creating the Advanced Placement Computer Science Principles Beauty and Joy of Computing curriculum for high school, these middle school materials use the Snap! programming language (an easy-to-learn blocks-based programming language based on Scratch), take a functional-programming first approach to introductory computer science, and are being developed to meet the CSTA standards for middle school as well as some of the early high school standards. This lab serves as introduction to the Snap! programming language, interface, and terminology (reporter blocks, input parameters). Students use a variety of blocks that say hello to the user in different ways, changing the input parameters to explore the impact on outputs. This lab is designed for 1-2 class periods (45–90 minutes).
+ Middle School Curriculum Design Principles
+
+ Engaging
+ Equitable
+ Support for Teachers
+ Computational Problem Solving
+ Powerful CS Ideas
+ Beauty and Joy of Computing for Middle School Teacher Guide
+ Teacher Resources
+
+
+ Curriculum Materials
+
+
+
+
+
+ Lab 1: Say Hello to Snap!
+ Pacing
+ Student Materials
+
+ Learning Goals:
+
+
+
+
This lab...
+ +This lab is designed for X–X class periods (X–X minutes).
+ + ++
+
This lab...
+ +This lab is designed for X–X class periods (X–X minutes).
+ ++
+
This lab collect data from your classmates, analyze the data, and create a pictograph visualization of the results.
+ +This lab is designed for X–X class periods (X–X minutes).
+ ++
+
This lab...
+ +This lab is designed for X–X class periods (X–X minutes).
+ ++
+
Overview
+ +This unit starts with the basics of functional programming – creating abstractions in the form of reporters (i.e., functions) and predicates (i.e, functions that return booleans) through control structures, to using the higher-order functions map
, keep
, and combine
. Students explore the Snap! programing environment using functions to process inputs, which may themselves be the outputs of other functions. After learning the basics of working in Snap!, students create projects with using lists, sounds, and other common data types (numbers, text, emojis, etc.) as they learn the basics of bits, characters, and how functions behave.
Tx5a;A@Fa`hVemc{ztiA-
zEq)hx51hX$y}Q9z;`~+o9wU5!#qR}A!uhMhe+r&~^H=fv44!Q9`@zSey;tE6fM=pM
zEB+vO8qQb64}kCV47GR&JRRq&3V#SZ1!tJz4}&+LWP3ugd>;W=KaYiE{Zu>~+pM38
z>)2-fR6GaUU2HrT+wAkG@H}ku8lreUw%LX#UVv?$^NJT@8_l-GXJMOlQiT^`o5!H|
zY;5xw6rY3bUN$}#+c+#MycpX_HeQ15J~m#8?Y=fX58M50ybRm@ZG1kq2iW)mY!9^Y
za%>N>@d|7w+xS9k54Q0|*rxqhChLEj-Ma=iv|O`Eo6~V!+a`0<_+?0}joUYQ90b$q
z*mX{;D;fsoh1y(e%Ch&c!t}-9m=7PO}iHW+uz!t14QpY$K9(3~aTGNdOFIN<$`j
ziUwp<=~TB1~9dG!(_~A 2BOb-@agj84{sa( ~Hz1z#Hs?SM7IHA9CrwWy(-bAEk_J
zpSb%d1x8%D(3(u-Rplr=PYH3Td_lZQ|4>E8tK?LfI}V ;$i=qrT#8%g>T#oJ>2jl&jfME-HJkXV!#UNM3zAV;&L##goh{IQ#
zh%*Q+mTSPUg}!x)`7_)g2gUqP@{|9`MDw&u{b-TmEn8PVMtF1RM&wl1U_38M6ZGpx
z^O5CB4;Z%4emNr6jDTSaP2TA0ZNRXFdaYEzu!X;CzygLX)a!xtbGCqC3)L9Rzt6CR
zJkz_h|J3z=(G8X7U$XE2sZRf`-~XHB@BdFy&UPbrxqtuPpT0JKW)~eHB=;1#r^yA*
z1kibb%kE47j>PbpfO=9r_nCl^w%M+K{5${-S7`UsjLrjy9D(xyf%5>`8WXtaQnN0h
z%W1WF6S(M-x);q8xad;1`=eXOwi4cJ>F4NXgLh`)zG~n+fagt${#{41-@FZ+2au$(
zLJsM757WJCpRV?f^X8zouk8=Vvj*ec!wG_ZbQ{{R6U&u8$$&%LJIx>tUwhY+1?~FO
z2hIa{_LcSh(ljCG^yL;f5AZ)e4}c86)Q`IUUu9jeSf~y9x-yHX{>Q-C#Nn%r7PD;Q
zcYbsHYM$$@IdC3;>rLQ1z(#}GA&x({`K^1m6V+F(-NYe{zXQ0#Ky#?DiU^zs@RhTH
z^8kVK0G@dXIy3Ez@lk`8C2|}#;1FkwM})SkAI(aM>Z@)B&I8asw4eM5oCgS;2hgvw
z0_On&7hPg^UB7n|xabmNTi`r^ud(*LFiPutmH+;E0Mw34`l##wZ^yp0k0Mf;zV!1|
zR)O;XWUksz{shhgc+ZP2*NZo`tBt^U0AJsh1YmBaO&(mY{debczup7Lt_?Pbx_|+aR(28}XCi%ja8E-m~;$
zz
&~|>DizEr`|w>srgH8n|k)=|LN2I^ZzPN
z`1ybO*q{G5HSBZ!+;@Lyskwe`n_AB2|5-5RTtDNO{cB?bKb?90p9O8MvtoRe6Q*FM
z$1OVN^Z%?g<~l3t1%YVmtQZ!Vj`R6{RyuQ?74^Q@IxBn1GvxVyA5!5uD^_IQA({J6
z(l`2RTf7s!-PHOjdtB#x0C)nlWz+WF1K@0*Td%MBH*R@uc`jE+wu09M{UJ!LaQzyc
zZ9=!ZE8O=0zz%F;=sI3s6@=Ei=l$(~4k_!avPZ|QYPG(K?*Y(0eE2H+NC|sdbe(O5
zP3`dSJ=nD0zlKA;{aapSu`|#AUxj&vM&Q5o{QtgQe3y;scmd*j82_=lV)%tP9qMz<
zGnZ!uhY>kmfM4?~@;R#;ssi5G_4$G3+O_puuH!**BCx;KU!T>~u%U6h3M{MJu(r0I
zsWT=18mkCwKdUe&7=zZMpFXeZ_&{|_NyF+uU2$#I_@?HjYSt38CQ&0IhlrS>rRaHc
z=6cPKz_+wC)mCu>?=7b++XCuWb(*xUo|KN%GQBdY85$*
o6$0wd{Oe3S0)P
z0oYaLXVmI|(}48=KVORXd}$W~7XZ6}i-AVqBH$9>1c2S;W?&m|60jZE0R(}Qfm4A^
zz(jPUQ_+cMSD&5vBY`yFD1f&Ryh%777!J-`3*J181X6%ez}W~p2RIkl39y^Z&Nw^N
z>^NTvTn1bY>;ZNI-vh1yt_0k*3m(l~yWp-}aMv#2Mi1?YeVqa?L{2|7?6DhR_D
zC3lM4YvhV)vU8B!A##tBJ4`O{ZZ`04Ht=qiCMUF+5O_DMymi$Yg{1uhnjYZ!U%rMV
z@rRZwvpW-}LiAwvMH@u&jc$!-s(?tWr`gE{a_Vbh+GLSmQp?1PJ6FEg5=?=mlwwO>
z7sVnP6x{ptE58jJG+Hs_GpI>FsN>8Sr2YI67@0T`8Cn&!ZQ+Y~=0j;!UsB(hVl_o7b
zosp_BmlBJ%1l4dWEIWeis!BMuet;B0aC7_!A~O;dEpqCpx=1h}gvUg5xc2lLbx73&
zn$c4hGnKf(rP$;;L1KNUL*<2}KbIzGGD=f3hzz2L1Y6>Yt#rVr{3MmdfXl~of>M7e
z($Ny}38LbtY~dCP#D$iQcaq{MtnYM0P}#AGBjj9?y}*XbpcWIGSvx^B$hV9?SB~fz
zjLK0{H|6)uwTMrhEnIBf)FdDbtm_1Rr1O0
zq5XrA