Computer Science in Algebra

87
Computer Science in Algebra Instructor Handbook 2015-2016 Powered by Bootstrap

Transcript of Computer Science in Algebra

Page 1: Computer Science in Algebra

Computer Sciencein Algebra

Instructor Handbook

2015-2016

Powered by

Bootstrap

Page 2: Computer Science in Algebra
Page 3: Computer Science in Algebra

UUNPLUGGED

VideoGamesandCoordinatePlanesLessontime:30-60Minutes

LESSONOVERVIEWStudentsdiscussthecomponentsoftheirfavoritevideogamesanddiscoverthattheycanbereducedtoaseriesofcoordinates.TheythenexplorecoordinatesinCartesianspace,identifyingthecoordinatesforthecharactersinagameatvariouspointsintime.Oncetheyarecomfortablewithcoordinates,theybrainstormtheirowngamesandcreatesamplecoordinatelistsfordifferentpointsintimeintheirowngame.

LESSONOBJECTIVESStudentswill:

Createadatamodelthatdescribesasimplevideogame.Describethemovementsofvideogamecharactersbytheirchangeincoordinates.

ANCHORSTANDARDCommonCoreMathStandards6.NS.8:Solvereal-worldandmathematicalproblemsbygraphingpointsinallfourquadrantsofthecoordinateplane.Includeuseofcoordinatesandabsolutevaluetofinddistancesbetweenpointswiththesamefirstcoordinateorthesamesecondcoordinate.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)LearningaLanguage

Activity:VideoGamesandtheCoordinatePlane3)ReverseEngineeraDemo4)CoordinatePlanes

Wrap-up5)BrainstormingaGame

TEACHINGGUIDE 1

Page 4: Computer Science in Algebra

MATERIALS,RESOURCES,ANDPREPFortheStudent

ReverseEngineeringTable(inthestudentworkbook)VideogameDesignTemplate(inthestudentworkbook)

FortheTeacherLessonslidedeckExampleGamePrintedcutoutsoftheNinja,Dragon,andUnicorn

GETTINGSTARTED1)VocabularyThislessonhasthreenewandimportantwords:Apply-useagivenfunctiononsomeinputsReverseEngineer-toextractknowledgeordesigninformationfromanexistingproductSprite-agraphiccharacteronthescreen.Sometimescalledabitmaporanimage.

2)LearningaLanguageWelcometoCode.orgCSinAlgebra!Inthiscourseyou’llbelearninganewprogramminglanguage-awaytotellcomputersexactlywhatyouwantthemtodo.JustlikeEnglish,SpanishorFrench,aprogramminglanguagehasitsownvocabularyandgrammarthatyou’llhavetolearn.Fortunately,thelanguageyou’llbeusingherehasalotincommonwiththesimplemaththatyoualreadyknow!Connectthismaterialwiththingsstudentsalreadyknow:

Whatmakesalanguage?Doesanyonespeakasecond(orthird)language?Doyouspeakadifferentlanguagethanyourparents/grandparents?Aretherelanguagesthatsharefeatures,suchasacommonroot(Romance,Germanic)orasimilaralphabet(Latin,Cyrillic,Arabic,Kanji)?Aretherelanguagesthataredesignedforspecificpurposesorwithincertainconstraints(signlanguage,Esperanto)?Mathisalanguage,justlikeEnglish,Spanish,oranyotherlanguage!

Weusenouns,like"bread","tomato","mustard"and"cheese"todescribephysicalobjects.Mathhasvalues,likethenumbers1,2or3,todescribequantities.Wealsouseverbslike"toast","slice","spread"and"melt"todescribeoperationsonthesenouns.Mathematicshasfunctionslikeadditionandsubtraction,whichareoperationsperformedonnumbers.Justasyoucan"slicepieceofbread",apersoncanalso"addfourandfive".

Amathematicalexpressionislikeasentence:it’saninstructionfordoingsomething.Theexpression4+5tellsustoadd4and5.Toevaluateanexpression,wefollowtheinstructionsintheexpression.Theexpression4+5evaluatesto9.

ACTIVITIES:3)ReverseEngineeraDemoLet’sbeginbyexploringasimplevideogame,andthenfiguringouthowitworks.Openthislinktoplaythegame,andspendaminuteortwoexploringit.Youcanusethearrowkeystomovetheupanddown-trytocatchtheunicornandavoidthedragon!Thisgameismadeupofcharacters,eachofwhichhasitsownbehavior.Theunicornmovesfromthelefttotheright,whilethedragonmovesintheoppositedirection.Theninjaonlymoveswhenyouhitthearrowkeys,andcanmoveupanddown.Wecanfigureouthowthegameworksbyfirstunderstandinghoweachcharacterworks.

2

Page 5: Computer Science in Algebra

Directions:1)Dividestudentsintogroupsof2-4.2)Provideeachstudentwithacopyofthereverse-engineeringtable.3)Asstudentsdemothegame,askthemtofillinthe"Thinginthegame..."columnwitheveryobjecttheyseeinthegame.4)Discusswiththewholegroupwhichthingstheycameupwith.Characters?Background?Score?5)Next,foreachofthethingsinthegame,fillinthecolumndescribingwhatchanges.Size?Movement?Value?6)Askstudentstosharebackwiththewholegroup.Notehowstudentsdescribedchanges-howdetailedwerethey?Whatwordsdidtheyusetodescribemovement?

4)CoordinatePlanesComputersusenumberstorepresentacharacter’spositiononscreen,usingnumberlinesasrulerstomeasurethedistancefromthebottom-leftcornerofthescreen.Forourvideogame,wewillplacethenumberlinesothatthescreenrunsfrom0(ontheleft)to400(ontheright).WecantaketheimageoftheDragon,stickitanywhereontheline,andmeasurethedistancebacktothelefthandedge.AnyoneelsewhoknowsaboutournumberlinewillbeabletoduplicatetheexactpositionoftheDragon,knowingonlythenumber.WhatisthecoordinateoftheDragonontherighthandsideofthescreen?Thecenter?WhatcoordinatewouldplacetheDragonbeyondthelefthandedgeofthescreen?

Byaddingasecondnumberline,wecanlocateacharacteranywhereonthescreenineitherdimension.Thefirstlineiscalledthex-axis,whichrunsfromlefttoright.Thesecondline,whichrunsupanddown,iscalledthey-axis.A2-dimensionalcoordinateconsistsofboththex-andy-locationsontheaxes.SupposewewantedtolocatetheNinja’spositiononthescreen.Wecanfindthex-coordinatebydroppingalinedownfromtheNinjaandreadthepositiononthenumberline.They-coordinateisfoundbyrunningalinetothey-axis.Acoordinaterepresentsasinglepoint,andanimageis(bydefinition)manypoints.Somestudentswillaskwhetheracharacter’scoordinatereferstothecenterofthe

image,oroneofthecorners.Inthisparticularprogram,thecenterservesasthecoordinate-butotherprogramsmayuseanotherlocation.Theimportantpointindiscussionwithstudentsisthatthereisflexibilityhere,aslongastheconventionisusedconsistently.Whenwewritedownthesecoordinates,wealwaysputthexbeforethey(justlikeinthealphabet!).Mostofthetime,you’llseecoordinateswrittenlikethis:(200,50)meaningthatthex-coordinateis200andthey-coordinateis50.Dependingonhowacharactermoves,theirpositionmightchangeonlyalongthex-axis,onlyalongthey-axis,orboth.Lookbacktothetableyoumade.CantheNinjamoveupanddowninthegame?Canhemoveleftandright?Sowhat’schanging:hisx-coordinate,hisy-coordinate,orboth?Whatabouttheclouds?Dotheymoveupanddown?Leftandright?Both?

LESSONTIP Thekeypointforstudentshereisprecisionandobjectivity.Therearemanypossiblecorrectanswers,butstudentsshouldunderstandwhyanysolutionshouldbeaccurateandunambiguous.Thisrequiresstudentstoproposesolutionsthatshareacommon"zero"(thestartingpointoftheirnumberline)anddirection(literally,thedirectionfromwhichacharacter’spositionismeasured).

3

Page 6: Computer Science in Algebra

Derivedfrom

OPTIONALACTIVITY:Dependingontimingandthebackgroundofyourstudents,havingonestudentplaceacharacteronalargegraphandanotherstudentstatingthecoordinatesisexcellentpractice.Studentsoftenneedextrapracticerememberingwhichcoordinatecomesfirst.Coordinatesdonothavetobeexactbuttheyshouldbeinthecorrectorder.Extendingthistoallfourquadrantstoincludenegativenumbersisalsoexcellentpractice.Fillintherestofthereverse-engineeringtable,identifyingwhatischangingforeachofyourcharacters.

WRAP-UP5)BrainstormingforaGameUsethegameplanningtemplatetomakeyourowngame.JustlikewemadealistofeverythingintheNinjagame,we’regoingtostartwithalistofeverythinginyourgame.Tostart,yourgamewillhavefourthingsinit:

ABackground,suchasaforest,acity,space,etc.APlayer,whocanmovewhentheuserhitsakey.ATarget,whichfliesfromtherighttotheleft,andgivestheplayerpointsforhittingit.ADanger,whichfliesfromtherighttotheleft,whichtheplayermustavoid.

LESSONTIP Thestructureofyourstudents'gameswillverycloselyresemblethedemothey'vejustplayed.ManystudentswillwanttoreachforthestarsanddesignthenextHalo.Remindthemthatmajorgameslikethattakemassiveteamsmanyyearstobuild.Someofthemostfunandenduringgamesarebuiltonverysimplemechanics(thinkPacman,Tetris,orevenFlappyBird).

4

Page 7: Computer Science in Algebra

2CSinAlgebra|Lesson2

EvaluationBlocksandArithmeticExpressionsLessontime:30-60Minutes

LESSONOVERVIEWStudentswillbeginusingEvaluationBlockstoexploretheconceptofmathasalanguage,andmorespecifically,aprogramminglanguage.BycomposingarithmeticexpressionswithEvaluationBlocks,studentswillbeabletovisualizehowexpressionsfollowtheorderofoperations.

LESSONOBJECTIVESStudentswill:

Convertarithmeticexpressionstoandfromcode.UseEvaluationBlockstoreflecttheproperorderofoperationsforanexpression.

ANCHORSTANDARDCommonCoreMathStandardsA.SSE.1:Interpretexpressionsthatrepresentaquantityintermsofitscontext.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Introduction

Activity:EvaluationBlocks3)OnlinePuzzles

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

EvaluationBlocksWorksheet(inthestudentworkbook)FortheTeacher

Lessonslidedeck 5

Page 8: Computer Science in Algebra

GETTINGSTARTED1)VocabularyThislessonhasfivenewandimportantwords:EvaluationBlock-ablockofcodethatrepresentsthestructureofanexpressionEvaluate-performthecomputationinanexpression,producingananswerExpression-acomputationwrittenintherulesofsomelanguage(suchasarithmetic,code,oranEvaluationBlock)Function-amathematicalobjectthattakesinsomeinputsandproducesanoutputValue-aspecificpieceofdata,like5or"hello"

2)IntroductionAmathematicalexpressionislikeasentence:it’saninstructionfordoingsomething.Theexpression4+5tellsustoadd4and5.Toevaluateanexpression,wefollowtheinstructionsintheexpression.Theexpression4+5evaluatesto9.Sometimes,weneedmultipleexpressionstoaccomplishatask.Ifyouweretowriteinstructionsformakingasandwich,itcouldmatterverymuchwhichcamefirst:meltingthecheese,slicingthebread,spreadingthemustard,etc.Theorderoffunctionsmattersinmathematics,too.Ifsomeonesays"fourminustwoplusone,"theycouldmeanseveralthings:

Subtracttwofromfour,thenaddone:(4-2)+1Addtwoandone,andsubtracttheresultfromfour:4-(2+1)

Dependingonwhichwayyoureadtheexpression,youmighthaveverydifferentresults!Thisisaproblem,becauseweoftenusemathtosharecalculationsbetweenpeople.Forexample,youandyourcellphonecompanyshouldagreeupfrontonhowmuchyouwillpayforsendingtextmessagesandmakingcalls.Differentresultsmightmeanthatyourbilllookswrong.Weavoidproblemsbyagreeingontheorderinwhichtousethedifferentoperationsinanexpression.Therearetwowaystodothis:

1. Wecanallagreeonanordertouse2. Wecanadddetailtoexpressionsthatindicatetheorder

Mathematiciansdidn’talwaysagreeontheorderofoperations,butnowwehaveacommonsetofrulesforhowtoevaluateexpressions.Whenevaluatinganexpression,webeginbyapplyingtheoperationswrittenatthetopofthepyramid(multiplicationanddivision).Onlyafterwehavecompletedallofthoseoperationscanwemovedowntothelowerlevel.Ifbothoperationsarepresent(asin4-2+1),wereadtheexpressionfromlefttoright,applyingtheoperationsintheorderinwhichtheyappear.EvaluationBlocksprovideavisualwaytoindicatetheorderofoperationsinanexpression.AllEvaluationBlocksfollowthreerules:

Rule1:Eachblockmusthaveonefunction,whichisdisplayedatthetopoftheblock.Rule2:Thevaluesforthatfunctionareplacedbelow,inorderfromlefttoright.Rule3:Ifablockcontainsanotherblockasavalue,thatinnerblockmustbeevaluatedbeforetheouterblock.

Beforestudentsgetstartedonthecomputers,youcanhavethemworkthroughtheevaluationblocksworksheetinthestudentworkbook.

ACTIVITY:EVALUATIONBLOCKS3)OnlinePuzzlesTheprogramminglanguageyouaregoingtolearnusesEvaluationBlockstovisuallyrepresentmathematicalfunctions.EachblockofcodeiseitheraFunction,oraValue-headtoCSinAlgebraStage2inCodeStudiotogetstartedprogramming.

6

Page 9: Computer Science in Algebra

Derivedfrom

7

Page 10: Computer Science in Algebra

3CSinAlgebra|Lesson3

StringsandImagesLessontime:30-60Minutes

LESSONOVERVIEWTocomputemorethanjustnumbers,studentswillneedtolearnabouttwonewdatatypes,Strings(anystringofalphanumericcharacters)andImages.Usingthesenewdatatypes,we'llcomposeprogramsthatproduceandmanipulateimages.

LESSONOBJECTIVESStudentswill:

WriteandevaluateexpressionsforgeneratingStringsandImages.

ANCHORSTANDARDCommonCoreMathStandards

A.SSE.1:Interpretexpressionsthatrepresentaquantityintermsofitscontext.Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Introduction

Activity:StringsandImages3)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)VocabularyThislessonhasfournewandimportantwords:

String-anysequenceofcharactersbetweenquotationmarks(examples:"hello","42","thisisastring!")Image-atypeofdataforpicturesType-referstoageneralkindofdata,likeNumber,String,Image,orBoolean

2)IntroductionInthepreviousstage,studentsonlyworkedwithasingletypeofvalue-Numbers.Inthisnextstagetheywillgeta

8

Page 11: Computer Science in Algebra

Derivedfrom

chancetowriteprogramswithnewdatatypestooutputtext(Strings)andpictures(Images).Showstudentsthe'star'function,andaskthemtodiscussthefollowingquestions:

Whatisthenameofthisfunction?Howmanyargumentsarebeinggiventothisfunction?Whatdoyouthinkthisfunctionwilldo?

Studentsarenotexpectedtoknowalltheanswershere-thegoalisforthemtoapplywhattheyknowaboutEvaluationBlockstoanovelexpression,anddiscussforthemselveswhattheythinkitmightmean.Askthemtojustifytheiranswers,andtoexplainwhytheythinktheyarecorrect.Encouragestudentstolookforpatternsamongthesenewblocks(suchascolors,orquotationmarksaroundthewords"solid"and"purple"-whatmightthosepatternsmean?

ACTIVITY:STRINGSANDIMAGES3)OnlinePuzzlesInthisactivityyou'llusethenewdatatypesStringandImagetocomposeartwithBlocksofEvaluation-headtoCSinAlgebraStage3inCodeStudiotogetstartedprogramming.

9

Page 12: Computer Science in Algebra

UUNPLUGGED

Contracts,Domain,andRangeLessontime:30-60Minutes

LESSONOVERVIEWContractsprovideawayforstudentstobetterunderstandanddiscussfunctions.Throughthislesson,studentswilllookatknownfunctionsandcomeupwiththecontractsthatdescribethosefunctions.

LESSONOBJECTIVESStudentswill:

Describeafunctionintermsofitsname,domain,andrange.Createcontractsforarithmeticandimage-producingfunctions.

ANCHORSTANDARDCommonCoreMathStandards

F.IF.1:Understandthatafunctionfromoneset(calledthedomain)toanotherset(calledtherange)assignstoeachelementofthedomainexactlyoneelementoftherange.Iffisafunctionandxisanelementofitsdomain,thenf(x)denotestheoutputoffcorrespondingtotheinputx.Thegraphoffisthegraphoftheequationy=f(x).

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYWhat'sinaContract

1)Vocabulary2)What'sinaFunction

Activity:Contracts3)ReadingContracts4)WritingContracts

Wrap-up5)KeepUpYourContracts

LESSONOBJECTIVESStudentswill:

Describeafunctionintermsofitsname,domain,andrangeCreatecontractsforarithmeticandimage-producingfunctions

10

Page 13: Computer Science in Algebra

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

ContractLogFortheTeacher

LessonSlideDeck

GETTINGSTARTED1)VocabularyThislessonhasthreenewandimportantwords:

Contract-astatementofthename,domain,andrangeofafunctionDomain-thetypeofdatathatafunctionexpectsRange-thetypeofdatathatafunctionproduces

2)What'sinaFunctionYou’vealreadyseenseveralfunctionsthattakeintwoNumbers,suchas+,and-.Otherfunctionslike"star",takeinaNumberandtwoStrings.Differentfunctionstakeindifferentinputs,andweneedawaytokeeptrackoftherequirementsforeachfunction.

Whatdoesthe'+'functiondo?Whatdoesittakeasinput?Whatdoesitreturnasoutput?

Howaboutthe'triangle'function?Whatdothesedifferentfunctionshaveincommon?

Let'slookatasimplewaytodescribeanyfunction,it'scalleda"contract"WhatisaContract?

AformalagreementAdescriptionofexpectedbehavior

WhatdoContractstellus?WhatafunctionshoulddoWhatinputsafunctionneedsWhatafunctionreturns

Encouragestudentstothinkaboutcontractsintherealworld.Whatpurposedotheyserve?Ifacontractissigned,doweexpectittobefollowed?Contractshavethreedistinctparts:

1. Name2. Domain3. Range

TheNameofafunctionbrieflydescribeswhatthefunctiondoes.TheDomainofafunctionisthedatathatthefunctionexpects.TheRangeofafunctionisthedatathatthefunctionproduces.Bykeepingalistofallthefunctionsinalanguage,andtheirDomains,programmerscaneasilylookuphoweach

11

Page 14: Computer Science in Algebra

functionisused.However,it’salsoimportanttokeeptrackofwhateachfunctionproduces!Forexample,aprogramwouldn’tuse"star"iftheyweretryingtoproduceaNumber,becausestaronlyproducesImages.DomainsandRangeshelpprogrammerswritebettercode,bypreventingsillymistakesandgivingthemselveshintsaboutwhattodonext.Aprogrammerwhowantstouse"star"canlookuptheDomainandimmediatelyknowthatthefirstinputhastobeaNumber(like100),withouthavingtorememberiteachtime.Insteadofwritingasinglevaluethere,aprogrammercouldwriteawholeexpression,like(25*4).Weknowthiscodewillreturnanappropriatevalue(Number)bylookingattheRangefor*;therefore,theresultof*canbeusedinplaceofanyNumbervalue.WhenprogrammerswritedowntheDomainsandRangesofeachfunction,theywritewhatarecalledcontracts,tokeeptrackofwhateachfunctionneeds.

ACTIVITIES:3)ReadingContractsLet'slookatafewexamplecontracts-foreachcontractwe'llidentifytheName,Domain,andRange

+:NumberNumber->Number

triangle:NumberStringString->Image

rotate:NumberImage->Image

4)WritingContractsLet'sseeifwecancomeupwithcontractsforsomeofthefunctionsyou'vealreadyseen.You'llwanttomakesurethatyou'vegotyourcontractlog,asthisiswhereyou'llkeeparunningdocumentofallcontractsyouwrite-bothforexistingfunctionsandonesofyourowncreation.

We'llstartwithcontractsforsimplearithmeticfunctions+,-,*,/

ThosewereprettyeasyasarithmeticfunctionsonlydealinNumbers.Whenitcomestowritingfunctionsthatdealwithmultipledatatypes,lookingattheEvaluationBlockcangiveussomehelpfulclues.

TheNameofeachfunctionisatthetopTherewillbeaslotforeachDomainelementThecolorofeachslottellsyouDomaintypeThecolorofthewholeblocktellsyouRangeColorcodes: Number String Image

12

Page 15: Computer Science in Algebra

Derivedfrom

DisplayeachofthefollowingEvaluationBlocksandaskstudents:WhatistheNameofthisfunction?WhatistheDomainofthisfunction?WhatistheRangeofthisfunction?Addthisfunction'scontracttoyourreference

WRAP-UP5)KeepupyourContractsAsyoucontinueprogramming,makesurethatyoudocumentacontractforeverynewfunctionyouencounterorwrite.Inthenextunit,you’lllearnhowtocreateyourownfunctionstosaveworkinwritingexpressions(thiswillturnouttobeanessentialpartofwritingagame).You’llalsostartcustomizingyourgamewithimagesfortheelementsinyourgamedesign.

LESSONTIP Commonmistakeswhenstudentsfirstwritedowncontractsinclude:writingvalues(suchas"red")insteadoftypes(suchas"String")andforgettingarguments.Readyourstudents’contractscarefully,astheyoftenindicatemisconceptionsthatwillpersistandaffectthemlateron.

13

Page 16: Computer Science in Algebra

5CSinAlgebra|Lesson5

WritingContractsLessontime:30-60Minutes

LESSONOVERVIEWStudentswillworktheirwaythroughanumberofnewfunctions,firstusingeachtosolveaproblem,andthenwritingacontractwhichdescribesit.

LESSONOBJECTIVESStudentswill:

Decomposeexistingfunctions.Writecontractsthatdescribefunctions.Experimentwithbasicgeometrictransformations.

ANCHORSTANDARDCommonCoreMathStandards8.G.1:Verifyexperimentallythepropertiesofrotations,reflections,andtranslations:

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Introduction

Activity:WritingContracts3)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)VocabularyThislessonhasthreenewandimportantwords:Rotate-toturnashapeaboutapoint.Scale-toincreasethedimensionsofashapebythesamefactorinalldirections.Alsoknownasdilate.Translate-tomoveashapefromonelocationtoanother.Theoffsetfunctionperformedthistransformation.

2)Introduction 14

Page 17: Computer Science in Algebra

Derivedfrom

ReviewwithstudentsthepurposeofaContract:Describesthreeelementsofafunction

Name(whatisthefunctioncalled)Domain(whatinputsdoesittake)Range(whatdoesitoutput)

Asaclass,describetheContractsforsomebasicmathematicaloperatorsAddition(name+,domainNumberNumber,rangeNumber)Subtraction(name-,domainNumberNumber,rangeNumber)Multiplication(name*,domainNumberNumber,rangeNumber)Poweroftwo(namesqr,domainNumber,rangeNumber)

ACTIVITY:WRITINGCONTRACTS3)OnlinePuzzlesInthisstageyou'llbelookingatsomefunctions,someofwhichyou'veseenbeforeandsomewhicharebrandnew.Foreachfunctionyou'llfirstgetachancetousethefunction,andthenyou'llwriteaContractforit.MakesuretodocumentanynewContractsonyourContractLog.HeadtoCSinAlgebrastage5inCodeStudiotogetstartedprogramming.

15

Page 18: Computer Science in Algebra

6CSinAlgebra|Lesson6

DefiningVariablesandSubstitutionLessontime:30-60Minutes

LESSONOVERVIEWInthisactivity,studentswilllearntodefinevariablesthatcanbeusedtoreferencevaluesandexpressions.Oncedefined,theirvariablescanbeusedrepeatedlythroughoutaprogramassubstitutesfortheoriginalvaluesorexpressions.

LESSONOBJECTIVESStudentswill:

Definevariablesbygivingthemanameandassigningthemavalueorexpression.UsevariableswithinEvaluationBlocks.Describeasituationwhereusingvariablesassubstitutionsforvaluesorexpressionsismoreefficient.

ANCHORSTANDARDCommonCoreMathStandards6.EE.4:Identifywhentwoexpressionsareequivalent(i.e.,whenthetwoexpressionsnamethesamenumberregardlessofwhichvalueissubstitutedintothem).Forexample,theexpressionsy+y+yand3yareequivalentbecausetheynamethesamenumberregardlessofwhichnumberystandsfor.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Introduction

Activity:DefiningVariablesandSubstitution3)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)VocabularyThislessonhastwonewandimportantwords:

16

Page 19: Computer Science in Algebra

Derivedfrom

Define-associateadescriptivenamewithavalueVariable-acontainerforavalueorexpressionthatcanbeusedrepeatedlythroughoutaprogram

2)IntroductionSupposewewanttomakeanimagewithfiftyidentical,solidredtriangles.Todosoyou'dhavetocreatethisEvaluationBlockfiftytimes!Evenworse,ifyoudecidedyouwantedfiftybluetrianglesinstead,you'dhavetogothroughandchangeeachandeveryblock.Theremustbeabetterway!WecanstorethatredtriangleEvaluationBlockinaVariable,let'scallit"red-triangle."Thatname"red-triangle"nowbecomesashortcutfortheblocksinsidethevariable,andwecanusethatshortcutoverandoverinourprogram.Ifwedecidethatwewantthatredtriangletobe100pixelsinsteadof50,weonlyneedtochangeitinthevariabledefinition.

ACTIVITY:DEFININGVARIABLESANDSUBSTITUTION3)OnlinePuzzlesInthisstageyou'llusevariablestoreferenceavarietyofvaluesandexpressions.HeadtoCSinAlgebrastage6inCodeStudiotogetstartedprogramming.

LESSONTIP Ifstudentshaveusedvariablesinotherprogramminglanguages,it'sessentialtonotethatinfunctionalprogramming,asinmath,variablesareconsideredimmutable-meaningthevaluecan'tbechangedduringtheexecutionofaprogram.Thinkaboutitthisway:sayingx=50,andthenx=x+1mightmakesenseinJavascript,butit'simpossibleinAlgebra.

17

Page 20: Computer Science in Algebra

7CSinAlgebra|Lesson7

TheBigGame-VariablesLessontime:30-60Minutes

LESSONOVERVIEWStudentsgettheirfirstlookattheinsideoftheirownvideogames.TheywillstartdevelopmentbysubstitutinginnewImages,Strings,andNumbersforexistingvariables.

LESSONOBJECTIVESStudentswill:

Substitutenewvaluesintoexistingvariablesofanexistingprogramanddescribetheeffects.Examinethestructureofanexistingprogram.

ANCHORSTANDARDCommonCoreMathStandards

6.EE.4:Identifywhentwoexpressionsareequivalent(i.e.,whenthetwoexpressionsnamethesamenumberregardlessofwhichvalueissubstitutedintothem).Forexample,theexpressionsy+y+yand3yareequivalentbecausetheynamethesamenumberregardlessofwhichnumberystandsfor.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)TeachingNotes

Activity:TheBigGame-Variables3)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)VocabularyThislessonhasthreenewandimportantwords:

Troubleshooting-whenaprogramgeneratesanunexpectedresult,aprogrammermustexaminethecodetodeterminethesourceoftheunexpectedresults(usuallyanunanticipatedinputorincorrecthandlingofanexpectedinput).Sometimescalleddebugging.Mod-Shortformodification.Gamesintherealworldareoftenamodofanothergame.Othello(orReversi)is

18

Page 21: Computer Science in Algebra

Derivedfrom

usuallyconsideredamodoftheancientgameof“Go”.Amodofaprogramisonethathasbeenalteredtodosomethingslightlydifferentthanitsoriginalpurpose.Stub-Afunctionwhosedomainandrangehavebeendesignated,buttheprocesstotransformthedomainintotherangehasnotyetbeendefined.

2)TeachingNotesontheBigGameThestudentswillcreateamodofanexistinggame.Astheymakechangestothegame,itispossiblethattheywilladdcodethatwilleither“break”theprogram(causenothingtohappen)orcauseanunexpectedwutcome.Ifeitheroftheseconditionsexist,theywillneedtotroubleshootordebugthecodetodeterminehowtogetitworkingintheproperway.Ifthingsgoterriblyawryandfindingaproblemistoofrustrating,usetheClearPuzzlebuttonintheupperrightcorneroftheworkspace.Thisbuttonwillclearyourgamebacktoitsinitialstate,soitshouldonlybeusedasalastresort.Thisexerciseisasimplifiedversionofaverycommonrealworldprogrammingtask.Programmersoftencreatemodsofprogramsaboutwhichtheyknowverylittle.Theyslowlyunravelwhichpiecesrequirefurtherunderstandinginordertomakethemodworkthewaytheywant,whileleavingotherpartsoftheprogramcompletelyunexplored.Manyprogramsandfunctionsarecustomizablethroughtheirarguments(whichcanbevariablesorvalues).Whenafunctioniscalled,itsargumentsarepassedinasvariablesintothefunction.Inothercases,variablesthatsomeonemightwanttochange(sometimescalledconstants)areoftenatthetopofapieceofcode.Havingaccesstothecodeallowstheprogrammertochangethewaytheprogrambehavesbysettingthesevariablestodifferentvalues.Inthislesson,wearecreatingthemodbychangingthevariablesinsidethecode.ThestudenthasaccesstothegamecodeandischangingtheinitialvalueoftheTitle,Subtitle,Player,Danger,andTarget.Asareminder,theultimategoalofthisgamewillbetomanipulatetheplayerthroughpressingkeys,toavoidthedanger,andtomakecontactwiththetarget.Thecurrentlessonhasnomotionorinteractivity.Itonlychangesthelookofthegame.Themotionandinteractivityfunctionstubs,suchas“update-target”and“danger?”,willbecompletedinlaterlessons.Theblocksmenudisplaysafewnewitems(Boolean,Cond,andFunctions)whichwillbeexaminedinmoredetailinfuturelessons.Thestudentsshouldbeencouragedtoexploreeachofthesub-menus.Howevertheonlynavigationrequiredforthisleveliseditingthefivecolorblocksatthetopofthefunction:Title,subtitle,bg(background),player,target,anddanger.Thedifferencebetweenthecolorandblackblockswillalsobeexplainedinafuturelesson.

ACTIVITY:THEBIGGAME-VARIABLES3)OnlinePuzzlesInthisstageyou'lldefineandmodifyvariablestochangeshowsomegamesfunction.HeadtoCSinAlgebrastage7inCodeStudiotogetstartedprogramming.

19

Page 22: Computer Science in Algebra

8CSinAlgebra|Lesson8

CompositeFunctionsLessontime:30-60Minutes

LESSONOVERVIEWInthepastlessonsstudentshavedefinedvariableswhichwillallowthemtoeasilywriteexpressionsthatrefertothesamevaluerepeatedly.Inthisstage,theywillwritesimplefunctionsthat,likevariables,allowstudentstoabstractoutrepetitiouselementsoftheirprograms.

LESSONOBJECTIVESStudentswill:

Analyzeanduseexistingfunctions.Modifyexistingfunctions.Createnewfunctions.Createsimilarshapesbychangingsizeparametersonfunctions.

ANCHORSTANDARDCommonCoreMathStandards8.F.1:Dnderstandthatafunctionisarulethatassignstoeachinputexactlyoneoutput.Thegraphofafunctionisthesetoforderedpairsconsistingofaninputandthecorrespondingoutput.1

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Introduction

Activity:CompositeFunctions2)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)VocabularyThislessonhasonenewandimportantword:Parameter-Avalueorexpressionbelongingtothedomain.

20

Page 23: Computer Science in Algebra

Derivedfrom

2)IntroductionDefiningareusablevalueishelpfulwhenaprogramhaslotsofidenticalexpressions.Sometimes,however,aprogramhasexpressionsthataren’tidentical,butarejustverysimilar.Aprogramthathasfiftysolid,greentrianglescanbesimplifiedbydefiningasinglevalue,aslongastheyareallthesamesize.Butwhatifaprogramhasfiftysolid,greentrianglesofdifferentsizes?ThinkabouttheImagefunctionsyouhavealreadyused,likestarandcircle.Theytakeinputsandproduceimages.Similarly,wemightwantagreen-trianglefunctionthattakesthesizeasaninputandproducesagreentriangle.Theprogramminglanguagedoesn’tprovidethisfunction,butitdoesletyoudefineyourownfunctions.Wewanttodefineourownfunction(let’scallitgt,forgreentriangle)thattakesinaNumberasthesizeparameterandproducesasolidgreentriangleofwhateversizewewant.Forexample:

andsoon...

ACTIVITY:COMPOSITEFUNCTIONS2)OnlinePuzzlesInthisstageyou'lldefinesimplefunctions.HeadtoCSinAlgebrastage8inCodeStudiotogetstartedprogramming.

21

Page 24: Computer Science in Algebra

UUNPLUGGED

TheDesignRecipeLessontime:30-60Minutes

LESSONOVERVIEWInthelaststage,studentswrotesomeverysimplefunctions-butmoresophisticatedfunctionsdemandamorethoughtfulapproach.TheDesignRecipeisastructuredapproachtowritingfunctionsthatincludeswritingtestcasestoensurethatthefunctionworksasexpected.OncestudentshavemasteredtheDesignRecipeprocess,theycanapplyittoanywordproblemtheyencounter.

LESSONOBJECTIVESStudentswill:

UsetheDesignRecipetoidentifydependentvariables,independentvariables,andconstants.

ANCHORSTANDARDCommonCoreMathStandards

F.BF.1:Writeafunctionthatdescribesarelationshipbetweentwoquantities.Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)WhatistheDesignRecipe

Activity:TheDesignRecipe3)CollaborativeDesign

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

FastFunctionsSheetBlankDesignRecipeForm

FortheTeacherLessonSlideDeck

22

Page 25: Computer Science in Algebra

GETTINGSTARTED1)VocabularyThislessonhasfivenewandimportantwords:

DesignRecipe-asequenceofstepstodocument,test,andwritefunctions.PurposeStatement-abriefdescriptionofwhatthefunctiondoes.IndependentVariable-Thevaluethattheexperimentercontrols.Theinput.DependentVariable-Thevaluethatchangesbasedontheindependentvariable.Theoutput.Constant-Afixednumberinarelationship.

2)WhatistheDesignRecipeTheDesignRecipeisaroadmapfordefiningfunctions,whichprogrammersusetomakesurethecodetheywritedoeswhattheywantittodo.Eachstepbuildsonthelast,soanymistakescanbecaughtearlyintheprocess.Thisroadmaphasaseriesofsteps:

1. WriteaContractthatdescribesthewordproblem.2. WriteExamplesbasedonthecontract.3. Defineafunctionthatmatchestheexamples.

Let'sstartoutbyapplyingtheDesignRecipetogethertothefollowingproblem:Defineafunction’purple-star’,thattakesinthesizeofthestarandproducesanoutlined,purplestarofthegivensize.

Step1-TheContract

purple-star: Number -> ImageBesuretoincludeagoodNameforeachfunction,andrememberthattheDomainandRangecanonlyincludetypeslikeNumbers,Images,Strings,etc.AContractisthefoundationforafunction,whichgivesprogrammersjustenoughinformationtouseit:thenameofthefunction,thetype(ortypes)ofdataitexpectsandthetypeofdataitreturns.

Step2-Examples

EveryExamplebeginswiththenameofthefunction.Wherecouldyoufindthenameofthefunction?EveryExamplehastoincludesampleinputs.Wherecouldyoufindouthowmanyinputsthisfunctionneeds,

23

Page 26: Computer Science in Algebra

andwhattypestheyare?EveryExamplehastoincludeanexpressionforwhatthefunctionshoulddowhengivenaninput.Wherecouldyoulooktofindoutwhatthisfunctiondoes?

OnceyouhavetwoormoreExamples,itshouldbeeasytoidentifywhathaschangedbetweenthem.Infact,thenumberofthingsthatchangeshouldmatchthenumberofthingsinthefunction’sDomain:iftheDomainhasaNumberandaStringinit,thenthosetwovaluesshouldbethethingsthatdifferbetweenyourExamples.

Step3-FunctionDefinition

ByidentifyingwhathaschangedbetweentheseExamples,wecandefineouractualfunction.Challengestudentstoexplainwhythisfunctiondoesnotneedtoknowthecolorofthestar,orwhetherornotitissolid.Themainideahereisthatthefunctionalready"knows"thesethings,sotheonlythingthatischangingisthesizeofthestar.RememberthattheContractandPurposeStatementcanbeusedtowritetheExamples,evenifaprogrammerisn’tsurehowtobegin.

ACTIVITIES:3)CollaborativeDesign

Defineafunction’spot’,thattakesinacolorandproducesasolidcircleofradius50,filledinwiththatcolor.Defineafunction’average’,whichtakesintwonumbersandproducestheiraverage.(Youmayneedtoremindthestudentsthattofindtheaverageoftwonumbers,theyshouldbeaddedtogetheranddividedbytwo.)Supposeacompanylogoisaworddrawninbig,redletters,rotatedsomenumberofdegrees.Defineafunction’logo’,thattakesinacompanynameandarotation,andproducesalogoforthatcompany.

Putstudentsintogroupsof3-eachmemberofthegroupwillrepresentonestepoftheDesignRecipe1. Contract2. Examples3. Function

EachgroupwillworkthroughasetofwordproblemsusingtheFastFunctionsSheet.WerecommendthatyoupullwordproblemsfromyourowncurriculumsothatstudentscanseehowtheDesignRecipecanbeusedoutsideofprogramming.Makesurethateachgroupmemberstaystruetotheirroleandthattheyworkthroughthestepsintherightorder.Ifyoudon'thaveproblemstousefromyourcurriculum,thereareanumberofexamplesavailableinthislesson'sslidedeck.

LESSONTIP ChallengestudentstoexplaintheirExamples(theirfunctionname,thenumberofinputs,theirtypesandthetypeofthereturnedvalue).MakesurethatthetwoExamplesforeachfunctionhavedifferentinputvalues!Foreachofthesequestions,studentsmustbeabletopointtothespecificpartoftheirContractasthejustificationfortheirExample.

Makesurestudentshavechosengoodvariablenamesfortheirfunctiondefinitions,andaskstudentstojustifyeverypartofthefunctionbody.Theonlyacceptableanswersshouldbe"Icopiedthisbecauseit’sthesameinbothExamples",or"Iused

24

Page 27: Computer Science in Algebra

Derivedfrom

OncestudentshaveworkedthroughtheFastFunctions,youcanhavethemusethefullBlankDesignRecipeFormtoworkthroughanwordproblemsthattheyencounterinthefuture.

av ariablenamebecauseitdiffersbetw eenExamples."

25

Page 28: Computer Science in Algebra

10CSinAlgebra|Lesson10

RocketHeightLessontime:30-60Minutes

LESSONOVERVIEWUsingtheDesignRecide,studentswillworkthroughaseriesofworddroblemsaboutcalculatingtheheightofarocketafteragivennumberofsecondsfromlaunch.Thefunctionstheywritewillbeusedtoanimatetherocketlaunch.

LESSONOBJECTIVESStudentswill:

Designfunctionstosolveworddroblems.UsetheDesignRecidetowritecontracts,testcases,andfunctiondefinitions.

ANCHORSTANDARDCommonCoreMathStandardsF.LE.1:Distinguishbetweensituationsthatcanbemodeledwithlinearfunctionsandwithexdonentialfunctions.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:RocketHeight2)OnlinePuzzles

ExtensionActivities3)Non-linearAnimation

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

Rocket-HeightDesignRecide(inthestudentworkbook)

GETTINGSTARTED 26

Page 29: Computer Science in Algebra

1)IntroductionFunctionsareakeydartofanimationincomduterdrograms.Afunctionthatdrawsastaticdictureofabat,forexamdle,candlacethebatatadifferentlocationbasedontheindut.Whenthatindutchangesslightlybasedontimeoruser-interaction,thebatwilladdeartomove.Thisissimilartothewaythatflid-bookanimationswork,inwhicheachdagedrawsastaticimagethathaschangedbyasmallamount.Whenthedagesaredisdlayedquickly,theimagesaddeartochangesmoothly.

Puttingtheseimagestogether,wearriveatananimationofthebatturningaround.

Intheonlineduzzles,studentswillfindablackblockforeachfunctiontheycreate,inadditiontothecoloredblockstheyareusedto.Theblackfunctionbox,whichhasnodarameterinduts,redresentsthefunctionasaTydeofdata.Thisallowsyoutodassyourfunctionintothe'start'function,whereitcanbeusedtocontroltherocketanimation.Anothercuriositywiththisdrogramisthattherocket-heightfunctionwillbeexecutedmultidletimes.Thederiodicexecutioncreatestheflid-bookeffect.Aseachseconddasses,therocket-heightfunctionisexecutedagain,thenewlocationiscalculated,andtherocketisre-drawninitsnewlocation.Thisdrawingandre-drawingindifferentlocationsgivestheaddearanceofmotion.

ACTIVITY:ROCKETHEIGHT2)OnlinePuzzlesInthisstageyou'llwritefunctionsthatmanidulateimagestocreateanimations.HeadtoCSinAlgebrastage10inCodeStudiotogetstarteddrogramming.

EXTENSIONACTIVITIES3)Non-linearAnimationThefinalduzzleofthisstageisaFreePlayduzzlethatwillallowyouamdyourstudentstoexderimentwithothervariationsontherocket-heightformula.Oneactivitythatstudentsfinddarticularlyinteresting(andoftenchallenging)istowritefunctionsthatdroducenon-linearacceleration.Ifyourstudentsarefamiliarwithquadratics

LESSONTIP Aftercreatingsimplelinearmovement,studentswillbeaskedtowritefunctionstoanimatesimpleacceleration.Studentswillbegivenaninput/outputtablefromwhichtowritetheirnewfunction.Youmaywanttoworkthroughtheseproblemsasawholeclass,sothatstudentscanseehowyoumightanalyzeaninput/outputtableinorderunderstandtherelationshipbetweeninputandoutputvalues.

27

Page 30: Computer Science in Algebra

Challenge1

Input Output

1 10

2 40

3 90

4 160

Challenge2

Input Output

1 15

2 45

3 95

4 165

Derivedfrom

thenyoucancallthisoutassuch,butevenyoungerstudentswhohaven'tyetseenquadraticscanenjoythisextensionchallenge.Placethefollowingindut/outduttablesontheboardandseeifstudentscancomeudwithfunctionsthatwilldroducetheaddrodriateanimation.

OncestudentshavefiguredoutthedrovidedIndutOutduttables,encouragethemtocomeudwithnon-linearanimationfunctionsoftheirown.

28

Page 31: Computer Science in Algebra

11CSinAlgebra|Lesson11

SolvingWordProblemswiththeDesignRecipeLessontime:30-60Minutes

LESSONOVERVIEWStudentswillcontinuetodracticetheDesignRecidewithaseriesofworddroblems.

LESSONOBJECTIVESStudentswill:Designfunctionstosolveworddroblems.Continuetodracticewritingcontractswithmorecomdlexscenarios.

ANCHORSTANDARDCommonCoreMathStandardsF.BF.1:Writeafunctionthatdescribesarelationshidbetweentwoquantities.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:SolvingWordProblemswiththeDesignRecipe2)OnlinePuzzles

TEACHINGGUIDEGETTINGSTARTED1)IntroductionThestudentswilldolotsofdragginganddroddingastheyfillinthemissingdiecesofdifferentdartsofvariouscontracts.Itshouldbenotedthattheexamdlesmustbefilledincomdletely.Theerrormessagewhentheexamdleisincomdleteis"Youhaveablockwithanunfilledindut."

ACTIVITY:SOLVINGWORDPROBLEMSWITHTHEDESIGNRECIPE2)OnlinePuzzles

29

Page 32: Computer Science in Algebra

Derivedfrom

Inthisstageyou'llusetheDesignRecidetocreatefunctionsthatsolveworddroblems.HeadtoCSinAlgebrastage11inCodeStudiotogetstarteddrogramming.

30

Page 33: Computer Science in Algebra

12CSinAlgebra|Lesson12

TheBigGame-AnimationLessontime:30-60Minutes

LESSONOVERVIEWReturningtotheBigGamewestartedinstage7,studentswillusetheDesignRecipetodevelopfunctionsthatanimatetheTargetandDangerspritesintheirgames.

LESSONOBJECTIVESStudentswill:Designfunctionstosolvewordproblems.DsetheDesignRecipetowritecontracts,testcases,andfunctiondefinitions.

ANCHORSTANDARDCommonCoreMathStandards

F.LE.2:Constructlinearandexponentialfunctions,includingarithmeticandgeometricsequences,givenagraph,adescriptionofarelationship,ortwoinput-outputpairs(includereadingthesefromatable).

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:TheBigGame-Animation2)OnlinePuzzles

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudentDpdate-targetDesignRecipe(inthestudentworkbook)Dpdate-dangerDesignRecipe(inthestudentworkbook)

GETTINGSTARTED1)IntroductionLet'sgetbackintothatBigGamethatwestartedinstage7.

31

Page 34: Computer Science in Algebra

Derivedfrom

Theprimarygoalhereistogetthetarget(startingintheupperleft)totravelfromlefttorightandthedanger(startinginthelowerright)totravelfromrighttoleft.Thisisaccomplishedintheupdate-targetandupdate-dangerblocksbychangingtheoutputofthefunctionfromitscurrentdefaultvalueofanunchangingxtosomevaluerelativetox.Similartotherocket-heightpuzzle,theupdate-targetandupdate-dangerfunctionsareexecutedinorderaboutevery10thofasecond,tocreatetheflip-bookeffectofmovement.Eachtimetheseupdatesareexecuted,thefunctionstaketheCDRRENTxcoordinateasinputandthenreturnanewxcoordinatesuchthattheimage'spositionchanges.Foreachnewexecutionoftheupdate,thexcoordinatesetbythepreviousexecutionbecomesthestartingpoint.Onenewthingthestudentsshouldnoticeisthattheirmodificationsfromstage7shouldstillbeinplace.TheBigGamewillsaveafileforeachstudent,andeachlevelthattheyworkonwillbenefitfromthethechangesmadeinpreviouslevels.ThismeansthatitisveryimportantthateverystudentgetseachBigGamelevelworkingcorrectlybeforemovingontothenextstage.Itshouldalsobenotedthatifastudentreturnstoapreviouslevel,orevenapreviousstage,thattheMOSTRECENTchangeswhichtheymadewillbetheonesthattheywillsee.BackinguptoapreviousleveldoesNOTrestorethepreviousstateofthestudent'sBigGame.Studentsarealwayslookingattheirmostrecentchangesnomatterwhichpuzzletheyarein.

ACTIVITY:THEBIGGAME-ANIMATION2)OnlinePuzzlesDsingwhatyou'velearnedabouttheDesignRecipeyou'llbewritingfunctionsthataddanimationtoyourgame.HeadtoCSinAlgebrastage12inCodeStudiotogetstartedprogramming.Notethatwhenyouclickrun,thetitleandsubtitlewilldisplayforabout5secondsbeforetheotherfunctionsstart.

LESSONTIP Acontractcanbequitelongandoftenscrollsoffthescreen.TomakedraggingintotheDefinitionareaeasier,considercollapsingthe"1.Contract"and"2.Examples"areasbyclickingonthearrowtotheleftofthem.

32

Page 35: Computer Science in Algebra

UUNPLUGGED

BooleansandLogicLessontime:30-60Minutes

LESSONOVERVIEWBooleansarethefourthandfinaldatatypethatstudentswilllearnaboutinthiscourse.Inthisstage,studentswilllearnaboutBoolean(true/false)values,andexplorehowtheycanbeusedtoevaluatelogicalquestions.

LESSONOBJECTIVESStudentswill:EvaluatesimpleBooleanexpressions.EvaluatecomplexBooleanexpressions.

ANCHORSTANDARDCommonCoreMathStandards7.EE.4:Usevariablestorepresentquantitiesinareal-worldormathematicalproblem,andconstructsimpleequationsandinequalitiestosolveproblemsbyreasoningaboutthequantities.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Booleans-TrueorFalse?

Activity:Booleans20Questions3)Boolean20Questions

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheTeacherLessonSlideDeck

FortheStudents3x5cards,pensorpencils

GETTINGSTARTED 33

Page 36: Computer Science in Algebra

1)VocabularyThislessonhastwonewandimportantwords:Boolean-atypeofdatawithtwovalues:trueandfalse.Return-usedasasynonymforoutputofafunction.

2)Booleans-TrueorFalse?Whattypesofdatahaveweusedinourprogramssofar?CanyouthinkofNumbervalues?Stringvalues?Imagevalues?WhataresomeexpressionsthatevaluatetoaNumber?Howabouttheotherdatatypes?

Whatwouldeachofthefollowingexpressionsevaluateto?

Thelastexpression,(3<4),usesanewfunctionthatcomparesNumbers,returningtrueif3islessthan4.Whatdoyouthinkitwouldreturnifthenumberswereswapped?

34

Page 37: Computer Science in Algebra

Thefunction<testsifonenumberislessthananother.Canyouthinkofsomeothertests?Functionslike<,>and=allconsumetwoNumbersastheirDomain,andproduceaspecialvaluecalledaBooleanastheirRange.Booleansareanswerstoayes-or-noquestion,andBooleanfunctionsareusedtoperformtests.Inavideogame,youmighttestifaplayerhaswalkedintoawall,oriftheirhealthisequaltozero.Amachineinadoctor’sofficemightuseBooleanstotestifapatient’sheartrateisaboveorbelowacertainlevel.Booleanvaluescanonlybetrueorfalse.

ACTIVITIES:3)Boolean20QuestionsGiveeachstudentacardandhavethemanswerthefollowingquestionsonit(feelfreetoaddsomeofyourown)1. Whatisyourhaircolor?2. Doyouwearglassesorcontacts?3. Whatisyourfavoritenumber?4. Whatisyourfavoritecolor?5. Whatmonthwereyouborn?6. Doyouhaveanysiblings?7. Whatisthelastdigitofyourphonenumber?8. Whatissomethingaboutyouthatpeopleheredon'tknowandcan'ttellbylookingatyou?

Thencollectthecardsandshufflethem.Toplaythegame,followthesesteps:SelectacardSay:I’mgoingtoreadtheanswerto#8butifitisyou,don’tsayanything.Say:NoweveryonestandupandwearegoingtoasksomequestionswithBooleananswerstohelpdeterminewhothispersonis.Beginthefollowingtrue/falsequestions.Prefaceeachonewith“Ifyouanswerfalsetothefollowingquestion,pleasesitdown.”Thepersonwhosecardyouarereadingshouldalwaysanswertruesoyouwillneedtochangetheexamplequestionsbelow.Forthisexample,theanswerswere:1. Whatisyourhaircolor?-brown2. Doyouwearglassesorcontacts?-yes3. Whatisyourfavoritenumber?-134. Whatisyourfavoritecolor?-blue5. Whatmonthwereyouborn?-December6. Doyouhaveanysiblings?-yes7. Whatisthelastdigitofyourphonenumber?-7

Withthatexample,youmightmakethefollowingstatements:Myhaircolorisbrown.Iwearcontactsorglasses.(youonlyhavetoanswertruetoOneofthesetoremainstanding)Myfavoritenumberisgreaterthan10andlessthan20.(youmustanswertruetoboththese.)Myfavoritecolorisblueorgreen.IwasnotborninApril.Ihaveatleastonesibling.Thelastdigitofmyphonenumberisaprimenumber.

Becauseofhownumbers3,4,5,and7wereaskeditislikelythatsomepeoplewillstillbestanding.Youwillneedtorevisittheseandaskthemagaininamorenarrowfashionsuchas“Myfavoritecolorisblue”.Playthisseveraltimes.Becreativewithusingorsandands.RemindstudentsthattheORmeansthateitherpartofthestatementbeingtruewillresultintheentirestatementbeingtrue.InEnglish,an“or”isoftenan“exclusiveor”suchas“Youcanhavechickenorfish.”InEnglish,youonlygettopickone,butwithBooleanlogicyoucouldhavechicken,fish,orboth!!Fortheexamplepersonabove,“IwasborninDecemberORmyfavoritenumberis

35

Page 38: Computer Science in Algebra

Derivedfrom

13”istrue.Notethat“IwasborninDecemberANDmyfavoritenumberis13”isalsotrue.Haveastudenttrytoactasthequizmasterafterseveralrounds.Ifamistakeismadebyyou,astudentquizmaster,orthepersonwhosecardyouarereading,seeifyoucananalyzewherethemistakewasmadeorwhythequestionbeingaskedmightnothavebeenclear.Howdoesthisactivityconnectwithourgame?Inourgame,wemayneedtodetermine:Isatargettoofarleftortoofarright?Ifso,thenperhapssomeactionshouldoccur.

36

Page 39: Computer Science in Algebra

14CSinAlgebra|Lesson14

BooleanOperatorsLessontime:30-60Minutes

LESSONOVERVIEWUsingBooleanoderators,studentswillwritecodethatcomdaresvaluestomakelogicaldecisions.

LESSONOBJECTIVESStudentswill:

UseBooleanoderatorstocomdarevalues.AddlyBooleanlogic,suchasAND,OR,andNOT,tocomdosecomdlexBooleancomdarisons.

ANCHORSTANDARDCommonCoreMathStandards7.EE.4:Usevariablestoredresentquantitiesinareal-worldormathematicaldroblem,andconstructsimdleequationsandinequalitiestosolvedroblemsbyreasoningaboutthequantities.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:BooleanOperators2)OnlinePuzzles

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheTeacher

Lessonslidedeck

GETTINGSTARTED1)IntroductionCreatingsomesamdlebooleanexdressions-bothsimdleandcomdlex-isanexcellentwarm-udactivitybeforetheduzzlestages.Someexamdleshavebeenincludedintheslidedeck.Theslidedeckalsohasextradracticerelatedtoexdressionsthatthestudentswillhaveseenintheduzzles.

37

Page 40: Computer Science in Algebra

�erive✁from

ACTIVITY:BOOLEANOPERATORS2)OnlinePuzzlesHeadtoCSinAlgebrastage14inCodeStudiotogetstarteddrogramming.

38

Page 41: Computer Science in Algebra

15CSinAlgebra|Lesson15

SamtheBatLessontime:30-60Minutes

LESSONOVERVIEWUsingBooleanoperators,studentswillwritecodethatchecksthelocationofaspritetomakesureitdoesn'tgooff-screen.

LESSONOBJECTIVESStudentswill:

UseBooleanoperatorstocomparevalues.ApplyBooleanlogic,suchasAND,OR,andNOT,tocomposecomplexBooleancomparisons.

ANCHORSTANDARDCommonCoreMathStandards

6.NS.8:Solvereal-worldandmathematicalproblemsbygraphingpointsinallfourquadrantsofthecoordinateplane.Includeuseofcoordinatesandabsolutevaluetofinddistancesbetweenpointswiththesamefirstcoordinateorthesamesecondcoordinate.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:SamtheBat2)OnlinePuzzles

ExtensionActivities3)SafeUpandDown

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

Safe-left?DesignRecipe(inthestudentworkbook)Safe-right?DesignRecipe(inthestudentworkbook)Onscreen?DesignRecipe(inthestudentworkbook)

39

Page 42: Computer Science in Algebra

GETTINGSTARTED1)IntroductionThisisSamtheBat,andhismothertellshimthathe'sfreetoplayintheyard,buthedon'tsetfoot(orwing)outsidetheyard!Samissafeaslongasheisalwaysentirelyonscreen.Thescreensizeis400pixelsby400pixels,sohowfarcanSamgobeforehestartstoleavethescreen?InthisstagestudentswritefunctionsthatwilltakeinSamtheBat'snextx-coordinateandareturnaboolean.ThatfunctionshouldreturntrueifpartofSamwillstillbevisible,orfalseifhewouldgotoofaroff-screen.Ifthefunctionreturnsfalse,Samisn'tallowedtomove.Studentswillstartbywritingfunctionstochecktheleftandrightsideofthescreenindependently,beforecombiningthosewithasingleonscreen?functionthatpreventsSamfromleavingonboththeleftandright.Foreachstage,makesurestudentstrytogetSamtoleavethroughthesidetheyarechecking.IfSammakesitallthewayoff-screenwhenheshouldn't,they'llgetanerror,butifheissuccessfullystoppedthey'llsucceedandmovetothenextpuzzle.

Whynotwritejustonefunction?

Somestudentsmaywonderwhytheyshouldwriteseparatefunctionsforsafe-left?andsafe-right?whenonscreen?couldjustcheckthedimensionsofthescreendirectly.Thereismoretobeingawriterthangoodspellingandgrammar.There’smoretobeinganarchitectoranartistthanbuildingabridgeorcoloringinacanvas.Allofthesedisciplinesinvolvedanelementofdesign.Likewise,thereismoretobeingaProgrammerthanjustwritingcode.Supposeyoujustbuiltacar,butit’snotworkingright.Whatwouldyoudo?Ideally,you’dliketotesteachpartofthecar(theengine,thetransmission,etc)oneatatime,toseewhichonewasbroken.Thesameistrueforcode!Ifyouhaveabug,it’smucheasiertofindwheneveryfunctionissimpleandeasytotest,andtheonlycomplexfunctionsarejustbuiltoutofsimplerones.Inthisexample,youcantestyoursafe-left?andsafe-right?functionsindependently,beforestitchingthemtogetherintoonscreen?.Anotherreasontodefinemultiple,simplefunctionsisthefactthatitletsprogrammersbelazy.Supposeyouhaveafewcharactersinavideogame,allofwhichneedtobekeptonthescreen.Someofthemmightonlyneedsafe-left?,othersmightonlyneedsafe-right?,andonlyafewmightneedonscreen?.Whathappensifthegamesuddenlyneedstorunoncomputerswithdifferently-sizedmonitors,wherethewidthis1000pixelsinsteadof400?Ifyouhavesimpleandcomplexfunctionsspreadthroughoutyourcode,you’llneedtochangethemall.Ifyourcomplexfunctionsjustusethesimplerones,you’donlyneedtochangetheminoneplace!Badlydesignedprogramscanworkjustfine,buttheyarehardtoread,hardtotest,andeasytoscrewupifthingschange.Asyougrowanddevelopasaprogrammer,you’llneedtothinkbeyondjust"makingcodework".It’snotgoodenoughifitjustworks-asartists,weshouldcareaboutwhetherornotcodeiswelldesigned,too.Thisiswhatfunctionsallowustodo!Everyonefromprogrammerstomathematiciansusesfunctionstocarveupcomplex

LESSONTIP It’sextremelyvaluableinthisstagetohavethreestudentsstand,andactouteachofthesethreefunctions:-AskeachstudenttotellyoutheirName,DomainandRange.Iftheygetstuck,remindthemthatallofthisinformationiswrittenintheirContract!-Practicecallingeachfunction,bysayingtheirnameandthengivingthemanx-coordinate.Forexample,"safe-left?fifty"meansthatthenumber50isbeingpassedintosafe-left?.Thatstudentshouldreturn"true",sincethecodecurrentlyreturnstrueforallvaluesofx.-Dothisforallthreefunctions,andhavetheclasspracticecallingthemwithdifferentvaluesaswell.Note:thevolunteerforonscreen?shouldfirstcallsafe-left?,beforereplyingwiththevalue.

40

Page 43: Computer Science in Algebra

✂erivedfrom

problemsintosimplerpieces,whichmakeitpossibletodesignelegantsolutionstodifficultproblems.

ACTIVITY:SAMTHEBAT2)OnlinePuzzlesUsingBooleanlogic,you'regoingtowritefunctionstohelpmakesureSamtheBatdoesn'tleavehismom'syard.HeadtoCSinAlgebrastage15inCodeStudiotogetstartedprogramming.

EXTENSIONACTIVITIES3)SafeupanddownThefinalpuzzleofthisstageisaFreePlaypuzzlethatwillallowyouamdyourstudentstoexperimentwithotherwaystokeepSaminhisyard.ThebasicactivityonlypreventsSamfromleavingontheleftandright,butwhataboutthetopandbottomofthescreen?Ifyouaddasecondvariabletotheonscreen?functiontotakeinSam'sycoordinate,thenyoucancheckSam'spositiononeachaxis.Asstudentspursuethisextension,encouragethemtothinkabouthowtheywrotesmallcomponentfunctionstochecktheleftandright.Couldyoufollowasimiliarapproachtodealwiththetopandbottom?

41

Page 44: Computer Science in Algebra

16CSinAlgebra|Lesson16

TheBigGame-BooleansLessontime:30-60Minutes

LESSONOVERVIEWUsingthesamelogicfromthepreviouslesson,stupentswillwritecopethatcheckswhethertheirTargetanpDangerspriteshaveleftthescreen.Iftheirfunctionpeterminesthataspriteisnolongervisibleonscreen,itwillberesettotheoppositesipe.

LESSONOBJECTIVESStudentswill:

UseBooleanoperatorstocomparevalues.ApplyBooleanlogic,suchasAND,OR,anpNOT,tocomposecomplexBooleancomparisons.

ANCHORSTANDARDCommonCoreMathStandards6.EE.9:Usevariablestorepresenttwoquantitiesinareal-worlpproblemthatchangeinrelationshiptooneanother;writeanequationtoexpressonequantity,thoughtofasthepepenpentvariable,intermsoftheotherquantity,thoughtofastheinpepenpentvariable.Analyzetherelationshipbetweenthepepenpentanpinpepenpentvariablesusinggraphsanptables,anprelatethesetotheequation.Forexample,inaprobleminvolvingmotionatconstantspeep,listanpgraphorpereppairsofpistancesanptimes,anpwritetheequationp=65ttorepresenttherelationshipbetweenpistanceanptime.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Intropuction

Activity:TheBigGame-Booleans2)OnlinePuzzles

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

Safe-left?DesignRecipe(inthestupentworkbook)Safe-right?DesignRecipe(inthestupentworkbook)Onscreen?DesignRecipe(inthestupentworkbook)

42

Page 45: Computer Science in Algebra

Derivepfrom

GETTINGSTARTED1)IntroductionLet'sgetbackintothatBigGamethatwestartepinstage7anpcontinuepinstage12.Whenwelastworkeponthegame,ourpangeranptargetweremovingoffthescreeninoppositepirections.Unfortunately,theiruppatefunctionsmovetheminonepirectionforever,sotheynevercomebackonscreenoncethey'veleft!We'pactuallylikethemtohavearecurringroleinthisgame,sowe'llusesomebooleanlogictomovethembacktotheirstartingpointsoncetheygooffscreen.Oncethestupentscorrectlyimplementon-screen?(anpitssub-partssafe-left?anpsafe-right?),thenewbehavioroftargetanppangeristhatoncetheyareoffthescreentheyreturntotheirstartingpositionbutwithanewy-value.Fromthisnewverticalpositiontheywillcontinuetomoveacrossthescreen.Ifone(orboth)ofthecharactersgooffthescreenanpneverreappear,themostlikelysourceoftheerroristhatoneofthenewlyimplementepbooleanstatementsisincorrect.

ACTIVITY:THEBIGGAME-BOOLEANS2)OnlinePuzzlesReturntoyourBigGametouseBooleanstokeepyourplayercharacteronscreen.HeaptoCSinAlgebrastage16inCopeStupiotogetstartepprogramming.

43

Page 46: Computer Science in Algebra

UUNPLUGGED

ConditionalsandPiecewiseFunctionsLessontime:30-60Minutes

LESSONOVERVIEWCurrently,evenwhenpassingparameterstofunctions,ouroutputsfollowaveryrigidpattern.Now,supposewewantparameterswithsomevaluestocreateoutputsusingonepattern,butothervaluestouseadifferentpattern.Thisiswhereconditionalsareneeded.Inthisstagestudentswilllearnhowconditionalstatementscancreatemoreflexibleprograms.

LESSONOBJECTIVESStudentswill:

Understandthatpiecewisefunctionsevaluatethedomainbeforecalculatingresults.Evaluateresultsofpiecewisefunctions.

ANCHORSTANDARDCommonCoreMathStandardsF.IF.7.b:Graphsquareroot,cuberoot,andpiecewise-definedfunctions,includingstepfunctionsandabsolutevaluefunctions.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)Conditionals

Activity:ConditionalsandPiecewiseFunctions3)ConditionalsandPiecewiseFunctions

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheTeacher

LessonSlideDeck

44

Page 47: Computer Science in Algebra

GETTINGSTARTED1)VocabularyThislessonhasthreenewandimportantwords:Clause-aquestionanditscorrespondinganswerinaconditionalexpressionConditional-acodeexpressionmadeofquestionsandanswersPiecewiseFunction-afunctionwhichevaluatesthedomainbeforechoosinghowtocreatetherange

2)ConditionalsWecanstartthislessonoffrightaway

Lettheclassknowthatiftheycanbecompletelyquietforthirtyseconds,youwilldosomethinglike:SinganoperasongGivefivemoreminutesofrecessorDoahandstand

Startcountingrightaway.Ifthestudentssucceed,pointoutrightawaythattheysucceeded,sotheydogetthereward.Otherwise,pointoutthattheywerenotcompletelyquietforafullthirtyseconds,sotheydonotgetthereward.

Asktheclass"Whatwastheconditionofthereward?"Theconditionwasifyouwerequietfor30seconds

Ifyouwere,theconditionwouldbetrue,thenyouwouldgetthereward.Ifyouweren't,theconditionwouldbefalse,thentherewardwouldnotapply.

Canwecomeupwithanotherconditional?IfIsay"question,"thenyouraiseyourhand.IfIsneeze,thenyousay"Gesundheit."Whatexamplescanyoucomeupwith?

Uptonow,allofthefunctionsyou’veseenhavedonethesamethingtotheirinputs:green-trianglealwaysmadegreentriangles,nomatterwhatthesizewas.safe-left?alwayscomparedtheinputcoordinateto0,nomatterwhatthatinputwas.update-dangeralwaysaddedorsubtractedthesameamount

Conditionalsletourprogramsrundifferentlybasedontheoutcomeofacondition.Eachclauseinaconditionalevaluatestoabooleanvalue-ifthatbooleanisTRUE,thenweruntheassociatedexpression,otherwisewecheckthenextclause.We'veactuallydonethisbeforewhenweplayedthebooleangame!Ifthebooleanquestionwastrueforyou,youremainedstanding,andifitwasfalseyousatdown.Let'slookataconditionalpiecebypiece:(x>10)->"That'sprettybig"(x<10)->"That'sprettysmall"else->"That'sexactlyten"Ifwedefinex=11,thisconditionalwillfirstcheckifx>10,whichreturnsTRUE,sowegettheString"That'sprettybig"-andbecausewefoundatrueconditionwedon'tneedtokeeplooking.Ifwedefinex=10,thenwefirstcheckifx>10(FALSE),thenwecheckx<10(FALSE),sothenwehittheelsestatement,whichonlyreturnssomethingifnoneoftheotherconditionsweretrue.Theelsestatementshouldbeconsideredthecatch-allresponse-withthatinmind,what'swrongwithreplying"That'sexactlyten"?Whatifx="yellow"?Ifyoucanstateaprecisequestionforaclause,writetheprecisequestioninsteadofelse.Itwouldhavebeenbettertowritethetwoconditionsas(x>10)and(x<=10).Explicitquestionsmakeiteasiertoreadandmaintainprograms.Functionsthatuseconditionsarecalledpiecewisefunctions,becauseeachconditiondefinesaseparatepieceofthefunction.Whyarepiecewisefunctionsuseful?Thinkabouttheplayerinyourgame:you’dliketheplayerto

45

Page 48: Computer Science in Algebra

moveonewayifyouhitthe"up"key,andanotherwayifyouhitthe"down"key.Movingupandmovingdownneedtwodifferentexpressions!Withoutconditionals,youcouldonlywriteafunctionthatalwaysmovestheplayerup,oralwaysmovesitdown,butnotboth.Nowlet'splayagame.

ACTIVITIES:3)ConditionalsandPiecewiseFunctionsLivingFunctionMachines-Conditionals:ExplaintotheclassthattheywillbeplayingtheroleofFunctionMachines,followingafewsimplerules:-Wheneveryourfunctioniscalled,theonlyinformationyouareallowedtotakeiniswhat'sdescribedinyourDomain.-YourfunctionmustreturnonlywhatisdescribedinyourRange.-Youmustfollowthestepsprovidedinyourdefinition-nomagic!Thistime,however,everyonewillberunningthesamefunction.Andthatfunctioniscalled'simon_says'andithasthefollowingContract:simon_says:String->MovementGivenaStringthatdescribesanaction,producetheappropriatemovement.Ifanunknownactioniscalled,lowerbothhands.Examplessimon_says("lefthandup")=RaiseLeftHandsimon_says("righthandup")=RaiseRightHandsimon_says("lefthanddown")=LowerLeftHandsimon_says("righthanddown")=LowerRightHandDefinitionsimon_says(action)=cond{"lefthandup":RaiseLeftHand,"righthandup":RaiseRightHand,"lefthanddown":LowerLeftHand,"righthanddown":LowerRightHand,else:LowerBothHands}Reviewthecontractparts:name,domain,range,parameters(inputtypes),returntypes(outputvalues)Saytotheclass:“Hereiswhattheinitialcodelookslike.Wewilladdseveralclausesbuttheclausesthataretherewillalwaysbethereandthefinalelseaction(oftencalledthedefaultresult)willalwaysbeLowerBothHands

simon_says("righthandup")simon_says("lefthandup")-bothhandsshouldbeupsimon_says("righthandup")-bothhandsshouldstillbeupsimon_says("lefthanddown")-leftshouldbedown,rightshouldbeupsimon_says("righthandup")-leftshouldbedown,rightshouldbeupsimon_says("hokeypokey")-bothhandsshouldbedownsimon_says("lefthandup")-lefthandshouldbeupsimon_says("rightup")-trick,therearenomatchessotheelsestatementiscalled

Ifanyonemakesamistake,theymust"reboot"bysittingdownandwaitingforthenextroundtostart.Saytotheclass:“Nowwe'regoingtorewriteourfunctionalittlebit-insteadoftakingaStringasitsDomain,simon_sayswilltakeaNumber.Here'swhatournewfunctionlookslike:simon_says(action)=cond{

46

Page 49: Computer Science in Algebra

(action<10):RaiseLeftHand,(action<20):RaiseRightHand,(action>20)and(action<50):LowerLeftHand,(action>50)and(action<100):LowerRightHand,else:LowerBothHands}Continueplayingusingnumbersinthesimon_saysfunction,suchassimon_says(15),whichshouldresultinRaiseRightHand.Asstudentsgetcomfortablewiththenewrules,youcanthrowinsometrickquestions,suchassimon_says(20)orsimon_says(50),bothofwhichshouldcalltheelsestatement.Youcanextendthisactivityinmanyways,forexample:

Callthefunctionwithasimpleexpression,suchassimon_says(30/2)AddmoreconditionsofyourownCreatemultiplefunctionsanddividetheclassintogroupsAllowstudentstotakeoverasthe'programmer'

ConnectiontoMathematicsandLifeTherearepiecewisefunctionsinmathematicsaswell.Theabsolutevaluefunctiony=|x|canbere-writtenasy={-x:x<0,x:x>0,0}

Notethatinmathematicalterms,theclauseforthedomainisusuallylistedsecondinsteadoffirst.Adataplanonaphonebillmightbestructuredas:

$40forlessthan5GB$8perGBfor5-10GB$12perGBforusingmorethan10GB

Thiscouldbegraphedwiththefollowingpiecewisefunctiony={40:x<5,8x:5=<x=<10,12x:x>10}

47

Page 50: Computer Science in Algebra

Derivedfrom

Anotherverycommonpiecewisefunctionsisfortaxicabs.$3for0to2miles$1foreachpartialmileafterthat

Thiscouldbegraphedwiththefollowingpiecewisefunctiony={3:x<2,[[x]]+2:x>=2}where[[x]]isthegreatestintegerfunctionorwhatisoftencalledafloorfunctionincomputerlanguages.ThegreatestintegerfunctionreturnsthegreatestINTEGERlessthatthecurrentvalue.Forinstance[[2.9]]is2and[[3.1]]is3.

48

Page 51: Computer Science in Algebra

18CSinAlgebra|Lesson18

ConditionalsandUpdatePlayerLessontime:30-60Minutes

LESSONOVERVIEWUsingconditionals,studentswillwritefunctionsandprogramsthatchangetheirbehaviorbasedonlogicalevaluationofinputvalues.

LESSONOBJECTIVESStudentswill:UseBooleanoperatorstocomparevalues.ApplyBooleanlogic,suchasAND,OR,andNOT,tocomposecomplexBooleancomparisons.Writeconditionalstatementsthatevaluatedifferentlybasedontheirinputvalues.

ANCHORSTANDARDCommonCoreMathStandards6.NS.8:Solvereal-worldandmathematicalproblemsbygraphingpointsinallfourquadrantsofthecoordinateplane.Includeuseofcoordinatesandabsolutevaluetofinddistancesbetweenpointswiththesamefirstcoordinateorthesamesecondcoordinate.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:Conditionals2)OnlinePuzzles

ExtensionActivities3)ImprovingLuigi'sPizza4)UpdatePlayer

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREP

49

Page 52: Computer Science in Algebra

FortheStudentCost✄esignReci☎e(inthestu✆entwork book )Update-playerDesignRecipe(inthestudentworkbook)KeyCodeReference(inthestudentworkbook)

GETTINGSTARTED1)IntroductionRemindstudentsofthegametheyplayedinthelaststage.Whatweresomeofthetrickyelementsofconstructingagoodconditionalstatement?Ordermatters(thefirstconditioninthelisttoreturntruewins).Writeclearandexplicitconditions.Usetheelseclauseasacatch-allforconditionsthatyoudon'texpectorcan'twriteexplicitconditionsfor.Allconditionalsmusthaveatleastoneconditionandanelsestatement,youcanaddorremovefurtherconditionsusingthebluebuttons.

Attheendofthisstage,studentswillreturntotheirBigGametocompletetheupdate-playerfunction.Thisfunctioncontainsaconditionalthatwillcheckwhichkeywaspressed(usingkeycodes),andmovetheplayerupordownaccordingly.We'veprovidedakeycodereferenceforstudentsincasetheywishtousekeysotherthanthedefaultup(38)anddown(40)arrows.

ACTIVITY:CONDITIONALS2)OnlinePuzzlesHeadtoCSinAlgebrastage18inCodeStudiotogetstartedprogramming.

EXTENSIONACTIVITIES3)ImprovingLuigi'sPizzaThefinalpuzzleintheLuigi'sPizzasequenceisaFreePlaypuzzlethatallowsforstudentstoextendtheprograminanumberofdifferentways.Whilesomeofthepotentialextensionsseemsimple,theycanbedeceptivelychallengingtogetworking.Allowstudentstoexploreextensionsindividually,orchooseonetoworkthroughasawholeclass.CouponCode:Writeafunctioncouponthattakesinatoppingandacouponcodeandreturnsthepriceofa

LESSONTIP Besuretocheckstudents’ContractsandExamplesduringthisexercise,especiallywhenit’stimeforthemtocircleandlabelwhatchangesbetweenexamples.ThisisthecrucialstepintheDesignRecipewheretheyshoulddiscovertheneedforcond.

50

Page 53: Computer Science in Algebra

✝erive✞from

pizzawiththattopping,with%40offisthecodeiscorrect.MultipleToppings:Writeafunctiontwo-toppingsthattakesintwotoppingsandreturnsthepriceofapizzawiththosetoppings.PictureMenu:Writeafunctionpizza-picthattakesinatoppingandreturnsasimpleimagerepresentingapizzawiththattopping.

3)UpdatePlayerTheupdate-playerfunctionisoneofthemostextensibleintheBigGame.Here'sabrieflistofpotentialchallengeextensionstogivestudents:Warping:insteadofhavingtheplayer’sy-coordinatechangebyaddingorsubtracting,replaceitwithaNumbertohavetheplayersuddenlyappearatthatlocation.(Forexample,hittingthe"c"keycausestheplayertowarpbacktothecenterofthescreen,aty=200.)Boundary-detection:KeeptheplayeronscreenbychangingtheconditionformovingupsothattheplayeronlymovesupiftheupkewaspressedANDplayer-yisbelowthetopborder.Likewise,changetheconditionfordowntoalsocheckthatplayer-yisabovethebottom.Wrapping:Addacondition(beforeanyofthekeys)thatcheckstoseeiftheplayer’sy-coordinateisabovethescreen.Ifitis,havetheplayerwarptothebottom.Addanotherconditionsothattheplayerwarpsbackuptothetopofthescreenifitmovesbelowthebottom.Dissapear/Reappear:Havetheplayerhidewhenthe"h"keyispressed,onlytore-appearwhenitispressedagain!

51

Page 54: Computer Science in Algebra

UUNPLUGGED

CollisionDetectionandthePythagoreanTheoremLessontime:30-60Minutes

LESSONOVERVIEWDeterminingwhenobjectsonthescreentouchisanimportantaspectofmostgames.Inthislessonwe'lllookathowthePythagoreanTheoremandtheDistanceFormulacanbeusedtomeasurethedistancebetweentwopointsontheplane,andthendecidewhetherthosetwopoints(orgamecharacters)aretouching.

LESSONOBJECTIVESStudentswill:

Demonstratethatcircleswilloverlapifthedistancebetweentheircentersislessthanthesumoftheirradii.Showthatthedistanceoftwopointsgraphedin2dimensionscanberepresentedasthehypotenuseofarighttriangle.UnderstandthatthePythagoreanTheoremallowsyoutocalculatethehypotenuseofarighttriangleusingthelengthofthetwolegs.ApplythePythagoreanTheoremtocalculatethedistancebetweenthecentersoftwoobjects.

ANCHORSTANDARDCommonCoreMathStandards

8.G.7:ApplythePythagoreanTheoremtodetermineunknownsidelengthsinrighttrianglesinreal-worldandmathematicalproblemsintwoandthreedimensions.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Vocabulary2)AretheyTouching?

Activity:CollisionDetection3)ProvingPythagoras4)CollisionDetection

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREP

52

Page 55: Computer Science in Algebra

FortheStudentC ollisionWorksheetsSafe-right?DesignRecipe(inthestudentworkbook)Onscreen?DesignRecipe(inthestudentworkbook)

FortheTeacherLanguageTable(seebelow)CutoutsofPythagoreanTheorempackets(1,2)-1pergroupofstudentsworkingtogether

GETTINGSTARTED1)VocabularyThislessonhasonenewandimportantword:

Hypotenuse-thesideoppositethe90-degreeangleinarighttriangle2)AretheyTouching?Supposetwoobjectsaremovingthroughspace,eachonehavingitsown(x,y)coordinates.Whendotheiredgesstarttooverlap?Theycertainlyoverlapiftheircoordinatesareidentical(x1=x2,y1=y2),butwhatiftheircoordinatesareseparatedbyasmalldistance?Justhowsmalldoesthatdistanceneedtobebeforetheiredgestouch?Visualaidsarekeyhere:besuretodiagramthisontheboard!Inonedimension,it’seasytocalculatewhentwoobjectsoverlap.Inthisexample,theredcirclehasaradiusof1,andthebluecirclehasaradiusof1.5Thecircleswilloverlapifthedistancebetweentheircentersislessthanthesumoftheirradii(1+1.5=2.5).Howisthedistancebetweentheircenterscalculated?Inthisexample,theircentersare3unitsapart,because4−1=3.

Workthroughanumberofexamples,usinganumberlineontheboardandaskingstudentshowtheycalculatethedistancebetweenthepoints.Havingstudentsactthisoutcanalsoworkwell:drawanumberline,havetwostudentsstandatdifferentpointsontheline,usingtheirarmsorcutoutstogiveobjectsofdifferentsizes.Movestudentsalongthenumberlineuntiltheytouch,thencomputethedistanceonthenumberline.Yourgamefileprovidesafunctioncalledline-lengththatcomputesthedifferencebetweentwopointsonanumberline.Specifically,line-lengthtakestwonumbersasinputanddeterminesthedistancebetweenthem

LESSONTIP Wouldthedistancebetweenthemchangeifthecirclesswappedplaces?Whyorwhynot?

LESSONTIP Whatanswerswouldyouexpectfromeachofthefollowingtwousesofline-length:line-length(2,5)

line-length(5,2)Doyouexpectthesameanswerregardlessofwhetherthelargerorsmallerinputgoesfirst?

53

Page 56: Computer Science in Algebra

Unfortunately,line-lengthcanonlycalculatethedistancebetweenpointsinasingledimension(xory).Howwouldthedistancebecalculatedbetweenobjectsmovingin2-dimensions(likeyourgameelements)?line-lengthcancalculatetheverticalandhorizontallinesinthegraphicshownhere,usingthedistancebetweenthex-coordinatesandthedistancebetweenthey-coordinates.Unfortunately,itdoesn’ttellushowfarapartthetwocentersare.

Drawingalinefromthecenterofoneobjecttotheothercreatesaright-triangle,withsidesA,BandC.AandBaretheverticalandhorizontaldistances,withCbeingthedistancebetweenthetwocoordinates.line-lengthcanbeusedtocalculateAandB,buthowcanwecalculateC?

Inarighttriangle,thesideoppositethe90-degreeangleiscalledthehypotenuse.Thinkingbacktoourcollisiondetection,weknowthattheobjectswillcollideifthehypotenuseislessthanthesumoftheirradii.Knowingthelengthofthehypotenusewillbeessentialtodeterminewhenacollisionoccurs.

ACTIVITIES:3)ProvingPythagorasIfyourstudentsarenewtothePythagoreanTheorem,orareinneedofarefresher,thisactivityisanopportunitytostrengthentheirunderstandinginahands-onfashion.Organizestudentsintosmallgroupsof2or3.

PassoutPythagoreanProofmaterials(1,2)toeachgroup.Havestudentscutoutthefourtrianglesandonesquareonfirstsheet.Explainthat,foranyrighttriangle,itispossibletodrawapicturewherethehypotenuseisusedforallfoursidesofasquare.Havestudentslayouttheirgraytrianglesontothewhitesquare,asshowinthisdiagram.PointoutthatthesquareitselfhasfouridenticalsidesoflengthC,whicharethehypotenusesforthetriangles.Iftheareaofasquareisexpressedbyside∗side,thentheareaofthewhitespaceisC2.Havestudentsmeasuretheinnersquareformedbythefourhypotenuses(C)

54

Page 57: Computer Science in Algebra

Derivedfrom

Bymovingthegraytriangles,itispossibletocreatetworectanglesthatfitinsidetheoriginalsquare.Whilethespacetakenupbythetriangleshasshifted,ithasn’tgottenanybiggerorsmaller.Likewise,thewhitespacehasbeenbrokenintotwosmallersquares,butintotalitremainsthesamesize.Byusingtheside-lengthsAandB,onecancalculatetheareaofthetwosquares.

Youmayneedtoexplicitlypointoutthattheside-lengthsofthetrianglescanbeusedastheside-lengthsofthesquares.Havestudentsmeasuretheareaofthesmallersquare(A)Havestudentsmeasuretheareaofthelargersquare(B)AskstudentstocomparetheareofsquareA+squareBtotheareaofsquareC

ThesmallersquarehasanareaofA2,andthelargersquarehasanareaofB2.Sincethesesquaresarejusttheoriginalsquarebrokenupintotwopieces,weknowthatthesumoftheseareasmustbeequaltotheareaoftheoriginalsquare:

A2+B2=C2

4)CollisionDetectionInthisactivitystudentswill:

Createrighttrianglesonagraph.CalculatethehypotenusebydirectmeasurementandbythePythagoreanTheorem.Determineifcircleshavecollidedbyexaminingvisually.Determineifcircleshavecollidedbycomparingdistanceandradii.

DetailedinstructionsareprovidedontheCollisionWorksheet.

55

Page 58: Computer Science in Algebra

20CSinAlgebra|Lesson20

TheBigGame-CollisionDetectionLessontime:30-60Minutes

LESSONOVERVIEWTofinishuptheirvideogames,studentswillapplywhattheyhavelearnedinthelastfewstagestowritethefinalmissingfunctions.We'llstartbyusingbooleanstocheckwhetherkeyswerepressedinordertomovetheplayersprite,thenmoveontoapplyingthePythagoreanTheoremtodeterminewhenspritesaretouching.

LESSONOBJECTIVESStudentswill:

ApplytheDistanceFormulatodetectwhentwopointsonacoordinateplaneareneareachother.

ANCHORSTANDARDCommonCoreMathStandards8.G.7:ApplythePythagoreanTheoremtodetermineunknownsidelengthsinrighttrianglesinreal-worldandmathematicalproblemsintwoandthreedimensions.

Additionalstandardsalignmentcanbefoundattheendofthislesson

TEACHINGSUMMARYGettingStarted

1)Introduction

Activity:TheBigGame-CollisionDetection2)OnlinePuzzles

TEACHINGGUIDEMATERIALS,RESOURCES,ANDPREPFortheStudent

Line-lengthDesignRecipe(inthestudentworkbook)DistanceDesignRecipe(inthestudentworkbook)Collide?DesignRecipe(inthestudentworkbook)

56

Page 59: Computer Science in Algebra

Derivedfrom

GETTINGSTARTED1)IntroductionLet'sgetbackintothatBigGamefromstages7,12,and16.Previousworkwiththegamehascreatedmovementforthedangerandtargetcharacters,usingBooleanstocheckiftheyhaveleftthescreen.Thelasttimestudentsworkedontheirgametheyusedaconditionaltocheckwhichkeywaspressedandmaketheplayermoveaccordingly.Atthispointtheonlythinglefttodoistodecidewhentheplayeristouchingeitherthetargetordanger.Oncestudentshavesuccessfullycompletedthedistanceandcollide?functions,theirscorewillincreasewhentheplayertouchesthetarget,anddecreasewhenittouchesthedanger.ThePythagoreanTheoremstudiedinthelastlessonwillbeusedtodeterminewhenthecharactershavemadecontact.Studentsarenotrequiredtowritetheirownline-lengthfunction,butyoumayaskthemtocompletetheDesignRecipeforitanyway.Studentswillfirstcompletethedistancefunctionsothatitmeasuresthedistancebetweentwopoints,(px,py)and(cx,cy).Afterthestudentsimplementthedistanceformula,theywillneedtoimplementthetestsinthecollide?function.Oncetheselastfunctionsareputintoplace,scoringwillautomaticallyupdatebasedoncollisionsbetweentargetanddanger.

ACTIVITY:THEBIGGAME-COLLISIONDETECTION2)OnlinePuzzlesReturntoyourBigGametousecollisiondetectionlogicsothatyouknowwhenyourplayeristouchingthetargetorthedanger.HeadtoCSinAlgebrastage20inCodeStudiotogetstartedprogramming.

57

Page 60: Computer Science in Algebra
Page 61: Computer Science in Algebra

Student Workbook

Name: ____________________________ Course: ____________________________

Computer Sciencein Algebrapowered by

Page 62: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

Reverse EngineeringUStage 1

1Code.org Computer Science in Algebra

2

Thing in the game... What changes about it? More Specifically...

Page 63: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UStage 1

1Code.org Computer Science in Algebra

3

Video Game Planning

Use this form to plan out your video game. Once your game is complete, the player will move up and down, the target and danger will move from left and right, and you will earn points by touching the target, and lose points by touching the danger.

Created by:

The game takes place in: (This will be the background image in your game)

The player is a:(The player moves up and down)

The target is a:(The Target moves left and right)

The danger is a:(The Danger moves left and right)

Page 64: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

4

*

Stage 2

2Evaluation Blocks

4

-/

3

*

+

*

2 * 5 32 / 3

4 - (3 / 2) (25 + 14) - 12

(3 + 12) * 16 (23 * 14) * (3 + 2)

1 + (15 * 5) 19 - (12 + 11)

(2 + 17) * (12 - 8) 4 - (6 - 17)

9 * (17 + 2) (12 * 4) / 3

Create the evaluation blocks for the provided equations.

Page 65: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

5

___________________ : ____________________________________ -> ________________ name domain range

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Define: ________________ ( _______________ ) = ______________________________

___________________ : ____________________________________ -> ________________ name domain range

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Define: ________________ ( _______________ ) = ______________________________

___________________ : ____________________________________ -> ________________ name domain range

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Define: ________________ ( _______________ ) = ______________________________

___________________ : ____________________________________ -> ________________ name domain range

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Define: ________________ ( _______________ ) = ______________________________

Stage 9

9Fast Functions!

Page 66: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

6

DesignRecipe

DThe Design Recipe

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description:

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 67: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

7

DesignRecipe

DThe Design Recipe

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description:

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 68: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

8

DesignRecipe

DThe Design Recipe

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description:

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 69: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

9

rocket-height (word problem)

Stage 10

10

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: A rocket blasts of, traveling at 15 meters per second.

Write a function called rocket-height that takes in the number of

seconds that have passed since the rocket took of, and which produces

the height of the rocket at that time.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 70: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

10

Stage 12

12

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: Write a function update-target which takes in the

target’s x-coordinate and produces the next x-coordinate, which is 10

pixels to the right.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

update-target (word problem)

Page 71: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

11

Stage 12

12

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: Write a function update-danger which takes in the

danger’s x-coordinate and produces the next x-coordinate, which is

10 pixels to the left.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

update-danger (word problem)

Page 72: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

12

Stage 15

15

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: Write a function safe-left?, which takes in an

x-coordinate and checks to see if it is greater than 50.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

safe-left? (word problem)

Page 73: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

13

Stage 15

15

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: Write a function safe-right?, which takes in an

x-coordinate and checks to see if it is less than 350.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

safe-right? (word problem)

Page 74: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

14

Stage 15

15

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Description: Write a function onscreen?, which takes in a character’s

x-coordinate and checks to see if it is safe on the left and on the right.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

onscreen? (word problem)

Page 75: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

15

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Define: ________________ ( _______________ ) = function name variables

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________________________________________________

Stage 18

18

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Definition

Description: Luigi’s Pizza has hired you as a programmer. They ofer “pepperoni” ($10.50), “cheese” ($9.00), “chicken” ($11.25), and “broccoli” ($10.25). Write a function called cost which takes in the name of a topping and outputs the cost of a pizza with that topping.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

cost (word problem)

Page 76: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

16

Key Code ReferenceStage 18

18

Key Code Key Code

left arrow 37 G 71

up arrow 38 H 72

right arrow 39 I 73

down arrow 40 J 74

0 48 K 75

1 49 L 76

2 50 M 77

3 51 N 78

4 52 O 79

5 53 P 80

6 54 Q 81

7 55 R 82

8 56 S 83

9 57 T 84

A 65 U 85

B 66 V 86

C 67 W 87

D 68 X 88

E 69 Y 89

F 70 Z 90

When you press a key on your keyboard, a unique numeric code is sent to your computer, which is then translated into a letter, number, or command. Use this handy key code reference sheet to make your Player sprite respond to diferent key presses.

Page 77: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

17

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

Example: ________________ ( _______________ ) = ______________________________

update-player 38 240 240 + 10

240 - 10update-player 40 240

update-player 38 250

update-player 40 250

Define: ________________ ( _______________ ) = function name variables

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________________________________________________

Stage 18

18

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Definition

Description: Write a function called update-player, which takes in the key code of the key pressed and the player’s y-coordinate, and returns the new y-coordinate.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

update-player (word problem)

Page 78: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

18

1 53 7 102 6 94 8 11 12

1

5

3

7

2

6

4

00

A

B

1. What is the radius of circle A? ___________

2. What is the radius of circle B? ___________

3. What is Radius A + Radius B ___________

4. Do the circles overlap? (true/false) ___________

5. What is the length of side a? ___________

6. What is the length of side b? ___________

7. Estimate the length of side c? ___________

8. What is a2 + b2 ___________

On the graph:

Label the right angle as C

Label segment AB as c

Label segment AC as b

Label segment CB as a

Graph #1

Collision DetectionStage 19

19

Page 79: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

19

1 53 7 102 6 94 8 11 12

1

5

3

7

2

6

4

00

On the graph:

Draw a segment from point A to point B

Label segment AB as c

Draw a right triangle using segment c as the hypotenuse.

Label the right angle as C

Label segment AC as b

Label segment CB as a

A

B

1. What is the radius of circle A? ___________

2. What is the radius of circle B? ___________

3. What is Radius A + Radius B ___________

4. Do the circles overlap? (true/false) ___________

5. What is the length of side a? ___________

6. What is the length of side b? ___________

7. Estimate the length of side c? ___________

8. What is a2 + b2 ___________

Graph #2

Collision DetectionStage 19

19

Page 80: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

20

1 53 7 102 6 94 8 11 12

1

5

3

7

2

6

4

00

On the graph:

Draw a segment from point A to point B

Label segment AB as c

Draw a right triangle using segment c as the hypotenuse.

Label the right angle as C

Label segment AC as b

Label segment CB as a

A

B

1. What is the radius of circle A? ___________

2. What is the radius of circle B? ___________

3. What is Radius A + Radius B ___________

4. Do the circles overlap? (true/false) ___________

5. What is the length of side a? ___________

6. What is the length of side b? ___________

7. Estimate the length of side c? ___________

8. What is a2 + b2 ___________

Graph #3

Collision DetectionStage 19

19

Page 81: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

21

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

line-length 10 5 10 - 5

line-length 2 8 8 - 2

Define: ________________ ( _______________ ) = function name variables

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________ ___________________________________

___________________________________________________________________________

Stage 20

20

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Examples

Definition

Description: Write a function called line-length, which takes in two numbers and returns the diference between them. It should always subtract the smaller number from the bigger one.

Contract and Purpose Statement

Every contract has three parts...

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

line-length (word problem)

Page 82: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

22

The Distance FormulaStage 20

20

The distance between two points (25, 50) and (300, 400) can be calculated with the distance formula as

line-length(25, 300)2 + line-length(50, 400)2

Convert the formula in a circle of evaluation.

line-length

25 300

Page 83: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

23

Stage 20

20

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Description: Write a function distance, which takes four inputs:• px: The x-coordinate of the player• py: The y-coordinate of the player• cx: The x-coordinate of another game character• cy: The y-coordinate of another game character

It should use the Distance formula to return the distance between both points.

Contract and Purpose Statement

Every contract has three parts...

distance (word problem)

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 84: Computer Science in Algebra

Name: ___________________________ Date: ___________ Per: __________

UCode.org Computer Science in Algebra

24

Stage 20

20

___________________ : ____________________________________ -> ________________ function name domain range

___________________________________________________________________________ what does the function do?

Description: Write a function collide?, which takes four inputs:• px: The x-coordinate of the player• py: The y-coordinate of the player• cx: The x-coordinate of another game character• cy: The y-coordinate of another game character

Is the player’s x and y within 100 pixels of the other character’s x and y?

Contract and Purpose Statement

Every contract has three parts...

collide? (word problem)

Examples

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Example: ________________ ( _______________ ) = ______________________________ function name input(s) what the function produces

Definition

Define: ________________ ( _______________ ) = function name variables

___________________________________________________________________________ what the function does with those variables

Write some examples for your function in action...

Write the deinition, giving variable names to all your input values

Page 85: Computer Science in Algebra

Name Domain Range Example

Contract Log

Page 86: Computer Science in Algebra

Name Domain Range Example

Contract Log

Page 87: Computer Science in Algebra