table of contents - teals · unit 5: object-oriented programming (4 weeks) lesson 5.00: test review...

Post on 13-Aug-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1.1

1.2

1.3

1.4

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

2.10

3.1

3.2

3.3

3.4

3.5

3.6

3.7

3.8

3.9

TableofContentsIntroduction

VideoTutorials

CurriculumMap

CurriculumAssets

Unit1:Programming&Java(2weeks)Lesson1.01:UsingEclipse&PracticeIt

Lesson1.02:Algorithms&ComputationalThinking

Lesson1.03:String&ConsoleOutput

Lesson1.04:CommonErrors&Comments

Lesson1.05:StaticMethods&MethodCalls(1/2)

Lesson1.06:StaticMethods&MethodCalls(2/2)

Lesson1.07:ProgrammingProject

Lesson1.08:Finding&FixingErrors

Lesson1.09:Review

Lesson1.99:(Unit1Test)

Unit2:WorkingwithData&BasicControlFlow(3weeks)Lesson2.00:TestReview&Reteach

Lesson2.01:BasicDataConcepts

Lesson2.02:Declaring&AssigningVariables

Lesson2.03:StringConcatenation&IncrementDecrementOperators

Lesson2.04:MixingTypes&Casting

Lesson2.05:forLoops

Lesson2.06:nestedforLoops

Lesson2.07:Scope&Pseudocode

Lesson2.08:ProgrammingProject

1

3.10

3.11

3.12

3.13

4.1

4.2

4.3

4.4

4.5

4.6

4.7

4.8

4.9

4.10

4.11

4.12

4.13

4.14

4.15

4.16

4.17

4.18

4.19

4.20

4.20.1

4.21

Lesson2.09:ProgrammingProject

Lesson2.10:Finding&FixingErrors

Lesson2.11:Review

Lesson2.99:(Unit2Test)

Unit3:AdvancedData&ControlFlow(4weeks)Lesson3.00:TestReview&Reteach

Lesson3.01:Parameters

Lesson3.02:LimitationsofParameters&MultipleParameters

Lesson3.03:ReturnValues

Lesson3.04:ProgrammingProject

Lesson3.05:UsingObjects&StringProcessing

Lesson3.06:InteractivePrograms&ScannerObjects

Lesson3.07:PokémonBattleProgrammingProject

Lesson3.08:Finding&FixingErrors

Lesson3.09:RelationalOperators&if/else

Lesson3.10:Nestedif/elseStatements

Lesson3.11:ReducingRedundancy

Lesson3.12:CumulativeAlgorithms

Lesson3.13:whileLoops

Lesson3.14:RandomNumbers

Lesson3.15:Fencepost&SentinelLoops

Lesson3.16:BooleanLogic(2Days)

Lesson3.17:Finding&FixingErrors

Lesson3.18:Review

Lesson3.99:(Unit3test)

Test2Guide

Lesson3.XX:FracCalc

Unit4:Arrays,Lists,&Files(4weeks)

2

5.1

5.2

5.3

5.4

5.5

5.6

5.7

5.8

5.9

5.10

5.11

5.12

6.1

6.2

6.3

6.4

6.5

6.6

6.7

6.8

6.9

7.1

7.2

7.3

7.4

Lesson4.00:TestReview&Reteach

Lesson4.01:ArrayBasics

Lesson4.02:For-EachLoop&ArraysClass

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

Lesson4.04:ReferenceSemantics

Lesson4.05:ShiftingValues&ArraysofObjects

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

Lesson4.07:ArrayList

Lesson4.08:Finding&FixingErrors

Lesson4.09:MagpieLab(5Days)

Lesson4.10:Review

Lesson4.99:(Unit4test)

Unit5:Object-OrientedProgramming(4weeks)Lesson5.00:TestReview&Reteach

Lesson5.01:ObjectOrientedProgramming

Lesson5.02:ObjectState&Behavior

Lesson5.03:ObjectInitialization:Constructors

Lesson5.04:Encapsulation

Lesson5.05:Finding&FixingErrors

Lesson5.06:PictureLab(9Days)

Lesson5.07:Review

Lesson5.99:(Unit5test)

Unit6:Inheritance&Polymorphism(4weeks)Lesson6.00:TestReview&Reteach

Lesson6.01:InheritanceBasics(2Days)

Lesson6.02:OverridingMethods&AccessingInheritedCode

Lesson6.03:InteractingwiththeObjectSuperclass

3

7.5

7.6

7.7

7.8

7.9

7.10

7.11

7.11.1

7.12

8.1

8.2

8.3

8.4

8.5

8.6

8.6.1

9.1

9.2

9.3

9.4

9.5

9.6

9.7

9.8

9.9

Lesson6.04:Polymorphism

Lesson6.05:Has-aRelationships

Lesson6.06:Interfaces

Lesson6.07:ProgrammingProject(5Days)

Lesson6.08:Finding&FixingErrors

Lesson6.09:Review

Lesson6.99:(Unit6test)

Test5Guide

Lesson6.XX:TextExcel

Unit7:Searching&Sorting(3weeks)Lesson7.00:TestReview&Reteach

Lesson7.01:SearchingAlgorithms

Lesson7.02:SortingAlgorithms

Lesson7.03:ElevensLab(16Days)

Lesson7.04:Review

Lesson7.99:(Unit7test)

Test6Guide

Unit8:Recursion(2weeks)Lesson8.00:TestReview&Reteach

Lesson8.01:ThinkingRecursively

Lesson8.02:WritingRecursiveSolutions

Lesson8.03:MechanicsofRecursion

Lesson8.04:MergeSort

Lesson8.05:Finding&FixingErrors

Lesson8.06:Review

Lesson8.07:(Unit8quiz)

Lesson8.08:QuizReview&Reteach

Unit9:APTestReview(3weeks)

4

10.1

11.1

11.2

12.1

12.2

12.3

12.4

Lesson9.00:ReviewingfortheAPExam

Unit10:Post-APExamProjects(4–5weeks)SpaceBattleArena

TEALSMinecraftModding

AppendixAboutThisCurriculum

Changelog

Contributing

Acknowledegments

5

AbouttheAPComputerScienceACurriculumTheTEALSProgramhasdesignedthesecurriculummaterialsfortheuseofteachersandvolunteertechprofessionalsinhighschoolclassrooms.Anyteacherwithpriorprogrammingexperience(oraccesstoacomputerscienceprofessional)canusethiscurriculumtoteachtheAPComputerScienceAcourse.

ThiscurriculumisbasedonandalignedwithProfessorStuartReges'courseattheUniversityofWashington,CSE142.ThecourseusesthetextbookBuildingJavaPrograms:ABacktoBasicsApproach,byStuartRegesandMartyStepp.ThecourseisalignedwiththeAPComputerScienceAstandards.TEALShasreceivedAPAuditcertificationforpreviousversionsofthecourseandsyllabus.Sincethesematerialsarenewin2015–2016,TEALSwillapplytohavethenewsyllabusapproved.OncetheCollegeBoardapprovesthenewsyllabus,partnerschoolsmayusethe“claimidentical”functionoftheAPAuditwebsitetoobviatetheneedfortheirowncurriculumaudit.

Thiscurriculumusesprinciplesofuniversaldesignforlearning(UDL).Thecurriculumwaswrittenforandtestedinclassroomswithdiverselearners;studentswithindividualizededucationplans,Englishlanguagelearners,studentswhohavereceivedsub-optimalmathorlanguageinstructioninthepast,studentswhoaregifted/talented,studentswhoareotherwise“outsidetheaverage.”SeeAdditionalResourcesformoreinformationonuniversaldesignforlearning.

AccessingtheCurriculumTheAPComputerScienceACurriculumGitBookislocatedathttps://www.gitbook.com/book/tealsk12/ap-computer-science-a/details.

Forcontributionstothecurriculum,theAPComputerScienceAGitHubrepositoryislocatedathttps://github.com/TEALSK12/apcsa.

UsingthecurriculumEachclassroomhasdifferentphysical,cultural,academic,andschedulingneeds.Therefore,wehavetriedtocreateacollectionoflessonsandmaterialsthatareadaptabletomostsituations.TEALSvolunteersandclassroomteacherswillfinddifferentaspectsofthe

Introduction

6

curriculumuseful;youshouldexpecttoskipovercertainnotestofocusontheinformationthatismostusefultoyou.

WehaveprovidedclassroommanagementtipsandengagementtipsforTEALSvolunteers,whoarenewtotheclassroomsetting.Experiencedteachersandvolunteerswilllikelychoosetoskipsuchdetailsandfocusonthestep-by-steplecturenotes.

YoumaybrowsetheCurriculumMapforanoverviewofthepacing,objectives,andassessments.

YearRoundPacing

Thetable-of-contents(includedwithIntroductionmaterials)containscourse-grainedtimeestimatesonthescaleofweeksanddayssoteacherscanplanaccordingly.Units6and8includeextradaysinthetime-estimatesoteacherscanre-adjusttheirunitplansiftheyhaveshiftedduetounexpectedclasscancellationsordrift.

DailyStructure

Everyclassroomisdifferent,andweexpectthatinstructorswilladaptthedailystructureoftheclasstosuittheirstudents'needs.Thatsaid,we'vedesignedmostofthelessonsusingthefollowingdailystructure:

Hook&Instruction

Eachlessonplanbeginswithoneorseveraloptionsforshort(fromsecondsto5minutes)engagingormystifyingactivitiesthatintroducestudentstothetopicstobeintroducedlaterinthelesson.

Lecturenotes,studentprompts,andquick-assessments(withanswers)areoutlinedinsubsection“Introduction.”Ifyouareteachinginaflippedclassroom,thissectioncanbepre-recordedforstudentstoviewathome.Foradditionalresourcesonflippingyourclassroom,pleasereferto“AdditionalResources”below.

StudentPractice

Studentpractice/activitiesareoutlinedwithstep-by-stepinstructionsincludingpacingsuggestionsandalternativestoppingpoints.Anyspecialmaterialsorpreparationneededforthehook,lecture,oractivityarelistedintheMaterials&Prepsection.

Warmup/DoNow/Boardwork/Ticket-to-leave

Introduction

7

Sinceeachclassroomprogressesatdifferentrates,wehavenotincludedwarm-upandcool-downquestions(thoughtimehasbeenscheduledinthePacingGuideforoneorbothoftheseactivities).Youshouldchooseyourquestionsbasedonthetopicsyoufeltweremostchallengingorconfusingforyourstudents.Agoodsourceforshort-answerandmultiplechoicequestionsistheBarron'sAPComputerScienceAreviewbook,whichTEALSshipstoeachAPCSAvolunteer.

Scaffolding

TheGlossaryofEducationReformdefinesscaffoldingas:

Avarietyofinstructionaltechniquesusedtomovestudentsprogressivelytowardstrongerunderstandingand,ultimately,greaterindependenceinthelearningprocess.

Instructorsprovidesuccessivelevelsoftemporarysupportthathelpstudentsreachhigherlevelsofcomprehensionthantheywouldhavebeenabletoachievewithoutassistance.Supportisgraduallyremovedasstudentsmovetowardsmastery,whichoccurswhenstudentsdemonstrateskillsandknowledgewithoutanyoutsideassistance.

TheUniversityofWashingtoncourseCSE142andassociatedtextbookdonotcontainmuchscaffolding.ThiscurriculumattemptstowrapthecontentoftheUWcoursewithscaffoldingappropriateforhighschoolclasses.Someclassesmaynotrequirescaffolding,andotherclassesmayneedevenmorescaffoldingthanthosestepssuggestedwithinthelessonplan.

Examples

Mostlecturenotesandclassroomexamplesareslightlymodifiedversionsoftheexamplesoutlinedinthetextbook.Whentheclassneedsadditionalexamples,orre-teaching,instructorscanreferdirectlytothetextbookforafreshsetofsimilarexamplesandexplanations.The"additionalresources"sectionofthisdocumentlistssomeothersourcesforexamplesandlabs.

Referencestothetextbook

SomeclassroomsareusingearliereditionsoftheBuildingJavaProgramstextbook.Toavoidconfusion,wehavewrittenallreadingandpracticeassignmentsbychapterandsectionratherthanpagenumber.Incaseswherepracticeproblemsorassignmentsdifferbetweeneditions,wehavecopiedthoseassignments(withreference)intoprintabledocuments.

HomeworkAssignments

Introduction

8

Aswritten,thehomeworkassignmentscontainmaterialtobeassigned,butarenotphrasedintermsoflearninggoals.Teachersshouldchoosespecificlearninggoalsfortheevening'sworkdependingonstudentprogressandtimingwithintheweekandschoolyear,thenphrasetheassignmentintermsoflearninggoals,notoutput.

Forexample,ratherthan"readsection3.1"assignthereadingbysaying"fortomorrow,bepreparedtopassdataintomethodsusingparameters.Section3.1inthetextbookwillshowyouhow."

Pokémon

Throughoutthecourse,thiscurriculumincludeslabassignmentsusingthePokémonuniverseasasubject-matterdomain(oftenreplacingtextbookassignmentsonlesssalienttopicslikecompoundinterest).ThePokémonstorylineandgamerulesarefamiliartomaleandfemalestudentsfromallsocioeconomicbackgrounds,availableacrossthedigitaldivideasbothacardgameandavideogame,andareavailablein10differentlanguages(English,Spanish,Portuguese,Dutch,French,German,Italian,Korean,Chinese,andJapanese).

Becausethegamereliesonstatistics,modulooperators,andtheunderlying32-bitintegerthatcharacterizesanygivenPokémon,wewillbeusingthisthemetointroducestudentstomuchoftheAPCSAcurriculum.StudentswillbeenteringtheAPCSAcoursewithvaryingdegreesofmathliteracy,andframingmathematicalchallengesinthisfamiliarframeworkishelpfulforavoidingstereotypethreatandmathanxiety.

TolearnmoreaboutthePokémonstoryline,gamerules,underlyingformulae,andcharacters,visithttp://bulbapedia.bulbagarden.net/.ForamoregeneralintroductiontothePokémonfranchise,visithttp://www.pokemon.com/.

APTestPreparation

ThecurriculumisdesignedwithAPTestPrepinmind.AlloftheUnittestsareintheAPexamformat.Inclasseswheremanystudentswilltaketheexam,instructorsshouldgraduallyadjustthetestingenvironmenttomimicthatoftheexam:

Alwaysprovide/allowtheAPJavaQuickReference

Movefromopen-note(see“TrickyCodeCheatSheet”)toclosed-note

TheAPexamhas40multiplechoicequestionsin75minutes(≈2minutesperquestion).Ontheearliertests,startataslowerpace(perhaps4minutesperquestion).Asthecourseprogresses,worktoapaceevenfasterthantheactualtest(90secondsperquestion).

Introduction

9

Vocabulary

Acomprehensivevocabularylistforeachunitisprovidedforteacherstogeneratewordwallsintheirclassroom.Someclassroomswillbeabletoomitcertainvocabularywords;asoffered,thelistsofferedincludewordsthatEnglishlanguagelearnersandstudentswithprevioussub-optimalinstructionmayfindchallenging.

Error-CheckingLessons

Oneclassperiodineachunithasbeendevotedtostudentcorrectionandresubmissionofwork.Whileitmaybetemptingto“winback”classtimebyskippingthesesessions,westronglyencourageteacherstoleavethesesessionsin.

Whenstudentshavetheopportunitytofixtheirworkandearnbackfullorpartialcredit,itgivesstudentsagencyovertheirgradeandteachesstudentstoexamineandreflectupontheirownlearning.Onapracticalnote,whenerror-checkinglessonsareincluded,teachersneedonlygradeanswersascorrect/incorrect,sincestudentswillbechallengedwithfindingandfixingtheerrorsontheirownlater.Finally,studentsthathaveansweredallormostoftheirworkcorrectlyreceiveadayofftodosilentwork/playontheirown,whichpositivelyreinforcesstudentstoputintheinitialefforttowinadayoff.

VideoTutorialsTimingandPacing—AdjustinglessonsandthecurriculummapforthespeedofyourlearnersProjectsandLabs—ChoosingnwhetheryourclasscompletestheAPlabsortheprojects(FracCalc/TextExcel)SupportingVisual-SpatialLearners—UsingthephysicalspaceinyourclassroomtoenhancelearningParson'sProblems—Assessinghigh-levelprogrammingskillsquicklywithParson'sProblemsGrudgeball—ReviewingmaterialbyplayingaclassgameofGrudgeball

DigitalToolsAssociatedwithThisCurriculum

IntegratedDesignEnvironment(IDE)—Eclipse

CodinginJavarequirestheJavaDevelopmentKitandatexteditororIDE.TherearemanyJavaIDEsavailable.CurrentlymostoftheTEALSclassroomsuseEclipse.Unit1includesdirectionsforinstallingEclipse.

Introduction

10

Practice-It!

ProfessorsMartySteppandJessicaMillercreatedthePractice-ItonlinetoolthatallowsstudentstocompleteJavaexercisesfromtheBJPtextbookandgetimmediatefeedbackontheirresults.DetailedinstructionsforteacherandstudentregistrationonthesiteareincludedinUnit1lessons.

Asofthe2015–2016schoolyear,TEALSclassesdonothaveaccesstothePractice-Itdashboardfortrackingstudentprogressontheexercises.Instead,instructorscanuseoneofthefollowingmethods:

1. Studentstakescreenshotsoftheirtotalcorrectproblems(atableisavailableontheirhomedashboard),andsubmitthescreenshotsbyemailorformsubmissiononyourchosenlearningmanagementsystem.

2. ImplementthePractice-ItGradeRetrievalToolcreatedbyMauricioDelCarpio(ofBishopBlanchetHighSchool).Step-by-stepinstructionsforinstallationareincludedinthePracticeItGradeRetrievaldocumentincludedwiththeotherIntroductionmaterials.

DetectingCheatingwithMOSS

Althoughthecurriculumdoesnotspecificallyoutlineanapproachformonitoringcheating,manyteachershavefounditeasier,faster,andlessstressfultouseafreeplagiarism-detectionprogramofferedbyStanfordathttp://theory.stanford.edu/~aiken/moss/.TeacherswillstillneedtomanuallyinspectcodeflaggedbyMOSS,buttheprogramdoescatchcommontacticsincludingrenamingvariablesandreorderingmethods.

Occasionally,teachershavedifficultyregisteringforanaccount.Ifthisoccurs,youareencouragedtoemailtheprogram'screatorAlexAikendirectly,ataiken@cs.stanford.edu.

AdditionalResources

Thefreeweb-basedgameCodeHunt(http://www.codehunt.com)offersopportunitiesforstudentstofindandfixerrorsby“discoveringthemissingcodesegments.”Assignments/Levelsareautomaticallygraded,andstudentscancompeteagainsteachothertohonetheirprogrammingskills.

SimilartoPracticeIt,CodingBat(http://www.codingbat.com)offersJavapracticeproblemswithinstantfeedbackforstudents.TheproblemsinCodingBataredistinctfromthoseintheBuildingJavaProgramstextbook.CodingBathasateacher

Introduction

11

dashboard,andasystemofbadgestomotivatelearners.Instructorscanalsouploadtheirownsetsofjavaproblemsfortheirclassestocomplete.

Ifyouareinterestedinlearningmoreaboutprinciplesofuniversaldesignforlearning,pleasevisithttp://www.udlcenter.org/aboutudl/udlguidelines.

EmergingEdTechhascollectedasampleof20digitaltoolstoincreasecollaborationintheclassroom.Oneofthemmightbeperfectforyourclassroom:

See20FunFreeToolsforInteractiveClassroomCollaboration.OthertoolsforcollaborationthathavebeensuccessfullyusedinTEALSclassroomsincludeTwiddla,Vyew,Skype,andGoogleHangouts.

Ifyourclassroomdoesnotalreadyhaveadigitalgrademanagementsystem,previousTEALSteachingteamshaveusedMoodle,Canvas,Schoology,ExcelOnline,andGoogleForms.

Tocreatedigital,self-grading,andresponsivequizzes,GoogleFormsandSocrativeofferfreetoolsandtutorialstousetheirsystems.

Ifyouarestationedinahigh-performingschool,orinaschoolwheremanystudentshavealreadymasteredotherprogramminglanguages,youmaywanttoconsiderflipping(orinverting)yourclassroom.Tolearnmoreaboutthetheoryandpracticeofteachinginaflippedclassroom,VanterbiltUniverisityoffersacomprehensiveintroductionandlinkstopracticalresources/exampleshere:http://cft.vanderbilt.edu/guides-sub-pages/flipping-the-classroom.

Youshouldstillbeabletousemostoftheresourcesofferedinthiscurriculum,butyouwillhavetoshufflehowyouusethelessonplans.Somequickrecommendations:

1. Usethelecturenotesasgiven,butrecordthelectureforstudentviewing.

2. Wherelectureactivitieshavebeensuggested(e.g.think-pair-shares),considerembeddingquestionsintoyourlessonplans.

3. Saveclasscompetitionsforin-class,andleavereadingandeasyPractice-it,selfcheck,andworksheetexercisesforhomereview.

Asyoureadthroughthelessonplans,youwillfindseveralclassroomteachingactivitiesandstrategiesappearrepeatedly.BriefvideotutorialsmodelingtheseactivitiescanbefoundwithintheTEALSrepository.Keepaneyeoutforspecificadjustmentstothelessonplansforerror-checkingandtestreview.Whiletheselessonplanslookidenticalatfirstglance,smalladjustmentshavebeenmadeforcontent,timing,andAPtestprep.

Givingfeedbackonthecurriculum

Introduction

12

TEALSintendsforthiscurriculumtobeastartingpoint;it'sourfirstattemptatacompleteAPCSAcurriculum.We'llcontinueevolvingandadaptingthecurriculumandassociatedmaterialsaswelearnmoreaboutteachingAPCSA.Toparticipateinthisprocess,weinviteTEALSteammembersandindependentteachersusingthiscurriculumtosubmiteditsandsuggestionsviathediscussionforumontheTEALSdashboard,ortoAPSquad@tealsk12.org.

Introduction

13

APCSAVideoTutorialsThefollowingareasetofvideotutorialstohelpguidenewteachersontheTEALScurriculum.

VideosTimingandPacing:AdjustlessonsandthecurriculummapforthespeedofyourlearnersProjectsandLabs:ChoosewhetheryourclasscompletestheAPLabsortheProjects(FracCalc/TextExcel)Space:UsingthephysicalspaceinyourclassroomtoenhancelearningParson'sProblems:Assessinghigh-levelprogrammingskillsquicklywithParson'sProblemsGrudgeball:ReviewmaterialsusingbyplaingagameofGrudgeball

VideoTutorials

14

APCSACurriculumMapThefollowingcurriculummapisaday-by-daylistingoftheAPComputerSciencecourseinchronologicalorder.Eachrowrepresentsonedayofclass,basedonamedium-pacedclass.Readingsfromthetextbookandhomeworkassignmentsareincludedonthedaywhentheyshouldbeassigned.RefertotheIntroductiondocumentforinformationabouthowtoadjustthispacingforyourspecificclassroom.

ContentsUnit1:Programming&Java(2weeks)Unit2:WorkingwithData&BasicControlFlow(3weeks)Unit3:AdvancedData&ControlFlow(4weeks)Unit4:Arrays,Lists,&Files(4weeks)Unit5:Object-OrientedProgramming(4weeks)Unit6:Inheritance&Polymorphism(4weeks)Unit7:Searching&Sorting(3weeks)Unit8:Recursion(2weeks)Unit9:APTestReview(3weeks)Unit10:Post-APExamProjects(4–5weeks)

Abbreviations

WS—WorksheetSC—Self-Checkproblem(inthetextbook)EX—Exercise(inthetextbook)PP—ProgrammingProject(inthetextbook)

Unit1:Programming&Java(2weeks)Unit1SlidesUnit1WordBank

CurriculumMap

15

CurriculumAssets

LP Title InClass Reading Homework

1.01 UsingEclipse&Practice-It

WS1.1.1WS1.1.2

ExplorePokémon(pokemon.com,console,website)

1.02Algorithms&ComputationalThinking

PB&J 1.2

ReflectonPB&JassignmentContinueexploringPokémon

1.03 String&ConsoleOutput

Practice-ItSC1.6–9,1.11–14LPWelcome

1.3 EX1.1–5

1.04 CommonErrors&Comments WS1.4 1.4 EX1.6–9

1.05 StaticMethods&MethodCalls

Practice-ItSC1.22,1.23,1.26,1.29

1.5 EX1.11,1.12,1.14,1.16

1.06 StaticMethods&MethodCalls

LPStarFiguresLPPikachuChatter

Outlinech1PP1.1,1.3

1.07 ProgrammingProject PP1.2,1.5 Notecheck(add

summariesifneeded)

1.08 Finding&FixingErrors Fixhomework Review

ch1Submitquestionsforreview

1.09 Review

ReviewquestionsWS1.9Practicetest

Study

[1.99] Unit1TestTest0SectionITest0SectionII

1.01

CurriculumMap

16

Lesson1.01 UsingEclipse&Practice-It

Objectives StudentswillbeabletoopenEclipse,createandsaveafileinEclipse,andusePractice-It.

AssessmentsStudentswilldemonstratePlug-InandUn-Plugproceduresfortheteacher.StudentswillloginandsubmitasampleprobleminPractice-It.

InClass WS1.1.1WS1.1.2

Reading

Homework ExplorePokémon(pokemon.com,console,website)

1.02

Lesson1.02 Algorithms&ComputationalThinking

ObjectivesStudentswillbeabletodefinealgorithms,programs,hardware,software,andoperatingsystems.Studentswillbeabletodescribetherelationshipsbetweentheseconceptsandcomponents.

AssessmentsStudentswillwritesamplealgorithms,assembleanddebugaprogramthatdirectstheinstructortomakeapeanutbutter&jellysandwich.

InClass PB&J

Reading 1.2

Homework ReflectonPB&JassignmentContinueexploringPokémon

1.03

Lesson1.03 String&ConsoleOutput

ObjectivesStudentswillcorrectlyassembleacompleteprogramthatusesaclassheader,body,andmainmethod.Studentswillcorrectlyuseprint,println,andescapesequences.

Assessments StudentswillcreateastarterPokémonprogramStudentswillcompleteseveralPractice-Itquestions.

InClassPractice-ItSC1.6–9,1.11–14LPWelcome

Reading 1.3

Homework EX1.1–5

CurriculumMap

17

1.04

Lesson1.04 CommonErrors&Comments

ObjectivesStudentswillcreatesimpleprogramswithcommentsStudentswillbeabletolistandapplythestepsnecessaryforavoidingsyntaxerrors.

Assessments Studentswillcompleteaworksheet(WS1.4).Studentswilldevelopapersonalcheck-listforspottingsyntaxerrors.

InClass WS1.4

Reading 1.4

Homework EX1.6–9

1.05

Lesson1.05 StaticMethods&MethodCalls

ObjectivesStudentswilluseproceduraldecompositiontoplancomplexprogramsusingstructurediagrams.Studentswillmanagecomplexitybyusingmethodcalls.

Assessments StudentswillcompletePractice-Itproblems.

InClass Practice-ItSC1.22,1.23,1.26,1.29

Reading 1.5

Homework EX1.11,1.12,1.14,1.16

1.06

Lesson1.06 StaticMethods&MethodCalls

Objectives Studentswillusestructurediagramstoplancomplexprograms.Studentswillmanagecomplexitybyusingmethodcalls.

Assessments StudentswillcompletePractice-Itproblems,studentswillwriteastructuredPikachuprogram.

InClass LPStarFiguresLPPikachuChatter

Reading

Homework Outlinech1PP1.1,1.3

1.07

CurriculumMap

18

Lesson1.07 ProgrammingProject

Objectives Studentswillconstructaprogramcontainingmethodcallsandstaticmethods.

Assessments Studentswillsubmitacomplete,functionalprogrambytheendofclass.

InClass PP1.2,1.5

Reading

Homework Notecheck(addsummariesifneeded)

1.08

Lesson1.08 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch1

Homework Submitquestionsforreview

1.09

Lesson1.09 Review

Objectives StudentswillidentifyweaknessesintheirUnit1knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClassReviewquestionsWS1.9Practicetest

Reading

Homework Study

1.99

Unit1Test Programming&Java

InClass Test0SectionITest0SectionII

CurriculumMap

19

Unit2:WorkingwithData&BasicControlFlow(3weeks)

Unit2SlidesUnit2WordBankCurriculumAssets

LP Title InClass Reading Homework

2.00 TestReview&Reteach Reviewtest

2.1exceptfor“MixingtypesandCasting”

Testcorrections

2.01 BasicDataConcepts WS2.1 2.2upto“String

Concatenation”

SC2.1-2.3(4th:2.1",2.3,"2.4)

2.02Declaring&AssigningVariables

WS2.2Practice-ItSC2.7,2.11(4th:2.8,"2.13)E2.1

Restof2.2

SC2.5",2.6,2.9,2.12-2.15(4th:2.6,2.7,2.1,2.14-2.17)

2.03

StringConcatenation&IncrementDecrementOperators

Grudgeball Restof2.2 SC2.4(4th:2.5)

2.04 MixingTypes&Casting

WS2.4Poster2.4

2.3upto“NestedforLoops" finishWS2.4

2.05 forLoops

WS2.5Practice-ItSC2.18,2.23,2.24(4th:2.21,2.26,"2.27)

2.3“NestedforLoops”

SC2.19-2.21(4th:2.22-2.24)

2.06 nestedforLoops

Practice-ItSC2.28-2.30(4th:2.31-2.33),E2.5

2.4“Scope”and“Pseudocode"

SC2.26",2.27(4th:2.29,2.30),E2.4

CurriculumMap

20

2.07 Scope&Pseudocode

WS2.7DiscussPP2.1

Read2.4“ClassConstants”

SC2.31-2.33(4th2.34-2.36)

2.08 ProgrammingProject StartPP2.4 Outlinech2

(omit2.5)

2.09 ProgrammingProject

CompletePP2.4

[TBDpracticequestion]

2.10 Finding&FixingErrors FixHW Reviewch2(omit

2.5)

Submitquestionsforreview

2.11 Review(Reviewquestions)

WS2.11practicetest Study

[2.99] (Unit2Test)

Test1SectionITest1SectionII

2.00

Lesson2.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit1.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 2.1exceptfor“MixingTypesandCasting”

Homework Testcorrections

2.01

CurriculumMap

21

Lesson2.01 BasicDataConcepts

ObjectivesStudentswillbeabletoidentifyandcategorizedatatypes.Studentswillidentifyoperatorsandoperands,andwillcorrectlyapplyrulesorprecedence.

AssessmentsUsingoperator/operandexpressionsets,studentswilluserulesofprecedencetocorrectlywritecodethatyieldsagivenanswer.Usingoperator/operandexpressionsets,studentswillcreatetheirownexpressionsandpredicttheoutput.

InClass WS2.1

Reading 2.2upto“StringConcatenation”

Homework SC2.1–3(4th:2.1,2.3,2.4)

2.02

Lesson2.02 Declaring&AssigningVariables

Objectives Studentswillbeabletoidentify,declare,andassignvariables.

Assessments StudentswillwriteaprogramthatconvertstemperaturefromFarenheittoCelsius.

InClassWS2.2Practice-ItSC2.7,2.11(4th:2.8,2.13)E2.1

Reading Restof2.2

Homework SC2.5,2.6,2.9,2.12–15(4th:2.6,2.7,2.10,2.14–17)

2.03

Lesson2.03 StringConcatenation&IncrementDecrementOperators

Objectives Studentswillapplytherulesofstringconcatenation,studentswillcorrectlyinterpretincrementinganddecrementingstatements.

Assessments Studentswillevaluatestatementsandpredictoutputduringagameofgrudgeball.

InClass Grudgeball

Reading Restof2.2

Homework SC2.4(4th:2.5)

2.04

CurriculumMap

22

Lesson2.04 MixingTypes&Casting

ObjectivesStudentswillbeabletodescribewhichtypesautomaticallyconvertintootherswhenappearingtogetherinexpressions,andpredicthowanexpressionwithmixedtypeswillevaluate.Studentswillbeabletoconverttypesbycasting.

AssessmentsStudentswilluse“ZombieRules”ofprecedencetocorrectlywritecodethatyieldsagivenanswerSudentswillcreatetheirownexpressions&predictoutputbycompletingandtradingworksheets.

InClass WS2.4Poster2.4

Reading 2.3upto“NestedforLoops”

Homework FinishWS2.4

2.05

Lesson2.05 forLoops

Objectives StudentswilltraceloopstopredictprogrambehaviorStudentswillconstructloopstoexecutesimpletasks.

Assessments StudentswilltraceandconstructloopsinPractice-Itproblems.

InClassWS2.5Practice-ItSC2.18,2.23,2.24(4th:2.21,2.26,2.27)

Reading 2.3“NestedforLoops”

Homework SC2.19–21(4th:2.22–24)

2.06

Lesson2.06 NestedforLoops

Objectives StudentswilltracenestedloopstopredictprogrambehaviorStudentswillconstructloopstoexecutesimpletasks.

Assessments StudentswilltraceandconstructnestedloopsinPractice-Itproblems.

InClassPractice-ItSC2.28–30(4th:2.31–33)E2.5

Reading 2.4“Scope”and“Pseudocode”

Homework SC2.26,2.27(4th:2.29,2.30)E2.4

CurriculumMap

23

2.07

Lesson2.07 Scope&Pseudocode

Objectives Studentswillbeabletoidentifythescopeofavariableandidentifycommonscopeerrors.

Assessments Studentswillcompleteaworksheet.

InClass WS2.7DiscussPP2.1

Reading Read2.4“ClassConstants”

Homework SC2.31–33(4th2.34–36)

2.08

Lesson2.08 ProgrammingProject

Objectives Studentswillplanandconstructastructuredprogramcontainingnestedloops.

Assessments Studentswillsubmitacomplete,functionalprogrambytheendofnextclass.

InClass StartPP2.4

Reading

Homework Outlinech2(omit2.5)

2.09

Lesson2.09 ProgrammingProject

Objectives Studentswillplanandconstructastructuredprogramcontainingnestedloops.

Assessments Studentswillsubmitacomplete,functionalprogrambytheendofnextclass.

InClass CompletePP2.4

Reading

Homework [TBDpracticequestion]

2.10

CurriculumMap

24

Lesson2.10 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch2(omit2.5)

Homework Submitquestionsforreview

2.11

Lesson2.11 Review

Objectives StudentswillidentifyweaknessesintheirUnit1knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClassReviewquestionsWS2.11Practicetest

Reading

Homework Study

2.99

Unit2Test WorkingwithData&BasicControlFlow

InClass Test1SectionITest1SectionII

Unit3:AdvancedData&ControlFlow(4weeks)

Unit3SlidesUnit3WordBank

CurriculumMap

25

CurriculumAssetsFracCalc

LP Title InClass Reading Homework

3.00 TestReview&Reteach

AlgorithmforSolvingProblems

3.1upto“LimitationsofParameters”

Testcorrections

3.01 Parameters Practice-ItSC3.1-3.3

"3.1“LimitationsofParameters”,“MultipleParameters”,""ParametersversusConstants"""

SC3.4-3.7

3.02

LimitationsofParameters&MultipleParameters

(Artproject)

"3.1“OverloadingMethods”,3.2""MethodsThatReturnValues"""

Jazzupartprojectandprogram

3.03 ReturnValues

Practice-ItSC3.14-3.16

SC3.17,E3.1

3.04 ProgrammingProject

WS3.4Equestria

3.3upto“InteractiveProgramsandScannerObjects”

SC3.18,3.19

3.05

UsingObjects&StringProcessing

WS3.5

3.3“Interactiveprogramming”and“Sampleinteractiveprogram”

SC3.19-3.21

3.06

InteractivePrograms&ScannerObjects

Practice-ItSC3.24-3.26;E3.12,3.14,3.15

Outlinech3(omit3.4)

3.07

PokémonBattleProgrammingProject

WS3.7LPBattle

Summarizenotessincelastexam

3.08 Finding&FixingErrors

FixHWwebmaker.org

4.1upto“nestedifelsestatements” SC4.1-4.4

3.09RelationalOperators&if/else

OperatorPrecedenceGrudgeball

4.1“Nestedif/else”and“Flowofcontrol”

SC4.7-4.9;E4.1-4.2

3.10Nestedif/elseStatements

WS3.10Teachmini-lessonsPractice-ItSC4.5,4.6,E4.3

4.1,“Factoringif/elsestatements”and“Testingmultipleconditions”

E4.4,4.5

3.11ReducingRedundancy

(Refactoringcompetition) Read4.2

Outlinech4(omit4.4,

CurriculumMap

26

Redundancy petition) 4.5)

3.12 CumulativeAlgorithms

Tallycodeonboard,CollaborativeProgrammingExerciseWS3.12

5.1skip“do/whileloops” PP4.2

3.13 whileLoopsPractice-ItSC5.1-5.4,E5.2WS3.13

5.1”Randomnumbers” E5.2

3.14 RandomNumbers

Practice-ItSC5.5-5.7;E5.4,5.5 5.2 PP5.1

3.15Fencepost&SentinelLoops

WS3.15Teachmini-lessons 5.3 E5.6,5.8

3.1601 BooleanLogic

Practice-ItSC5.27,5.29WS3.16(RPS,Pig)DeMorgan’sLawPoster3.16.1Poster3.16.2

Outlinech5(through5.3)

3.1602 BooleanLogic(Day2)

3.17 Finding&FixingErrors (FixHW) Reviewch3-5

Submitquestionsforreview

3.18 Review(Reviewquestions),WS3.18practicetest

Study

3.99 Unit3testTest2GuideTest2SectionITest2SectionII

3.XX FracCalc

3.00

CurriculumMap

27

Lesson3.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit2.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass AlgorithmforSolvingProblems

Reading 3.1upto“LimitationsofParameters”

Homework Testcorrections

3.01

Lesson3.01 Parameters

ObjectivesStudentswillcorrectlyconstructformalandactualparameters(arguments).Studentswillpredicttheoutputofprogramsthatuseparameters.

AssessmentsStudentswillteachamini-lessonexplainingtherelationshipbetweenparametersandvaluesstoredinmemory.StudentswillsubmitPractice-Itquestions.

InClass Practice-ItSC3.1–3

Reading 3.1“LimitationsofParameters”,“MultipleParameters”,“ParametersversusConstants”

Homework SC3.4–7

3.02

Lesson3.02 LimitationsofParameters&MultipleParameters

Objectives Studentswillmodifyprogramsusingparametersandclassconstantstocreateoriginalartworks.

Assessments Studentswillcompleteanartprojectand“artiststatement”justifyingtheirprogrammingchoices.

InClass Artproject

Reading 3.1“OverloadingMethods”3.2“MethodsThatReturnValues”

Homework Jazzupartprojectandprogram

3.03

CurriculumMap

28

Lesson3.03 ReturnValues

Objectives Studentswillwriteaprogramthatreturnsvalues.

Assessments StudentswillcompletePractice-ItquestionsandwriteaprogramtomeetaPokémonChallenge.

InClass Practice-ItSC3.14–16

Reading

Homework SC3.17E3.1

3.04

Lesson3.04 ProgrammingProject

Objectives Studentswillwriteaprogramthatusesparameters,themathclass,andreturnsvalues.

Assessments StudentswillsubmitanEquestriaprogrambytheendofclass.

InClass WS3.4Equestria

Reading 3.3upto“InteractiveProgramsandScannerObjects”

Homework SC3.18–19

3.05

Lesson3.05 UsingObjects&StringProcessing

ObjectivesStudentswillbeabletodifferentiatebetweenprimitiveandobjecttypes.Studentswillapply0-indexingandstringprocessingtechniquestopredicttheoutputofaprogram.

Assessments StudentswillcompleteWS3.5

InClass WS3.5

Reading 3.3“InteractiveProgramming”and“SampleInteractiveProgram”

Homework SC3.19–21

3.06

CurriculumMap

29

Lesson3.06 InteractivePrograms&ScannerObjects

Objectives Studentswillwriteprogramsthatacceptuserinputusingascannerobject.

Assessments StudentswillcompletePractice-Itproblems.

InClassPractice-ItSC3.24–26E3.12,14,15

Reading

Homework Outlinech3(omit3.4)

3.07

Lesson3.07 PokémonBattleProgrammingProject

Objectives Studentswillwriteaprogramthatrequestsuserinputandreturnsdata.

Assessments StudentswillwriteaprogramthatcalculatesdamagedonetoPokémoninabattle.

InClass WS3.7LPBattle

Reading

Homework Summarizenotessincelastexam

3.08

Lesson3.08 Finding&FixingErrors

Objectives Studentswillfinderrorsandcorrecttheirpreviouslysubmittedhomeworkandclassworkassignment.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomeworkwebmaker.org

Reading 4.1upto“NestedIf/ElseStatements”

Homework SC4.1–4

3.09

CurriculumMap

30

Lesson3.09 RelationalOperators&if/else

Objectives Studentswillbeabletoevaluaterelationalexpressions,predictandtracetheflowofanifstatement.

Assessments Studentswillevaluaterelationalexpressionsandpracticecorrectifstatementsyntaxduringagameofgrudgeball.

InClass OperatorPrecedenceGrudgeball

Reading 4.1“NestedIf/Else”and“FlowofControl”

Homework SC4.7–9E4.1–2

3.10

Lesson3.10 Nestedif/elseStatements

ObjectivesStudentswillwillbeabletochoosewhichifstatementsotusefordifferentproblemsStudentswillusecorrectsyntaxforthedifferentifstatements.

AssessmentsStudentswillteachamini-lessononsequentialornestedifstatements.StudentswillsubmitseveralPractice-Itquestions.

InClassWS3.10Teachmini-lessonsPractice-ItSC4.5–6E4.3

Reading 4.1,“FactoringIf/ElseStatements”and“TestingMultipleConditions”

Homework EX4.4–5

3.11

Lesson3.11 ReducingRedundancy

Objectives Studentswillsimplifycodeandreduceredundancybyfactoringif/elsestatementsandtestingmultipleconditionssimultaneously.

Assessments Studentswillcompleteaclasscompetition.

InClass Refactoringcompetition

Reading 4.2

Homework Outlinech4(omit4.4,4.5)

3.12

CurriculumMap

31

Lesson3.12 CumulativeAlgorithms

Objectives Studentswillfindandcorrectsyntaxerrorsinconditionalcumulativealgorithms.

Assessments Studentswillwrite,modify,andcorrectprogramswrittenbyothers.

InClass TallycodeonboardCollaborativeProgrammingExerciseWS3.12

Reading 5.1(skip“Do/WhileLoops”)

Homework PP4.2

3.13

Lesson3.13 whileLoops

ObjectivesStudentswilltracewhileloopstopredict(1)thenumberoftimesthebodyexecutesand(2)theoutputofthecode.Studentswillbeabletodifferentiatebetweenwhileloops,ifstatements,andforloops.

Assessments StudentswillcompletePractice-Itquestions.

InClassPractice-ItSC5.1–4E5.2WS3.13

Reading 5.1“RandomNumbers”

Homework EX5.2

3.14

Lesson3.14 RandomNumbers

Objectives Studentswillbeabletowriteexpressionsthatgeneratearandomintegerbetweenanytwovalues.

Assessments StudentswillcompletePractice-Itquestions.

InClassPractice-ItSC5.5–7E5.4–5

Reading 5.2

Homework PP5.1

3.15

CurriculumMap

32

Lesson3.15 Fencepost&SentinelLoops

ObjectivesStudentswillbeabletodescribewhentousefencepostandsentinelloops.Studentswillusepropersyntaxtoconstructthesecontrolstructures.

Assessments Studentswillteachamini-lessonexplainingtherelationshipbetweenparametersandvaluesstoredinmemory.

InClass WS3.15Teachmini-lessons

Reading 5.3

Homework EX5.6,8

3.16.1

Lesson3.16 BooleanLogic(Day1)

Objectives StudentswillworkinpairstowriteagamethatplaysRockPaperScissors.

Assessments Studentswillsubmitaprogramattheendof2or3classperiods.

InClass

Practice-ItSC5.27,5.29WS3.16(RPS,Pig)DeMorgan’sLawPoster3.16.1Poster3.16.2

Reading

Homework Outlinech5(through5.3)

3.16.2

Lesson3.16 BooleanLogic(Day2)

3.17

CurriculumMap

33

Lesson3.17 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch3–5

Homework Submitquestionsforreview

3.18

Lesson3.18 Review

Objectives StudentswillidentifyweaknessesintheirUnit3knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClass ReviewquestionsWS3.18PracticeTest

Reading

Homework Study

3.99

Unit3Test AdvancedData&ControlFlow

Guide Test2Guide

InClass Test2SectionITest2SectionII

3.XX

Unit3Project FracCalc

InClass FracCalc

CurriculumMap

34

Unit4:Arrays,Lists,&Files(4weeks)Unit4SlidesUnit4WordBankCurriculumAssetsMagpieChatbotLab

LP Title InClass Reading Homework

4.00 TestReview&Reteach Reviewtest 7.1uptoArraysand

MethodsTestcorrections

4.01 ArrayBasics WS4.1Poster4.2

7.1For-EachLoopandTheArraysClass

SC7.1,7.7,7.9

4.02 For-EachLoop&ArraysClass WS4.2 7.2uptoReversing

anArray SC7.12-7.14

4.03

Printing,Searching,&TestingforEquality

WS4.3Mini-lessons

SC7.14-7.17,E7.3

4.03

Printing,Searching,&TestingforEquality(Day2)

7.3 SC7.19-7.21

4.04 ReferenceSemantics

WS4.47.4uptoCommand-LineArguments

E7.9,7.10

4.05 ShiftingValues&ArraysofObjects

SC7.22,7.23,7.25,7.26,7.30;E7.16

7.4NestedArrays,7.5RectangularTwoDimensionalArrays

SC7.27-7.29,E7.14

4.06

NestedLoopAlgorithms&RectangularArrays

WS4.610.1uptoAddingtoandRemovingfromanArrayList

SC[TBD]

4.07 ArrayList GrudgeballPoster4.7

Outlinech7and10.1

4.08 Finding&FixingErrors FixHW Reviewch7,10.1for

Magpielab

Submitquestionsforreview

4.0901

MagpieChatbotLab(day1)

MagpieChatbotLabActivity1&2

Barronsch6

CurriculumMap

35

4.0902

MagpieChatbotLab(day2)

MagpieChatbotLabActivity2

Barronsch6

4.0903

MagpieChatbotLab(day3)

MagpieChatbotLabActivity3

Barronsch6practicequestions

4.0904

MagpieChatbotLab(day4)

MagpieChatbotLabActivity4

CheckandcorrectBarronsch.6questions

4.0905

MagpieChatbotLab(day5)

MagpieChatbotLabActivity5

CheckandcorrectBarronsch.6questions

4.10 Review

ReviewquestionsWS4.10practicetest

Study

4.99 Unit4test

Test3SectionITest3SectionII

4.00

Lesson4.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit3.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 7.1upto“ArraysandMethods”

Homework Testcorrections

4.01

CurriculumMap

36

Lesson4.01 ArrayBasics

Objectives Studentswilldefine,populate,andaccessarrays.

Assessments StudentswillcompletemanipulativesexercisesonWS4.1.1

InClass WS4.1Poster4.2

Reading 7.1“For-EachLoop”and“TheArraysClass”

Homework SC7.1,7,9

4.02

Lesson4.02 For-EachLoop&ArraysClass

Objectives Studentswilldefine,populate,andaccessarrays.

Assessments StudentswillcompletemanipulativesexercisesonWS4.2

InClass WS4.2

Reading 7.2upto“ReversinganArray”

Homework SC7.12–14

4.03.1

Lesson4.03 Printing,Searching,&TestingforEquality(Day1)

Objectives Studentswillbeabletomanipulatesingle-dimensionarraysusingavarietyofarraytransversalalgorithms.

AssessmentsStudentswillteachamini-lessononprinting,searching/replacing,testingforequality,reversinganarray,orstringtraversal.StudentswillcompleteaquizattheendofDay2.

InClass WS4.3Teachmini-lessons

Reading

Homework SC7.14–17E7.3

4.03.2

CurriculumMap

37

Lesson4.03 Printing,Searching,&TestingforEquality(Day2)

Objectives

Assessments

InClass

Reading 7.3

Homework SC7.19–21

4.04

Lesson4.04 ReferenceSemantics

Objectives Studentswillbeabletocompareandcontrasthowprimitivesandarraysaretreatedwhenpassedasparameters.

Assessments Studentswillcompletegraphicorganizersandaworksheet.SomestudentswillcompleteaPokémonChallengeforextracredit.

InClass WS4.4

Reading 7.4upto“Command-LineArguments”

Homework EX7.9–10

4.05

Lesson4.05 ShiftingValues&ArraysofObjects

Objectives Studentswillbeabletoshiftelementswithinanarrayandconstructarraysofobjects.

Assessments StudentswillcompletePractice-Itquestionsandmodelmemorymanipulationusingarraywhiteboards.

InClass SC7.22,23,25,26,30E7.16

Reading 7.4“NestedArrays”7.5“RectangularTwoDimensionalArrays”

Homework SC7.27–29E7.14

4.06

CurriculumMap

38

Lesson4.06 NestedLoopAlgorithms&RectangularArrays

Objectives StudentswillcorrectlyadjustnestedloopheadersforusewitharraysStudentswillcorrectlyconstructtwo-dimensionalarrays

Assessments StudentswillcompleteWS4.6

InClass WS4.6

Reading 10.1upto“AddingtoandRemovingfromanArrayList”

Homework SC[TBD]

4.07

Lesson4.07 ArrayList

ObjectivesStudentswillconstructcodeusingArrayListStudentswillpredicttheoutputofmethodsthattakearraysasparametersand/orreturnarrays.

Assessments StudentswillevaluatestatementsandpredictoutputduringagameofGrudgeball.

InClass GrudgeballPoster4.7

Reading

Homework Outlinech7and10.1

4.08

Lesson4.08 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch7,10.1forMagpielab

Homework Submitquestionsforreview

4.09.1

CurriculumMap

39

Lesson4.09 MagpieLab(Day1)

Objectives Studentswillcompletealong-formlab,usingifstatements,algorithms,theStingclass,arrays,andArrayLists.

AssessmentsStudentswillcompletetheCollegeBoard’sAPCSAMagpieChatbotLab.Studentswillanswerassessmentquestionsonthefourthclassexam.

InClass [Lab:MagpieChatbotLab]MagpieChatbotLabActivity1&2

Reading Barronsch6

Homework

4.09.2

Lesson4.09 MagpieLab(Day2)

Objectives

Assessments

InClass MagpieChatbotLabActivity2

Reading Barronsch6

Homework

4.09.3

Lesson4.09 MagpieLab(Day3)

Objectives

Assessments

InClass MagpieChatbotLabActivity3

Reading

Homework Barronsch6practicequestions

4.09.4

CurriculumMap

40

Lesson4.09 MagpieLab(Day4)

Objectives

Assessments

InClass MagpieChatbotLabActivity4

Reading

Homework CheckandcorrectBarronsch.6questions

4.09.5

Lesson4.09 MagpieLab(Day5)

Objectives

Assessments

InClass MagpieChatbotLabActivity5

Reading

Homework CheckandcorrectBarronsch.6questions

4.10

Lesson4.10 Review

Objectives StudentswillidentifyweaknessesintheirUnit4knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClassReviewquestionsWS4.10Practicetest

Reading

Homework Study

4.99

Unit4Test Arrays,Lists&Files

InClass Test3SectionITest3SectionII

CurriculumMap

41

Unit5:Object-OrientedProgramming(4weeks)Unit5SlidesUnit5WordBankCurriculumAssetsPictureLab

LP Title InClass Reading Homework

5.00 TestReview&Reteach Reviewtest 8.1 Test

corrections

5.01ObjectOrientedProgramming

Practice-ItSC8.1-8.5WS5.1.1

8.2upto“MutatorsandAccessors.”

5.02 ObjectState&Behavior WS5.2 8.3upto“The

Keywordthis.”SC8.9-8.11,8.13-8.16

5.03ObjectInitialization:Constructors

WS5.3.1WS5.3.2 8.4

5.04 Encapsulation WS5.4Mini-lessons SC8.22-8.28

5.05 Finding&FixingErrors FixHW Reviewch8for

PictureLab

Submitquestionsforreview

5.0601

PictureLab(day1)

PictureLabActivity1&2PictureLab

Summarizenotessincelastexam

5.0602

PictureLab(day2)

PictureLabActivity3&4,notebookchecks

Outlinech8

5.0603

PictureLab(day3)

PictureLabActivity5,notebookchecks

ReadandhighlightBarronsch2,skipthiskeyword

5.0604

PictureLab(day4)

PictureLabActivity5&6,notebookchecks

Barronsch2exam,skip#20

PictureLab

CurriculumMap

42

5.0605

PictureLab(day5)

Activity6,Barron'schecks

ReadandhighlightBarronsch5

5.0606

PictureLab(day6)

PictureLabActivity7 SC8.28,8.30

5.0607

PictureLab(day7)

PictureLabActivity8 8.5 FinishPicture

LabActivity8

5.0608

PictureLab(day8)

PictureLabActivity9

Cont.PictureLabActivity9

5.0609

PictureLab(day9)

PictureLabActivity9,cont.

Submitquestionsforreview

5.07 ReviewReviewquestionWS5.7Testpractice

Study

[5.99] (Unit5test) Test4SectionITest4SectionII

5.00

Lesson5.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit4.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 8.1

Homework Testcorrections

5.01

CurriculumMap

43

Lesson5.01 ObjectOrientedProgramming

ObjectivesStudentswillbeabletodescribetherelationshipbetweenclasses,objects,andclientcode.Studentswillbeabletopredicttheoutputofthecodethatusesobjects.

Assessments StudentswillcompletePractice-Itquestions.

InClassPractice-ItSC8.1–5WS5.1.1

Reading 8.2upto“MutatorsandAccessors”

Homework

5.02

Lesson5.02 ObjectState&Behavior

ObjectivesStudentswillbeabletodescribeclasses,objects,andclientcode.Studentswillbeabletopredicttheoutputofthecodethatusesobjects.

Assessments StudentswillcompleteWS5.2individuallyorinpairs.

InClass WS5.2

Reading 8.3upto“TheKeywordthis”

Homework SC8.9–11,13–16

5.03

Lesson5.03 ObjectInitialization:Constructors

ObjectivesStudentswillbeabletodescribeandcreateclasses,objects,andclientcode.Studentswillbeabletopredicttheoutputofthecodethatusesobjects.

Assessments StudentswillcompletePractice-Itquestions.

InClass WS5.3.1WS5.3.2

Reading 8.4

Homework

5.04

CurriculumMap

44

Lesson5.04 Encapsulation

Objectives Studentswillbeabletomanipulatesingle-dimensionarraysusingavarietyofarraytransversalalgorithms.

AssessmentsStudentswillteachamini-lessononprinting,searching/replacing,testingforequality,reversinganarray,orstringtraversal.StudentswillcompleteaquizattheendofDay2.

InClass WS5.4Teachmini-lessons

Reading

Homework SC8.22–28

5.05

Lesson5.05 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch8forPictureLab

Homework Submitquestionsforreview

5.06.1

Lesson5.06 PictureLab(Day1)

ObjectivesStudentswillcompletealong-formlab,usingtwodimensionalarraysofobjects,arraytraversingalgorithms,programanalysis,binarynumbers,inheritance,andinterfaces.

Assessments PictureLab

InClass PictureLabActivity1&2PictureLab

Reading

Homework Summarizenotessincelastexam

5.06.2

CurriculumMap

45

Lesson5.06 PictureLab(Day2)

Objectives

Assessments

InClass PictureLabActivity3&4Notebookchecks

Reading

Homework Outlinech8

5.06.3

Lesson5.06 PictureLab(Day3)

Objectives

Assessments

InClass PictureLabActivity5Notebookchecks

Reading ReadandhighlightBarronsch2,skipthiskeyword

Homework

5.06.4

Lesson5.06 PictureLab(Day4)

Objectives

Assessments

InClass PictureLabActivity5&6Notebookchecks

Reading

Homework Barronsch2exam(skip#20)

5.06.5

CurriculumMap

46

Lesson5.06 PictureLab(Day5)

Objectives

Assessments

InClass PictureLabActivity6Barron'schecks

Reading ReadandhighlightBarronsch5

Homework

5.06.6

Lesson5.06 PictureLab(Day6)

Objectives

Assessments

InClass PictureLabActivity7

Reading

Homework SC8.28,30

5.06.7

Lesson5.06 PictureLab(Day7)

Objectives

Assessments

InClass PictureLabActivity8

Reading 8.5

Homework FinishPictureLabActivity8

5.06.8

Lesson5.06 PictureLab(Day8)

Objectives

Assessments

InClass PictureLabActivity9

Reading

Homework Cont.PictureLabActivity9

CurriculumMap

47

5.06.9

Lesson5.06 PictureLab(Day9)

Objectives

Assessments

InClass PictureLabActivity9,cont.

Reading

Homework Submitquestionsforreview

5.07

Lesson5.07 Review

Objectives StudentswillidentifyweaknessesintheirUnit5knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClassReviewquestionsWS5.7Testpractice

Reading

Homework Study

5.99

Unit5Test ObjectOrientedProgramming

InClass Test4SectionITest4SectionII

Unit6:Inheritance&Polymorphism(4weeks)Unit6SlidesUnit6WordBankCurriculumAssets

CurriculumMap

48

TextExcel

LP Title InClass Reading Homework

6.00 TestReview&Reteach (Reviewtest) 9.1 Testcorrections

6.0101

InheritanceBasics(day1)

WS6.1StartclassposterExample6.1

"9.2upto""DividendStockBehavior"""

Collectimages

6.0102

InheritanceBasics(day2)

Finishclassposter,discuss

6.02

OverridingMethods&AccessingInheritedCode

WS6.2

Restof9.2startingfrom“TheObjectClass.”

6.03InteractingwiththeObjectSuperclass

Practice-ItSC9.3,9.4,9.9,9.10,E9.4;WS6.3Poster6.3

9.3upto“InterpretingInheritanceCode.”

6.04 PolymorphismWS6.4.1WS6.4.2SC9.11-9.17

Restof9.4“Is-aVersusHas-aRelationships.”

SC9.18,9.20

6.05 Has-aRelationships

WS6.5ValueMealexercise?

9.5

6.06 Interfaces[Interfaceexamples]Poster6.6

9.6

GenerateownclasshierarchylikeFinancialhierarchyinbook

6.0701

Programmingproject(day1)

PP9.1,notebookchecks

Outlinech9

6.0702

Programmingproject(day2)

PP9.1,outlinechecks

ReadandoutlineBarronsch4

6.0703

Programmingproject(day3) PP9.3 Barronsch4exam,

self-grade

6.0704

Programmingproject(day4) E9.8

ReadandoutlineBarronsch3

6.07 Programming Barronsch3exam,outline Reviewch9

Submitquestionsfor

CurriculumMap

49

checks

6.08 Finding&FixingErrors (FixHW) Reviewch9 Submitquestionsfor

review

6.09 Review

ReviewquestionsWS6.5Testpractice

Study

6.99 Unit6test

Test5GuideTest5SectionITest5SectionII

6.XX TextExcel

TextExcelStudentGuideATextExcelStudentGuideBTextExcelStudentGuideCTextExcelTeacherGuide

6.00

Lesson6.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit5.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 9.1

Homework Testcorrections

6.01.1

CurriculumMap

50

Lesson6.01 InheritanceBasics(Day1)

Objectives

StudentswillcorrectlydefineinheritanceStudentswillusepropersyntaxtoextendaclass.Studentswillillustrateis-arelationships.Studentswillproperlyimplementconstructorsofderivedclassesusingsuper.

Assessments StudentswillcompleteaClassHeirarchyPosterasindicatedinWS6.1.

InClassWS6.1StartclassposterExample6.1

Reading 9.2upto“DividendStockBehavior”

Homework Collectimages

6.01.2

Lesson6.01 InheritanceBasics(Day2)

Objectives

Assessments

InClass FinishclassposterDiscussion

Reading

Homework

6.02

Lesson6.02 OverridingMethods&AccessingInheritedCode

ObjectivesStudentswillreplacesuperclassbehaviorbywritingoverridingmethodsinthesubclass.Studentswillwritesubclassmethodsthataccesssuperclassmethods.

Assessments StudentswilladdcodetotheirClassPostersfromthepreviouslesson.

InClass WS6.2

Reading Restof9.2startingfrom“TheObjectClass”

Homework

6.03

CurriculumMap

51

Lesson6.03 InteractingwiththeObjectSuperclass

ObjectivesStudentswillreplacesuperclassbehaviorbywritingoverridingmethodsinthesubclass.Studentswillwritesubclassmethodsthataccesssuperclassmethods.

Assessments StudentswillcompletePractice-ItquestionsStudentswillcompleteaworksheet.

InClass

Practice-ItSC9.3–4,9–10E9.4WS6.3Poster6.3

Reading 9.3upto“InterpretingInheritanceCode”

Homework

6.04

Lesson6.04 Polymorphism

ObjectivesStudentswilldefinepolymorphism.Studentswilltracetheexecutionofmethodsthroughaclasshierarchyandpredictoutput.

Assessments StudentswillcompleteaTracingInheritanceguideandcompleteworksheet6.4.

InClassWS6.4.1WS6.4.2SC9.11–17

Reading Restof9.4“Is-aVersusHas-aRelationships”

Homework SC9.18,20

6.05

CurriculumMap

52

Lesson6.05 Has-aRelationships

ObjectivesStudentswillbeabletoidentifyandexplainwhytwoclasseshaveanis-aorahas-arelationship.Studentswillbeabletocreateahas-arelationshipbetweentwoclasses.

Assessments StudentswillcompleteanAPSectionIIquestion“Trio”

InClass WS6.5ValueMealexercise

Reading 9.5

Homework

6.06

Lesson6.06 Interfaces

Objectives Studentswillimplementanduseinterfaces.

Assessments Studentswillcompleteanin-classcompetition.

InClass InterfaceexamplesPoster6.6

Reading 9.6

Homework GenerateownclasshierarchylikeFinancialhierarchyinbook

6.07.1

Lesson6.07 Programmingproject(Day1)

Objectives Studentswillwritecomplexcodethatusespolymorphism,inheritance,andinterfaces.

Assessments Studentswillsubmitaprogramelectronically.

InClass PP9.1Notebookchecks

Reading

Homework Outlinech9

6.07.2

CurriculumMap

53

Lesson6.07 Programmingproject(Day2)

Objectives

Assessments

InClass PP9.1Outlinechecks

Reading ReadandoutlineBarronsch4

Homework

6.07.3

Lesson6.07 Programmingproject(Day3)

Objectives

Assessments

InClass PP9.3

Reading

Homework Barronsch4exam,self-grade

6.07.4

Lesson6.07 Programmingproject(Day4)

Objectives

Assessments

InClass EX9.8

Reading ReadandoutlineBarronsch3

Homework

6.07.5

CurriculumMap

54

Lesson6.07 Programmingproject(Day5)

Objectives

Assessments

InClass Barronsch3examOutlinechecks

Reading Reviewch9

Homework Submitquestionsforreview

6.08

Lesson6.08 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkassignments,andcorrecttheircode.

Assessments Studentswillre-submitallhomeworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch9

Homework Submitquestionsforreview

6.09

Lesson6.09 Review

Objectives StudentswillidentifyweaknessesintheirUnit6knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClassReviewquestionsWS6.5Testpractice

Reading

Homework Study

6.99

CurriculumMap

55

Unit6Test InheritanceandPolymorphism

Guide Test5Guide

InClass Test5SectionITest5SectionII

6.XX

Unit6Project TextExcel

InClass

TextExcelTextExcelStudentGuideATextExcelStudentGuideBTextExcelStudentGuideCTextExcelTeacherGuide

Unit7:Searching&Sorting(3weeks)Unit7SlidesUnit7WordBankCurriculumAssetsElevensLab

LP Title InClass Reading Homework

7.00TestReview&Reteach

Reviewtest 13.1upto“Sorting” Testcorrections

7.01 SearchingAlgorithms

(CSUnpluggedBattleship)WS7.1

13.1“Sorting” SC13.4-13.6,E13.1-13.3

7.02 SortingAlgorithms 13.1“Shuffling”

7.0301

ElevensLab(day1)

ElevensLabActivity1"13.3skip""RecursiveBinarySearch"""

SC13.16-13.21,13.23,13.24

7.0302

ElevensLab(day2)

ElevensLabActivity2(begin)

CurriculumMap

56

7.0303

ElevensLab(day3)

ElevensLabActivity2(end)

Summarizenotessincelastexam

7.0304

ElevensLab(day4)

ElevensLabActivity3(begin),notebookchecks

Outlinech13

7.0305

ElevensLab(day5)

ElevensLabActivity3(end),notebookchecks

ReadandoutlineBarronsch8

7.0306

ElevensLab(day6)

ElevensLabActivity4Barronsch8exam,self-grade

7.0307

ElevensLab(day7)

ElevensLabActivity5(begin),Barron'schecks

7.0308

ElevensLab(day8)

ElevensLabActivity5(end)

7.0309

ElevensLab(day9)

ElevensLabActivity6 (FixHW)

7.0310

ElevensLab(day10)

ElevensLabActivity7 (FixHW)

7.0311

ElevensLab(day11)

ElevensLabActivity8,re-gradefixedHW

7.0312

ElevensLab(day12)

ElevensLabActivity9(begin),re-gradefixedHW

7.0313

ElevensLab(day13)

ElevensLabActivity9(end),re-gradefixedHW

Submitquestionsforreview

7.0314

ElevensLab(day14)

ElevensLabActivity10,re-gradefixedHW

7.0315

ElevensLab(day15)

ElevensLabActivity11(begin)

7.0316

ElevensLab(day16)

ElevensLabActivity11(end)

7.04 Review Reviewquestions Study

CurriculumMap

57

7.99 Unit7testTest6GuideTest6SectionITest6SectionII

7.00

Lesson7.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit6.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 13.1upto“Sorting”

Homework Testcorrections

7.01

Lesson7.01 SearchingAlgorithms

Objectives Studentswillcompareandcontrastthedifferentsearchalgorithms.

Assessments Studentswillcompletesomeshortanswerquestions.

InClass CSUnpluggedBattleshipWS7.1

Reading 13.1“Sorting”

Homework SC13.4–6E13.1–3

7.02

Lesson7.02 SortingAlgorithms

Objectives Studentswillcompareandcontrastdifferentsortingmethodsandevaluatetheirrelativespeedandefficiency.

Assessments Studentswillcompletesomeshortanswerquestionsonworksheets.

InClass

Reading 13.1“Shuffling”

Homework

7.03.1

CurriculumMap

58

Lesson7.03 Elevenslab(Day1)

ObjectivesStudentswillcompletealong-formlab,demonstratingeffectiveuseofobjectorientedprogramdesign,programimplementationandanalysis,andstandarddatastructuresandalgorithms.

Assessments ElevensLab

InClass ElevensLabActivity1

Reading 13.3(skip“RecursiveBinarySearch”)

Homework SC13.16–21,23–24

7.03.2

Lesson7.03 Elevenslab(Day2)

Objectives

Assessments

InClass ElevensLabActivity2(begin)

Reading

Homework

7.03.3

Lesson7.03 Elevenslab(Day3)

Objectives

Assessments

InClass ElevensLabActivity2(end)

Reading

Homework Summarizenotessincelastexam

7.03.4

CurriculumMap

59

Lesson7.03 Elevenslab(Day4)

Objectives

Assessments

InClass ElevensLabActivity3(begin)Notebookchecks

Reading

Homework Outlinech13

7.03.5

Lesson7.03 Elevenslab(Day5)

Objectives

Assessments

InClass ElevensLabActivity3(end)Notebookchecks

Reading ReadandoutlineBarronsch8

Homework

7.03.6

Lesson7.03 Elevenslab(Day6)

Objectives

Assessments

InClass ElevensLabActivity4

Reading

Homework Barronsch8exam,self-grade

7.03.7

CurriculumMap

60

Lesson7.03 Elevenslab(Day7)

Objectives

Assessments

InClass ElevensLabActivity5(begin)Barron'schecks

Reading

Homework

7.03.8

Lesson7.03 Elevenslab(Day8)

Objectives

Assessments

InClass ElevensLabActivity5(end)

Reading

Homework

7.03.9

Lesson7.03 Elevenslab(Day9)

Objectives

Assessments

InClass ElevensLabActivity6

Reading

Homework Fixhomework

7.03.10

Lesson7.03 Elevenslab(Day10)

Objectives

Assessments

InClass ElevensLabActivity7

Reading

Homework Fixhomework

CurriculumMap

61

7.03.11

Lesson7.03 Elevenslab(Day11)

Objectives

Assessments

InClass ElevensLabActivity8Re-gradefixedhomework

Reading

Homework

7.03.12

Lesson7.03 Elevenslab(Day12)

Objectives

Assessments

InClass ElevensLabActivity9(begin)Re-gradefixedhomework

Reading

Homework

7.03.13

Lesson7.03 Elevenslab(Day13)

Objectives

Assessments

InClass ElevensLabActivity9(end)Re-gradefixedhomework

Reading

Homework Submitquestionsforreview

7.03.14

CurriculumMap

62

Lesson7.03 Elevenslab(Day14)

Objectives

Assessments

InClass ElevensLabActivity10Re-gradefixedhomework

Reading

Homework

7.03.15

Lesson7.03 Elevenslab(Day15)

Objectives

Assessments

InClass ElevensLabActivity11(begin)

Reading

Homework

7.03.16

Lesson7.03 Elevenslab(Day16)

Objectives

Assessments

InClass ElevensLabActivity11(end)

Reading

Homework

7.04

CurriculumMap

63

Lesson7.04 Review

Objectives StudentswillidentifyweaknessesintheirUnit7knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

InClass Reviewquestions

Reading

Homework Study

7.99

Unit7Test Searching&Sorting

Guide Test6Guide

InClass Test6SectionITest6SectionII

Unit8:Recursion(2weeks)Unit8SlidesUnit8WordBankCurriculumAssets

CurriculumMap

64

LP Title InClass Reading Homework

8.00 TestReview&Reteach Reviewtest 12.1upto“Structureof

recursivesolutions”Testcorrections

8.01 ThinkingRecursively

TowerofHanoigame

Restof12.1

8.02WritingRecursiveSolutions

GrudgeballSC12.1-12.4

12.2 SC12.5,12.7-12.9,E12.1

8.03 MechanicsofRecursion

WS8.3TeacherDemo8.3

13.4? SC12.6,12.10,E12.3

8.04 MergeSort ImplementmergeSort

SC13.27-13.30NotebookCheck

8.05 Finding&FixingErrors FixHW Reviewch12.1,12.2

Submitquestionsforreview

8.06 Review Study

8.07 Quiz [Quiz8] Barronsch7

[8.08] QuizReview&Reteach

Reviewquiz Barronsch7

8.00

Lesson8.00 TestReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit7.

Assessments Studentswillre-submittestanswerswithupdatedcorrectionsforpartialorfullcredit,dependingoninstructorpreference.

InClass Reviewtest

Reading 12.1upto“StructureofRecursiveSolutions”

Homework Testcorrections

8.01

CurriculumMap

65

Lesson8.01 ThinkingRecursively

Objectives Studentswillbeabletodefinerecursion.

Assessments Studentswilldescriberecursivemethodsandcompareiterativeandrecursivemethodsduringaclassdiscussion.

InClass TowerofHanoigame

Reading Restof12.1

Homework

8.02

Lesson8.02 WritingRecursiveSolutions

Objectives Studentswillbeabletoidentifyrecursivemethodsandpredicttheoutput(orreturnvalue)ofrecursivemethods.

Assessments StudentswillevaluatestatementsandpredictoutputduringagameofGrudgeball.

InClass GrudgeballSC12.1–4

Reading 12.2

Homework SC12.5,7–9E12.1

8.03

Lesson8.03 MechanicsofRecursion

Objectives Studentswillbeabletomodelhowrecursivemethodsexecute.

AssessmentsStudentswillwritearecursivemethod,thenmodeltheexecutionofthatmethodfortheinstructor.Studentswillalsomodelamethodwrittenbytheirpeers.

InClass WS8.3TeacherDemo8.3

Reading 13.4

Homework SC12.6,10E12.3

8.04

CurriculumMap

66

Lesson8.04 MergeSort

Objectives StudentswillusemergeSorttosortanArrayList.

Assessments Studentswillbeabletouserecursiontosortalist.

InClass ImplementmergeSort

Reading

Homework SC13.27–30NotebookCheck

8.05

Lesson8.05 Finding&FixingErrors

Objectives Studentswillfinderrorsintheirreturnedhomeworkandclasswork.

Assessments Studentswillre-submitallhomeworkandclassworkassignmentswithcorrectedanswers.

InClass Fixhomework

Reading Reviewch12.1–2

Homework Submitquestionsforreview

8.06

Lesson8.06 Review

Objectives StudentswillidentifyweaknessesintheirUnit8knowledge.

Assessments Studentswillcreateapersonalizedlistofreviewtopicstoguidetonight'sstudysession.

InClass ReviewQuestions

Reading

Homework Study

8.07

Lesson8.07 Review&Quiz

InClass [Quiz8]

8.08

CurriculumMap

67

Lesson8.07 QuizReview&Reteach

Objectives Studentswillre-learnorstrengthencontentknowledgeandskillsfromUnit8.

Assessments Re-submitquizanswerswithupdatedcorrectionsforpartialorfullcredit.

InClass Reviewquiz

Reading

Homework Barronsch7

Unit9:APTestReview(3weeks)CurriculumAssets

9.00

Lesson9.00 ReviewingfortheAPExam

Objectives StudentswillreviewandpreparefortheAPComputerScienceAexam.

Assessments BellevueMasteryTestsAPCS2012SectionII

InClass

Reading

Homework

Unit10:Post-APExamProjects(4–5weeks)

CurriculumMap

68

WecurrentlyhavetwodifferentcurriculumoptionsforaftertheAPexam,eachofwhichisaself-containedwebsitewithlessons,labsandothersupportingresources:

SpaceBattleArenaTEALSMinecraftModding

CurriculumMap

69

TEALSAPCSACurriculumAssetsTheTEALSAPCSACurriculumassetsmaybedownloadedfromtheAdditionalCurriculumMaterialssectionoftheTEALSDashboard

[Note:youneedtobeacurrentTEALSvolunteerorclassroomteachertoacesstheTEALSDashboard]

ThelatestversionisTEALS-APCSA-Curriculum-v2.0.2.zip.

Contents/Projects/

/Projects/APCSA-Elevens-v1.X.X.zipTheUnit7ElevensLab.Extractingthisarchive,you'llfindtheTeacherGuide,andthestudent-distributablepackage.GetstartedbyreadingTeacherMaterials/Elevens-Teacher-Guide.pdf.

/Projects/APCSA-FracCalc-v1.X.X.zipTheUnit3FractionalCalculatorProject.Insidethisarchiveyou'llfinddocumentationandstudentstartersourcecode.

/Projects/APCSA-Magpie-v1.X.X.zipTheUnit4MagpieChatbotLab.Insidethisarchiveyou'llfindtheteacherguide,teachersolutionsourcecode,andthedistributablestartercodearchiveforstudents.GetstartedbyreadingMagpie-Teacher-Guide.pdf.

/Projects/APCSA-PictureLab-v1.X.X.zipTheUnit5PictureLab.Thisarchivecontainstheteacherguide,teachersolutioncode,anddistributablestarterpackageforstudents.GetstartedbyreadingTeacherMaterials/pixLab-Teacher-Guide.pdf.

/Projects/APCSA-TextExcel-v1.X.X.zipTheUnit6TextExcelProject.Thisarchivecontainstheteacherguide,teachersolutioncode,anddistributablestarterprojectforstudents.Getstartedbyreadingguides/TextExcelTeacherGuide.docx.

/Unit*/AssetsforeachoftheAPCSAcurriculumunits.Ingeneral,eachWordfilewillhaveacorrespondingPDFequivalent.Worksheetsaregenerallyoftheform"WS#.#.docx"and"WS#.#.pdf".

/Unit1/—AssetsforUnit1:Programming&Java./Unit2/—AssetsforUnit2:WorkingwithData&BasicControlFlow./Unit3/—AssetsforUnit3:AdvancedData&ControlFlow./Unit4/—AssetsforUnit4:Arrays,Lists&Files.

CurriculumAssets

70

/Unit5/—AssetsforUnit5:Object-OrientedProgramming./Unit6/—AssetsforUnit6:Inheritance&Polymorphism./Unit7/—AssetsforUnit7:Searching&Sorting./Unit8/—AssetsforUnit8:Recursion./Unit9/—AssetsforUnit9:APTestReview.

CurriculumAssets

71

Lesson1.01—UsingEclipse&Practice-ItN.B.THISLESSONISOPTIONAL

Overview

Objectives—Studentswillbeableto…

Describeoneormorecareersrelatedtocomputerscienceandtechnology.Askintelligentquestionsaboutthefieldofcomputerscience.Identify'nextsteps'tolearnmoreaboutcomputerscienceListtheclassexpectationsandwhatisrequiredofthem.

Assessments—Studentswill…

DemonstratePlug-InandUn-PlugproceduresLoginandsubmitasampleprobleminPractice-It

Homework—Studentswill…

Visithttp://www.pokemon.comandplayafewgamesorplayPokémononagamingsystemVisithttp://bulbapedia.bulbagarden.nettofamiliarizeyourselfwiththePokémonfranchise

Materials&PrepProjectorandcomputerStudentComputerswithEclipseinstalledClassroomcopiesofWS1.1.1andWS1.1.2USBDrivesforeachstudent(ifapplicabletoschool)Handout/SlideDeckdemonstratingfilesubmissionprocedure

IfyourschooldoesnothaveadesignatedITspecialistavailabletoinstallEclipseontheclassroomcomputers,WS1.1.1offersstep-by-stepinstallationdirections,withscreenshots.Ifyourstudentshavecomputersathome,orifyourschoolloansthemlaptopsforhomework

Lesson1.01:UsingEclipse&PracticeIt

72

andlabs,youcanprintoutcopiesofWS1.1.1foryourstudentssotheycaninstallEclipseontheirhomecomputers.

IfyourschooldistributesUSBdrives,modelbestpracticesbywearingyourUSBdriveonyourIDlanyardorkeychain.Studentswillloseand/orforgettheirdrivesunlesstheyareattachedtoanotherobjecttheyusedaily!

Sinceallinstructorshavedifferentpreferencesandrequirementsforfileuploads/sharing,wehavenotincludedaprocedureforfilesubmission.Youshouldprepareahandoutorslidedeckdemonstratingyourprocedureforsubmittingwork,andhavestudentssendyouasamplefiletoassessunderstandingofyourprocedure.10minutesofthislessonhavebeenreservedforyoutoteachtheseprocedures.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

ClassroomIntroductionIcebreakers&Background 20min

Plug-In&Un-PlugProcedureDemonstrationandpractice 10min

Practice-ItAccountsetupandloginpractice 10min

FileSubmissionProcedureDemonstrationandpractice 10min

Procedure

Bell-workandAttendance[5minutes]

ClassroomIntroduction[20minutes]

1. Usingtheslidedeckasabase(editthedecktofityourneeds):

Pollyourclasstolearntheirnames,experience,andrationalebehindtakingthecourse.Gooverbackgroundinformationofthecomputersciencefield.Gooverclassexpectationsandinformation.Touchonschoolrequirements(varies)e.g.syllabus.

Lesson1.01:UsingEclipse&PracticeIt

73

2. Classicebreakers(variesschooltoschool).

Plug-In&Un-PlugProcedure[10minutes]

1. UsingWS1.1.2,modelthestepsfor:

OpeningEclipseandaworkspaceCreatingandsavingaprogramEjectingtheUSB(ifapplicable)

2. HavestudentsdemonstratethePlugInandUn-PlugproceduresforyoubeforeyoumoveontothePractice-Itexercise.

Ifyourclassroomhasaprojectorhookeduptotheteacher’scomputer,projecteachstepasyoumodelitforthestudents.

Waituntilallstudentshavecompletedastepbeforemovingontoanotherstep.

Expectthisexercisetotake10minutesorlonger.

Practice-It[10minutes]

1. UsingWS1.1.2,modelthestepsforcreatingaPractice-Itaccount.Sinceyouwillprobablyalreadyhaveanaccount,selectastudentaccounttouseasamodel.

2. HaveallstudentssubmitaPractice-ItproblemtodemonstratethattheyknowhowtousePractice-It.

Waituntilallstudentshavecompletedastepbeforemovingontoanotherstep.

Ifyouhaveextratimeinclass,introducea“ScavengerHunt”onPractice-It,andhavestudentsfind:

WheretheiraccountinformationislocatedWherearecordoftheircompletedproblemsarelocatedWherethe3rdSelf-CheckproblemforChapter7islocated

FileSubmissionProcedure[10minutes]

1. Demonstrateyourprocedureforfilesubmission.Useahandoutorslidedecktoillustratethisprocedure.

2. Havestudentssendasamplefiletoassessunderstandingoftheprocedure.

AccommodationandDifferentiation

Lesson1.01:UsingEclipse&PracticeIt

74

Allowstudentstoworkinpairsiftheyarehavingtroubleunderstandingthedirections.Encouragepairstomodelthecorrectprocedureforeachother.Studenthelpersshouldpointtoareasonthescreenratherthantypingorusingthemousetocompletetheaction.

TeacherPriorCSKnowledgeIDEs(IntegratedDevelopmentEnvironments)arewidelyusedinindustrytodevelopsoftware.PriortoIDEs,softwareengineersusedsimpletexteditorstowriteprograms.WhileteachersarewelcometochoosefromawidevarietyofIDEs(seehttps://jaxenter.com/the-top-java-ides-114599.htmlforacomparison)orevenusetexteditors,TEALSsupportsEclipseintheAPCSAcurriculum.WhicheverIDE/editoryouchoose,it’sagoodideatorunthroughafewIDEtutorialstofamiliarizeyourselfwiththeworkflowbeforedemonstratingtotheclass.

TeachingTipsTipsforVolunteers:http://csteachingtips.org/Tips-for-classroom-volunteers

TipsforReducingBias:http://csteachingtips.org/tips-for-reducing-bias

ClassIntroduction:Studentswillendupinyourcomputerscienceclassforavarietyofreasons,hereafewthatarecommon:

MymathteacherrecommendedItakecomputerscienceMyfriendisintheclassIlikecomputersItfitinmyscheduleItshowedupinmyscheduleIt’sanAPclassandwouldlookgoodonmytranscriptIbuildappsinmysparetime

Byknowingthestudent’smotivation,youcanbetterunderstandwherethestudentiscomingfrom.Iusethisinformationtoinformthepaceanddepthoftheinitiallessons.Ialsotrytodeterminethelevelofprogrammingexperienceofeachstudent.Thishelpswithgroupformationinthebeginninglessonswhereyoutrytopairexperiencedstudentswithlessexperiencedstudentstothestudentscanlearnfromtheirpeers.

Misconceptions

Lesson1.01:UsingEclipse&PracticeIt

75

WhenintroducingtheJavaprogramminglanguage,manystudentswillthinkJavaissynonymouswithJavaScript.Althoughbothareprograminglanguagesandmanyoftheconstructsaretransferablebetweenthetwolanguages,JavaandJavaScriptaretwodifferentlanguages.JavaScriptisusedtodayforbothclientsidewebbrowserscriptingtowebservers.JavaisusedtocreateplatformindependentappsmeaningaprogramwritteninJavawillrunacrossavarietyofoperatingsystems.

ForumdiscussionLesson1.01UsingEclipse&Practice-it(TEALSDiscourseaccountrequired)

Lesson1.01:UsingEclipse&PracticeIt

76

Lesson1.02—Algorithms&ComputationalThinking

Overview

Objectives—Studentswillbeableto…

Definealgorithms,programs,hardware,software,andoperatingsystems.Describetherelationshipsbetweentheseconceptsandcomponents.

Assessments—Studentswill…

WritesamplealgorithmsAssembleanddebugaprogramthatdirectstheinstructortomakeasandwich

Homework—Studentswill…

ReadBJP1.2

Materials&PrepProjectorandcomputerORwhiteboardandmarkerFooditemsforpeanutbutterandjellysandwichUtensilsforsandwichassembly(spoonforjelly,knifeforspreading)Wetwipesorwatertocleanhands

PacingGuide

Lesson1.02:Algorithms&ComputationalThinking

77

Section TotalTime

Bell-workandattendance 5min

Introductiontovocabulary 10min

Explainingactivity,assigningpairs 2min

ActivityRoundOne 10min

ActivityRoundTwo 10–15min

Full-classdiscussionofdebuggingmethods 5min

HWdistribution&exittickets 2min

Procedure

Bell-workandAttendance[5minutes]

IntroductiontoVocabulary[10minutes]

Inthislesson,youwillbeusingyourselfasthemetaphortointroducefundamentalvocabularyinCS.Asahook,youshouldleaveallofthefoodprepmaterialsconspicuouslylaidoutinthefrontoftheclassroom,withoutanyexplanation.

1. Youshouldbeginyourlessonwithaninformal,whole-groupconversationabouthumansbeingthefirst“computers.”Thisisagreatopportunitytousehistory,women’saccomplishmentsinCS,andhumortoofferupanddrillvocabularywithoutonerousrepetition.Somesuggestionsforyouropeningdiscussion:

Computerwasoriginallyajobdescription,andwasfirstusedin1613todescribesomeonewhoperformsmathematicalcalculations.

Earlycomputersweremostlywomen:

Lesson1.02:Algorithms&ComputationalThinking

78

http://www.officemuseum.com/IMagesWWW/Early_1920s_Veterans_Bureau_Calculating_WWI_Vet_Bonuses_LOC.JPG).

Humancomputershavemanysimilaritiestomechanicalcomputers.Seehowmanyoftheseyourstudentscanpredictwithminimalprompting:

Brain=CPUandprocessingInput=information(data)fromsensingtheenvironmentSensors=eyes,ears,nose,mouth,fingers/skinOutput=behavior,action

Youcanmodelerrorsandexceptionsbydramaticallynarratingandactingoutaconfusingsetofdirectionsandtheresultantmistake.Dependingonyourpersonalstyle,thiscanbeapratfall,embarrassingsocialblunder(realorimagined),orsimplespellingmistake(input:soundingoutawordwithsilentletters,error/output:themisspelledword)

2. Introducethedefinitionofanalgorithm,andinvitethestudentstowriteanalgorithmforyou,thecomputer,tomakeapeanutbutterandjellysandwich.

Analgorithmmaybedefinedas“aprocessorsetofrulestobefollowedincalculationsorotherproblem-solvingoperations”

ExplainingActivityandAssigningPairs(2minutes)

Lesson1.02:Algorithms&ComputationalThinking

79

Givestudentpairs5minutestowriteapeanut-butter-and-jellyalgorithm.Specifythattheyshouldwriteacompletesetofdirectionstodescribetheprocessofmakingthesandwich.

ActivityRound1(10minutes)

1. Askforastudentvolunteertocometothefrontoftheclassroomto“beJava.”

2. Randomlychooseastudent’salgorithmforyourfirsttry,andnarrateas“Java”picksupthe“program”toreadtoyou(thecomputer).PointoutthatwhenJavareadscode,itscompilertranslatesthecodeyoutypeinsothecomputercanreaditinbinary.Bonuspointsifyoucangetthevolunteertoreaddirectionsinaroboticvoice.

3. Askyourstudentvolunteerreadsthedirectionsaloud,followinginstructionsliterally.Repeattheinstructionoutloudasyoumodeltheaction.Usuallystudentsforgettotellyoutoopenthebagofbread,etc.Hamuptheerrors,andstop“executingtheprogram”whenitbecomesclearthatthealgorithmwon’tresultinafunctionalPB&J.Pointoutthatthisisanerrororexception—yourprogramdoesthesamethingwhenitgetsinstructionsthatdon’tmakesense.

4. Repeatthiswith1or2otheralgorithms,thengraciouslyagreetolettheclasstryagain.Makesuretousethephrase“debugging”andhavethestudentsuseitaswell.

ActivityRound2(10–15minutes)

1. Givestudentsanother5minutestocorrecttheiralgorithms.Ifstudentsareon-taskandreallygettingpassionateaboutthejob,givethemafewextraminutes.

2. Have“Java”selectanother“program”fromyourstudents.Asyouexecutetheprogramagain,asktheclasswhatrepresentshardware,software,input,output,processing,andtheprogram.

Full-classDiscussionofDebuggingMethods(5minutes)

1. Askstudentstosharethedifferentwaystheydebuggedtheircode/program/algorithm.(Changingprogramcontent,switchingalgorithmorder,etc.)

2. GivestudentswithsuccessfulalgorithmsthevariousPB&Js(failedandotherwise).

HomeworkDistributionandExitTickets(2minutes)

Distributehomeworkandhavestudentscompleteexittickets.

Lesson1.02:Algorithms&ComputationalThinking

80

AccommodationandDifferentiationBeforedeliveringthislesson,youshouldcheckwiththeclassroomteachertomakesurenoneofthestudentshaveapeanutallergy.Ifastudentdoeshaveanallergy,findouthowseveretheallergyis(youcanopttomakethisstudentajellysandwich,butiftheallergyissevere,youshouldswitchthedemotoanotherfooditem).

Incertainclassrooms,peanutbutterandjellymightnotbeafamiliarfooditem.Inthesecases,itisbesttodosomeresearchfirsttofigureoutwhatsnackwillbefamiliarenoughtoallyourstudentsthattheycanrecommendanalgorithmforpreparingit.Someitems(suchasNavajofrybread)mightrequireadditionalplanning.Formaximumengagement,trytoselectasnackthat:

Requires3ormoreingredientsRequiresassemblyorpreparation(suchaspeeling,dicing,etc.)UsesingredientsthatarejarredorwrappedAregenerallyconsideredpalatabletomoststudents

InELLclassrooms,youshouldpairstudentstoeasethewriting/compositionburdenofthisactivity.Foradvancedstudents,invitethemtowritealgorithmsforotheractivities,suchasgettingtoschoolontime.

TeacherPriorCSKnowledgeAlgorithmsareoneofthefundamentalconceptsincomputerscience.Algorithmsarefundamentaltosolvingproblemsincomputerscience.

Thelessonplanusesanalogyofthestudentasthecompiler.WhenwritingaJavaprogramthefollowingisthesequenceoffilesandtranslationsthatarecarriedout:

1. ProgrammerusesaneditortocreateJavaprogramandsavesin.javafile

2. Javacompiler(javacprogram)takes.javafileandcompliescodetobytecodeandsavesin.classfile.

3. Javavirtualmachine(javaprogram)runs.classfilebyinterpretingthebytecodeforaspecificmachinebasedontheoperatingsystemandhardware.

Thelessonplanassumestheteacherhaspriorknowledgeofthecomponentsofaphysicalcomputerandcanrelatethemtoaperson.Ifyouarenotfamiliarwiththecomponentsofacomputersystem:

CPUcentralprocessingunit–brainsofthecomputer

Lesson1.02:Algorithms&ComputationalThinking

81

Diskdrive/SSD–longtermstorageRAMrandomaccessmemory–shorttermstorageKeyboard,mouse,touchscreen–inputdevicesDisplay,sound,vibration–outputdevices

TeachingTipsTipsforLecturing:http://csteachingtips.org/tips-for-lecturing

TipsforIntroducingComputerScience:http://csteachingtips.org/Tips-for-introducing-computing

Thelessonplanhastheteacherbethe“computer”thatfollowstheinstructionsreadaloudbythestudent.Youmaybeinclinedtohaveastudentbethecomputer.However,studentsareunpredictableandyoumayormaynotgettheoutcomesyoudesire.Eventhoughthisactivityismeanttobeplayful,studentsillinesscangetoutofhandwhenbuildingtheirP&Jsandwich.Ifyoudochoosetohavestudentsbethecomputer,setupnormslikenothrowingfoodandtheymustcleanupafterthemselves.

Otheralgorithmsyoucanhavestudentswriteincludetyingshoelaces,brushingteeth,openingalocker.

MisconceptionsSometimesstudentsthinkalgorithmsandcomputerprogramsaresynonymous.Whiletheyarerelated,theyarenotsynonymous.Humanshavebeenusingalgorithmstosolveproblemswaybeforecomputereverexisted.Theinventionofthecomputercreatedaplatformforalgorithmscreatedthatcouldbecarriedoutbyamachine.Soacomputerprogramisatoolusedbypeopletoexpressesalgorithmsthatcanbeexecutedbyacomputer.

ForumdiscussionLesson1.02AlgorithmsComputationalThinking(TEALSDiscourseaccountrequired)

Lesson1.02:Algorithms&ComputationalThinking

82

Lesson1.03—String&ConsoleOutput

Overview

Objectives—Studentswillbeableto…

DescribethehistoryofcomputerscienceandJavaandwhythey'reusedtoday.Correctlyassembleacompleteprogramwithaclassheader,body,andmainmethod.Correctlyuseprint,println,andescapesequences.

Assessments—Studentswill…

CreatestarterPokémonprogramCompleteseveralPractice-Itquestions

Homework—Studentswill…

ReadBJP1.3CompleteCh.1exercises1-5

Materials&PrepProjectorandcomputerWhiteboardandmarkerASCIIPokémonart

Pokéball:http://tinyurl.com/pba5x8rPikachu:http://tinyurl.com/oa3g2al

Practice-Itbookmarks(installedonstudentcomputers,ifpossible)

Ifyoudonothaveaprojectorinyourclassroom,printoutpicturesoftheASCIIart,andplacethemaroundtheroom(orondesks)forstudentstopassaround.Makesureyouprintpicturesoutlargeenoughsothatstudentscanseethecharactersthatmakeuptheartwork.

PacingGuide

Lesson1.03:String&ConsoleOutput

83

Section TotalTime

Bell-workandattendance 5min

Introductiontovocabularyandsyntax 10min

Signingup/intoPractice-It 10min

Practice-Itquestions 15min

Pokémonchallenge 10min

Studentstradeworkanddebug 5min

ProcedureInthislesson,youwillintroducethepartsofaprogram,thenhavestudentscreatetheirfirst“HelloWorld”styleprogram.Yourhookforthisclassis2-fold:(1)youshouldpumpupthestudentstowritetheirveryfirstprogramever!(2)HavesamplesofASCIIartavailableforthemtoview,andletthemknowthattheywillbecreatingtheirownpicturestodayaswell.

Bell-workandAttendance[5minutes]

IntroductiontoVocabularyandSyntax[10minutes]

1. BeginyourlecturewithaquickoverviewofJavaandwhywe’reusingit.

BriefhistoryofJavaKeycharacteristicsofJava

2. Lectureonthefollowingtalkingpoints.Studentsshouldbeabletoleadyouthroughthesepoints,asyouarereviewingthematerialsfromthereadingtheycompletedforhomework:

Javaprogramsalwaysbeginwithaclassheader,whichfollowstheserules:Startswith“publicclass”(publicbecauseanyonecanaccessit)Usesacapitalizedname,andalwaysstartswithaletterEndswithanopencurlybracket(thinkofthecurlybracketsasaboxthatholdsbitsofcodetogether;showstudentswheretheclosecurlybracketgoes)

3. Havestudentsvolunteerseverallegitclassheaders,deliberatelymakemistakesforstudentstocatch(suchasleavingoutabracket,capitalizingincorrectly,orstartingclassnamewithanumber).

Ifyourstudentsarehavingtroublegeneratingclassheaders,guidethemthroughthefollowingexamples:

Lesson1.03:String&ConsoleOutput

84

publicclassMyFile{→correct!PublicclassMyFile{→incorrect,publicshouldbelowercasepublicClassMyFile{→incorrect,classshouldbelowercasepublicclassMyfile{→correct,butnotaseasytoreadfilenamepublicclassWhateverIWant{→correct!publicclassThisWorks2{→numbersareOK!

4. Explainthatthe“meat”oftheprogramcomesfromthemethods(thepartsoftheprogramthattellJavatoexecuteaparticularactionorcomputation)

Youalwaysneedamainmethod,whichstartswithamethodheader:

publicstaticvoidmain(String[]args){

Explicitlypointoutthat:

Thisisanonsenselistofwordsfornow,butthatwe’llreturntowhateachpartmeanslateronCurlybrackets“holdthecodetogether”,andsotherewillalwaysneedtobeaclosedcurlybracketattheendofthemainmethod,justlikethere’saclosingcurlybracketfortheclass

5. Askstudentstovolunteerashortphrasethattheywouldlikefortheirveryfirstprogramtosay(asin"Hello,World!")andusethisphraseinyourfirstprintlnstatement.

Pointoutthatthestatement:

AlwaysendsinasemicolonRepresents1completeorder/commandTellsJavatoprintthewordswithinthequotationmarks,thengotothenextline(ln)

Havestudentscheckthecodeyou’vewrittendownontheboard.Withtheclass,modelhowtocheckcodebyscanningeachline,characterbycharacter,havingstudentsoffertherulesforclassandmethodheaders/body,andstatements.

Erasethe“ln”fromyourprintstatement,andaskstudentstoguesswhatJavawilldowiththatcode(itwon’treturnafteroutputtingthestring).

Finally,bringstudents’attentiontoescapesequences,andaddsomequotationmarkstoyoursamplecodeasanexample.

SigningUp/IntoPractice-It[10minutes]

Lesson1.03:String&ConsoleOutput

85

WalkyourstudentsthroughPractice-Itaccountsign-up.Studentswillneedaccesstotheiremailaccountstocompletesetup.(Ifyourclassroomdoesnothavecomputers,transferPractice-Itquestionstoaworksheet,andhavestudentscompletethepracticeproblemsbywritingouttheanswers.)

Practice-ItQuestions(15minutes)

HavestudentscompletethefollowingPractice-Itquestions:

1. legalIdentifiers2. outputSyntax3. confounding4. Archie5. downwardSpiral6. DoubleSlash7. Sally8. TestOfKnowledge

PokémonChallenge(10minutes)

Ontheboardorprojector,postthefollowingchallenge:

WriteaprogramcalledWelcomethatoutputsthefollowing:

PikachuwelcomesyoutotheworldofPokémon!

(\__/)

(o^.^)

z(_(")(")

StudentsTradeWorkandDebug(5minutes)

Havestudentstradetheirworkanddebugeachother’sprograms.

IfEclipseisavailable,havestudentsmailyoutheircompletedprogramusingthefilesubmissionprocedureofyourchoice.Otherwise,havestudentssubmitahandwrittenformAFTERtheyhavetradedtheirpaperwithafriendtocheckanddebug.

AccommodationandDifferentiationIfstudentsarestrugglingwiththePokemonchallenge:

Lesson1.03:String&ConsoleOutput

86

TrypairingupstudentssotheycancheckeachotherastheyworkWritethefirstlineofPikachucodetogetherasaclass,modelingtheuseofescapesequences

Ifyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

AddadditionalpicturesortexttotheirWelcomeprogram,Helpastudentthatisstrugglingwiththematerial,Createaposterfortheclassroomwithsteps(analgorithm!)forcheckingcodeforerrors(manytipscanbefoundin§1.3).

AboutPokemonThroughouttheAPCScurriculum,wewillgraduallybebuildingalargerprogramaroundPokemon,whichis:familiartomaleandfemalestudentsfromallsocioeconomicbackgrounds,availableacrossthedigitaldivideasbothacardgameandavideogame,andhasbeentranslatedinto10differentlanguages(English,Spanish,Portuguese,Dutch,French,German,Italian,Korean,Chinese,andJapanese).

Becausethegamereliesonstatistics,modulooperators,andtheunderlying32-bitintegerthatcharacterizesanygivenPokemon,wewillbeusingthisthemetointroducestudentstomuchoftheAPCScurriculum.StudentswillbeenteringtheAPCScoursewithvaryingdegreesofmathliteracy,andframingmathematicalchallengesinthisfamiliarframeworkishelpfulforavoidingstereotypethreatandmathanxiety.

TolearnmoreaboutthePokemonstoryline,gamerules,underlyingformulae,andcharacters,visithttp://bulbapedia.bulbagarden.net.

TeacherPriorCSKnowledgeThe“Helloworld!”programistheclassicfirstprogramtaughtformanybeginnerprogrammingclasses.Itdemonstratesthesimplestwaytogetoutputfromtheprogramtotheuser.TheJava“Helloworld!”programischockfullofsyntaxheavyconstructsthatwouldnotbeparticularlyusefulandundulycomplicatedtoafirst-timelearnertoJava.However,knowingtheseconstructsareinformativetotheteacher:http://www.learnjavaonline.org/en/Hello%2C_World%21.

TeachingTipsTipsForPairProgramming:http://csteachingtips.org/tips-for-pair-programming

Lesson1.03:String&ConsoleOutput

87

TipsForLabRules:http://csteachingtips.org/tips-for-lab-rulesExplaining“publicstaticvoidmain(String[]args)”wouldbeoverwhelmingformostbeginningJavastudents.It’simportanttoletthestudentsknowthatbytheendofthecoursetheywillknowwhatthelinemeansbutfornowalltheyneedtoknowistostartaJavaprogram,itneedsthisonelineofcode.

MisconceptionsStudentslearnbymakingconnectionstopriorknowledgetheyalreadyknow.Unfortunately,thismaybackfireasinthecaseofthekeywordclass.Whencomputerscientistsusethewordclass,itisautomaticallyassumedthatoneisreferringtoclassinthecontextofobjectorientedprogramming.However,foratypicalhighschoolstudent,classmeanssomethingtotallydifferent:whatclassamIinnow,whathomeworkdoIhaveformathclass,orwhoistheteacheroftheclass.Evenifthestudenthaspriorprogrammingknowledge,theymaynotbefamiliarwiththenotionofaclasswithrespecttoOOP.

VideoCSE142,HelloWorld(29:24–36:09)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=dd78a77d-cd7a-4ff8-b853-5446801946fb&start=1765

ForumdiscussionLesson1.03StringConsoleOutput

Lesson1.03:String&ConsoleOutput

88

Lesson1.04—CommonErrors&Comments

Overview

Objectives—Studentswillbeableto…

Createsimpleprogramswithcommentsandstyle.Listandapplythestepsnecessaryforavoidingsyntaxerrors.

Assessments—Studentswill…

CompleteaworksheetDevelopapersonalchecklistforspottingsyntaxerrors

Homework—Studentswill…

ReadBJP1.4CompleteCh.1Exercises6,7,9

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhitepaperandmarkersClassroomcopiesofWS1.4Samplepunchedcardtopassaround(availableoneBay:http://tinyurl.com/nnthazu)Pictures:

Punchcards(http://tinyurl.com/n9zqd3k)Readers(http://tinyurl.com/p34mvmb)Jaquardloom(http://tinyurl.com/n8tmra3)Bug(http://tinyurl.com/ljyguuy)

Ifyouareabletolaminatestudentwork,orhaveplasticsleevesavailableforstudentsthathavebinders,itwouldbeagoodideatoreinforce/preservestudenterror-correctionalgorithms(seetoday’sActivity).Studentsshouldbereferringtothesesheetsofteninthefirstfewmonthsofthecourse,sotheywillgetalotofwear&tear.

Lesson1.04:CommonErrors&Comments

89

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Vocabularyandhistoryofbugs 10min

Error-checkingalgorithm 10min

Worksheet 15min

Studentstradework,check,andturnin 5min

ProcedureToday’slessonwillbeacombinationofdrillingthepartsofabasicprogram,andconditioningstudentstocheckforcommonerrors.Tohookyourclass,havepicturesofpunchcardsandpunchcardreadersupwhenstudentsenter.Ifpossible,havephysicalpunchcardsavailabletopassaroundtheroomfortactilelearnersasyouexplaintheoriginsofthephrase“bug”and“debugging.”

Bell-workandAttendance[5minutes]

VocabularyandHistoryofBugs[10minutes]

Beginwithalectureaboutthehistoryofcomputingwithpunchcardsandtheoriginsof“bugs.”

Beforecomputershadkeyboardsortouchscreens,alldatawasinputusingphysicalpunchcards(passaroundcards).Insomesystems,punchcardswereusedallthewayupthroughthe1980s!

Theholesinthecardsrepresenta“0”andthelocationswithoutaholestorea“1.”

Punchcardswereoriginallydesignedforuseinamechanicalloominventedin1801(showpicturesofloom&tapestrydesign).

Whensomethingwasn’tworkinginthephysicalpunchcardsthatcodedtheprogram,userswouldlookforactualbugsinthesystem(showbugpicture).

Nowadays,sinceallofourcodeisdigitallystoredas0sand1s,a“bug”meanswewrotethecodeincorrectly.Todaywe’regoingtocreatechecklistsofthingstolookforinourcodetomakesureitsworkingcorrectly—or“debugging”ourcode.

Lesson1.04:CommonErrors&Comments

90

Syntaxerrors—whenyoudon’tfollowtheorderingrulesofwritingJavacode,whenyoumisspellsomething,orleaveoutpunctuation.

Analogy:inEnglish,wesay“theblackbear.”InSpanish,you’dsay“elosonegro,”andinItalian“l’orsonero,”bothtranslateto“thebearblack.”Therearedifferentrulesforhowyouorderyourwordsindifferentlanguages,andJavahasitsownsetoflanguagerulestoo.Ifyouwritetheequivalentof“thebearblack”inJava,Javawon’tunderstandit,andyou’llgetanerrormessage.(Havestudentsgiveyouanexample.)

Youcanalsocreateconfusionbywriting/saying“thebalckbear”(amisspelling),or“the!black,bear?”(incorrectpunctuation)

Logicerrors—sometimesyoumightwritecodethathastherightsyntax,butdoesn’tdowhatyoumeantforittodo.Inthiscase,theprogramwillrun,butyouwon’tgettherightoutput.Anexampleofthiswouldbeifyouwroteaprintstatementinsteadofaprintln.

Runtimeerrors—theseerrorscanhappenifyougiveJavaacodethathasnosolution,oraccidentallycausesthecomputertocalculateaninfiniteloop.

Insciencefiction,thisisusuallythewaytoshutdowntheevilcomputerthathascomealivetotakeoverhumanity.ExamplescouldbeaskingJavatocalculatepitothelastdigit,ordividingbyzero.Ifyouwanttoshareexampleswithyourclass,navigatetothiscuedStarTrekvideoclip:(https://www.youtube.com/watch?v=5VZRdAUbgCk&feature=youtu.be&t=1m9s),orinvitestudentstoscanthroughthislist:(http://tvtropes.org/pmwiki/pmwiki.php/Main/LogicBomb).

Error-CheckingAlgorithm[10minutes]

1. Havestudentsdistributepaperandmarkerswhileyouexplainthatstudentsaregoingtocreateapersonalalgorithm(orspecificlistofsteps)thattheywillfolloweachtimetheywritecode.Asamplealgorithmmightlooksomethinglikethis:

STEP1:Checkallcodeforspellingerrors.STEP2:Checkallcodeforpunctuationerrors(curlybrackets,brackets,parentheses,semicolons).STEP3:Checkallcodeforsyntaxerrors.…

2. Encouragestudentstowritethealgorithmasachecklist,decisiontree,ormindmap.Explicitlycontrasttheflexibilityofthehumanbrainwhencomparedtocomputers.

Lesson1.04:CommonErrors&Comments

91

Encouragecreativityhere—somestudentsmaycolorcodetheirlist,ortaketheassignmenthometoworkonlettering,illustrationetc.Whatmayfeellikewastedtimeisactuallyaspatialandtactileactivitythathelpsstudentsreinforceandmemorizethestepsneededtocheckcode.Themoreownershipstudentstakeofthislist,themorelikelytheyaretouseitoverthenextfewmonths,whichwillmakeerror-checkinghabitual.

3. Ifyoudonothaveclassroomcopiesofthetextbook,listthefollowingerrorsontheboardasrequiredstepsforstudentstohaveontheircode-checking“algorithm.”Ifyoufeelthatyouhaveenoughtime,havestudentsputtheseontheboard.

FilenamematchesclassnameAllcodeisspelledcorrectlyAllcodeiscapitalizedcorrectlyAllstatementsendinasemicolonKeywordsareincludedStringsareenclosedin“quotationmarks”TherearenoextrapunctuationmarksAllheaderopen-bracesarepairedwithclosed-braces

Worksheet[20minutes]

1. For5minutesgooverdocumentationandpropercommenting.Alsogooveridentifiers,camelCase,anddoashortintroductiontostyle.Stylewillbecoveredin1.08,butit’simportantthattheyareintroducedtoithere.

2. Studentshave15minutestocompleteWS1.4.Astheysolveeachproblem,studentsshouldapplytheirpersonalproofreadingalgorithmtohelpchecktheirsolutionforcorrectness.

Studentstradework,check,andturnin[5minutes]

Attheendofclass,havestudentstradetheirworksheetstocheckeachother’sanswersbeforeturningintheworksheet.

AccommodationandDifferentiationWhileallstudentsshouldwritetheirOWNalgorithm,youshouldencouragestudentstoworkinpairsorsmallgroupssotheycanshareideasandhelpeachotherorganizetheirthoughts.ThisisparticularlyimportantinELLclassrooms,whereemergentEnglishspeakers

Lesson1.04:CommonErrors&Comments

92

canpairwithadvancedEnglishlearners.Ifsomestudentswanttodothisprojectallontheirown,letthem.

Ifyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CreateamnemonicoracrostictorememberallthestepsforcheckingsyntaxerrorsMakeaposterfortheclassroomillustratingthemnemonicoracrosticHelpanotherstudentwiththeworksheet(explain,notsolve-for-them)

AboutErrorCheckinginEclipseIfyouareabletouseEclipsewithyourstudentsduringthisclassperiod,youmayopttoshowyourstudentshowtointerprettheerrorindicator.

IfyoudogiveyourstudentstheEclipsetoolsatthistime,bewarethatyourstudentswillprobablycopyandpastebetweenEclipseandPractice-It.Onsomesystems,thismaytranslatethespancharacterintoaUnicodespacecharacter.ThiswillcausecodethatworkedinEclipsetoproduceerrorsinPractice-Itorviceversa.Toavoidstudentfrustration,besuretodemonstratehowtocorrectcopied/pastedcodebeforesubmittingtoPractice-It.

TeacherPriorCSKnowledgeFindingerrorsinbothyourowncodeandinstudents’codetakespractice.Iteasyforstudentstogetfrustratedbecausetheircodedoesnotcompileorproducethecorrectoutput.Theywillinevitablecometoyouforhelp.Asyoubecomemoreexperienced,youwillseethesametypesoferrorsbeingrepeatedbymultiplestudents.YouwillbegintorecognizewhattypeofstudentmistakescorrespondtotheJavaerrormessage.

TeachingTipsTipsforEncouragingHelpSeeking:http://csteachingtips.org/tips-for-encouraging-help-seeking

Partoftheaccommodationsisto“encouragestudentstoworkinpairsorsmallgroups”.Whileitisconvenienttogroupstudentsbyproximity,thisdoesnotalwaysleadtogroupswherestudentsarehelpingotherstudents.Asyougettoyourstudents’abilitiesandpersonalities,youcandeliberatelycreategroupstohelpfostercollaboration.Here’safewwaysyoucancreategroups:

Lesson1.04:CommonErrors&Comments

93

Bystrengthwiththestrongerstudentswithotherstrongerstudents,weakerstudentswithweakerstudents

Mixedgroupswithdifferentlevelsineachgroup,ideallynotallthestrongorweakstudentsinthesamegroup.

Randomwhereyouhaveaprogramthatgeneratesrandomgroupswhereyoukeepgeneratingsothetwostudentsthatneedtobeseparatedarenotinthesamegroup.

MisconceptionsWhentroubleshootingstudenterrors,it’simportanttodistinguishbetweensyntaxerrorswhichisproceduralinnatureanderrorsinthealgorithmwhichrequirescorrectioninthelogicofthesolution.Inthebeginningwheretheproblemsarerelativelyeasilytosolve,studentswillhavemostlysyntaxerrorslikemisplaced/missingsemi-colons.Itisimportanttonotalwaysjumptofindingthesyntaxforthestudentbuttohavestudentspracticegoodcodingstylewithproperindenting.Studentsneedtoknowfromthebeginningthatitiscommonifnotexpectedthatsyntaxerrorsarejustpartoftheprocessofwritingcodeanditdoesnothavetobeprefectthefirsttime.

VideoCSE142,CommonErrors(36:10–44:11)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=dd78a77d-cd7a-4ff8-b853-5446801946fb&start=2170

ForumdiscussionLesson1.04CommonErrors&Comments(TEALSDiscourseaccountrequired)

Lesson1.04:CommonErrors&Comments

94

Lesson1.05—StaticMethods&MethodCalls(1/2)

Overview

Objectives—Studentswillbeableto…

Useproceduraldecompositiontoplancomplexprogramsusingstructurediagrams.Managecomplexitybyusingmethodcalls

Assessments—Studentswill…

CompletePractice-Itproblems

Homework—Studentswill…

ReadBJP1.5CompleteCh.1Exercises11,12,14,16

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkerOverlycomplicateddiagram(http://tinyurl.com/y8a7cry)

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandnote-taking 15min

Practice-Itquestions 25min

Studentstradework,check,andturnin 5min

Lesson1.05:StaticMethods&MethodCalls(1/2)

95

ProcedureThisclassintroducesmanynew,intertwinedconceptsinoneclassperiod.Theseconceptswillbere-taughtinthenextclass,butyoushouldbeawarethatyourstudentshavealotofinformationtoabsorbinashortamountoftime.Thislessonwillbeagoodlitmustest—ifstudentshavebeendoingtheirreadingandhomework,theclassshouldmovealongsmoothly.Ifstudentsarenotcompletingthereadings,youwillprobablyonlygetthrough~50%ofthematerial.Ifneeded,usethisopportunitytoconvincestudentsofthepaceandcommitmentlevelrequiredfortheclass.

Bell-workandAttendance[5minutes]

IntroductionandNote-Taking[15minutes]

1. Havethecomplicatedalgorithmupontheboard,orprintedoutforstudentstopassaround.Ifyouhaveanyconfusingfurnitureassemblymanuals,oroverlycomplicateddirections,bringthosetopassaroundtoo.

Startclassoffwithawholegroupdiscussionaboutwhytheinstructionsordiagramsareconfusing,andaskstudentswhatstrategiescouldbeusedtomakethemeasiertounderstand.ThediagramlistedinmaterialsisanactualslidefromthePentagon,andillustrateshowtoomuchcomplexitycancauseallmeaningtobelost.Guidetheconversationtowardsdecompositiontobeginyourlecture:

Decomposition:dividingaproblemintosmaller,moremanageablepieces.Proceduraldecomposition:dividingawholeprogramintoaseriesofindividualstepsoractionstoprogram1atatime.Structurediagram:awayoforganizingyourapproachtobuildingalargerprogram.Askstudentstohelpyoudrawastructurediagramforaprogramwiththeoutputshownbelow:

Lesson1.05:StaticMethods&MethodCalls(1/2)

96

OUTPUT:STRUCTUREDIAGRAM:

+-------+StackedBlocks

||.'.

||.''.

+-------+.''.

.''.

+-------+.''.

||DrawABoxInsertaBlankLine

||.''.

+-------+.'`.

.'`.

+-------+.'`.

||.'`.

||DrawaHorizontalLineDraw2VerticalLines

+-------+

2. Havestudentstake3minutestowritetheDrawBoxesprogramthelongway:

publicclassDrawBoxes{

publicstaticvoidmain(String[]args){

System.out.println("+-------+");

System.out.println("||");

3. Pointouttostudentsthatanythingtheywouldcutandpastetosavetimeoncreatingwouldmakeagoodunittoturnintoa“staticmethod”

Staticmethod—ablockofJavastatementsthatisgivenitsownname(askstudentstopointtoaJavastatement)

Hasthesamestructurewe’refamiliarwithfromthemainmethodwealreadywrote,butwegiveitadifferentnamethan“main”.

4. Askstudentswhatsimpleunitweshouldbuildintoastaticmethod(havethemrefertothestructurediagram),andhavethemsuggestanameforthemethod.

5. Rewritethemethodasaclass,thenshowstudentshowtowritemethodsinmainthatcallthenewstaticmethod.Makesurethatstudentsinserttheprintlnstatementsbetweeneachmethodcall.Itshouldlooksomethinglikethis:

Lesson1.05:StaticMethods&MethodCalls(1/2)

97

publicclassDrawBoxes3{

publicstaticvoiddrawbox(){

System.out.println("+-------+");

System.out.println("||");

System.out.println("||");

System.out.println("+-------+");

}

publicstaticvoidmain(String[]args){

drawBox();

System.out.println();

drawBox();

System.out.println();

drawBox();

}

}

6. Callonastudenttocometotheboardandphysicallytracetheflowofcontrolwiththemarker.StartthemoffbypointingoutthatJavaalwaysstartswiththemainmethod.

Ifthestudentseemsnervous,encouragetherestoftheclasstocalloutdirectionstothestudent.Makesurestudentsaredrawingtheflowofcontrolontheirownnotesaswell.

Practice-Itquestions[25minutes]

1. HavestudentscompletethefollowingPractice-Itquestions:i. Trickyii. Strangeiii. Confusingiv. Lots-of-errors

Ifyoudonothaveaccesstocomputersinyourclassroom,copythePractice-itquestionstoaworksheetandhavestudentscompletethepracticeproblemsbywritingouttheanswersandusingtheirerror-checkingalgorithmsheets.

Somestudentswilljumprightintothisactivity,butotherswillneedadditionalassistancefromyou.

Atthispointintheschoolyear,wesuggestthatyouinsistonstructurediagramswitheachprogram.Structurediagramsencouragealgorithmicthinkingandthecreationofefficientsolutions;bothofwhicharevitalcomputationalthinkingskills.

Ifneedbe,workon“Tricky”asawholegroup,soyoucanmodelthecorrectstepstoapproachingaproblem.Ifyourclassdecidesonanalgorithmfor“predicttheoutput”typequestions,haveastudentmakethatalgorithmintoaposterforthewholeclasstoreferto.

Lesson1.05:StaticMethods&MethodCalls(1/2)

98

Studentstradework,check,andhandin[5minutes]

Havestudentstradeworkandcheckeachother’sresponsesonPractice-Itbeforesubmitting.

AccommodationandDifferentiationInELLclassrooms,thislessonshouldbedeliveredoverthecourseof2days.Extratimeshouldbespentdrillingstaticmethods,methodsthatcallothermethods,andflowofcontrol.Tryadaptingsomeoftheexamplesfromthebooktoincludestudents’nativelanguagesotheycanfocusonstructuringcodeinsteadoftranslatinglanguage.Oneeasywaytointroducefamiliar,repetitivecontentwouldbetohavestudentsoutputthelyricstoasongwitharefrain.Foraphysicalactivitytodemonstrateflow-of-control,checkoutlessonplan1.6.

Ifyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CompletetheremainingStrange2,Strange3,Complicated2andComplicated3Practice-ItquestionsHavethestudentwriteasampletestquestionwithoutputthatcanbewrittenusingmethodcalls.Besuretheyincludetheanswerkeywiththesamplequestion!

TeacherPriorCSKnowledgeJavahasbothstaticandnon-staticmethods.Staticmethodsallowtheprogrammertocallthemethodwithoutcreatinganobjectfromtheclass.Non-staticmethodscoveredinthe2halfofthecourserequiresanobjectbecreatedfromtheclassbeforecallingthemethod.Because“BuildingJavaPrograms”introducesfunctionsbeforeobjects,methodsinearlylessonplansarestatic.Foradescriptionofthedifferencebetweenstaticandnon-staticmethodsseehttp://beginnersbook.com/2013/05/static-vs-non-static-methods/.

TeachingTipsOneofthebigfundamentalconceptsofproblemsolvingincomputerscienceistheconceptabstraction.Thislessonhasanumberofnewsyntaxconstructsforstudentstocreatemethodsanditisimportanttogivestudentsthebigpictureideaoffactoringcodeandreducingredundancy.

nd

Lesson1.05:StaticMethods&MethodCalls(1/2)

99

Thepractice-itproblemshavestudentstracingcodewheremethodscallothermethods.Givingstudentsawayoftracingcodelikeusingatabletokeeptrackofthemethodcalls.Ifyouareusingablack/whiteboard,werecommendcrossingoutthemethodcallwhenitcompletesinsteadoferasingthenamesothestudentcanreviewtheentireflowofcontrolfrombeginningtoendaftertheexerciseiscomplete.Anothertechniquethatcanbeintroducednowthatcanbeusedlaterwhentheflowofcontrolgetsmorecomplexismemorydiagrams:https://www.youtube.com/watch?v=t-_TeH0dSZs&feature=youtu.be&list=PL0g5FWk3FEqjmrq4ystAvlRyenEF7lUwa

MisconceptionsWhendeclaringamethod,studentswillsometimesincorrectlyaddasemicolontothemethodheader,asinpublicvoidfoo();.StudentshaveamisconceptionthatallstatementsinJavaendinasemicolon.Theyneedtoknowthedistinctionbetweenstatementsthatdoendinsemicolonandstatementsthatbeginblockswithcurlybrackets.Theadditionofthesemicolontothemessageheadercouldalsobestudentsincorrectlypatternmatchingthemethoddeclarationwiththemethodcallwherethereisasemicolon:foo();Thisovergeneralizationcouldleadtosemi-colonbeingincorrectlyplaced.

Formethodswithoutparameters,studentswillsometimesomittheparenthesis().Toclarifythedifferencebetweenvariablesandmethods,alwaysuseparenthesiswhenreferringtomethods.ThiswillreinforcethenotionthatmethodsinJavarequireparenthesis,evenformethodswithzeroparameters.

VideosBJP1-3,ProgrammingwithMethodshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c1-3

CSE142,StaticMethods(44:12-49:21)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=dd78a77d-cd7a-4ff8-b853-5446801946fb&start=2652

CSE142,ProceduralDecomposition(20:10–29:35)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=b5df64f2-e42f-4943-bab6-29eca0ab8f00&start=1211

CSE142,EliminatingRedundancy(29:36–35:49)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=b5df64f2-e42f-4943-bab6-29eca0ab8f00&start=1775

Lesson1.05:StaticMethods&MethodCalls(1/2)

100

ForumdiscussionLesson1.05StaticMethodsandMethodCalls(TEALSDiscourseaccountrequired)

Lesson1.05:StaticMethods&MethodCalls(1/2)

101

Lesson1.06—StaticMethods&MethodCalls(2/2)

Overview

Objectives—Studentswillbeableto…

Usestructurediagramstoplancomplexprograms.Managecomplexitybyusingmethodcalls.

Assessments—Studentswill…

CompletePractice-ItproblemsWriteastructuredPikachuprogram

Homework—Studentswill…

OutlineCh.1CompleteProgrammingProject#1*&#3(mustincludeastructurediagramforeach)

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersRostersforclassteamsBall(preferablyalargeinflatableballorkickball)

Theteamsfortoday’scompetitionshouldbeyourbestguessattieredgrouping(thesegroupswillprobablychangeastheyeargoesonandyoulearnmoreaboutyourstudents).Dependingonthesizeofyourclass,youshouldaimfor4teamsorteamsof4people.

PacingGuide

Lesson1.06:StaticMethods&MethodCalls(2/2)

102

Section TotalTime

Bell-workandattendance 5min

Introduction&challenge 10min

Review/re-teach 5–15min

Pikachuchallenge 10–15min

Studentstradework,check,andturnin 5min

ProcedureToday’sclassre-teachesthemanyconceptsintroducedduringyesterday’slessonondecomposition,staticmethods,andmethodsthatcallothermethodsandgoesovercontrolflow.Sincedifferentstudentswillprogressatdifferentrates,we’llbeginthislessonwithanassessment(intheformofacompetition)todeterminehowmuchre-teachingyouneedtodo.Thecompetitionisreallygroupworkindisguise,andwillencouragestudentstoteachandhelpeachotherwhilewritingthesampleprogram.

Bell-workandAttendance[5minutes]

IntroductionandChallenge[10minutes]

1. Asyourhook,grandlyannounceaclasscompetitionbetweenteamsandannouncetheprizeforthewinningteam(thismightbeTEALSswag,bonusclassroomparticipationpoints,oradditionalraffleentriesintheyear-endTEALSgiveaway).

2. Announceclassteamsandrearrangestudentsasneeded.

3. Announcethe10-minutetimelimit,setthetimer,thenrevealthechallengeonprintedhandoutsorontheprojectorwithgreatfanfare.CHALLENGE:WriteaJavaprogramcalledStarFiguresthatgeneratesthefollowingoutput.YouMUSTincludeastructurediagramoryouranswerwillbedisqualified.Acorrectanswerwillusestaticmethodstoshowstructureandeliminateredundancyinyoursolution.

Lesson1.06:StaticMethods&MethodCalls(2/2)

103

*****

*****

**

*

**

*****

*****

**

*

**

*****

*****

*

*

*

*****

*****

**

*

**

4. Givestudents10minutestocompletethechallenge,andtakenoteofwhichteamfinishesfirst.Ifstudentsarestruggling,youmayextendthetime,orofferuniversalhelpfultips.Theteamthathasthecorrectanswerfirstwinstheprize.

Review/Teach[5-15minutes]

Reviewstudentanswerstogetherasawholegroup,revisitingconceptstaughtearlierintheweekasmistakescomeup.Wheneverpossible,havestudentsvolunteerthecorrectprocedure,approach,orcode.Encouragestudentstotakenotesduringthisprocesssotheycanreviewtopicsovertheweekend.

Review/TeachOPTIONALINSTRUCTION

Ifstudentsarehavingtroubleunderstandingtheflowofcontrol,youcandothisphysicalactivitywiththem(bonus:thisactivitycanbebuiltonlaterintheyearwhendiscussingreturnvalues).

1. Writeorprojectthefollowingcodeasanexample(havestudentshelpyouwiththeheadersifyouarewriting):

Lesson1.06:StaticMethods&MethodCalls(2/2)

104

publicclassSquarePants{

publicstaticvoidspongebob(){

System.out.println("Well,itmightbestupid");

}

publicstaticvoidpatrick(){

System.out.print("butit'salso");

}

publicstaticvoidsquidward(){

System.out.println("dumb.");

}

publicstaticvoidmain(String[]args){

spongebob();

patrick();

squidward();

}

}

2. Assignastudenttoeachofthemethods:main,spongebob,patrick,andsquidward,andhavethemcometothefrontoftheclassroom.HaveanotherstudentactasJava;tellthemtheyaretowritetheoutputontheboard(ortypeitifyou’reusingacomputer/projectorsystem).Fromhereonoutyoushouldaddressstudentsbytheircomponentnames(soalwayscallstudentactingasmethodpatrickasPatrick,andsoon).

3. Narratetheflowofcontrolasyoutosstheballtomain.Havemainpasstheballtospongebob(andmakesureJava“outputs”Well,itmightbestupidontheWhiteboardbeforecontrolpassesbacktoMain).

DiscusswiththeclasshowJavaknowstoreturntothenextcallinmain(theclose-bracket),andhavetheclassdirectcontroltopatrick,thenmain,thensquidwardasJavawritestheoutputontheboard.Payspecialattentiontotheprintstatementinthesquidwardmethod,andifkidsmissit,makesomesortof“error”noise.Bonus:encouragethestudentstomaketheerrornoiseforyou.

PikachuChallenge[10-15minutes]

Ontheboardorprojector,havethestudentsfinishtheclasswiththePikachuchallenge:

WriteaprogramcalledPikachuChatterthatoutputsthefollowing:

Lesson1.06:StaticMethods&MethodCalls(2/2)

105

Pikapikapikachupikachupeeeeekapikachu!

(\__/)

(o^.^)

z(_(")(")

Pika?Pikapikapikachupeeeeekachu!

(\__/)

(o^.^)

z(_(")(")

Youcanreusethecodethatyouwroteearlierthisweek.Yourprogramshouldusestaticmethodsandmethodcalls.Youshouldincludeacommentatthestartoftheprogramthatexplainswhatthecodedoes(youmightwanttousethiscodelaterintheyearwhenwebuildalargerPokémonprogram).

Studentstradework,check,andturnin[5minutes]

Attheendofclass,havestudentsreviewoneanother’sPikachuchallengecodesbeforesubmitting.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CompletetheremainingStrange2,Strange3,Complicated2andComplicated3Practice-Itquestions.

Havethestudentwriteasampletestquestionwithoutputthatcanbewrittenusingmethodcalls.Besuretheyincludetheanswerkeywiththesamplequestion!

Ifyouhavethegoodfortuneofnotneedingtore-teachanyconcepts,youcanmagnanimouslygivestudentsextratimetostartonthehomeworkprogrammingproject#1.Ifyouaredoingalotofre-teachingduringthisclass,andyoufeelthatstudentsneedtheemotionalreward,youmaydropprogrammingproject#1.

VideoBJP1–4,DrawingComplexFigureswithStaticMethodshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c1-4

Lesson1.06:StaticMethods&MethodCalls(2/2)

106

ForumdiscussionLesson1.06StaticMethodsandMethodCalls(TEALSDiscourseaccountrequired)

Lesson1.06:StaticMethods&MethodCalls(2/2)

107

Lesson1.07—ProgrammingProject

Overview

Objectives—Studentswillbeableto…

Constructaprogramcontainingmethodcallsandstaticmethods.

Assessments—Studentswill…

Submitacomplete,functionalprogrambytheendofclass

Homework—Studentswill…

Checkclassnotesforcompletion,addingdailysummariesifneeded.Studentsmayusethebooktosupplementtheirnotesifneeded.Allstudentsmustturninnotesforeachdayofclass(eveniftheywereabsent).

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)Studentself-helpsystemsuchasC2B4(“seetwobeforeseeingme”)orstudentpairing

Makesureyouaresetuptogradestudentnotebookstodaywhilethestudentsworkontheproject.Ifpossible,youshouldonlycollect3–5notebooksatatimesostudentshavetheirnotebooksavailabletoreferenceduringprogrammingtime.

PacingGuide

Lesson1.07:ProgrammingProject

108

Section TotalTime

Bell-workandattendance 5min

Introduction&classroomprocedurereview 10min

Programmingproject#2,Chapter1 15min

Programmingproject#5,Chapter1 15min

Studentstradework,check,andturnin 5min

ProcedureThesecondweekpartofthisunitwillbespentonreinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Whiletheseclassesrequirelittleprepbeforeclass,youshouldsetupasystemthatwillallowstudentstohelpthemselvesandeachothersoyouaren’trunningaroundthecomputerlabthewholetime.

Ifyourcomputertimerequiresyoutomovetoanotherroomortochangeseating,youshouldteachand/orreviewthoseproceduresbeforeintroducingthelabmaterial.Ifyouexpectstudentstosubmitassignmentselectronically,youshouldalsomodelandreviewthoseproceduresbeforestudentsbeginwork.

Bell-workandAttendance[5minutes]

IntroductionandClassroomProcedureReview[10minutes]

1. Introducetheprogramassignment,takingamomenttotalkstrategywithyourclass.

ASSIGNMENT:Sometimeswewritesimilarletterstodifferentpeople.Forexample,youmightwritetoyourparentstotellthemaboutyourclassesandyourfriendsandtoaskformoney.Youmightwritetoafriendaboutyourlovelife,yourclasses,andyourhobbies,andyoumightwritetoyourbrotheraboutyourhobbiesandyourfriendsandtoaskformoney.

Writeaprogramthatprintssimilarletterssuchasthesetothreepeopleofyourchoice.Eachlettershouldhaveatleastoneparagraphincommonwitheachoftheotherletters.Yourmainprogramshouldhavethreemethodcalls,oneforeachofthepeopletowhomyouarewriting.

TIPS:Trytoisolaterepeatedtasksintomethods.Includecommentsinwithyourcodesootherscaneasilyunderstandwhatthecodeissupposedtodo.

Lesson1.07:ProgrammingProject

109

2. Askyourclassforsuggestionsastohowtotacklethisprogrammingproblem.Studentsshouldsuggestdrawingastructuraldiagram,buildingtheprogramonemethodatatime(iterativedevelopment),andfollowingthecorrectionstepsontheirpersonalalgorithms(debugging).

ProgrammingProject#2,Chapter1[15minutes]

GetstudentsstartedonProgrammingProject#2inChapter1ofthetextbook.Offerstudentshelpaftertheyhavetriedtoanswerthequestionsthemselves:

1. Havethecheckedthebookforexamples?2. Havetheyaskedafriend(ortwo)forhelp?

Ifstudentsseemtobegettingstuckonthesamesegmentofcode,offerahintortipontheboard(silently,withoutdisruptingstudentflow).

Iftheentireclassisstuck,returntowholegroupandworkthroughtheprogrammingchallengetogetherasaclass,havingstudentsofferanincreasingproportionoftheanswersasyoumovealong.

ProgrammingProject#5,Chapter1[15minutes]

IntroduceProgrammingProject#5inChapter1ofthetextbook.Ifyourclassfinishedthefirstassignmentquicklyandeasily,offerlittletonoguidanceonthisproject.

Studentstradework,check,andturnin[5minutes]

Attheendofclass,havestudentsbrieflylookateachother’sprojectsandreviewtheirworkbeforetheysubmit.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtotackleprogrammingproject#4inthetextbook.

ForumdiscussionLesson1.07ProgrammingProject(TEALSDiscourseaccountrequired)

Lesson1.07:ProgrammingProject

110

Lesson1.07:ProgrammingProject

111

Lesson1.08—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Findandfixerrorsandstyleintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

Studyforthetestby:ReviewingallthebluepagesattheendofChapter1Re-readingsectionsasneeded

Submit5questionsforreviewinclasstomorrowusingelectronicsurvey

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Whenyougradehomeworkassignments,itwillbemostusefultotheselessonsifyouonlymarkananswerincorrectorcorrect.ELLclassroomsaretheexceptiontothisrule—studentswillbehavingahardenoughtimejustreadingthematerial;youcanspeedalongtheirprocessingbycorrectingoneexample,thenhavingthemlookforsimilarerrorswiththatexample.

Thehomeworktonightasksstudentstosubmit5questionsforreview.Createanelectronicsurveyforstudentstocompletewith6textfields,oneforname,and5forquestionstheyhaveaboutCh.1content.Setatime-deadline(e.g.10pm)bywhichtimestudentsmusthavesubmitted5questionsfromCh.1thattheywouldliketoseereviewedintomorrow’sclass.Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

Lesson1.08:Finding&FixingErrors

112

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Lectureonstyle 10min

Studentwork 25min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkassignments.Ifstudentsdidnothavetimetofinishtheprogrammingprojectsfromyesterday,youmayallowthemtimetoworkonthoseprojectstoday.

Thisisagooddaytoloosenupthevibeintheclassroomabit.Tryplayingmusicsoftlyinthebackgroundtoencouragestudentstorelaxandfocusonspottingerrors.Trytoavoidloud,rhythmicmusic.Rewardyourclassforgoodgrades/behaviorbyallowingthemtoselectmusicfromapre-selectedgroupofPandorastations(orthelike).

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.(Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.)

Lectureonstyle[10minutes]

Addthecaveatthattheymustcorrecttheirstyletoreceivethatcredit.Explainthatstyleisnecessarytoimprovereadabilityandthatyoulosepointsforhavingpoorstyle.

Althoughitwasalreadytouchedonpreviously,tellthemthatidentifiersmustbeproperly

Lesson1.08:Finding&FixingErrors

113

capitalized.Commentingmustbeproperlyusedthroughout.Linesmustbenolongerthan100preferably80lines.Thereshouldbenoredundantcode.Therearelinkstothefullstyleguidewerecommendontheslides.

StudentWork[25minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.Ifstudentshavenotfinishedtheirprogrammingprojectfromyesterday’sclass,allowthemtodosotoday.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtotackleprogrammingproject5&7inthetextbook.

Ifyouwereunabletofinishgradingstudentnotebooksyesterday,finishthemtodaywhilestudentsareworking.Returnnotebooksbytheendofclasssostudentsmayusethemtostudyfortheexam.

ForumdiscussionLesson1.08FindingandFixingErrors(TEALSDiscourseaccountrequired)

Lesson1.08:Finding&FixingErrors

114

Lesson1.09—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit1knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stest!

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopicsClassroomcopiesofthepracticetestWS1.9

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandtestformatorientation 15min

Testreview 30min

Checkstudentstudylists 5min

Lesson1.09:Review

115

ProcedureEngagetheclassinthereviewsessionbypointingoutthatyourreviewtopicshavebeenhandselectedbytheclass.Explainthatyouwillreviewtest-takingstrategiesinadditiontoreviewingsubjectmatter.

Bell-workandAttendance[5minutes]

IntroductionandTestFormatOrientation[15minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Beginbyexplainingtheportionsofthemock-test.Readaloudtheinstructionsoneachpage,andexplainthestrangelayout(thetestisdesignedtolookliketheAPexam,andcontainsallofthedirectionsontheexamsostudentswillnothavetowastetimeunderstandingtheminMay).

3. Solvethesampleproblemsonthetestasawholegroup,encouragingstudentstogiveyoutheanswerswheneverpossible.Answeranyquestionsthatstudentsbringupasyougo.

TestReview[30minutes]

1. Usingtheresultsfromtheelectronicsurvey,addressthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

i. Somequestionsyoumayalreadyhaveaddressedwhileworkingthroughthesampletest.

ii. Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

iii. Jotdownnotesaboutwhichtopicsyoucoveredinreviewsoyoucanadjusttheexamtoreflectthetopicsyourstudentshavelearned.

2. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

3. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.(Yes,thiswillbearemindereveryfewminutes,butitwillpayofflaterwhenstudentsstartcreatingreviewlistswithoutpromptinglaterintheyear!)

Lesson1.09:Review

116

Checkstudentstudylists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

AccommodationandDifferentiationInELLclasses,youmaywanttochangecode-writingquestionstoParsonsProblems.EducationalresearchshowsahighcorrelationbetweenParsonsscoresandcodewritingscores,andalowcorrelationbetweencodewritingandtracingandbetweenParsonsandtracing.(Inotherwords,ParsonsProblemsaccuratelyassessastudents’abilitytocreatecode.)FormoreinformationonParsonsProblems,checkoutthispaper(https://cseweb.ucsd.edu/classes/fa08/cse599/denny.pdf).

Eveninanon-ELLclass,youmaywanttochangesomeSectionIIquestionstoParsonsproblemsbecause(1)gradingthequestionsiseasier,sincelogicandsyntaxerrorsareeasytodiscern,and(2)studentschallengedbylanguageprocessingareabletomorequicklycompletetheproblem.

TeachingTipsTipsforAssessment:http://csteachingtips.org/tips-for-assessing-programming

ForumdiscussionLesson1.09Unit1Test(TEALSDiscourseaccountrequired)

Lesson1.09:Review

117

Lesson2.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit1.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP2.1exceptfor“MixingTypesandCasting”Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 30min

Checkstudentnotesandreturntests 5min

Lesson2.00:TestReview&Reteach

118

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

HowtheyfelttheyweregoingtodobeforethetestWhatsurprisedthemoncetheyweretakingthetestWhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)Whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).Inanon-judgmental,supportivetone,remindstudentsthattobesuccessfulinthecourse:

Readingismandatory

Homeworkismandatory(Andvaluable!Youwillneverassign“busy”work.)

Tobettermanagetheirtime,studentsshouldplanfor1hourofhomeworkaweeknight,withupto2hoursofhomeworkeachweekend.Ifthisseemsimpossible,theyshouldmeetwithyouortheirguidancecounselortoassesswhethertheycanfitinanAPclassatthistime.

ItisVERYimportanttokeepyourtonesympatheticatthispoint—anoverworked,overstressed,underperformingstudentwillslowyourentireclassdown,andcolorthatstudentagainstCSforthefuture!

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

Lesson2.00:TestReview&Reteach

119

a.Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

b.Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationThecurriculumdoesnotofficiallycoverthechartypesinceitisnotincludedintheAPsubset.However,ifyourclassisprogressingquickly,feelfreeintointroducecharintoallfutureexamples,worksheets,andtests.

InELLclassrooms,youshouldgivemoreexamplesforeachtype,andspendmoretimedrillingduringtheintroductionandnote-takingsegments.

ForumdiscussionLesson2.00TestReviewandReteach(TEALSDiscourseaccountrequired)

Lesson2.00:TestReview&Reteach

120

Lesson2.01—BasicDataConcepts

Overview

Objectives—Studentswillbeableto…

IdentifyandcategorizedatatypesIdentifyoperatorsandoperands.Correctlyapplyrulesofprecedence

Assessments—Studentswill…

Writecodethatyieldsagivenanswer,usingrulesofprecedenceCreateexpressionsandpredictoutputusingoperator/operandexpressionsets

Homework—Studentswill…

Completeself-checkquestions1-3(4 edition:1,3,4)ReadBJP2.2upto“StringConcatenation”

Materials&PrepProjectorandcomputerWhitepaperandmarkersClassroomsetsofoperator/operandexpressioncardscreatedfromWS2.1Pairorsmallgroupstudentassignments

Operator/OperandExpressionsetscanbeprintedandcutfromregularprinterpaper,oryoucanwritethemoutonconstructionpaper,creatingcolor-codedsets(recommendedtopreventcheatingandreinforcememorycues).

PacingGuide

th

Lesson2.01:BasicDataConcepts

121

Section TotalTime

Bell-workandattendance 5min

Introductiontodatatypes 10min

Think-pair-shareactivity 5min

Introductiontooperatorsandprecedence 10min

EvaluatingExpressionsactivity 20min

Checkstudentstudylists 5min

ProcedureHookyourclasstodaybyexplainingthatthey’regoingtobeabletocreateacalculatorbytheendofthisweek.

Bell-workandAttendance[5minutes]

IntroductiontoDataTypes[10minutes]

Beginwithabrieflectureaboutdatatypes.

Towriteamorecomplicatedprogramlikeacalculator,weneedtofamiliarizeourselveswiththedifferenttypesofdatathatJavacanworkwith.

Type(ordatatype):anameforacategoryofdatavaluesthatareallrelated

Typeintdescribesallwholenumbers,orintegers(havestudentsnamesomeexamples)

Typedoubledescribesallnumberswithdecimalpoints(havestudentsgivesomeexamples)

Youcanrememberifsomethingisadoublebecausetherearenumbersonbothsidesofadecimalpoint(like2numbers,doublenumbers)

Typebooleandescribeslogicalvalues—thismeanstrueorfalse.Therearenoothervaluesintypeboolean.

Anexpressionisasimplevalue,orasetofoperations(anequation)thatproducesavalue.

Onesimpleexampleofanexpressionisvalue,like3.14or439.

Lesson2.01:BasicDataConcepts

122

Anotherexampleofanexpressionis2+5.9,becauseitisanoperationthatproducesavalue.(Askstudentstopointouttheint,double,andexpressioninthisexample.)

Intheexpression2+5.9,theplussigniscalledanoperatorbecausethesymbolindicatesanoperationtobeperformedononeormorevalues.

Werefertothevaluesasoperands—bothintanddoubleareoperands.

Think-Pair-ShareActivity[5minutes]

1. Whilestudentsarefinishingwritingdowndefinitionsintheirnotes,writeanassortmentofdatatypeexamplesontheboard.

2. HavestudentscategorizealloftheprimitivetypesontheboardduringaThink-Pair-Shareexercise.Remindstudentstodoscratchworkintheirnotebooks,sinceitwillcounttowardstheirclassworkgrade(thisencourageseveryonetoworkduringthe“think”stageoftheactivity).

3. Bringtheclassbacktowholegroup,andcallonstudentstoshareacategoryforeachdatatype.

IntroductiontoOperatorsandPrecedence[10minutes]

1. Doaquickreviewofarithmeticoperators.Studentsshouldbeabletovolunteermostofthese,butyoumayhavetospendsomereviewonmod,especiallyifyourclassisnotongradelevelformathematics.

2. Askstudentsfortheoperatorsthatrepresentadditionandsubtraction.

3. Introducethespecialsymbolsweusefortheoperatorsmultiplicationanddivision.

Divisionhasslightlydifferentrulesifyou’reworkingintypeint:

12/5evaluatesto2,becauseeventhoughthecalculatorshowsus2.4,intdoesn’tletushaveadecimalpoint(whattypedoes?)

It’sveryimportanttorememberthatintalwaysdropsthepartafterthedecimalpoint.Soevenifyouevaluated39/10,youranswerwouldbe3,not4.

4. Introducethemod%operator,andhavestudentsworkthroughafewexampleswithyoutopractice.

Inelementaryschoolwecalledita“remainder”

Lesson2.01:BasicDataConcepts

123

1079%34evaluatesto25,becauseyouget31R25(34goesinto107934times,with25leftover)

Ifyoutrytogettheanswerwithyourcalculator,youwon’tget25—you’llneedtodolongdivisiontogettherightanswer(or,youcangetJavatodoit!)

5. Ifwedon’tuseparenthesesinourexpressions,Javausesprecedencetodecidewhichoperationsgofirst(studentswillprobablymentionPEMDAS),andevaluatesleft-to-right:

13*2+239/10%5–2*2Startlefttoright,13*2evaluatesto26239/10evaluatesto23(havestudentsdothisonetoseeiftheycatchtheint)Stillmovingleft-to-right,now23*5evaluatesto3,and2*2evaluatesto426+3–4evaluatesto25

EvaluatingExpressionsActivity[20minutes]

1. Dependingonyourclasssize,havestudentsformpairsorsmallgroups

2. GiveeachpairorsmallgroupaZiplocbagwithasetofoperand/operatorcards.

3. Studentsshouldwriteouttheexpressionstheycreate,alongwiththevaluetheyevaluateto,intheirnotebooks.

4. Oncestudentshavefinishedaset,havethemrepackagethesetandtradewithanothergroup(ortradeintheirsetwithyou).

5. Encouragegroupstocheckeachothers’answersandhelpeachotheriftheygetstuck.

CheckStudentStudyLists[5minutes]

Attheendofclass,gooverstudentnotebooks.

AccommodationandDifferentiationThecurriculumdoesnotofficiallycoverthechartypesinceitisnotincludedintheAPsubset.However,ifyourclassisprogressingquickly,feelfreeintointroducecharintoallfutureexamples,worksheets,andtests.

InELLclassrooms,youshouldgivemoreexamplesforeachtype,andspendmoretimedrillingduringtheintroductionandnote-takingsegments.

TeacherPriorCSKnowledge

Lesson2.01:BasicDataConcepts

124

TheAPCSAexamcoversasubsetoftheJavaprimitivedatatypes.ForamorethoughunderstandingoftheJavadatatypes(byte,short,int,long,float,double,char,andboolean)seehttp://www.learnjavaonline.org/en/Hello%2C_World%21.

StringisnotaprimitivedatatypeinJavabutisaclass.Stringsinmanybehaveslikeaprimitivedatatype,forexampleyoucanaddtwoStringstogetherwiththe+sign.ThisisasourceofconfusionformanybeginnerJavaprogrammersasthelanguageisinconsistentwithitstreatmentofString.

VideoBJP2–1,Expressionshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c2-1

CSE142,BasicDataConcepts(40:42–49:59)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=b5df64f2-e42f-4943-bab6-29eca0ab8f00&start=2442

ForumdiscussionLesson2.01BasicDataConcepts(TEALSDiscourseaccountrequired)

Lesson2.01:BasicDataConcepts

125

Lesson2.02—Declaring&AssigningVariables

Overview

Objectives—Studentswillbeableto…

Identify,declare,andassignvariables.

Assessments—Studentswill…

WriteaprogramthatconvertstemperaturefromFahrenheittoCelsius.

Homework—Studentswill…

ReadtherestofBJP2.2Completeself-checkquestions5,6,9,12-15(4 edition:6,7,10,14-17)

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhitepaperandmarkersClassroomcopiesofWS2.2PairorsmallgroupstudentassignmentsSampleonlinetemperatureconverter(http://www.onlineconversion.com/temperature.htm)

Sincemostoftoday’slessonfollowsWS2.2,youshouldhavereadthroughtheworksheet.Youmayprefertodeletethenotesfromtheworksheet(soitisonlyasheetofexercises)ifyouareworkingondevelopingnote-takingskillsinyourclassroom.WerecommendleavingthesesectionsinforELLclassrooms,soyourstudentscanfocusonsyntaxrulesinsteadoftranslatingwhattheyarehearingtovocabularytheyneedtothenwriteintheirnotebooks.

PacingGuide

th

Lesson2.02:Declaring&AssigningVariables

126

Section TotalTime

Bell-workandattendance 5min

Introductionandworksheetexercises 25min

Practice-Itexercises 20min

Turninworksheets,wrapup 5min

ProcedureSincemuchofthisclassinvolveslearningsyntax,therewillbealotofdrillingduringtheclass.Trytospiceupthelessonbyallowingstudentstoworkinpairs,orplayingsoftmusicinthebackgroundtoputstudentsintherightheadspacetosettledownforwork.

Hookyourclasstodaybyaskingwhichofthemaretakingorhavetakenphysicsorchemistry.AskstudentsaboutworkingwithFarenheitandCelsiustemperatures—dotheyhavetoconverttemperaturesinclass?Whichmeasurementaretheymorefamiliarwith?Whichdotheyusemoreoften?Showstudentstheonlinecalculatorandaskiftheyeverusesuchonlinetools,andtellstudentsthatthey’regoingtolearnhowthisprogramisbuilttoday.

Bell-workandAttendance[5minutes]

IntroductionandWorksheetExercises[25minutes]

1. UsingWS2.2,walkstudentsthroughtheproperwaytodeclareavariable.

Besuretospot-checkforunderstandingbyhavingstudentsgiveyouthedefinitionsoftype,syntax,declaration,andvariable(allboldedinthetext).

Encouragestudentstousetheirnotesifneeded.

2. GuidestudentsthroughthesyntaxrulesforvariabledeclarationsbyworkingthroughthefirstfewexamplesofExercise1inpairs.

3. GivestudentsafewminutestocompleteExercise1ontheirown;encouragestudentstotackleExercise2aswell,thencheckallanswerstogetherasawholegroup.

4. UsingthefigureonExercise3ofWS2.2,walkstudentsthroughthepropersyntaxtoassignavariable.

Spot-checkforunderstandingbyaskingstudentstodefinetheitalicizedwords.

Askstudentsforafewsampleanswers,correctthemifneeded,thengivestudentsafewminutestocompleteExercise3inpairs.

Lesson2.02:Declaring&AssigningVariables

127

5. Asawholegroup,walkstudentsthroughExercise4and5.Complete5atogetherasagroup,thenletstudentsworkon5binpairs.

Atthispoint,yourclassmayberaringtogetstartedontherestoftheassignmentwithoutyourhelp.Iftheyare,great!PostthePractice-itquestionsontheboardsotheycancontinuetothatassignmentoncetheyhavecompletedtheworksheet.Ifyouclasswantsyoutowalkthemthroughstringconcatenation,gothroughtheexamplesasabove.

Practice-ItExercises[20minutes]

1. HavestudentslogintoPractice-IttocompletethefollowingPractice-Itself-checkquestions:

a.studentVariables

b.valuesofA,B,C

2. HavestudentscompletePractice-Itexercise“displacement.”

3. Studentsshouldworkontheirown,butiftheexerciseistoochallenging,youmightopttohavestudentscollaborateonanswers.Besuretoremindstudentsthateachstudentshouldturnintheirownsetofwork.

Studentsturninworksheets,wrapup[5minutes]

Attheendofclass,collectWS2.2andPractice-Itsubmissions.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CompletePractice-Itself-checkproblem“timesOperator.”

ChallengethemtobuildtheirownprogramthatconvertsFarenheittoCelsius(thisversionwon’ttakeuserinput—yet!)

Havethestudentcreateaclassroomposterdiagramingthepartsofvariabledeclaration&assignment.

Ifyourclassisstrugglingwithlearningsyntax,youcansplitthelessoninto2lessons,and/ortakeoffsomeofthehomeworkquestions.Ifsplittingthelessonintwo,werecommendstoppingtoday’slessonbeforestringconcatenation.

Lesson2.02:Declaring&AssigningVariables

128

CommonMistakesVariablescommonmistakes:http://interactivepython.org/runestone/static/JavaReview/VariableBasics/commonMistakes.html

MisconceptionsStudentswilldrawontheirmathknowledgewhenlearningvariables.Thisleadstoconfusiononthedifferencesinaprogramminglanguage.

Theequalsign=isassignmentinJava,notequality.Whenreadingoutcode,explicitlysaying“assignment”willhelpreinforcetheconceptthat=isnotequality:x=1isreadas“xisassignedthevalue1”.

Avariableisacontainerforvaluethatcanchange,itdoesnotdenoteafixedvalue.FromWS2.2,considerthefollowingstatements:

intage=17;

age=age+1;

Studentsmayviewthesecondlineofcodeasamathequationandmissthepointthatageisavariableandcontainsavalue.Theage=age+1changesthevalueofage.WhenlearningJavathereisthecodewhichisstatic,therunningofthecode,andthestateofthevariableduringruntimewhichisfundamentallydifferentfromanequationinmaththatcanbesubstitutedandmanipulatedtosolveforsomeunknown.

Studentsready=x+2;andthinktheequationisstorediny,notavalue.

x=1;

y=x+2;

x=3;

System.out.println(y);//whatisdisplayedfory?

Forstudentswiththemisconceptionthattheequationisstored,theywillincorrectlycompute6aswhatisdisplayedfory.

Javaisnotaspreadsheetthatstorestheequation.Explicitlyteachingthatxandyareindependentvariablesinaprogramminglanguageandholdvaluesisanimportantdistinction.Thisdiffersinmathwherey=x+2isarelationship.Showingthestateof

Lesson2.02:Declaring&AssigningVariables

129

thevariablescanbeachievedusingthewhiteboard,thedebuggerbysteppingthroughonelineofcodeatatime,andexaminingvariables,orusingavisualizationtoollikehttp://cscircles.cemc.uwaterloo.ca/java_visualize/.

VideoBJP2–2,VariablesandAssignmenthttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c2-2

CSE142,Variables(5:12–12:48)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ca84c6fe-878e-4bcf-92d4-a18edd3fef21&start=310

CSHomeworkBytes,VariableandAssignment,withElizabethhttps://www.youtube.com/watch?v=fPqGiexXi_Y

ForumdiscussionLesson2.02DeclaringandAssigningVariables(TEALSDiscourseaccountrequired)

Lesson2.02:Declaring&AssigningVariables

130

Lesson2.03—StringConcatenation&IncrementDecrementOperators

Overview

Objectives—Studentswillbeableto…

Applytherulesofstringconcatenation.Correctlyinterpretincrementinganddecrementingstatements.

Assessments—Studentswill…

Evaluatestatementsandpredictoutputduringagameofgrudgeball

Homework—Studentswill…

ReadremainderofBJP2.2Completeself-checkquestion4(4 edition:5)

Materials&PrepProjectorandcomputer(optional)WhitepaperandmarkersRulesforgrudgeball(seewebsitefordetails:http://toengagethemall.blogspot.com/2013/02/grudgeball-review-game-where-kids-attack.html)Teamassignmentsthatdivideyourclassinto5or6teamsNerfhoop&ball(orwastepaperandtrashcan)Taped2-and3-pointlines

Takethetimetofamiliarizeyourselfwiththerulesofgrudgeball,andtestoutyour2and3pointlinesbeforeclassbegins(youmayneedtoreadjustthem).Ifyoucangetpermissionfromyourschooltoleavetapeonthefloor,itishelpfultohavethoselinesdownfortherestoftheyear.Infutureclasses,ifyourstudentsarehavingahardtimesettlingdownduringareviewsession,orcan’tstandaworksheet,youcanalwaysconverttheworksheetorreviewsessionintoaquickgameofgrudgeball.

th

Lesson2.03:StringConcatenation&IncrementDecrementOperators

131

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandnote-taking 15min

Grudgeball 35min

ProcedureBecausetoday’slessoncombinesseveralmarginally-related(butimportant)conceptswithnomaintheme,thedrilling/activityportionoftheclasswillservetotiethelessontogetherintheformofaclasscompetition.Ifspaceandwhiteboardsetupallow,setupthegrudgeball“court”andscoreboardbeforeclassbeginssoastomystifythestudents.Beforeyoubeginlecture,announcetostudentsthattheyshouldpaycloseattention,sincethelecturecontentwillbetestedduringthegame.

Bell-workandAttendance[5minutes]

VocabularyandHistoryofBugs[10minutes]

1. Beginwithalectureaboutthetopicstobecovered.

Stringconcatenation:letsyouputtogetherseveralstringsintoonestring,thewaywecombinenumbersinanexpression!

Whenyouseea+betweenstrings(lookforthosequotationmarks!),thatmeansthatyou“add”thestringstogether:

System.out.println("Spongebobthinks"+"thebesttimetowear"+"asweate

r"+"isallthetime!");

Carefullywriteout(orpointout,ifusingaPowerpoint)thespaceswithintheStrings.Writeouthowthestringconcatenates,askingstudentstopredictthelatterportionofthestringcombo.

Offerupasecondexample,askingthestudentstopredicthowtheexpressionwillevaluate,discussingtheplacementofquotationmarksfirst:

Lesson2.03:StringConcatenation&IncrementDecrementOperators

132

System.out.println("Herewecombine"+1+"integer"+"withthestrings!")

;

Givethestudentsalittleextraguidedpracticebywalkingthemthroughthistrickyexample:

42+"istheanswerto"+"everything!"+1+1

Stepwise,showstudentshowthisevaluatesto“42istheanswertoeverything!11”

Askstudentsiftheycancomeupwithawaytomaketheanswerevaluateto“42istheanswertoeverything!2”

2. Switchgearsandtellstudentsthesecondusefultoolyou’regoingtoteachthemtodayishowtoincrease(ordecrease)avariablebyaparticularamountwithoutwritingawholeseparateequation.

BrieflyexplainthatinJava,theequationsbelowmean“add7tothecurrentvalueofx,”“dividethecurrentvalueofyby3,”insteadofthetraditionalmathematicaluseof“equals.”Immediatelyshowstudentshowtowritetheabbreviatedversionsofthesestatements:

x=x+7;ORx+=7;y=y/3;ORy/=3;

Oncestudentshavewrappedtheirheadsaroundthisnon-algebraicreading(andgivenyousomecorrectexamples),explainthespecialcaseofincrementingordecrementingby1:

x++;OR++x;x--;OR--x;

Grudgeball[35minutes][Optional]

Ifyoufeellikeyourclassunderstandsincrementandstringconcatenation,considerskippingthisgameandfocusingonon-the-boardexamples(youcanusethequestionsfromGrudgeballbelow)ormovingonto2.4.

1. Dividestudentsintotheirassignedteams.

2. Reviewtherulesforgrudgeball,andhavethestudentsrepeattherulesbacktoyou.

3. Usingtheproblemslistedbelow(andanyyoumayadd,dependingonyourclass’needs),playgrudgeballuntilateamwins,oruntiltheclassperiodends.

Lesson2.03:StringConcatenation&IncrementDecrementOperators

133

a.Ifaclassgetstheanswerwrong,BRIEFLYpausethegametohavestudentsoffercorrectionsbeforemovingtothenextteam’squestion.

b.Ifcorrectionseemstobedraggingon,jumpinandquicklyre-teachusingtheincorrectanswerasyourexample.Itisimportanttokeepthepacegoingtomaintainstudentinterestinthegame!

Gudgeballproblems&answershavebeengroupedassumingthatyouhave6teams.Ifyouhavefewerteams,each“round”willbeshiftedaccordingly,soyoumayhaveroundswheredifferentteamsarepracticingdifferentconcepts.Judgeeachteam’sknowledgegaps,andadjustwhichquestionsyouaskeachgroupaccordingly.

GRUDGEBALLPROBLEMSANDANSWERS

Whatdotheseevaluateto?

1)"Patrick"+"why"+"areyou"+"here?"→Patrickwhyareyouhere?

2)2+"words:"+"Na.Chos."→2words:Na.Chos.

3)"Friendship"+1+"$"+"magic!"→Friendship1$magic!

4)"Watchout"+"for"+"\"\""+""+"escapesequences!"→Watchoutfor""escapesequences!

5)"Pikachu,pikapika"+"peeeeeeeeka"+"ch"+0+0+"!"→Pikachu,pikapikapeeeekach00!

6)"PEMDAS"+"doesn't"+(2+3)*4+"matter"+"right?"+1→PEMDASdoesn’t20matterright?1

Writeastatementthat:

7)Increasesthecurrentvalueofxby150.→x=x+150;orx+=150;

8)Decreasesthecurrentvalueofyby9.→y=y-9;ory-=9;

9)Multipliesthecurrentvalueofzby5.→z=z*5;orz*=5;

10)Dividesthecurrentvalueofqby14.→q=q/14;orq/=14;

11)Incrementsxby1.→x++;,++x;,x=x+1;,orx+=1;

12)Decrementsxby1.→x--;,--x;,x=x–1;,orx-=1;

Predicttheoutput:

Lesson2.03:StringConcatenation&IncrementDecrementOperators

134

13)

intx=1;

x+=3;

System.out.println("Thevalueofxis"+x);

→Output:Thevalueofxis4

14)1+1+1+"1"+1+1+1→Output:31111

15)

inty=2;

y/=2;

System.out.println("1+"+y+"ishowmuchagain?");

→Output:1+1ishowmuchagain?

16)110–10+"flipit"+0+0+1→Output:100flipit001

17)"100–10"+"flipit"+0+"0+1"→Output:100–10flipit00+1

18)

intnumber=5;

number++;

System.out.println("Mynewvalue"+"isthe"+"number"+number);

→Output:Mynewvalueisthenumber6

AccommodationandDifferentiationIfyourclassisstrugglingwithlearningstringconcatenationand/orincrementingdecrementing,thebeststrategyhereistorepeat,repeat,repeat.Addmoresimpleproblemsbeforeyouadvancetothemixedtypeconcatenation,andworkthroughmoreoftheproblemsasawholegroup.

InELLclassrooms,youshouldreadeachquestionaloudinadditiontoshowingitontheboardorprojector.

CommonMistakes

Lesson2.03:StringConcatenation&IncrementDecrementOperators

135

Commonmistakeswithstrings:http://interactivepython.org/runestone/static/JavaReview/Strings/sMistakes.html

VideosCSE142(12:48–18:29)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ca84c6fe-878e-4bcf-92d4-a18edd3fef21&start=769

CSHomeworkBytes,MathematicalOperatorsandPrecedence,withVinniehttps://www.youtube.com/watch?v=RTmRwEy-yFA

ForumdiscussionLesson2.03StringConcatenation&IncrementDecrementOperators(TEALSDiscourseaccountrequired)

Lesson2.03:StringConcatenation&IncrementDecrementOperators

136

Lesson2.04—MixingTypes&Casting

Overview

Objectives—Studentswillbeableto…

DescribewhichtypesautomaticallyconvertintootherswhenappearingtogetherPredicthowanexpressionwithmixedtypeswillevaluateConverttypesbycasting

Assessments—Studentswill…

Use“zombierules”ofprecedencetocorrectlywritecodethatyieldsagivenanswerCreatetheirownexpressionsPredictoutputbycompletingandtradingworksheets

Homework—Studentswill…

ReadBJP2.3upto“NestedforLoops”Completeself-checkquestion18Finishtheworksheetifnotcompletedinclass

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhitepaperandmarkersClassroomcopiesofWS2.4,Poster2.4Zombie/werewolfvideo(https://www.youtube.com/watch?v=ZL-58z3HxUI&feature=youtu.be&t=2m41s)

Probablywanttoplayonmute!Unicornimage(http://1.bp.blogspot.com/_WOWQJUlRtKQ/TRD5BW8v5GI/AAAAAAAABAY/llLQ4VSCskc/s1600/moon-wallpaper9.jpg)

PacingGuide

Lesson2.04:MixingTypes&Casting

137

Section TotalTime

Bell-workandattendance 5min

IntroductiontoMixingTypes 10min

Activity1 15min

IntroductiontoCasting 5min

Activity2 15min

Turninworksheets,wrapup 5min

ProcedureToday’sclassusestheconceptofinfectionandcureasmetaphorsfortypeconversionandtypecasting.HavetheYouTubevideoofthewerewolvesandzombiesplayingasstudentsarrive.Oncestudentshavecompletedbellwork,hookyourclasswithadiscussionofthezombie/werewolffighthappeningonthevideo.

Bell-workandAttendance[5minutes]

IntroductiontoMixingTypes[10minutes]

1. Herearesomequestionstoguidethisopeningconversation:

Whohasseenmoviesaboutwerewolvesorzombies?Cananyonetellmehowyoubecomeawerewolf?Howdoyoubecomeazombie?Whatdoyouthinkwouldhappenifazombiebitawerewolf?

2. Introducethefollowingmetaphor:

Ifahumangetsbittenbyawerewolf,theybecomeawerewolf.Ifawerewolforhumangetsbittenbyazombie,itbecomesazombie.

So:zombie>werewolf>humanThesamesortofthinghappensifweputtogetherdifferenttypesinanexpression(aka“mixingtypes”):

Ifanintisplacedinanexpressionwithadouble,Javaconvertsittoadouble.(Itgetsinfectedandbecomesadouble.)

IfadoubleorintisplacedinanexpressionwithaString,JavaconvertsittoaString.(ThewerewolfdoublegetsbittenbythezombieString,andisnowalsoazombieString.)

Lesson2.04:MixingTypes&Casting

138

So:String>double>int

InJavawecallthis“promoting”becausethedoubleholdsmoreinformationthanint,andStringholdsmoreinformationthandouble!(We’lllearnmoreaboutwhatinformationisstoredinaString,butfornowjustrememberitstrue.)

Spot-checkyourstudentsbyaskingthemtonamethefantasy-equivalentforeachtypeinanexampleontheboard:

2+2.3(evaluatesto4.3becausehuman/int2ispromoted/infectedtowerewolf/double2.0)

Activity1[15minutes]

1. HavestudentsbeginWS2.4aloneorquietlyinpairs(thisstrategyisrecommendedforELLclasses).Directstudentstoonlyworkthroughwerewolfandzombiequestions(stopattheunicorns).

2. StudentsWILLtripuponthemixedtypeStringquestions.

a.Youshoulddefinitelycoveranexampleortwooftheseontheboard,andyoumayfindthatyouhavetoswitchtowholegroupinstructionforthemajorityofthese.

b.Yourpriorityshouldbetothoroughlycompleteseveralexamples,andtoseethatstudentscancompletethesequestionscorrectlywithoutyouraid.Ifyouneedtoslowdownyourpace,goforit!

3. Ifstudentsarecompletingthequestionson-pace,bringtheclasstogetherforanotherroundofwhole-groupinstruction.

IntroductiontoCasting[5minutes]

1. Introducetheconceptofcastingbyaskingstudentswhattodoiftheyreallywanttopreservethehumanrace(inttype)?

2. Review/repeattheearlierconceptsbyaskingstudents:Howdoweconvertwerewolf-doublestohuman-ints?

3. Introducecasting(Hamthisup:“Asweallknow,youcancureanythingwithunicornmagic!”)

Unicornmagic=“casting”(rememberthatUnicornsCASTamagicalspelltoprotecthumansorwerewolvesfrominfection/conversion)

Tocureawerewolf-double,sohebecomesahuman-int,youcanCASTitbyputtingthenameofthetypeyouwantinfrontofthevalueyouwanttoconvert(cast):

Lesson2.04:MixingTypes&Casting

139

(int)42.9⇒42

IMPORTANT:Javajustcutsoffthatextrapartafterthedecimal—italwaysroundstowardzero.

BUTunicornmagiccan’tturnzombiesbackintoanythingbecausemagiccan’tbringyoubackfromthedead.(Onceyou’reazombie,you’realwaysazombie!)Socasting(int)stror(double)stronaStringstrdoesn’twork.

Activity2[15minutes]

1. HavestudentsreturntoWS2.4,startingontheunicorn/castingsegmentoftheexercise.

2. Workthrough1or2problemsasawholegroupbeforeyouleavestudentstotheirowndevices.

3. Ifstudentfrustrationlevelsarehigh,bringtheclassbacktowhole-groupandworkthroughafewmoreexamplesslowlyandthoroughly.Ifyouneedtorevisittheanalogyorhavestudentsflipthroughtheirbooksagain,youshoulddosoatthispoint.

TurninWorksheets,WrapUp[5]

Attheendofclass,collectthecompletedworksheets.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtodrawordesignapostershowingtherelationshipbetweenmixedtypes.Thepostershouldcontainlargeimagesofhumans,werewolves,zombiesandunicornssothatstudentscanseetherelationshipsfromallaroundtheroom.

Evenifyoudonothaveastudentdothisforyou,weHIGHLYrecommendmakingaposterofthissort.Studentsdonotforgetit!Ifallelsefails,youcanusetheimagesavedasPoster2.4.

VideoCSE142,Casting(18:39–31:29)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ca84c6fe-878e-4bcf-92d4-a18edd3fef21&start=1119

Lesson2.04:MixingTypes&Casting

140

CSHomeworkBytes,TypeConversations,withKristinhttps://www.youtube.com/watch?v=y-4vMMeBcAc

ForumdiscussionLesson2.04MixingTypes&Casting(TEALSDiscourseaccountrequired)

Lesson2.04:MixingTypes&Casting

141

Lesson2.05—forLoops

Overview

Objectives—Studentswillbeableto…

Traceloopstopredictprogrambehavior.Constructloopstoexecutesimpletasks.

Assessments—Studentswill…

TraceandconstructloopsinPractice-Itproblems

Homework—Studentswill…

ReadBJP2.3“NestedforLoops”Completeself-checkquestions19-21(4 edition:22-24)

Materials&PrepProjectorandcomputerWhitepaperandmarkersClassroomcopiesofWS2.5

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontoforloops 15min

Practice-Itactivity 35min

Procedure

th

Lesson2.05:forLoops

142

Forloopsareveryconfusinginthebeginning,sowe’vepreparedastudenthandoutthatdiagramsthepartsofaloop.Encouragestudentstotakesupplementalnotesintheirnotebookandonthehandout.

Hookyourstudentsbybettingthem$100thatyoucanwriteaprogramthatoutputsthefirst1,000integersinfewerthan10linesofcode(adjustthesenumbersaccordingtothegullibility/jadednessofyourclassroom).

Bell-workandAttendance[5minutes]

IntroductiontoforLoops[15minutes]

1. Ifyouhaven’talready,distributethehandoutwithloopdiagramstoyourstudents.Followingalongwiththehandout:

Startbuildingyourforloop,narratingthepartsasyougo.Askstudentsforhelpwiththedifferentcomponentsoftheprogram(startingwiththepublicclass):

publicclassCount1000{

publicstaticvoidmain(String[]args){

for…

(Breaktoworkthroughthefirstpageofthehandout.)

2. Callonstudentstoreadtheparts1–4.Havestudentsplacetheirfingersonthepartofthediagramthatcorrespondstotheexplanatorytext.

3. PointoutthateventhoughJavaisreadingacrosstheforloopatthetop,Javajumpsdowntocheckoutthebodyofthelooptocheckifthetestistrue.Ifit’strue,itupdatestheloopandexecuteswhatwasinthebody.

Tracethisflowofcontrolontheboard,andhavestudentsphysicallytraceitontheirsheetsasyounarratethestepsagain.

Thislaststepisvery,veryimportant:don’tskipit!(humanshavehadcommunicationbytouchandsightlongbeforeweevolvedlanguage—thelearningcentersofourbrainarebetterabletopickupnewinformationifweinvolvemovement,touch,orphysicalmanipulation).

4. AskstudentstodoaquickThink-Pair-Shareastowhattheoutputwillbeforthesamplecodeonthehandout.Getthemstartedbywritingoutthefirstandsecondlineofoutputwhileyoutracetheloopasawholeclass.

Lesson2.05:forLoops

143

Ifthisgoeswell,moveonthefinalexampleandtheactivityfortheday.Ifitdoesn’t,re-teachtheconceptsusingtheflowchartonthebackofthehandout.

Again,havestudentstracethediagramwiththeirhands.Havethemturnthesheetbackovertothecodediagram,andnarratetheflowofcontrolastheymovetheirhandstowhereJavaisreadingtheprogram.

5. Returntotheprogramthatwilloutputthefirst1,000positiveintegersinfewerthan10linesofcode.Encouragestudentstoguesshowmanylinesitwilltaketowritethewholeprogram:

publicclassCount1000{

publicstaticvoidmain(String[]args){

for(inti=1;i<1000;i++){

System.out.println(i);

}

}

}

Tweakdifferentpartsofthecodeandaskstudentstopredicthowitwillchangeyouroutput.

Changethecontinuationtesttoi<=1000.Changethevariableitox.Changetheupdatetoi+=2(orx+=2,dependingonwhichcodeyouhaveupthere).Ifanyoftheseexamplesstumpyourclass(andtheywill),takethemthroughtheloop,onestepatatime,writingdownsampleoutputtofindthenewpattern.

Practice-ItActivity[35minutes]

1. Dependingonthemoodandfrustrationlevelsintheclass,youmaychoosetohavestudentsworkinpairs.

a.Ifstudentsarereallyhavingaroughtime,workthroughthefirstPractice-Itquestiontogetherasawholegroup.

b.Putsoft,soothing(butupbeat)musiconinthebackgroundtoeasetension!

2. HavestudentslogintoPractice-IttocompletethefollowingPractice-Itself-checkquestions:

a.Count2b.fingerTrapc.howManyLines

Lesson2.05:forLoops

144

3. Ifmore25%ormoreoftheclassisstruggling,returntowholegroupwiththestipulationthatstudentswhogetitmaycontinueworkingindependently.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtocompletePractice-Itself-checkproblems“numberTotal”and“blastoff”.

TeacherPriorCSKnowledgeThetextbookBJPintroducesreducingredundancyandgeneralizationearlyinthecurriculum.Becauseoftheearlyintroduction,studenthavenotbeenexposedtothelogicaloperatorsandhaveonlybeenintroducedtothenotionofbooleantypes.Youcanletstudentsknowthattheclasswillgooverthemiddlepartoftheforstatement,the“continuationtest”,willbecoveredindetailinafuturelesson.

Misconceptions

CommonSyntaxErrors

Usingcommasasthedelimiterintheforstatementisacommonerror.Thiscouldstemfromthedifferenceinpatternbetweenmethodcallsthatusecommaandforstatementsthatusethesemi-colon.

Specifyingthateachofthe3partsoftheforstatementisaJavastatementthatendsinasemi-colonmayhelpstudentsrememberthedelimiterisasemi-colon.

Unbalancedparenthesesand/orcurlybracketsstarts.

ManyclassesuseIDEsintheclassroom.Whenparenthesesorcurlybracketsareoff,theeditorstartsindentingthecodeinnon-standardways.Thisisthefirstindicationtothestudentthatthereissomethingwrongwiththesyntax.LettingstudentsknowthattheIDEhelpsformat,butifthereisasyntaxerrorintheircodewhiletyping,theeditorwillnotformatcorrectly.Thestudentmaywanttotakeacloserlookattheircode,specificallymatchingparenthesesandcurlybrackets.

Incorrectendingforstatementwithsemi-colon.

ConceptualErrors

Lesson2.05:forLoops

145

Variablescopeforthecountingvariableisrestrictedtotheforblock.

Orderofexecutionoftheinitialization,continuationtest,conditionalstatements,andupdatestatement.

Whenwalkingthroughexamplesofaforloop,itistemptingtouseboxestorepresenttheloopvariable.However,astheloopvariablechanges,thevalueisrepeatederasedtoindicatethenewvalue.Ifatableisusedandthevalueoftheloopvariablecrossedout,thestudentscanseetheprogressionofthevariablethroughtheiterations.

VideoBJP2–3,forLoopshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c2-3

CSE142,TheforLoop(31:30–42:03)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ca84c6fe-878e-4bcf-92d4-a18edd3fef21&start=1890

ForumdiscussionLesson2.05forLoops(TEALSDiscourseaccountrequired)

Lesson2.05:forLoops

146

Lesson2.06—nestedforLoops

Overview

Objectives—Studentswillbeableto…

Tracenestedloopstopredictprogrambehavior.Constructloopstoexecutesimpletasks.

Assessments—Studentswill…

TraceandconstructnestedloopsinPractice-Itproblems.

Homework—Studentswill…

ReadBJP2.4“Scope”and“Pseudocode”Completeself-checkquestions26,27(4 edition29,30)andexercise4

Materials&PrepProjectorandcomputerWhiteboardandmarker

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontonestedforloops 15min

Practice-ItActivity 30min

LoopChallenge 5min

Procedure

th

Lesson2.06:nestedforLoops

147

Todayyourhookisanotherwager,onlythistimethestudentshavetocreatethecodetogetthereward(TEALSswag,ticketstotheraffle,bonuspoints,etc.).Ifyouplantouseabadgesystem,thisprojectisagoodonetostartwith(a‘loop’badge,perhaps?).

Bell-workandAttendance[5minutes]

IntroductiontoNestedforLoops[15minutes]

1. Remindstudentsofyesterday’sbet,thentellyourstudentsthatyou’llawardthem[prize]iftheycanrewritetheprogramfromyesterdayin11lines.Thecatchisthatstudentcan’tusealoopthatexecutesmorethan10times!Explainthatyou’regoingtogivethemanewprogrammingtooltoday,andthenthey’llhavesometimeattheendofclasstoseeiftheycanmeetyourchallengeforthepoints.

2. Reviewtheconceptof“controlstructure,”andhavestudentsexplaintoyouthattheloopcontrolsthestatementsintheloopbody.Askstudentstowalkyouthroughtheexampleontheboard,narratingwhatJavaisdoingasyouadvanceyourhandalongtheloop:

for(inti=1;i<=3;i++){

System.out.println("Calacasycalaveras!");

}

Youmightconsiderdeliberatelyleavinginanerrorortwoasyouwritethecodeontheboard—studentsLOVEtocatchyouinanerror!Ingeneral,leavinginerrorsisagoodwaytoconditionerror-checkingbehaviorinyourstudentswithoutthemfeelingforced.Ifstudentsdon’tcatchtheerrorbeforeyou’rereadytomoveon,pointtoitandaskstudentsifthecodeiscorrect.Occasionallypointtocorrectcodeandaskstudentstoexplainwhyitisapropercodingchoice,orwhatotheroptionswouldbe.

IfyourclassdoesnotcelebrateDíadelosMuertos,changethestringaboveto“TrickorTreat,”“AllSaintsDay,”“KolSanaWentaTayeb”orwhateverismostrelevant.

Ifyourclassneedsmorephysicalengagement,haveavolunteercometotheboardtobeconsoleoutput,andpointtothem,directingthemtowriteoutputontheboardeverytimetheloopisexecuted.Youcanalsohaveanotherstudentwalkthroughtheflowoftheloopinyourplace.

3. Asyouinsertanotherlooptocreateanestedloop,explainthatthegreatthingaboutcontrolstructuresisthattheycancontrolothercontrolstructures!

Lesson2.06:nestedforLoops

148

(Engagementoption:ifyourclassisfamiliarwithXzibit/PimpmyRide,thisisagreatopportunityforayo-dawgmeme,butatthispoint,thisisprobablyonlyareferencethatcollege-ageandabovewillget.)

for(inti=0;i<3;i++){

for(intj=1;j<=3;j++){

System.out.println("Calacasycalaveras!");

}

}

Pointoutthatwealwaysuseadifferentcontrolvariable(jinsteadofi)sothatJavaknowswe’rewritinganewloop.

Asyouwritetheinnerloop,askstudentshowmanytimesitexecutes,andbrieflydiscussthedifferencebetweeninitializingat0and1,andhowthatrelatesto<or<=inthetest.

AskstudentshowmanylinesJavawilloutput(9),andwalkthroughtheloopshowingflowofcontrolanddirectingastudenttoproducetheoutput.

publicclassCount1000{

publicstaticvoidmain(String[]args){

for(inti=1;i<1000;i++){

System.out.println(i);

}

}

}

4. Tweakdifferentpartsofthecodeandaskstudentstopredicthowitwillchangeyouroutput.

Changethecontinuationtesttoi<=1000.Changethevariableitox.Changetheupdatetoi+=2(orx+=2,dependingonwhichcodeyouhaveupthere).Ifanyoftheseexamplesstumpyourclass(andtheywill),takethemthroughtheloop,onestepatatime,writingdownsampleoutputtofindthenewpattern.

Practice-ItActivity[30minutes]

Dependingonthemoodandfrustrationlevelsintheclass,youmaychoosetohavestudentsworkinpairs.

Lesson2.06:nestedforLoops

149

Ifstudentsarereallyhavingaroughtime,workthroughthefirstPractice-Itquestiontogetherasawholegroup.

Putsoft,soothing(butupbeat)musiconinthebackgroundtoeasetension!

HavestudentslogintoPractice-IttocompletethefollowingPractice-Itself-checkquestions:

a.starExclamation1b.starExclamation2c.starExclamation3

HavestudentscompletethePractice-ItExercise“starTriangle.”

a.Youshouldemphasizetheimportanceofconstructingastructurediagrambeforetheystartcoding.

b.Althoughwehaven’ttalkedaboutpseudocodeyet,suggestthatstudentswriteoutinEnglish(orwhatevertheirpreferredlanguageis)thestepsthattheywillneedtodotosolvetheproblem.Encouragestudentstoworkonthisinpairsifneeded.

Ifmore25%ormoreoftheclassisstruggling,returntowholegroupwiththestipulationthatstudentswhogetitmaycontinueworkingindependently.

LoopChallenge[30minutes]

1. Ontheboardortheprojector,bringupthechallengeyouintroducedinthebeginningofclass.

StudentsmaybeginonthechallengeoncetheyhavefinishedtheirPractice-Itexercises.

Inordertoencourageallstudentstotrythechallenge,allowslowerstudentstosubmittheirchallengeanswerelectronicallybytheendoftheday.(Thiscompromisegivesthemtimetoworkonthecodeatlunchorafterschool,butdissuadesstudentsfromdirectlycopyingothers’answers.)

LOOPCHALLENGE

Writeaprogramthatoutputsthefirst1,000integersin11linesofcode.Youmaynotusealoopthatexecutesmorethan10times.

Lesson2.06:nestedforLoops

150

publicclassCount1000{

publicstaticvoidmain(String[]args){

for(inti=0;i<10;i++){

for(intj=0;j<10;j++){

for(intq=0;q<10;q++){

System.out.println(i);

}

}

}

}

}

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CompletePractice-Itself-checkExercises“fibonacci”and“numberTriangle.”

Developanalgorithmfortacklingcomplexcodingproblems.(Whatgeneralizablestepsdidtheytaketocorrectlybuildthenestedloopprograms?)

Havethestudentturntheseideasintoamnemonic,poster,orchecklisttosharewiththeclass.

MisconceptionsDeterminingthepurposeofthetwovariablescountersinnestedloopsisconfusingtostudents.Mostintroductionstonestedloopsuse“i"and“j”astheloopvariables.Startingwith“i"isacarryoverfromtheFortranprogramminglanguagewherevariablesstartingwiththelettersItoNwereintegersandloopvariablesareintegers.However,Javadoesnothavethisrestriction,integervariablescanstartwithanyletter.

Inordertohelpstudentsgraspthetwoloopvariables,useloopvariablesincontextwherestudentsmaybemorefamiliarwith:row/column,x/y.Thisaffordsusingagraphicalrepresentationthatstudentscanplotwhiletracingthroughthenestedloops.

Confusionoftheorderofexecutionofthe3partsoftheforloopfromasingleforloopgetscompoundedwithnestedforloops.Theorderofexecutionforthenestedloopis:

outerloopinitializevariableouterlooptestconditioninnerloopinitializevariableinnerlooptestcondition

Lesson2.06:nestedforLoops

151

bodyofinnerloopinnerloopupdatevariablerepeatinnerloopouterloopupdatevariablerepeatouterloop

Attemptingtousetheinnerloopvariableintheoutsideloopblock.Itisnotobvioustobeginnersthateventhoughtheinnerblockvariableisdeclaredinsidetheouterblock,theinnerblock’sscopeisrestrictedtotheinnerblock.

VideoBJP2–4,NestedforLoopshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c2-4

CSE142,NestedforLoops(16:18–37:50)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ca84c6fe-878e-4bcf-92d4-a18edd3fef21&start=2524

ForumdiscussionLesson2.06NestedforLoops(TEALSDiscourseaccountrequired)

Lesson2.06:nestedforLoops

152

Lesson2.07—Scope&Pseudocode

Overview

Objectives—Studentswillbeableto…

Identifythescopeofavariable.Identifycommonscopeerrors

Assessments—Studentswill…

Completeaworksheet

Homework—Studentswill…

ReadBJP2.4“Pseudocode”Completeself-checkquestions31-33(4 edition34-36)Checkclassnotesforcompletion,addingdailysummariesifneeded

Studentsmayusethebooktosupplementtheirnotesifneeded.

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS2.7

Sincemostoftoday’slessonfollowsWS2.7,youshouldhavereadthroughtheworksheet.Youmayprefertodeletethenotesfromtheworksheet(soitisonlyasheetofexercises)ifyouareworkingondevelopingnote-takingskillsinyourclassroom.WerecommendleavingthesesectionsinforELLclassrooms,soyourstudentscanfocusonsyntaxrulesinsteadoftranslatingwhattheyarehearingtovocabularytheyneedtothenwriteintheirnotebooks.

PacingGuide

th

Lesson2.07:Scope&Pseudocode

153

Section TotalTime

Bell-workandattendance 5min

Introductiontoscope 10min

Worksheetactivity 15min

Introductiontopseudocode 5min

ProgrammingProject1 20min

ProcedureScopeisanotherchallengingtopic,sowe’vepreparedastudenthandoutthatdiagramsscope.Encouragestudentstotakesupplementalnotesintheirnotebookandonthehandout.

Bell-workandAttendance[5minutes]

IntroductiontoScope[10minutes]

1. UsingWS2.7,walkstudentsthroughthesampleillustrationofscopeandscope-relatederror.

Beforeyouexplainthatbracketsdefinescope,askstudentstotellyouwhytheythinktheerrorintheexample.Theymaybeabletospotthescopefromtheirreadinglastnight.

2. Havestudentscopytherulesforscopeofftheworksheetandintotheirnotebooks.Studentsshouldheadthepage“The4CommandmentsofScope,”andillustrate,circle,highlight,star,orotherwiseemphasizetheserulessotheyareeasytofindinthenotebookthroughouttheyear.

Transcribingthesenotesisnotbusywork—intheELLclassroom,thisslowsdownthepaceandallowsstudentsadditionaltimetoprocessthelanguageandstudytheconceptsconveyed.Thisisagoodstrategyforallclasses(ELLornot)!

Atthispoint,yourclassmayberaringtogetstartedontherestoftheassignmentwithoutyourhelp.Iftheyare,great!

Iftheyarestillseeminguncertainabouthowtoapplyrulesofscope,walkthroughExercise1aandasktheclasstoexplaintoyouhow/whyyouknowthatscopeabeginsandendswhereitdoes.

Lesson2.07:Scope&Pseudocode

154

WorksheetActivity[15minutes]

1. HavestudentsworkindependentlyorinpairsonWS2.7.

a.Remindstudentstorefertotheir4Commandmentswhensearchingforerrors.

b.Playmusicquietlyinthebackgroundtoencouragefocusanddiscouragechatting.

c.Ifstudentsarestrugglingwiththeexercise,allowthemtopairup.Encouragestudentstotradepapersandlookforerrors.

2. Ifmore25%ormoreoftheclassisstruggling,returntowholegroupwiththestipulationthatstudentswhogetitmaycontinueworkingindependently.

3. Reviewanswersasawholegroup.MakesuretocallthevariablesboxedinExercise1“localvariables,”andaskstudentstoexplainwhatmakesthemlocalized.

Introductiontopseudocode[5minutes]

Usinganexamplethatwaspopularduringthelastweekofclass,showstudentshowtoplanaprogramusingpseudocode.

ProgrammingProject1[20minutes]

Asaclass,beginplanningaprogramtoanswerProgrammingProject1.

Thechallengingtaskofwritingthepseudocodeand/orstructurediagram(youshouldalwaysrequireone,both,oracombinationofthetwo)isthemostimportantpartofthisexercise,soavoidthetemptationofgivingstudentstoomuchguidance.

AccommodationandDifferentiationItislikelythatstudentswillnotfinishtheprogrammingprojectduringclass.Youcanreducestudentstressbysettingtheexpectationthattheysubmitcompletepseudocodebytheendofclass;notacompletedprogram.Youmayextendtheprogramforadvancedstudents,andaskthattheysubmitanentireprogram(completewithclassheader).

VideoBJP2–5,DrawingComplexFigureswithforLoopshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c2-5

Lesson2.07:Scope&Pseudocode

155

CSE142,ManagingComplexity:ProblemDecompositionandPseudocode(1:58–16:17)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=3431711f-29f8-43a5-9855-4d09894ae29d&start=118

CSE142,ManagingComplexity:NestedLoops(16:17–37:50)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=3431711f-29f8-43a5-9855-4d09894ae29d&start=977

CSE142,ManagingComplexity:ClassConstant(Optional)(37:51–49:17)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=3431711f-29f8-43a5-9855-4d09894ae29d&start=977

CSE142,ManagingComplexity:Review(Optional)(0:58–21:04)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=26cacdb4-6e47-405f-a788-912a9a158b41&start=58

ForumdiscussionLesson2.07Scope&Pseudocode(TEALSDiscourseaccountrequired)

Lesson2.07:Scope&Pseudocode

156

Lesson2.08—ProgrammingProject

Overview

Objectives—Studentswillbeableto…

Planandconstructastructuredprogramcontainingnestedloops.

Assessments—Studentswill…

Submitacomplete,functionalprogrambytheendofnextclass

Homework—Studentswill…

OutlineChapter2,omittingBJP2.5

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)Studentself-helpsystem(suchasC2B4orstudentpairing)

Makesureyouaresetuptogradestudentnotebookstoday.Ifpossible,youshouldonlycollect3–5notebooksatatimesostudentshavetheirnotebooksavailabletoreferenceduringprogrammingtime.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction&classroomprocedures 10min

Programmingproject 30min

Studentstradework,check,&submit 10min

Procedure

Lesson2.08:ProgrammingProject

157

Topreparestudentsfortheupcomingunitexam,thenextfewclassperiodswillbedevotedtoreinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedthisunit.

Bell-workandAttendance[5minutes]

IntroductionandClassroomProcedures[10minutes]

1. Ifyourcomputertimerequiresyoutomovetoanotherroomortochangeseating,youshouldteachand/orreviewthoseproceduresbeforeintroducingthelabmaterial.It’sbeenafewweekssincethelastlongformprogrammingassignments,somakesuretoaskstudentswhattheproceduresareifthey:

havegottenstuck(checkpseudocodeandstructurediagram),finishedearly(moveontochallengequestions),orcan’trememberacodingruleorprocedure(checkyournotes,worksheets,andtextbook,C2B4)

Unlessyouhavehadstudentssubmittingworkelectronicallyregularly,youshouldmodelandreviewthoseproceduresbeforestudentsbeginwork.

2. Introducetheprogrammingproject,takingamomenttotalkstrategywithyourclass.

PROGRAMMINGPROJECT:Writeaprogramthatproducesthefollowingfigureasitsoutputusingnestedforloops.

|"""""""""|

\:::::::/

\:::::/

\:::/

\:/

/:\

/:::\

/:::::\

/:::::::\

|"""""""""|

TIPS:StartwithastructurediagramorwritingoutstepsinEnglishaspseudocode.Trytoisolaterepeatedtasksintomethods.Includecommentsinwithyourcodesootherscaneasilyunderstandwhatthecodeissupposedtodo.

3. Askyourclassforsuggestionsastohowtotacklethisprogrammingproblem.Studentsshouldsuggestdrawingastructuraldiagram,buildingtheprogramonemethodatatime(iterativedevelopment),andfollowingthecorrectionstepsontheirpersonalalgorithms(debugging).

Lesson2.08:ProgrammingProject

158

Proceduraldecompositionishard!Asagroup,askstudentstodiscusswhatcomponentsgointodrawingeachline.

Whatcharacteristicsstaythesameforeachline?(Slashes,colons,spaces)Whatcharacteristicscouldweusealoopfor?Whatmightwewanttomakeitsownmethodthatwecancallmorethanonce?

ProgrammingProject[30minutes]

GetstudentsstartedontheASCIIartprogrammingproject.Offerstudentshelpaftertheyhavetriedtoanswerthequestionsthemselves:

a.Havethecheckedthebookforexamples?

b.Havetheyaskedafriend(ortwo)forhelp?

Ifstudentsseemtobegettingstuckonthesamesegmentofcode,offerahintortipontheboard(silently,withoutdisruptingstudentflow).

Iftheentireclassisstuck,returntowholegroupandworkthroughtheprogrammingchallengetogetherasaclass,havingstudentsofferanincreasingproportionoftheanswersasyoumovealong.

Studentstradework,check,andturnin[5minutes]

Attheendofclass,havestudentslookovereachother’sprojectsbeforesubmitting.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthisproject,youshouldencouragethemto:

Finishtheprogrammingprojectstartedinclassyesterday.ActasstudentTAsandhelpstrugglingclassmates(NOTE:youshouldspecificallydirectstudentsNOTtogiveanswers,buttohelpstudentsthinkofideasontheirown.)

Ifyouhavestudentsthatarestrugglingduringthisclass(andyouwill),resisttheurgetohelpstudentstoomuchatthisstage.Askleadingquestions,directstudentstotheirnotes,oranexamplethatdemonstratesasimilarsolution,butdon’tgivestudentstheanswerhere.Resilience/gritisanimportantemotionaltoolforsolvingcomplexprogrammingproblems:theemotionaljourneystudentstakeduringthesedifficultprogrammingproblemsisasimportantastheactualcodingchallenge.

Ifstudentsarehavingtroubleduetolanguage,pairstudentsupsothosewithmoreadvancedEnglishcanhelpthosethatareemergentlanguagelearners.

Lesson2.08:ProgrammingProject

159

ForumdiscussionLesson2.08ProgrammingProject(TEALSDiscourseaccountrequired)

Lesson2.08:ProgrammingProject

160

Lesson2.09—ProgrammingProject

Overview

Objectives—Studentswillbeableto…

Planandconstructastructuredprogramcontainingnestedloops.

Assessments—Studentswill…

Submitacomplete,functionalprogrambytheendofclass.

Homework—Studentswill…

Completepracticequestionswithclassconstants

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)Studentself-helpsystem(suchasC2B4orstudentpairing)

Todayisday2oftheprogrammingproject;besuretoremindstudentsthattheyonlyhavethefirst30minutesofclasstofinishandsubmittheirprogram.Bepreparedtoreviewthecorrectcodeandofferanupgradeusingclassconstantsforthesecondhalfofclass.

Ifyouhavenotfinishedgradingnotebooks,makesureyouaresetuptogradestudentnotebookstoday.Ifpossible,youshouldonlycollect3–5notebooksatatimesostudentshavetheirnotebooksavailabletoreferenceduringprogrammingtime.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Programmingproject 30min

Introductiontoclassconstants 10min

Studentsupdatetheircode 10min

Lesson2.09:ProgrammingProject

161

ProcedureToday’slessonwillbeacombinationofdrillingthepartsofabasicprogram,andconditioningstudentstocheckforcommonerrors.Tohookyourclass,havepicturesofpunchcardsandpunchcardreadersupwhenstudentsenter.Ifpossible,havephysicalpunchcardsavailabletopassaroundtheroomfortactilelearnersasyouexplaintheoriginsofthephrase“bug”and“debugging.”

Bell-workandAttendance[5minutes]

ProgrammingProject[30minutes]

Havestudentscontinuetheprogrammingproject,aimingtofinishwithabouttenminutesleftinclass.

IntroductiontoClassConstants[10minutes]

1. PresentonaboardorprojectoracompleteJavaclassthatsolvestheprogrammingproject.Ideally,thiswouldbeastudentsolution.Walktheclassthroughthesolution,havingstudentshelpyoutracetheflowofcontrolandpredictingoutputtoconfirmthattheprogramworks.

AskstudentswhattheywouldneedtochangeinordertomakethehourglassXunitslarger.Onlychangethevaluesthatstudentsspecifyinordertodrivehometheideathatmanyvaluesintheforloopterminationmustbeupdated.

Suggestthattheremightbeaneasierwaytoupdateallofthesevaluesatonce,andintroduceclassconstants.

2. Traceorruntheprogramwiththeupdatedclassconstantstodemonstratethatthisdoesindeedwork.

3. IfyouarerunningtheprograminEclipse,showthatyoucaneasilychangetheconstants.Changethevaluesseveraltimes,runningtheprogrameachtimetodrivethishome.

StudentsUpdateTheirCode[10minutes]

Givestudentstimetoupdatetheirprojectcode,nowincludingclassconstants.

AccommodationandDifferentiation

Lesson2.09:ProgrammingProject

162

Ifyouhavestudentswhoarespeedingthroughthisproject,youshouldencouragethemtoactasstudentTAsandhelpstrugglingclassmates(NOTE:youshouldspecificallydirectstudentsNOTtogiveanswers,buttohelpstudentsthinkofideasontheirown.)

Ifyouhavestudentsthatarestrugglingduringthisclass(andyouwill),resisttheurgetohelpstudentstoomuchatthisstage.Askleadingquestions,directstudentstotheirnotes,oranexamplethatdemonstratesasimilarsolution,butdon’tgivestudentstheanswerhere.Resilience/gritisanimportantemotionaltoolforsolvingcomplexprogrammingproblems:theemotionaljourneystudentstakeduringthesedifficultprogrammingproblemsisasimportantastheactualcodingchallenge.

Ifstudentsarehavingtroubleduetolanguage,pairstudentsupsothosewithmoreadvancedEnglishcanhelpthosethatareemergentlanguagelearners.

ForumdiscussionLesson2.09ProgrammingProject(TEALSDiscourseaccountrequired)

Lesson2.09:ProgrammingProject

163

Lesson2.10—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

Studyforthetestby:ReviewingallthebluepagesattheendofChapter2Re-readingsectionsasneeded

Submit5questionsforreviewinclasstomorrowusingelectronicsurvey

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Whenyougradehomeworkassignments,itwillbemostusefultotheselessonsifyouonlymarkananswerincorrectorcorrect.ELLclassroomsaretheexceptiontothisrule—studentswillbehavingahardenoughtimejustreadingthematerial;youcanspeedalongtheirprocessingbycorrectingoneexample,thenhavingthemlookforsimilarerrorswiththatexample.

Thehomeworktonightasksstudentstosubmit5questionsforreview.Createanelectronicsurveyforstudentstocompletewith6textfields,oneforname,and5forquestionstheyhaveaboutCh.2content.Setatime-deadline(e.g.10pm)bywhichtimestudentsmusthavesubmitted5questionsfromCh.2thattheywouldliketoseereviewedintomorrow’sclass.Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

Lesson2.10:Finding&FixingErrors

164

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkassignments.Ifstudentsdidnothavetimetofinishtheprogrammingprojectsfromyesterday,youmayallowthemtimetoworkonthoseprojectstoday.

Thisisagooddaytoloosenupthevibeintheclassroomabit.Tryplayingmusicsoftlyinthebackgroundtoencouragestudentstorelaxandfocusonspottingerrors.Trytoavoidloud,rhythmicmusic,andavoidthepitfallofallowingstudentstoselectthestation!

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.

a.Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.

b.Hopefully,studentssuggestusingthe4CommandmentsofScope,creatingpseudocodeand/orstructurediagramstoclarifythinkingonprogramstructure,andcheckingtheirnotesandthetextbook.

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Lesson2.10:Finding&FixingErrors

165

Offertimechecksforstudentssotheystayontask.

Ifstudentshavenotfinishedtheirprogrammingprojectfromyesterday’sclass,allowthemtodosotoday.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtotackleprogrammingproject2&3inthetextbook.

Ifyouwereunabletofinishgradingstudentnotebooksyesterday,finishthemtodaywhilestudentsareworking.Returnnotebooksbytheendofclasssostudentsmayusethemtostudyfortheexam.

ForumdiscussionLesson2.10Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson2.10:Finding&FixingErrors

166

Lesson2.11—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit2knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stest!

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopicsClassroomcopiesofthepracticetestWS2.11

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandtestformatorientation 15min

Testreview 30min

Checkstudentstudylists 5min

Lesson2.11:Review

167

ProcedureEngagetheclassinthereviewsessionbypointingoutthatyourreviewtopicshavebeenhandselectedbytheclass.Explainthatyouwillreviewtest-takingstrategiesinadditiontoreviewingsubjectmatter.

Bell-workandAttendance[5minutes]

IntroductionandTestFormatOrientation[15minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Studentsshouldalreadybefamiliarwiththesectionsofthetest,butitdoesn’thurttohavestudentsre-readthedirections.

3. Workthroughthesampleproblemsonthetestasawayofreviewingtopics,andansweranyquestionsthatstudentsbringupasyougo.

TestReview[30minutes]

1. Usingtheresultsfromtheelectronicsurvey,addressthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

a.Somequestionsyoumayalreadyhaveaddressedwhileworkingthroughthesampletest.

b.Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

c.Jotdownnotesaboutwhichtopicsyoucoveredinreviewsoyoucanadjusttheexamtoreflectthetopicsyourstudentshavelearned.

2. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

3. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.(Yes,thiswillbearemindereveryfewminutes,butitwillpayofflaterwhenstudentsstartcreatingreviewlistswithoutpromptinglaterintheyear!)

Checkstudentstudylists[5minutes]

Lesson2.11:Review

168

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

AccommodationandDifferentiationInELLclasses,youmaywanttochangecode-writingquestionstoParsonsProblems.EducationalresearchshowsahighcorrelationbetweenParsonsscoresandcodewritingscores,andalowcorrelationbetweencodewritingandtracingandbetweenParsonsandtracing.(Inotherwords,ParsonsProblemsaccuratelyassessastudents’abilitytocreatecode.)FormoreinformationonParsonsProblems,checkoutthispaper(https://cseweb.ucsd.edu/classes/fa08/cse599/denny.pdf).

Eveninanon-ELLclass,youmaywanttochangesomeSectionIIquestionstoParsonsproblemsbecause(1)gradingthequestionsiseasier,sincelogicandsyntaxerrorsareeasytodiscern,and(2)studentschallengedbylanguageprocessingareabletomorequicklycompletetheproblem.

Ifyourstudentsareeasilycompletingtheprogrammingprojectsintheweekleadingtothetest,youmaywanttoeditthetestbydeletingthe“fillintheblanks”andleavingemptyspace.

ForumdiscussionLesson2.11Unit2Review(TEALSDiscourseaccountrequired)

Lesson2.11:Review

169

Lesson3.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit2.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP3.1upto“LimitationsofParameters”Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

Lesson3.00:TestReview&Reteach

170

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

howtheyfelttheyweregoingtodobeforethetestwhatsurprisedthemoncetheyweretakingthetestwhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).Inanon-judgmental,supportivetone,remindstudentsthattobesuccessfulinthecourse:

ReadingismandatoryHomeworkismandatory(Andvaluable!Youwillneverassign“busy”work.)Tobettermanagetheirtime,studentsshouldplanfor1hourofhomeworkaweeknight,withupto2hoursofhomeworkeachweekend.Ifthisseemsimpossible,theyshouldmeetwithyouortheirguidancecounselortoassesswhethertheycanfitinanAPclassatthistime.ItisVERYimportanttokeepyourtonesympatheticatthispoint—anoverworked,overstressed,underperformingstudentwillslowyourentireclassdown,andcolorthatstudentagainstCSforthefuture!

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

a.Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

Lesson3.00:TestReview&Reteach

171

b.Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationIfstudents’gradesaresufferingbecausethereadingassignmentsaretakingthemtoolong,youhaveafewoptions(somemoredrasticthanothers):

Setasideclassroomtimetoreadthroughtheassignmentbeforestudentsleave.

Givestudentsthelinesofcodeneededtocompleteassignments,butinjumbledorder.Havestudentsrearrangethelinesofcodeintotheproperprogram(thisiscalledaParsonsProblem).

Flipyourclassroom:recordyourlectures,andhavestudentswatchthemandtakenotesforhomework.Anyclassworkdrillsorworksheetscanbedistributedfor“homework,”andthemorecomplicatedassignmentsthatwouldnormallybedoneathome,canbecompletedwithyourhelpwhentheycometoclass.

Ifstudentsdon’thaveacomputertoworkonPractice-Itproblemsathome,createprinted-outsheetsinsteadthatstudentscanwritecodeonto.Classtimeshouldthenbefilledwithreadingassignments,andmorecomplicatedcodingpracticesothatyouareavailabletotutorasneeded.

Encourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.Amoreopen-ended(andmoreinteresting)challengewouldbetohave

Lesson3.00:TestReview&Reteach

172

studentsflesh-outadditionalsectionsofalarger,year-roundPokémon-esquegame.Foreachconceptyoulearn,askyouradvancedstudentstothinkofafeatureorsequencefromthegamethatcanbeprogrammedusingthetoolsthey’veacquired.

Encouragestudentstocarefullynametheirfiles,andleavelotsofcommentssotheycanusethecodelaterintheyeartoputthegametogether.

ForumdiscussionLesson3.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson3.00:TestReview&Reteach

173

Lesson3.01—Parameters

Overview

Objectives—Studentswillbeableto…

Correctlyconstructformalandactualparameters(arguments).Predictoutputofprogramsthatuseparameters

Assessments—Studentswill…

Teachamini-lessonexplainingtherelationshipbetweenparametersandvaluesSubmitPractice-Itquestions

Homework—Studentswill…

ReadBJP3.1“LimitationsofParameters”and“MultipleParameters”Completeself-checkquestions4-7

Materials&PrepProjectorandcomputerWhiteboardandmarkersAssignmentsfor5studentgroupsGIFofsoftwaredevelopmentgoneawry(https://g.redditmedia.com/tPgaGgDXL0yZyLe_4pjr1ZO2_qpIOk8t5eopSErOwVk.gif?w=320&s=c5345cd1b395f874f92f51e2509e97ae)

PacingGuide

Lesson3.01:Parameters

174

Section TotalTime

Bell-workandattendance 5min

Instruction 15min

Studentmini-lessonpreparation 10min

Studentmini-lessondelivery 10min

Practice-ItActivity 10min

ProcedureYourhookfortodayisanexampleofwhathappenswhenwedon’tstayflexiblewithourprogramming.Havethegifupandlooping,andexplainthatthisimageisanillustrationofwhatcanhappentoourprogramsifwedon’tmakethemadaptable.

Bell-workandAttendance[5minutes]

Instruction[15minutes]

1. Beginclasswithalecture/discussionthatintroducesparameters

Partofthereasonsthathumansaresogoodatsolvingnewproblemsisthattheygeneralizethesolutiontowholecategoriesofproblems.

Thebookgivesanexampleofwalkingasageneralizabletask—walking20stepsandwalking10stepscanbedescribedasthetaskof“walkingforward,”andthepartthatvaries(wecallthisaparameter)isthenumberofsteps.

Inprogramming,whenwemakecodeflexibleby“parameterizing”partsofthetaskthatarelikelytochange,weendupwithprogramsthatareshorter,easiertounderstandforothercoders,betterorganized,andreusable.

Imaginehowdifficultlifewouldbeifyouhadtoseparatelylearnallthemovementsrequiredtowalk10stepsdownthatrunwayinadditiontotheprocedureforwalking20stepsittakestogettothestage?Instead,yourbraincomputesageneralrulesomethinglike“walkonlythenumberofstepstothenextobstacle,”then(ideally)youreyesandearsinputhowmanystepsthatshouldbe.

Javaisthesameway—ittakeslessmemoryandcomputingpowertoexecuteaprogramifyouwritecodethatisflexible/reusablewithdifferentparameters.(Infact,inthischapterwe’regoingtolearnhowtouseuser

Lesson3.01:Parameters

175

input—liketheinformationwegetfromoureyesandears—toinfluencethebehavioroftheprogramswewrite!)

Whataresomeotherbehaviorsthatwe“parameterize”everyday?(Ifstudentsneedhelpgettingstarted,suggest:

Braidinghair:differentheadsrequireadifferentnumberofbraids,butthebraidingisalwaysthesameprocedure.

TurningonthestereoorTV:themethodstoturnontheTV,radio,orstereoarealwaysthesame,butyouadjustthevolumetodifferentlevelsdependingonthetimeofday.Whatwouldtheparametersbeinthisexample?(Time,volume)

2. Ifyourstudentshadaproblemfromthelastcoupleofweeksthatdrovethemcrazy,usethatexampleinstead,sincethey’llalreadyhaveaclearmemoryofit.Otherwise,reviewthisprogrammingexamplefromthebook:

Inthelastchapter,weinsertedspacesintoadrawingbycallingamethod:

writeSpaces();

IfwewantedtotellmethodwriteSpacestooutput10spaces,wemightdecidetodeclareavariable:

intnumber=10;//Cananyoneexplainwhythiswon'twork?

writeSpaces();

→Thiswon’tworkbecausenumber’sscopeisoutsidethewriteSpacesmethod.

Insteadweparameterizethenumberofspacesbychangingthemethodheaderashighlightedbelow(thisusedtobeemptyparentheses,remember?)

publicstaticvoidwriteSpaces(intnumber){

for(inti=1;i<=number;i++){

System.out.print("");

}

}

Nowwhenwecallthemethod,wecan(andmust!)includetheparameterizedvalue:

Lesson3.01:Parameters

176

writeSpaces(10);

writeSpaces();//ERROR:Noparameterspecified

writeSpaces(24901);

writeSpaces(9/3-2);

OntheboardorinEclipse,pointoutthedifferencebetweenanactualparameter(argument)andaformalparameter(orjust“parameter”).Pointtoafewdifferentexamplesofeachonsamplecode,askingstudentswhichoneiswhich,andhowtheyknow.

StudentMini-LessonPreparation[10minutes]

1. Studentsaregoingtogetachancetoteachthesecondhalfofclass—themechanicsofparameters.Assigneachgrouponesectionofthesamplecodeinsection3.1“MechanicsofParameters.”

Studentgroupsshouldtake10minutestoreviewtheprogram,readtheexampleonthepagesfollowingtheexample,thenfigureouthowtheywanttoexplaintoclasswhatvaluesarebeingstoredinthecomputer’smemory.

2. Ontheboardoroverhead,givestudentsafewthingstheyshouldconsiderinplanningtheirminilesson:

a.Whoisgoingtospeakwhen?

b.Howareyougoingtoillustratetheflowofcontrol?

c.Whatdoyouneedtohaveupontheboardtoillustrateyourmini-lesson,andwhoisinchargeofwritingitout?

d.Whereandhowwillyoufeaturetheoutputproducedbyyourcodesegment?

StudentMini-LessonDelivery[10minutes]

Havestudentgroupssequentiallyteachthroughtheexampleinthebook,demonstratingthechangestothestoredvalue,predictingoutput,andtracingtheflowofcontrol.

Practice-ItActivity(ifneeded)[10minutes]

Ifthemajorityofstudentsareunderstandingthecontent,allowstudentstoworkindividuallyonPractice-Itself-checkproblems:

a.methodHeaderSyntaxb.MysteryNumsc.Oops3-errors

Lesson3.01:Parameters

177

AccommodationandDifferentiationIfstudentsarestrugglingwithcontent,youmightopttoworkonPractice-Itinawholegroupsetting.Insomeclasses,theteachingexercisemighttakeanentireclassperiod.

Tokeepfromlosingtoomuchinstructionaltime,remindstudentsoftheirpresentationtimelimitwhiletheyareplanning,andduringtheirpresentation.

Checkstudentsastheyarecoordinatingtheirmini-lesson;offerfeedbackonthetimingoftheirlesson.

Useatimerduringstudentlessons,andholdupa“1minute”warningsigntokeepstudentsonpace.Thiscanbecomeafun/sillychallengeifthatsuitsyourteachingstyle.Useabuzzerorgongtokeepthelessonsonscheduleinanonstressfulway.

Ifstudentsarespeedingthroughthecontent,encouragethemtocompleteoneofthefollowingprojects(dependingonhowmuchtimeisavailable):

Createaposterfortheclassroomthatdiagrams/illustrateshowtocorrectlyparameterizeamethod.

TackleCh.3ProgrammingProject#1forextracredit.(Thismightbecompletedoverthecourseofseveraldays.)

MisconceptionsWhenpassingparameterstomethods,studentsmayincludethetypewhentheparameterisavariable:whiteSpace(intx);.Thestudentmaybepatternmatchingmethoddeclarationwithmethodinvocation.

VideoBJP3–1,MechanicsofParametershttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c3-1

CSE142,SingleParameters(21:05-33:05)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=26cacdb4-6e47-405f-a788-912a9a158b41&start=1265

CSE142,MultipleParameters(33:06-50:0)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=26cacdb4-6e47-405f-a788-912a9a158b41&start=1985

Lesson3.01:Parameters

178

CSHomeworkBytes,FunctionsandParameters,withKomalhttps://www.youtube.com/watch?v=UuZCQWErV-A

ForumdiscussionLesson3.01Parameters(TEALSDiscourseaccountrequired)

Lesson3.01:Parameters

179

Lesson3.02—LimitationsofParameters&MultipleParameters

Overview

Objectives—Studentswillbeableto…

Modifyprogramsusingparametersandclassconstantstocreateoriginalartworks.

Assessments—Studentswill…

Completeanartprojectand“artiststatement”justifyingtheirprogrammingchoices

Homework—Studentswill…

ReadBJP3.1“ParametersversusConstants”and“OverloadingMethods”Jazzupartprojectsandprograms

Materials&PrepProjectorandcomputerWhiteboardandmarkersSampleoffinalproject(picture,artiststatement,code)Picturesfrompreviousyear’s“galleryopening”Ballforpassingflowofcontrol

Aroundthistimeofyear,manyschoolshaveopenhousesand/orparent-teacherconferences.Ifyouhavethetimeandresources,thisprogrammingprojectisaexcellentopportunityforstudentstoshowcasetheirworkforparents,principals,superintendents,etc.Forinstructionsonusingthislessonasanopportunitytosharestudentwork,refertoAccommodation&Differentiationattheendofthislessonplan.

Ifthisisyourfirstyearteachingthislesson,youobviouslywon’thavepicturesfrompreviousyearsevents.Makesuretodocumentthislessonforfutureyearssoyoucanhookstudentswiththeglamorandexcitementofanartgalleryopening.

PacingGuide

Lesson3.02:LimitationsofParameters&MultipleParameters

180

Section TotalTime

Bell-workandattendance 5min

Reviewandintrotomultipleparameters 15min

Studentpractice 30min

ProcedureHookyourstudentsbyshowinganexampleofacompletedartproject,statement,andcodesample.Ifyoudon’thavepreviousworktosharewithstudents,showthemsomesamplesofASCIIartandaskstudentstopredicthowmanylinesofcodethey’dneedtodesigntheimages.

Bell-workandAttendance[5minutes]

ReviewandIntroductiontoMultipleParameters[15minutes]

1. Ifyouwillbeholdingareceptionforstudentart(seeendoflessonfordetails),announcethatnow.Segueintotoday’slessonbyexplainingthatyou’regoingtogivestudentsafewadditionaltoolstouseintheirartproject.Givethemaquickrecap/reviewbeforeteachingmultipleparameters:

Callstudentsuptotheboard—sometohelpyoudemonstrateflowofcontrol,anothertoproduceconsoleoutputonthewhiteboard.

Usingtheexamplebelow,reviewtheflowofcontrolbyhavingthestudents(mainandparameter)passinformationtoyou(themethod).Havetheclassdirectyourotherstudentwhatoutputtowriteontheboard.Askstudentswhatvariablexisthroughouttheexampletodrivehometheideathatparametersdon’tchangevaluewhenthemethodchangesalocalvalue.

Lesson3.02:LimitationsofParameters&MultipleParameters

181

publicclassParameterExample{

publicstaticvoidmain(String[]args){

intx=17;

doubleNumber(x);

System.out.println("x="+x);

System.out.println();

intnumber=42;

doubleNumber(number);

System.out.println("number="+number);

}

publicstaticvoiddoubleNumber(intnumber){

System.out.println("Initialvalue="+number);

number=number*2;

System.out.println("Finalvalue="+number);

}

}

Itispossibletodeclaremultipleparameters!Thetrickistoalwaysmakesureyourmethodacceptstheparametersinthesameorder.Whencallingthemethod,passtheparametersinthesameorderinwhichtheyweredeclared.

publicstatic<type><name>(<type><name>,<type><name>…<type><name>){

<statement>;

<statement>;

<statement>;

}

2. Usingthediagrambelow,walkstudentsthroughthiscodingexample.Youshouldhavestudentsdraw,circle,andexplainthepartsofthecodeintheirownnotebookssotheyhaveachancetothinkthisthrough.

Lesson3.02:LimitationsofParameters&MultipleParameters

182

publicstaticvoidmain(String[]args){

writeChars('=',20);//-----------------Writesalineof20='s

System.out.println();//-----------------Returnstothenextline

for(inti=1;i<=10;i++){//-------For10linesofpicture(height)

writeChars('>',i);//-------Increasethenumberof'>'sineach

line

writeChars('',20-2*i);//-------Decreasethenumberofspacesinea

chline

writeChars('<',i);//-------Increasethenumberof'<'sineach

line

System.out.println();//-------Gotothenextlinebeforestarting

thebody

}//oftheloopagain.

}

publicstaticvoidwriteChars(charch,intnumber){

for(inti=1;i<=number;i++){

System.out.print(ch);

}

}

Havestudentspredicthowtheoutputwillchangeifyouchange1or2thingsinthecode,thenallowthemtostarttheiropen-endedactivity.

StudentPractice[30minutes]

1. Encouragestudentstospendafewminutesfiddlingwiththecodewereviewedinclasstoseehowitchangestheoutputtedimage.It’sreallyimportantthatstudentshavetimeandspacetofiddlewithcodetounderstandhowthedifferentpartsrelate.Encouragestudentstostartwiththiscodeandbuildfromit/changeittomakewhateverimagestheywanttomakefortheirfinalproject.

2. Instructstudentsthattheywillneedtocreateadesignthatusesparameters,loops,and/ornestedloops.Extrapointswillbeawardedforparticularlycomplex/creativeimages.

3. Theyshoulduse(andkeepcopiesof)astructurediagramand/orpseudocodefortheirownrecords,sincetheywillbeexpectedtowriteashortparagraphexplaininginplainEnglish(ortheirnativetongue).

4. Theyareallowedtocontinueworkingonthisprojectoutsideofclass:youhavegraciouslydecidednottoassignproblemsforhomeworktonightsothattheywillhavetimetoworkonthecode.

Lesson3.02:LimitationsofParameters&MultipleParameters

183

Ifyoufindthatstudentsarehighlyengagedintheproject,youmightopttoextendthislessontoa2periodcodingsession.Themoreopportunitystudentshavetomanipulatecodeandcheckoutput,themoreintuitiontheywillhavedowntheroadastheyinternalizewhatindividualpiecesofcodemean.

AccommodationandDifferentiationIfyoufeelthatstudentsneedtheextrareview,askstudentstohelpyoubuildtheexampleprogramyouuseduringtheintroductionofclass.Dothisasawholegrouptokeepclassonpace,andwriteonlytheinformationthatstudentsgiveyou(i.e.letmistakeshappen,thenguidetheclasstoerror-checktheirownwork).

Ifstudentsarehavingahardtimewiththecodingproject,youmayencouragethemtoworkinpairsinsteadofasindividuals.Ifsomeofyourclasspartnersup,makesurethattheclassunderstandsthatteamswillbeexpectedtowritemorecompleximagesthanthosecreatedbystudentsworkingalone.

EncouragestudentstothinkabouttheirlearningandcodingprocessesbyhavingstudentsarticulateHOWthey’velearnedwhattheylearned.Thiscanbedonebyhavingstudentsexplaintheircodingdecisionstopeersandlaypeoplewithnocodingexperience.Agreatwaytodothisinalow-pressuresettingistohavestudentssharetheirworkwithparentsandothersatanopenhouse;hamitupalittleforfun!

Displaystudentworkaroundtheroom,andhavestudentsexplainortalkabouttheirworkduringan“artgalleryopening”heldatlunch,afterschool,orintheeveningduringparentteacherconferencesoropenhouseevents.

Inviteyourprincipal,superintendent,andschoolstafftoattend—thisisagreatwaytoincreasecommunitybuy-inforyourclass.

Provide(orhavestudentsbringin)cubedcheese,fruit,crackers,whitegrapejuice,andcrackers.Createafancyreceptiontablewithatablecloth,plasticwineglasses,andcocktailnapkins.

Playjazz,stringquartet,ortriphopsoftlyinthebackgroundtocreateatrendyreceptionvibe,andhavestudents“dresslikeartists”andstandneartheirwork.Makesureyoudressup/downtofitthescene!

Ifpossible,handvisitors“questioncards”togivethemideasofhowtheycanlearnmoreaboutstudentworkastheycirclethe“gallery.”Cardsshouldincludepromptslike:

Tellmeaboutyourpicture;howdidyoucomeupwiththisidea?Canyouexplaintomeabitabouthowyougetthecomputertodrawthisimage?

Lesson3.02:LimitationsofParameters&MultipleParameters

184

Howdidyougoabouttheprocessofwritingthiscode?Howdidyoustartthisproject?IfIwantedtochangethispicture,howwouldIgoaboutdoingit?

Aneventlikethismaintains/raisesstudentmoraleasstudents:

takeownershipoftheirwork,receivepraisefortheirhard-earnedaccomplishmentsthusfar,andrealizehowmuchthey’velearnedwhentheyexplaincodetoanon-coder.

ForumdiscussionLesson3.02LimitationsofParameters&MultipleParameters(TEALSDiscourseaccountrequired)

Lesson3.02:LimitationsofParameters&MultipleParameters

185

Lesson3.03—ReturnValues

Overview

Objectives—Studentswillbeableto…

Writeaprogramthatreturnsvalues.

Assessments—Studentswill…

CompletePractice-ItquestionsWriteaprogramtomeetaPokémonChallenge

Homework—Studentswill…

Completechapter3self-checkquestion17andexercise#1

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersPosterorimageof

Blastoise(http://tinyurl.com/ndy3v69)andRaichu(http://tinyurl.com/n2u5vn2)

ThislessonusesPokémoncode;youshouldreadthroughtheexampleandlearnhowstatsworkat(http://bulbapedia.bulbagarden.net/wiki/Stats).Thewikioffersagreatamountofdetail,andcanbeusedtoofferadditionalprogrammingchallengestoadvancedstudents.Youmaywanttobookmarkthispageforfuturereference,sincePokémonstatsareusedinfutureexamples.

PacingGuide

Lesson3.03:ReturnValues

186

Section TotalTime

Bell-workandattendance 5min

Reviewandintrotoreturningvalues 15min

Practice-It 15min

PokémonChallenge 15min

ProcedureThislessonintroducesmethodsthatreturnvalues,andfamiliarizesstudentswiththeMathclass.YoushouldhookstudentsbyintroducingthePokemonchallenge(tobecompletedattheendoftheclass);studentswillcreatemorecodetobeusedintheirlargerPokemonprogram.

Bell-workandAttendance[5minutes]

ReviewandIntroductiontoReturningValues[15minutes]

1. Beginwithalecture/discussionaboutthePokémonchallengeandreturningvalues.

Whenyou’replayingavideogamelikePokemon,partofthefunisthegraphicimagesthathelpcommunicatethestoryofyourbattles,training,ortravels.However,alloftheoutcomesofyourgamearedeterminedbymaththathappensinthebackground.

ThePokemonwithbetterstatswinsabattle;someadditionalrandomnumbersarethrownintorepresenttheunpredictablenatureoftherealworld.

Todaywe’regoingtolearnhowtowritemethodsthatreturnavalue—wealreadyknowhowtogetJavatocomputesimpleequationsforus;nowwe’regoingtolearnhowtogetJavatogiveusbackthosenumberssowecanusethemelsewhereinourprogram.

Whileprogrammerscanmanipulatetheparameterspassedintoafunction,theircodeisoperatedonacopyofthevalue,andnotthevalueitself.

Ifintxispassedasanargumentintoanexpressionastheparameterintnum,thefunctionmaymanipulatethevaluestoredinnum.Whenthefunctionreturns,xwillbeunchanged.

Lesson3.03:ReturnValues

187

StudentsmayfindthefollowinganalogyfromStackOverflowhelpful:“Theproceduredefinesaparameter,andthecallingcodepassesanargumenttothatparameter.Youcanthinkoftheparameterasaparkingspace,andtheargumentasanautomobile.”

We’realsogoingtolearnhowtouseacollectionofequationsthatJavaalreadyhaswrittenforuscalledtheMathClass.Thesepre-mademethodsmakedoingcomplexequationsmucheasier!

2. Here’sthesyntaxtowritingamethodthatreturnsthesumofnumbers1–n;firsttheheader:

publicstaticdoublesum(doublen){

We’reusedtohaving“void”inthisspot—butvoidactuallymeansthatwe’rewritingamethodthatwedon’texpecttoreturnanything.Inthishighlightedexample,wewriteourmethodtoreturnavalueofthedoubletype.

publicstaticdoublesum(doublen){

Highlightedisourmethodname,itgoesinthesameplaceintheheaderasitalwaysdid.

publicstaticdoublesum(doublen){

Weusedtojustleavethehighlightedsectionasemptyparentheses,nowwehavetotellJavawhattypeoftypeofdatawe’regoingtoputintothemethod(theformalparameter).

3. Askstudentstochangethemethodheadersoitsumsdatafrominputintdataandreturnsdataofthetypeintaswell.

4. AskstudentstochangethemethodheadersothisnewmethodiscalleddoubleSum.

5. Ifstudentsareadjustingthesepartsofthemethodheaderwithease,moveontothemethodbody:

publicstaticintsum(intn){

return(n+1)*n/2;

Withoutthespecialreturnstatement,thiswouldn’treturnavaluetothemainmethod!Itwouldbasicallybeavoidmethod,liketheoneswewrotebefore.ItisanerrorinJavaforflowofcontroltoreachtheendofanon-voidmethodwithoutareturn!

Thismethodonlymakessenseifwehaveamainmethodthatcanpickupthevaluethatwe’reaskingJavatoreturn,sohavestudentswriteamainmethod:

Lesson3.03:ReturnValues

188

publicstaticvoidmain(string[]args){//a.Whyisthemainmethodvoi

d?

intanswer=sum(100);//b.Whatisthislinedoing?

System.out.println("Thesumof1to100is"+""+answer);

i. Themethodmainisvoidbecauseitreturnsnovalue.ii. Thislineisdeclaring&assigningavaluetothevariableanswer.

6. Askstudentstotellyouwheretoplacethebrackets,andbrieflyreviewscope.

Iftheywanttodofanciermath,theycanusetheformulasthatJavahasalreadystoredintheMathclass.Asstudentsreadlastnight,thereisalistofthemost-usedformulasintable3.2ofthebook.

ThereisspecialnotationneededforthemethodsintheMathclass,becauseyouhavetotellJavatogoandusethemethodinanotherclass.Wecallthis“dotnotation.”

IfyouwantedtogeneratearandomnumbertouseinaformulaforyourPokemongame(toaddalittlechancetoabattle,letssay),youwouldcreateamethod:

publicstaticdoublepokemonRandom(){

returnMath.random()*100;

}

Themathclass’methodrandomgivesarandomnumberbetween0.0and1.0;wemultiplyitby100becausePokemonrandomnumbersarevaluesbetween0and100.Thismethodnowgivesusarandomnumberbetween0and100.WecanuseournewpokemonRandommethodwheneverweneedarandomnumberfromthatrange.

Ifstudentsaregettingthematerial,havethemworkindependentlyonthePractice-Itproblems,otherwise,workthroughtheproblemstogetherasawholeclass.

Practice-It[15minutes]

HavestudentsworkindividuallyorinpairstocompletethefollowingPractice-Itselfcheckquestions:

1. parameterMysteryReturn2. mathExpressions23. min

PokémonChallenge[15minutes]

Lesson3.03:ReturnValues

189

Oncestudentshavecompletedtheseexercises,invitethemtocompletethefollowingPokémonchallenge:

POKEMONCHALLENGE:

APokémon’sbasestatvalueswillmostoftenhavethegreatestinfluenceovertheirspecificstatsatanylevel.Ifweleaveoutindividualvalues,effortvalues,andnature,alevel100Pokémon’sstatsinAttack,Defense,Speed,SpecialAttack,andSpecialDefensewillbeexactly5morethandoubleitsbasestatvaluesineach,whiletheHitPoints(HP)statwillbe110plusdoublethebasestatvalue(exceptinthecaseofShedinja,whoseHPisalways1).

WriteaprogramthatreturnsaPokémon’sstatsforAttackandHPatlevel100.Youshoulduseparametersandmethodsthatreturnvaluesforthisprogram.YoumaychoosetousethebasestatsforBlastoiseORRaichugivenhere:

Blastoise Raichu

HP:79 HP:60

Attack:83 Attack:90

Defense:100 Defense:55

SpecialAttack:85 SpecialAttack:90

SpecialDefense:105 SpecialDefense:80

Speed:78 Speed:110

AccommodationandDifferentiationForstudentswhocompletethePokemonchallengeearly,askthemtofleshouttheirprogramby:

AddingmethodsthatreturnstatsforSpeed,SpecialAttack,SpecialDefense,andDefense.

WritingamethodthatwillcomparestatsbetweenBlastioseandRaichu,thenreturnthemaximumvalue.(Thisprogramdoesn’tneedtoacceptuserinput–yet!)

IfstudentsarestrugglingwiththePokemonChallenge,urgethemtobeginwiththeirstructurediagramofpseudocode.Oncetheyhavethiscode,helpthemwritethemethodtocalculatestatsbyassistingwiththealgebra,ifneeded.

Lesson3.03:ReturnValues

190

MisconceptionsOutputtotheconsoleissomehowsynonymouswiththereturnvalueofamethod:overloadingtheuseofthewordoutput.

VideoBJP3-2,ParametersandReturnValueshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c3-2

CSE142,MethodsthatReturnValues(1:25-8:45)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=dc713b99-c294-403f-82ee-52fc3323a19b&start=85

CSE142:Returnvalueworkedexample(8:46-38:32)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=dc713b99-c294-403f-82ee-52fc3323a19b&start=85

ForumdiscussionLesson3.03ReturnValues(TEALSDiscourseaccountrequired)

Lesson3.03:ReturnValues

191

Lesson3.04—ProgrammingProject

Overview

Objectives—Studentswillbeableto…

Writeaprogramthatusesparameters,themathclass,andreturnsvalues.

Assessments—Studentswill…

SubmitanEquestriaprogrambytheendofclass.

Homework—Studentswill…

ReadBJP3.3upto“InteractiveProgramsandScannerObjects”CompleteCh.3self-checkquestions18&19

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhitepaperandmarkersClassroomcopiesofWS3.4,EquestriaClassroomcopiesofAlgorithmforSolvingProblemsPosterorimageofEquestriamapwithCartesiancoordinates(Poster3.4)

Thehandout“AlgorithmforSolvingProblems”shouldbeused/drilledeverytimethestudentsareaskedtosolvealarger,APTestSectionII–typeproblem.Youmayfinditusefultomakealarge-formatpostertohanginyourroomsostudentsalwaysseethestepstheyshouldusetotacklealargeprogrammingproblem.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontoprogrammingproject 5min

Studentprogrammingtime 45min

Lesson3.04:ProgrammingProject

192

ProcedureOverthenextfewweeks,we’llbeintroducingstudentstolargerprogrammingprojectstomeettheAPComputerScienceAlabrequirements.Itisinyourandyourstudents’bestinterestifyouencouragethemtohelpthemselvesandeachotherbeforeseeingyou.Dependingonthelengthofyourclassperiods,thislabmaytake2classperiodstocomplete.

Bell-workandAttendance[5minutes]

IntroductiontoProgrammingProject[10minutes]

Beginwithanintroductiontotoday’sprogrammingproject.

Studentsshouldcompletethisprogrammingprojectindividually.Asawholegroup,reviewtheAlgorithmforSolvingProblemssheet.Readthesheetoutloud,andbrieflymodelthestepsasyoureviewtheprogrammingassignment.Readtheprogrammingassignmenttotheclass,takingtimetopausebetweeneachofthethreerequirementsoutlinedinthequestion.

Askstudentswhattheirveryfirststepsshouldbeaccordingtotheproblem-solvingalgorithm.

Requirethatpseudocode/commentdocumentationbesubmitted.Includetheseaspartofthelabgrade.

Remindstudentstotackleonepartoftheproblematatime.ItisOKiftheyleavepseudocodeinwhiletheysolveadifferentpartoftheproblem,andtheydon’thavetosolveallofpartsoftheprograminanyparticularorder.

Theyshouldrefertotheirnotes,textbooks,andposters/workaroundtheroomtohelpthemcomeupwithideas/solutionstoprogrammingproblems.

Sometimesit’sagoodideatostepawayfromaproblemforafewminutesifthey’restuck—workonadifferentmethodandreturntowheretheywerestucklater.

StudentProgrammingTime[45minutes]Inanemail,ontheprojector,orasahandout(WS3.4),givestudentsthefollowingquestionstoworkonindividually,orinpairs.

Lesson3.04:ProgrammingProject

193

PROGRAMMINGPROJECT

Exercise1

PrincessLunaandCelestiaaregoingonatourofthekingdomtogreettheothercitizensofEquestria.Theirtourtakesthemonacircularpath(shownonmap).WriteamethodcalledroadTripthat(1)acceptsasaparameterthediameterofthecircularpath,and(2)returnsthelengthofthetrip.

Theequationforcircumferenceis:C=dπ

JavahasamathconstantcalledMath.PI.

Exercise2

Writeamethodcalleddistancethat(1)acceptsfourintegercoordinates:x1,y1,x2,y2asparameters,(2)computesthedistancebetweenpoints(x1,y1)and(x2,y2)onthemap,and(3)returnsthatdistance.

Theequationforthedistanceis:sqrt((x2-x1) +(y2-y1) ).

Testoutyourprogrambywritingamainmethodthatcallsthedistancemethodforeachofthefollowingpairsofcities.Yourmainmethodshouldoutputthevaluereturnedbythedistancemethod.

1. DistancefromBaltimaretoManehattan=

2. DistancefromLosPegasustoNeighagraFalls=

3. DistancefromtheBadlandstoPonyville=

Exercise3

WriteaprogramthathelpsPrincessLunaplana3-stoptourofEquestria.Chooseany3locationsinEquestria,asdefinedbytheirxandycoordinatesonthemap.Youprogramshouldoutputthedistancebetweenthethreedestinations.

YoushouldusethedistancemethodsyouwroteforExercise2.

Exercise4

WriteamethodcalledtotalTripthatacceptsparametersfor3locations(eachcontainingcoordinates)andreturnsthetotaldistancetraveledbyvisitingall3locationsandreturningtothestartinglocation.YoushouldusethedistancemethodsyouwroteinExercise2andyoucanchooseany3locationsinEquestria.

Extracredit:makethisprogramcompute4locationsinstead!

2 2

Lesson3.04:ProgrammingProject

194

AccommodationandDifferentiationForstudentswhocompletethelabearly,askthemtofleshouttheirprogrambyaddingamethodthatwillcalculatethesumofthedistancestravelledbetweenthreecitiesinExercise2.

Ifyoususpectthatstudentswillstrugglewithproceduraldecomposition,havethemworkingroupstofigureoutacourseofactionbeforebeginning.Proceduraldecompositionisoneofthehardestskillsforstudentstoacquire,soitiscriticalthatyouallowstudentstofightthroughtheprocess.

Ifadditionalscaffoldingisneeded,youmightlistallofthepartsoftheprogram,orhavestudentscomeupwiththeparts(“figureouthowtowritetheequationinJavausingthemathclass,”“createsomeparameterstopasstoareturnmethod,”“writetheframeworkforamethodtoreturnthedistancevalue”)outoforder,thengivethestudentssometimetoorganizethestepsthemselves.Asawholegroup,youcanthencometoconsensusonwhatstepsneedtobeapproached,andwhatordercomponentsshouldappearinthefinalprogram.

ForumdiscussionLesson3.04ProgrammingProject(TEALSDiscourseaccountrequired)

Lesson3.04:ProgrammingProject

195

Lesson3.05—UsingObjects&StringProcessing

Overview

Objectives—Studentswillbeableto…

Differentiatebetweenprimitiveandobjecttypes.Apply0-indexingandstringprocessingtechniquestopredicttheoutputofaprogram.

Assessments—Studentswill…

CompleteWS3.5

Homework—Studentswill…

ReadBJP3.3“InteractiveProgramming”and“SampleInteractiveProgram”Completeself-checkquestions19-21

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersClassroomcopiesofWS3.5

Thehandoutsforthislessonincludenotesaswellasexercises.Ifyouareworkingondevelopingnote-takingskillsinyourclassroom,youmayprefertodeletethenotesfromtheworksheet(soitisonlyasheetofexercisesand/orimages).

IfyouteachinanELLorSpEdclassroom,leavingtheworksheetas-iswillallowstudentstofocusoncontentinsteadoftranslatingnotesintotheirnotebooks.

PacingGuide

Lesson3.05:UsingObjects&StringProcessing

196

Section TotalTime

Bell-workandattendance 5min

Intro/Reviewofobjects&stringprocessing 5–15min

RoundRobin 35–45min

Paperselection&gradeannouncement 3min

ProcedureThereareseveralwaysyoucanteachtoday’sclass.Youshouldfirstcheckinwithyourstudentstoseehowpreparedtheyarefortoday’slesson.Ifstudentsunderstoodmostofwhattheyreadforhomeworklastnight,youcanaskstudentsforspecificquestions,coveronlythosetopics,thenmoveontotheRound-Robinactivity.Ifyourclassismostlyconfused,youcanre-teachallofthecontent,followingalongtheworksheet,andbreakingtheexercisesinto4parts(aslistedontheoriginalworksheet).

Bell-workandAttendance[5minutes]

Introduction/ReviewofObjectsandStringProcessing[10minutes]

1. Beginwithanintroductiontotheconceptsofobjectsandstringprocessing.

UsingWS3.5,walkstudentsthroughthedifferencebetweenprimitivesandobjects.

Askstudentstoexpandontheatom/moleculemetaphor;what“atoms”makeuptheString“molecule?”(Charsareatoms.)

Makesuretoemphasizethatanobjecttypescontainsdataandbehavior(methods),whileprimitivesjustcontaindata.

Itmighthelpstudentsorganizetheirthoughtsifyougraphicallyorganizetypeswiththefollowinghierarchy:

Lesson3.05:UsingObjects&StringProcessing

197

Types

.''.

.''.

.''.

.''.

PrimitivesObjects

.'|'.'.

.'|'.'.

.'|'.'.

intdoublebooleanString

2. Whenexplainingtheconceptofclass,thecaranalogymightnotresonatewithyourstudents(especiallyiftheydonotusecars,orliveinanareawherecarsarenotcommon).Sincewe’renotdelvingintotheconceptofclasstoodeeplyatthispoint,don’tspendtoomuchtimeonthisconcept.Additionalanalogiesthathaveworked:

Class:Home,Object(instancesofclasshome)eachstudent’shome.

Class:Desk,Objecteachstudent’sdesk(canintroducestatesofdesk:messy,neat,crooked,without-a-chair,etc.)

3. Whenreviewingobjectmethods,remindstudentsthattheyneedtodosomethingwiththereturnvalue,suchasSystem.out.print.

ReviewdotnotationasdiagramedModelcountingtheindexpositionswhenyoudemonstratethecharAtmethod.HavestudentspredicttheoutputofcharAtwithdifferentindexes.

4. BreakforthefirstboutofRoundRobin(or,ifonlyconductingaquickreview,finishreviewingalltopicsandallowstudentstodoallRoundRobinexercisesattheendoftheintroduction.)

Inreviewingsubstring,indexOf,toUpperCase,toLowerCase,andequalsmethods,workthroughsomeadditionalexamplesontheboardifneeded.Ifprovidingthestudentsthecompleteworksheet(withnotes),encouragethemtohighlight,circle,ortranscribethedefinitionsorsyntaxexamplesintotheirnotebook.

Afun“tricky”waytoassessstudentunderstandingistoaskwhyJavareturns-1whenthesearchtextisn’tfound.(Answer:-1isneveravalidindexintoaString.)

RoundRobin[35-45minutes]

1. Round-robinisadrillinganderror-checkingexerciseusedwithworksheets.Atminimum,thereshouldbe1questionforeachstudent(e.g.aclassof15studentswouldneedaworksheetwith15ormorequestions).Studentswritetheirnameontheworksheet,completethefirstproblem,thenpassthepapertothestudentontheright

Lesson3.05:UsingObjects&StringProcessing

198

(orwhateverdirectionyouchoose).Thenextstudentfirstchecksthepreviousanswer,correctingitifneedbe,thencompletesthesecondquestion.Eachstudentthenpassesonthepaperagain.Bytheendoftheexercise,eachstudenthascheckedandcompletedeachquestionontheworksheet.

2. ThehookisthatyouchooseonlyONEworksheetfromthepiletograde.Allstudentsgetagradefromthatoneworksheet.Thiskeepsstudentsinvestedthroughouttheexercise.Advancedstudentswillcheckquestionsthroughoutthewholeworksheet,andallstudentswilltrytheirbesttocatchtheirown(andothers’)mistakes,sincethewholeclasssharestherandomly-selected-paper’sgrade.

3. Youshouldtimeeachquestion/checkinginterval,andcall“SWITCH!”whenitistimeforstudentstopassalongpapers.

a.Exercise1questions(thefirst4questions)shouldtake~2minuteseach.

b.Exercise2questions(thesecond4questions)shouldtake~2minuteseach.

c.Exercise3questions(asetof5questions)shouldtake~2-3minuteseach.

d.Exercise4questions(thelastsetof4questions)shouldtake~1minuteeach.

Adjustthetimingonthesequestionsasneeded,buttrytokeepabriskpace.Partoftheengagementfactoristhesenseofurgency.

Paperselectionandgradeannouncement[3minutes]

Iftimeallows,randomlyselecttheworksheetandannouncetheclassgradewithabitoffanfare,congratulatingtheclassonajobwelldone.

AccommodationandDifferentiationTooptimizethisexercise,youmightconsiderrearrangingstudents(orcreatingapassing-path)thatmixesstudentsofdifferentcodingabilities.Theadvancedstudentscanusetheextratimetocorrectmistakesmadebyothers;iftheyaresittinginproximitytothestudentthatmadetheerror,theywillhaveabetterchanceofexplainingthecorrectanswertothem.

Duetothebriskpaceoftheround-robinrotation,thereshouldn’tbetoomuchdowntimeforanyonestudent.Ifyoudofindastudentthatislookingbored,makeeyecontactwiththemasyouremindtheentireclassthateveryoneshouldbecheckingtheproblemshandedtothemoncetheyaredonewithsolvingtheirassignedproblem.

Lesson3.05:UsingObjects&StringProcessing

199

ELLclassroomsmayneedtoallow2classperiodstocompletetheround-robinexercise.Therearemanytopicscoveredduringthelesson,anditmaybebesttointroducevocabularyataslowerrate.

MisconceptionsUptothispoint,studentshavebeenusingquotedstringsasaprimitivetype,butStringisaclassinJava.Worksheet3.5introducestheString.equals()method.Studentswillneedtostartthinkingofstringsasanobjectandwhencomparingtwostrings,usethe.equals()method.Javaisinconsistentinitstreatmentofstrings.

VideosBJP3-3,WorkingwithStringsValueshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c3-3

CSE142,Strings(18:40–33:05)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=6ca465e0-abac-4b46-b488-d4ba5c6c5aa6&start=1322

UWAPCSPrep,JavaStringProcessinghttps://www.youtube.com/playlist?list=PL_bszZLe8OFfnueQ6fn7wNqu87k3X2Nin

ForumdiscussionLesson3.05UsingObjects&StringProcessing(TEALSDiscourseaccountrequired)

Lesson3.05:UsingObjects&StringProcessing

200

Lesson3.06—InteractivePrograms&ScannerObjects

Overview

Objectives—Studentswillbeableto…

Writeprogramsthatacceptuserinputusingascannerobject.

Assessments—Studentswill…

CompletePractice-Itproblems

Homework—Studentswill…

OutlineChapter3,exceptforBJP3.4

Materials&PrepProjectorandcomputerWhiteboardandmarkers

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontointeractiveprogramming 15min

Studentpractice 35min

Procedure

Bell-workandAttendance[5minutes]

Lesson3.06:InteractivePrograms&ScannerObjects

201

IntroductiontoInteractiveProgramming[10minutes]

1. HookthestudentswithabriefdiscussionaboutPokemon.Besurethatthefollowingpointscomeupduringdiscussion(eitheryoubringthemup,oryouguidethestudentstobringthesepointsupthemselves):

EV(experiencevalues)aregainedthroughcombat.WhenonePokemonwinsagainstanother,theywinEVpointstoraiseyourstats.

Thesestatsareprivate,thetrainer(user)cannotseethem.

IfyouwanttoknowwhatyourEVvalueis(soyoucandeterminestrategyandgainthemostpoints),youneedtocomputeityourselfgiventhevaluesthatyoucansee.

TheformulaforcalculatingHPisonBulbepedia,andifwedosomealgebrawecancalculateEV.Let’swriteaprogramthatwillhelpuscalculateEVforanyPokemonstatsatrainerenters.

2. Haveastudent(orsequentialstudents)cometotheboardtowritetheconsoleoutputasyouworkthroughtheexamplebelow.Youshouldhavestudentswriteandlabelthissampleprogramasyouwriteit.Whilediscussingthedifferentpartsoftheprogram,circletheroom,checkingtomakesurestudentsarekeepingupwiththenotes.

WriteamethodthatreadsuserinputforknownPokemonstatstodetermineEV(effortvalue).

importjava.util.*;

Anytimeyou’regettinguserinput,startwiththisimportdeclaration:

publicclassGetEV{

publicstaticvoidmain(String[]args){

ScanneruserInput=newScanner(System.in);

Sofar,theheaderslookfamiliar.Whenconstructingthescanner:

YoualwayscapitalizeScannerNamethescannersomethinguseful(scanner,console,userInput)Constructwiththenewkeyword,andSystem.in.

System.out.println("ThisprogramcalculatesuserEV.");

System.out.println("InputyourPokemon'sstatsbelow:");

Thisoutputstotheconsoleamessageexplainingtheprogramtotheuser:

Lesson3.06:InteractivePrograms&ScannerObjects

202

System.out.print("Hitpoints:");

inthp=userInput.nextInt();

Thispairsauserpromptwithavariablehpthatholdstheinformationtheuserinputted.

System.out.print("Level:");

intlevel=userInput.nextInt();

Again,wepairthepromptfortheuserinputwiththescannerthatacceptsandstoresthatdataasavariableforlateruse.

System.out.print("IV:");//Thisisforinitialvalueoftheh

itpointstat.

intiv=userInput.nextInt();

System.out.print("BaseHP:");

intbase=userInput.nextInt();

NextweneedtowritetheformulathatwillcalculateEVfromtheuserinput,thenreturnavalue(otherwisethescannerhasnofunction!)Youshouldhavethestudentsbuildasmuchofthisformulaaspossible:

EV=(((HP–10)100)/Level–2Base–IV–100)*4

intev=(((hp–10)*100)/level–2*base–iv–100)*4;

System.out.println("Youhave"+ev+"effortvaluepointsforyour

HPstat.");

}

}

Ifstudentsneedanotherexample,workthroughthebookexampleformortgagepayments,havingstudentswritemoreofthecodethaninthepreviousexample.

StudentPractice[35minutes]

1. HavestudentscompletethefollowingPractice-Itself-checkquestions:

i. promptMultiplyBy2ii. SumNumbersiii. RobertPaulson

2. HavestudentscompletethefollowingPractice-Itexamplequestions:

i. scientific

Lesson3.06:InteractivePrograms&ScannerObjects

203

ii. cylinderSurfaceAreaiii. sphereVolume

AccommodationandDifferentiationInELLclassrooms,youshoulddistributeahandoutdiagrammingthepartsofaprogramwithallvocabularywordsincludedonthesamplecodeorscreenshot.Turningthepicturesontheworksheetintoclassroomposterswillbehelpfulinhelpingstudentsremembersyntax.

VideoBJP3–4,ProgrammingwithParametershttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c3-4

CSE142,Scanner(0:21-23:06)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0c247411-e890-4835-8a79-bee6e74066c2&start=21

ForumdiscussionLesson3.06InteractivePrograms&ScannerObjects(TEALSDiscourseaccountrequired)

Lesson3.06:InteractivePrograms&ScannerObjects

204

Lesson3.07—PokémonBattleProgrammingProject

Overview

Objectives—Studentswillbeableto…

Writeaprogramthatrequestsuserinputandreturnsdata.

Assessments—Studentswill…

WriteaprogramthatcalculatesdamagedonetoPokémoninabattle.

Homework—Studentswill…

SummarizetheirclassnotessincethelastexamIftheyaremissingnotes,getthemfromanotherstudentorsupplementthemfromthetextbook

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersClassroomcopiesofWS3.7LPBattleVideoofsamplebattle(http://youtu.be/k7K5LEE9xxw?t=48s)Advanceddamagecalculator(https://pokemonshowdown.com/damagecalc/)

The8-minutevideodemonstratesatypicalbattlesequencefromoneofthemorerecentPokémonversions.Ifyourclassdoesnotplaythevideogame,youcouldshowbattlefootageoftheanimeseries,thecardgame,orthecoingame.Astheinstructor,youshouldfamiliarizeyourselfwiththesequenceofaPokémonbattle,soyoucanhelpstudentswithproceduraldecompositionandgradedifferentstudentsolutions.

PacingGuide

Lesson3.07:PokémonBattleProgrammingProject

205

Section TotalTime

Bell-workandattendance 5min

Introductiontolab&viewingofbattle 10min

Studentprogrammingpractice 40min

ProcedureTheprogrammingprojecttodayhasstudentsprogramminga“starter”Pokémonbattlesequence.Thisisasomewhatopen-endedassignment,sincestudentscansubmitabasicprogramthatruns1or2interactions,oracompletebattlesequence,dependingontheirlevelofunderstanding.

StudentprogramsforthisassignmentwillbealobotomizedversionofaPokémonbattlesincestudentshavenotyetlearnedconditionalstatements.Thisisadeliberatemove:studentscanfocusonbuildingsegmentsofcodethatacceptbasicuserinput,usethemathclasstogeneraterandomnumberstodeterminebattleoutcomes(orroll-of-the-diceorspinforthecard-gameandcoingameversions),andreturngametext.Capitalizeonstudentfrustrationby(ormotivatestudentswiththeprospectof)hintingatamoreinteractiveprogramafterthenextfewlessonsonCh.4andCh.5.

Bell-workandAttendance[5minutes]

IntroductiontoLabandViewingofBattle[10minutes]

Atthebeginningofclass,introducethelabandwatchthesamplebattlevideo.

StudentProgrammingPractice[40minutes]

1. Havestudentscompletethisprogrammingprojectindividually.Beforeyoubreakouttheclassforlabtime,readthequestionoutloudtotheclass,takingtimetopausebetweeneachoftherequirementsoutlinedinthelabassignment.

2. Askstudentswhattheirveryfirststepsshouldbe.

Theyshouldoutlinetheirapproachinpseudocodeorwithastructurediagram.Remindthemthatthisdocumentationshouldbesubmittedinordertogetfullcreditfortheirlab,andreferthemtotheAlgorithmforSolvingProblemssheet.

Lesson3.07:PokémonBattleProgrammingProject

206

Remindstudentstotackleonepartoftheproblematatime.RemindstudentsthatitisOKiftheyleavepseudocodeinwhiletheysolveadifferentpartoftheproblem,andpartialcreditshouldbegiventocorrectpseudocode.

3. Toencouragegrit,havestudentsreviewthestepstheyshouldtakebeforeraisingtheirhandforaquestion:

Refertonotes,textbooks,andposters/displayedworkaroundtheroom.Workonadifferentpartoftheproblemiftheygetstuck,thenreturntoitlater.Askanotherstudentforahint,tip,orforerror-spotting.

4. Inanemail,ontheprojector,orasahandoutWS3.7,givestudentthefollowingquestionstoworkonindividually(or,ifscaffoldingrequiresit,inpairs).

PROGRAMMINGPROJECT

Completethisprogrammingprojectusingyournotes,thetextbook,andanyonlineorin-classsourcesyoulike.Yourworkmustbeyourown;youmayaskafriendtolookoveryourwork,ordiscussproceduraldecompositionwithyou,butyoumustwriteallcodeonyourown.Toreceivefullcreditonthislab,youmustsubmitastructurediagramorpseudocode-planforeachquestion.

RecallhowtouseScannertogetuserinput:

Scannerconsole=newScanner(System.in);

System.out.print("Hello,whatisyourname?");

Stringname=console.nextLine();

System.out.print("Whatisyourage?");

intage=console.nextInt();

Exercise1

WriteamethodcalledbattleStart()thatintroducesthebattle,promptstheusertochoosetheirfirstPokémontobattle,andoutputsthepairing.battleStart()shouldalsoreturnthenameofthePokemonchosen.Youroutputshouldlooksomethinglikethis:

Lesson3.07:PokémonBattleProgrammingProject

207

Anothertrainerisissuingachallenge!

Zebstrikaappeared.

WhichPokémondoyouchoose?Arcanine

YouchoseArcanine!

It’saPokémonbattlebetweenArcanineandZebstrika!Go!

CallbattleStart()fromyourmain()methodandstorethenameofthePokemoninavariable.

Exercise2

Writeamethodcalleddamage()thattakesaPokemon’snameasaparameterandreturnstheaboutofHPafterdamagehasbeendone.damage()shouldprompttheuserfortheirbasestatsinordertocalculatedamage.Usethefollowingequationsforcalculatingdamage:

Modifier=SameTypeAttackBonus(STAB)\*Random

Damage=Modifier*((2*Level+10)/250+(Attack/Defense)*Base+2)

Hint:ThePokémongamealwaysselectsarandomnumberbetween0.85and1.0.

Youroutputshouldlooklikethis:

ZebstrikausedThunderbolt!

Trainer,whatareyourArcanine’sstats?

Level:

Attack:

Defense:

Base:

STAB:

HP:

Arcaninesustained10pointsdamage.

HP,afterdamage,arenow70.

Calldamage()fromyourmain()methodwiththePokemon’snamefromExercise1andstorethereturnvalue(HP)inavariable.

Exercise3

WriteamethodcalledstatsTable()thatacceptstheuser’sPokemonname,statsandlearnedmovesasparameters,andoutputssomethingsimilartothisimage:

Lesson3.07:PokémonBattleProgrammingProject

208

Youarenotrequiredtoalignthecolumnsofthetablesinanyfancyway,butifyoudo,useescapesequencestoaligndata.Foryourdrawing,youmayusecodeyou’vegrabbedfromtheinternet,orrecycleanimageyoucreatedearlierintheyear.

Sampleoutput:

NameAlakazam

Level40

------------------------------

HP96

ATTACK52

DEFENSE51

SP.ATK121

SP.DEF81

SPEED107

-------------------------------

MovesLearned:ThunderWave,HiddenPower,PsychoCut,Recover

CallstatsTable()fromyourmain()methodwiththePokemon’snamefromExercise1andtheHPfromExercise2andanyothervaluesyou’dlikefortheotherparameters.

Conclusion

Inyourcompletedprojectshouldincludethefollowingmethods:

battleStart()damage()statsTable()

Thesemethodsshouldallbecalledinmain()sothattheplayercanexperiencetheentirebattleinonesitting.

ProperJavasyntaxandthoroughcommentsarerequired.

Lesson3.07:PokémonBattleProgrammingProject

209

AccommodationandDifferentiationIfyouhavestudentsfinishthelabquickly,invitethemtocheckouttheadvanceddamagecalculatoronline.Theycanaddinputfieldstotheirowndamagecalculator,thusimprovingtheirPokémonsimulation.

Alternatively,ifstudentsseeminterestedinincreasingtheinteractivityoftheirbattlesequence,youcanallowthemtoreadaheadinthebook.StudentsmayreaduponBulbapedia(thewikiforPokémon)thatThunderbolthasa10%chanceofparalyzingits’target.InvitestudentstothinkhowtoaddthatfactorintotheirbattlesimulationastheyreadthroughCh.4andCh.5materials.

IfstudentsarestrugglingwithcreatingthegraphicinExercise3,helpstudentsbywritinghelperlinesofcodeontheboard,orcreatingapseudocodeoutlineasawholegroup.

ForumdiscussionLesson3.07PokémonBattleProgrammingProject(TEALSDiscourseaccountrequired)

Lesson3.07:PokémonBattleProgrammingProject

210

Lesson3.08—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheirpreviouslysubmittedhomeworkandclasswork

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

ReadBJP4.1upto“NestedifelseStatements”CompleteChapter4self-checkproblems1–6

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Bookmarksonstudents’computerstowebmaker.org

IfyouarenotyetfamiliarwithX-rayGoggles,Thimble,orPopcornMaker,youshouldtakesometimetoexplorewebmaker.orgbeforeclass.Thesiteisrichwithenrichmenttoolsandhooksforyourclassroom!

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

Lesson3.08:Finding&FixingErrors

211

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkassignments.Ifstudentsdidnothavetimetofinishtheprogrammingprojectsfromyesterday,youmayallowthemtimetoworkonthoseprojectstoday.

Rewardstudentsthatdidtheirworkcorrectlywithquietfreetime.Alternatively,givethemafunprogrammingassignmenttodo,suchasgeneratingameme,animations,gigposters,orcomicstriponMozilla’sWebmaker.org.TheseactivitiesteachHTMLandCSS,soyoumightavoidthemifyouthinkexploringdifferentsyntaxwillconfuseyourstudents.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworkinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.(Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.)

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.Ifstudentshavenotfinishedtheirprogrammingprojectfromyesterday’sclass,allowthemtodosotoday.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiation

Lesson3.08:Finding&FixingErrors

212

Studentsthatdon’thavecorrectionstomakeshouldberewardedfortheirhardworkwithsilentfreetime.Encouragethemtodoworkforanotherclass,readthenextchapter,ordoafunprogrammingprojectonline.

Ifyouhaveastudentthatappreciatespublicrecognition,havethemserveasyour“TA”thisclass,goingaroundtohelpstudentscorrecttheirpapers.Remindthemtoguidestudentsthroughtheprocessinsteadofjustgivingthemtheanswers.

ForumdiscussionLesson3.08Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson3.08:Finding&FixingErrors

213

Lesson3.09—RelationalOperators&if/else

Overview

Objectives—Studentswillbeableto…

EvaluaterelationalexpressionsPredictandtracetheflowofanifstatement.

Assessments—Studentswill…

Evaluaterelationalexpressionsandpracticecorrectifstatementsyntaxduringagameofgrudgeball.

Homework—Studentswill…

ReadBJP4.1“Nestedif/else”and“ObjectEquality”Completeself-checkquestions7–9andexercises1&2

Materials&PrepProjectorandcomputer(optional)WhiteboardandmarkersClassroomcopiesofOperatorPrecedenceRulesforgrudgeball(seewebsitefordetails:http://toengagethemall.blogspot.com/2013/02/grudgeball-review-game-where-kids-attack.html)

Takethetimetofamiliarizeyourselfwiththerulesofgrudgeball,andtestoutyour2and3pointlinesbeforeclassbegins(youmayneedtoreadjustthem).Ifyoucangetpermissionfromyourschooltoleavetapeonthefloor,itishelpfultohavethoselinesdownfortherestoftheyear.Infutureclasses,ifyourstudentsarehavingahardtimesettlingdownduringareviewsession,orcan’tstandaworksheet,youcanalwaysconverttheworksheetorreviewsessionintoaquickgameofgrudgeball.

Lesson3.09:RelationalOperators&if/else

214

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction&note-taking 15min

Activity:Grudgeball 35min

ProcedureRatherthandrillnewruleswithworksheets,thedrilling/activityportionoftheclasswillservetotiethelessontogetherintheformofaclasscompetition.Ifspaceandwhiteboardsetupallow,setupthegrudgeball“court”andscoreboardbeforeclassbeginssoastomystifythestudents.

Bell-workandAttendance[5minutes]

Introduction&Note-Taking[15minutes]

Beforeyoubeginlecture,announcetostudentsthattheyshouldpaycloseattention,sincethelecturecontentwillbetestedduringthegame.

Ifyouwanttowritecodethatexecutessomeofthetime,butnotallthetime,youcanwriteanifstatement(askstudentswhatsituationsmightuseanifstatement—iftheyarestuck,askthemtothinkabouttheirlastfewprogrammingprojects!)

if(test){//BooleanExpression

<statement>;//ControlStatement

<statement>;//ControlStatement

}

Havestudentscomeuptothefrontoftheroomtodemonstratetheflowofcontroloftheifcontrolstructure.

Put2alternativestogetherbyusinganif/elsestatement:

Lesson3.09:RelationalOperators&if/else

215

if(test){

<statement>;

<statement>;

}else{

<statement>;

<statement>;

}

Sowhatshouldstudentsputinthe“test”sectiontoevaluateastrueorfalse?

3*3==3*1*3

//<expression><relationaloperator><expression>

Evaluatebothexpressions,thenseeiftherelationaloperatorholdstrueornot.

Operatorsstudentsneedtoknow:

==:equalto!=:notequalto<:lessthan>:greaterthan<=:lessthanorequalto>=:greaterthanorequalto|

Asfarasprecedencegoes:

relationaloperatorshavealowerprecedencethanarithmeticoperatorsrelationaloperatorshavehigherthanequalityoperatorsinequalityoperators(<,>,<=,>=)havehigherprecedencethantheequalityoperators(==,!=)

3+2*2==9evaluatesto:false,since7isnotequalto9.

Havestudentsdirectyouhowtosolvethis.

Ifyou’dliketorefertoavisualaidforthissegmentoftheintroduction,poster3.16.2illustratesJavarulesofprecedenceforalloperators.

Youcanonlyusearelationaloperatoronprimitivedatatypes!(Askstudentswhichtypesareincluded,whichonesareexcluded.)

Activity:Grudgeball[35minutes][Optional]

Ifyoufeellikeyourclasshasagrasponthesyntaxandrelationalexpressions,considerskippingthisgameandfocusingonon-the-boardexamples(youcanusethequestionsfromGrudgeballbelow)ormovingonto3.10.

Lesson3.09:RelationalOperators&if/else

216

1. Dividestudentsintotheirassignedteams.

2. Reviewtherulesforgrudgeball,andhavethestudentsrepeattherulesbacktoyou.

3. Usingtheproblemslistedbelow(andanyyoumayadd,dependingonyourclass’needs),playgrudgeballuntilateamwins,oruntiltheclassperiodends.

i. Ifaclassgetstheanswerwrong,BRIEFLYpausethegametohavestudentsoffercorrectionsbeforemovingtothenextteam’squestion.

ii. Ifcorrectionseemstobedraggingon,jumpinandquicklyre-teachusingtheincorrectanswerasyourexample.Itisimportanttokeepthepacegoingtomaintainstudentinterestinthegame!

4. Grudgeballproblems&answershavebeengroupedassumingthatyouhave6teams.Ifyouhavefewerteams,each“round”willbeshiftedaccordingly,soyoumayhaveroundswheredifferentteamsarepracticingdifferentconcepts.Judgeeachteam’sknowledgegaps,andadjustwhichquestionsyouaskeachgroupaccordingly.

GRUDGEBALLPROBLEMS

Translatethesestatementsintologicalteststhatcouldbeusedinanif/elsestatement.Writetheappropriateifstatementwithyourlogicaltest.

a)zisodd.b)zisnotgreaterthany’ssqureroot.c)yispositive.d)Eitherxoryiseven,andtheotherisodd.e)yisamultipleofz.f)yisanon-negativeonedigitnumber.

Giventhevariabledeclarations

intx=4;

inty=-3;

intz=4;

whataretheresultsofthefollowingrelationalexpressions?(TrueorFalse?)

g)x==4h)x==yi)x==z

Lesson3.09:RelationalOperators&if/else

217

j)x+y>0k)y*y<=zl)x*(y+2)>y–(y+z)*2

Correctthefollowingstatementsyntaxerrors:

m)ifx=10then{n)if[x=10]{o)if(xequals42){p)if(x==y){q)If(x>8){r)IF(x<=7){

Identifyandcorrectoneofthe(7)errorsinthefollowingcode:

publicclassOops4{

publicstaticvoidmain(String[]args){

inta=7,b=42;

minimum(a,b);

if{smaller=a}{

System.out.println("aisthesmallest!");

}

}

//Returnstheminimumoftheparametersaandb.

publicstaticvoidminimum(inta,intb){

if(a<b){

intsmaller=a;

}else(a=b){

intsmaller=b;

}

returnintsmaller;

}

}

AccommodationandDifferentiationInELLclassrooms,youshouldreadeachquestionaloudinadditiontoshowingitontheboardorprojector.

Ifthisreviewsessionistooeasy,givestudentstimetostartonthehomeworkonceyouhavefinishedGrudgeball.

Lesson3.09:RelationalOperators&if/else

218

TeacherPriorCSKnowledgeTheunarynotoperator!(commonlyreadas“bang”)iscommonlyusedinlogicalexpressionstonegateabooleanvalue.Theuseofnotisuniqueamongthelogicaloperatorsasittakesonlyoneoperand.Notisanalogoustothenegativesign(-)whereaminusbeforeanumericvalueorexpressionrepresentsthenegativeofthevaluewhereasanot(!)beforeabooleanvaluerepresentstheoppositetruthvalue:truebecomesfalseandfalsebecomestrue.

Programminglanguageshaveadefaultorderofevaluatingexpressionscommonlyreferredtoasoperatorprecedence.Weusuallyteachstudentstobeexplicitintheirlogicalexpressionsforclarityandtoavoidmistakes.However,aknowledgeofthelanguagesprecedencerulesisvaluablewhenbothreadinganddebuggingcode.SeethefollowingforJava’sprecedencerules:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html.Inordertogradecorrectly,itisessentialtoknowJava’sorderofoperations.

CommonMistakesConditionalscommonmistakes:http://interactivepython.org/runestone/static/JavaReview/Conditionals/cMistakes.html

MisconceptionsConfusingtheassignmentoperator(=)withthecomparisonoperator(==)isoneofthemostcommonmistakesdonebybeginningprogrammers.Unfortunately,semanticallyasingleequalsignisusedtodenoteequalityinmathematicsandformoststudentstheyhavebeendoingmathmuchlongerthancomputerscience.

Itisimportantfortheteacherwhenreadingcodealoudtodifferentiatesingleequalsasassignmentanddoubleequalsascomparison.Thefollowingwouldbereadas:

x=5;//“xisassigned5”

if(y==4)//“ifyisequalto4”

ManystudentsthinkallstatementsinJavaendinasemi-colon(;).However,thisisnotalwaysthecaseastheif-blockendsincurlybraceswhenusedwithablockofcode.Studentsinthehabitofaddingsemi-colonstotheendofeachstatementinevitablyaddsemi-colonsattheendoftheconditional,likeso:

Lesson3.09:RelationalOperators&if/else

219

if(a>1);//allstatementsendinsemi-colonmisconception

WhenteachingstudentsaboutJavastatements,itisimportanttodistinguishbetweenstatementsthatendinasemi-colonandthosethatsignifyscopewiththecurly-braces.SingleJavastatementssuchasdeclaringvariables,assignment,etc.endinsemi-colonswhileJavastatementsthatdenotescopelikeclassdefinitionsandmethodshavecurlybraces.If-statementscandoboth.

LogicaloperatorsANDandORarecoveredinafuturelesson.However,studentswillcombinelogicaloperatorssimilartomathsyntax:

if(9<=grade<=12)//relationaloperatormisconception

Forstudentsthataskaboutcompoundconditionals,youwillneedtodeferandstatetheywillbecoveredshortlyinafuturelesson.ForstudentswithpriorprogrammingexperienceinevitablysearchingforthecorrectsyntaxsincetheEnglishwords“and”and“or”donotworkinJava.

Onecommonerrorismismatchedtheparentheses:

if(a==10//mismatchedparentheses

ormismatchedcurlybraces:

if(b==12)

dozen=true;

}

EventhoughmanyIDEswillhelpstudentsbyprovidingmatchingparentheses,agoodhabitforstudentstolearnwhenwritingcodebyhandistoaddtheclosingparenthesesrightaftertheywritetheopenparentheses.Thesameistrueforopenandclosecurlybraces.StudentswillneedtolearntowritecodebyhandfortheAPexam,sopracticehandwrittenJavaisimportanttostudents’success.

Inaddition,goodcodingstylewithproperindentinghelpswithstudentrecognitionofmismatchedclosingparenthesesandcurlybracesbecauseofthevisualpattern.Goodprogrammingstylemakesiteasiertoidentifyerrorsinthepattern.Thiscanbeusedduringlabforstudentswithmismatchedparenthesesand/orcurlybraces.Insteadoffindtheerror,askingthestudenttocleanuptheirindentingwillhelpthemfinderrorsontheirown.

Lesson3.09:RelationalOperators&if/else

220

Whenconstructingif-statements,studentsinserttheconditionoftheif-statementwithinthebracketsinsteadoftheparentheses:

if{a>1}//conditionalvsblockmisconception

Seeabove“mismatchedtheparentheses”forgoodprogrammingpractice.

VideoBJP4–2,Nestedif/elseStatements(note:titleofvideoismislabeled,shouldbe“if/elseStatements”)http://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c4-2

CSE142,if/elseStatements(38:41-50:15)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0c247411-e890-4835-8a79-bee6e74066c2&start=2321

CSE142,MethodswithConditionalExecution(4:08-18:39)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fc356a4a-92a2-4038-9b89-90ea0ffa4533&start=248

CSHomeworkBytes,RelationalandConditionalOperators,withElizabethhttps://www.youtube.com/watch?v=M-mYpnPygY0

CSHomeworkBytes,If-Statements,withJimhttps://www.youtube.com/watch?v=SxWFYfA4i0M

ForumdiscussionLesson3.09RelationalOperators&if/else(TEALSDiscourseaccountrequired)

Lesson3.09:RelationalOperators&if/else

221

Lesson3.10—Nestedif/elseStatements

Overview

Objectives—Studentswillbeableto…

ChoosewhichifstatementstousefordifferentproblemsUsecorrectsyntaxforthedifferentifstatements

Assessments—Studentswill…

Teachamini-lessononsequentialornestedifstatementsSubmitseveralPractice-Itquestions

Homework—Studentswill…

ReadBJP4.1“Factoringif/elseStatements”and“TestingMultipleConditions”Completeexercises4and5

Materials&PrepProjectorandcomputer(optional)WhiteboardandmarkersGroupcopiesofWS3.10Posterpaper,constructionpaper,whitepaper,andlinedpaperMarkers,tape,andgluesticksClassroomcopiesoftextbooksStudentgroupassignments(3-6groups)

Haveallmaterialsoutonstudentdesks,orconvenientlylaidoutforstudentstohelpthemselvestosotheycanstartrightaway,withminimalinstructionfromyou.Don’tforgettocirclewhichif/elsestatementsstudentsshouldbepresentingon.

PacingGuide

Lesson3.10:Nestedif/elseStatements

222

Section TotalTime

Studentpractice 20min

Studentmini-lessons 15–25min

Practice-Itexercises 15min

ProcedureYourhookfortoday’slessonistoturnthereinsovertostudentsimmediately.Haveinstructionsprintedoutandsittingatteamworkstations(oronstudentdesks).Makestudentsanswertheirownquestionsusingtheinstructionsheetandtextbook.

StudentPractice[20minutes]

Givestudents20minutestopreparetheirpresentation.Useatimerandperiodicallyannouncehowmuchtimeisleftinclasssostudentscanpacethemselves.

StudentMini-Lessons[15minutes]

1. Givestudents5minutesperteamtopresenttheirtopic.

2. Encouragestudentstoaskquestions,andbesuretoaskaquestionortwoofeachteam(dependingonhowmanyteamsyouhave).

Worksheet[15minutes]

Leaveabout10–15minutesattheendofclassforstudentstoindividuallycompletePractice-Itquestions:

1. ifElseMystery12. ifElseMystery23. season

AccommodationandDifferentiationCirclearoundtheroomtohelpstudentsthroughreadingthetextinthetextbook.Makesurethateachofyourworkingteamsareproperlystratified(ratherthanusingtieredgrouping).

Ifstudentsarespeedingalong,encouragestudentstowritedownquestionstoposetoothergroupsduringmini-lessons.

Lesson3.10:Nestedif/elseStatements

223

ForumdiscussionLesson3.10Nestedif/elseStatements(TEALSDiscourseaccountrequired)

Lesson3.10:Nestedif/elseStatements

224

Lesson3.11—ReducingRedundancy

Overview

Objectives—Studentswillbeableto…

Simplifycodeandreduceredundancybyfactoringif/elsestatementsandtestingmultipleconditionssimultaneously.

Assessments—Studentswill…

Completeaclasscompetition

Homework—Studentswill…

ReadBJP4.2FinishoutliningChapter4,excludingsections4.3,4.4,and4.5

Materials&PrepProjectorandcomputer(optional)WhiteboardandmarkersRostersforclassteams

Theteamsfortoday’scompetitionshouldbetiered.Dependingonthesizeofyourclass,youshouldaimfor4teamsorteamsof4people.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewingproceduresandforminggroups 5min

Competitionquestion1 15min

Competitionquestion2 15min

StudentsbeginoutliningChapter4 15min

Lesson3.11:ReducingRedundancy

225

ProcedureAsyourhook,grandlyannounceaclasscompetitionbetweenteamsandannouncetheprizeforthewinningteam(thismightbeTEALSswag,bonusclassroomparticipationpoints,oradditionalraffleentriesintheyear-endTEALSgiveaway).Usethisclasscompetitionasanassessmenttodeterminehowmuchre-teachingyouneedtodo.

Bell-workandAttendance[5minutes]

ReviewingProceduresandFormingGroups[5minutes]

Announceclassteamsandrearrangestudentsasneeded.

CompetitionQuestion1[15minutes]

Givestudents5minutestocompletethechallenge,andtakenoteofwhichteamfinishesfirst.

Ifstudentsarestruggling,youmayextendthetime,orofferuniversallyhelpfultips(e.g.“Ifyouseeparenthesesthataren’tbeingusedtoestablishprecedence,ortocast,itmeansyou’recallinganothermethod.”)

Theteamthathasthecorrectanswerfirstwinstheprize.

Reviewstudentanswerstogetherasawholegroup,revisitingconceptstaughtearlierintheweekasmistakescomeup.Wheneverpossible,havestudentsvolunteerthecorrectprocedure,approach,orcode.Encouragestudentstotakenotesduringthisprocesssotheycanreviewtopicsoutsideofclass.

COMPETITIONQUESTION1

Factoroutredundantcodefromthefollowingexamplebymovingitoutoftheif/elsestatement,preservingthesameoutput.

if(x<30){

a=2;

x++;

System.out.println("SpongebobSquarepants!"+x);

}else{

a=2;

System.out.println("SpongebobSquarepants!"+x);

}

Lesson3.11:ReducingRedundancy

226

CompetitionQuestion2[15minutes]

Onceyou’vecompletedthisexercise,offerupthesecondchallengequestion,asbefore.Thisquestionmaytakeupto10minutesforstudentstocomplete.

COMPETITIONQUESTION2

Rewritethepoorly-structuredcodegivenhere,soitavoidsredundancy.Forthecaseofthiscompetition,youcanassumethattheuseralwaysinputs1or2.

intsum=1000;

Scannerconsole=newScanner(System.in);

System.out.print("Isyourmoneymultiplied1or2times?");

inttimes=console.nextInt();

if(times==1){

System.out.print("Andhowmuchareyoucontributing?");

intdonation=console.nextInt();

sum=sum+donation;

count1++;

total=total+donation;

}

if(times==2){

System.out.print("Andhowmuchareyoucontributing?");

intdonation=console.nextInt();

sum=sum+2*donation;

count2++;

total=total+donation;

}

StudentsBeginOutliningChapter4[15minutes]

Onceyouhavecompletedthecompetitionandreview,havestudentsbeginoutliningChapter4.Whatevertheydonotfinishoutliningtheyshouldcompletetonightforhomework.

AccommodationandDifferentiationCirclearoundtheroomtohelpstudentsthroughreadingthetextinthetextbook.Makesurethateachofyourworkingteamsareproperlystratified(ratherthanusingtieredgrouping).IfyouteachinanELLclassroom,youmayopttochangetheassignmentsothatallthelinesofcodearepresent,butshuffledoutoforder(asaParsons-typeProblem).

Ifstudentsarespeedingalong,encouragestudentstowritedownquestionstoposetoothergroupsduringmini-lessons.

Lesson3.11:ReducingRedundancy

227

VideoBJP4-3:Factoringif/elsehttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c4-3

CSE142:Factoringif/elseStatementsandReasoningaboutPaths(18:40-34:05)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fc356a4a-92a2-4038-9b89-90ea0ffa4533&start=248

ForumdiscussionLesson3.11ReducingRedundancy(TEALSDiscourseaccountrequired)

Lesson3.11:ReducingRedundancy

228

Lesson3.12—CumulativeAlgorithms

Overview

Objectives—Studentswillbeableto…

Findandcorrectsyntaxerrorsinconditionalcumulativealgorithms.

Assessments—Studentswill…

Write,modify,andcorrectprogramswrittenbyothers.

Homework—Studentswill…

ReadBJP5.1(skip“do/whileLoops”)CompleteChapter4ProgrammingProject#2

Materials&PrepProjectorandcomputer(optional)WhiteboardandmarkersClassroomcopiesofWS3.12Plasticbindersleeves(1perstudent)

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontocumulativealgorithmsandmin/maxloops 15min

ProgrammingActivity–Programmer1input 10min

ProgrammingActivity–Programmer2input 15min

ProgrammingActivity–EditsandReflection 10min

Procedure

Lesson3.12:CumulativeAlgorithms

229

Bell-workandAttendance[5minutes]

IntroductiontoCumulativeAlgorithmsandMin/MaxLoops[15minutes]

1. Asyourhook,conductanexperimentwithyourstudents:

Announcethatyou’regoingtoreadalistofsixnumbersbetween1and100,andthefirstpersonwhoisdonecalculatingthesumcorrectlywins[classroomrewardofyourchoice].

Studentsshouldindicatetheyaredonecalculatingbyraisingtheirhand.Explainthatyouwillkeeptrackofraisedhands,andthatyou’llcalloneachpersonuntilyouencounterthecorrectanswer.

Readoffthenumbers,andkeeptrackofwhofinshesearly,andwhofinisheslate.Askstudentshowtheycomputedtheiranswers.

You’relookingforananswerfromthe“quick”studentsthattheykeptarunningtally,andthatthe“late”studentsthattheyaddedallthenumbersattheend.

2. Nowproposethatyouwanttotallysixteennumbers.Askstudentshowstudentswhatmethodyoushoulduse,andaskthemtodescribethealgorithmforsolvingtheproblemusingpseudocode.

Translatethepseudocodeintoaloopusingthefollowingexample:useaforloopwithacodeforaddingusingkeywordsum:

intsum=0;

Wealwaysinitializeat0,becausesumneedsaninitialvaluetostartwith.

for(allnumberstosum){obtain“next”withScannersum+=next

Thisispseudocode!Inreallife,we’dbeginwithbuildingascannerinthemainmethod.Let’slookatsomerealcodehere.Sinceweknowwewantuserinput,whatisthefirstthingwedobeforecreatingourclass?

importjava.util.\*;

3. Nowwecreateourclassandmainmethod(havestudentstellyouwhattodo):

Lesson3.12:CumulativeAlgorithms

230

publicclassExamineNumbers1{

publicstaticvoidmain(String[]args){

System.out.println("Thisprogramaddsyournumbers.");

System.out.println();

4. AddourScanner(havestudentsgiveyouthecode):

Scannerscanner=newScanner(System.in);

System.out.print("Howmanynumbersdoyouwanttoadd?");

inttotalNumber=scanner.nextInt();

5. Andfinallyourloopwiththesumkeyword:

doublesum=0.0;//ByusingtotalNumberinste

ad

for(intj=1;j<=totalNumber;j++){//ofanactualnumber,wegi

ve

System.out.print("#"+j+"?");//ourprogramflexibility.

doublenext=scanner.nextDouble();

sum+=next;

}

Besuretobrieflydiscusstheuseofdoublevs.int(wherewouldyouhavetochangecodeifyouwantedint?),thevariableivs.j(youcanmakeitanythingaslongasyou’reconsistent),andvariablesnextandsum.

6. Finallywehavetoaddthecodethatreturnsthesumsothattheusercanseetheresult:

System.out.println();

System.out.println("Yournumbersaddto"+sum);

}

}

7. Invite3studentsuptotheboard(nowthatthecompleteprogramiswritten)

OnestudentactsasJavatotraceflowofcontrol(thisstudentnarrateswhatishappeningoneachline)

Anotherstudentactsasconsoleoutput,writingoutputasJavacreatesit

Trytohaveconsoleoutputwrittenonthesameareaoftheboardeachtimeyoudothistypeofexercise.

Theotherstudentactsasthevaluesbeingstoredinsumandnext

Lesson3.12:CumulativeAlgorithms

231

Thisstudentshouldbewritingtheirvaluesinalocationontheboardthatyouneveruseforwritingconsoleoutput.Reservingaphysicalspacefor“internalworkingswedon’tsee”willhelpstudentskeepexecutionvs.outputseparate.

Seatedstudentsshouldhelpthestudentfigureoutwhatthevaluesinsumandnextarebeingupdatedtowitheachexecutionoftheloop.

Getsampleuserinputfromtheclass.

Ifthatexamplewentwell,moveontomin/maxloops;otherwise,workthroughtheexamplewithnewuserinput.Toscaffoldthisactivity,usewholenumbersandkeeptheloopshort.

Asstudentscontinuetoworkontheirsamplegame,theymaywanttotrackminimumormaximumscores.Askforstudentexamplesofwhenthismightbethecase(e.g.successinthefewestnumberofsteps,maximumscore)

8. Inthiscasewestickwiththeforloopcontrolstructure,butmodifyittokeeptrackofwhetherthenewestvalueislargerthan(orsmallerthan)thevaluestheuserhasinputtoJavasofar:

//Initializemaxtolowestpossiblevalueortofirstvalue.for(allnumberstocompare){obtain"next"withscannerif(next>max)//or:if(next<min){max=next//min=next

Let’sbuildarealprogramwiththis:

intmin=value;

intmax=value;

for(inti=1;i<length;i++){

Scannergetsnextnumber

if(value>max){

max=value;

}elseif(value<min){

min=value;

}

}

9. Askstudentstodiscusswhatthisprogramdoes.Ifamoreconcreteexampleisneeded,workthroughthefirstprogrammingquestiontogetherasawholeclass.Encouragestudentstotellyouwhatcodetowritedownforeachstep,asmuchaspossible.

ProgrammingActivity–Programmer1Input[10minutes]

Lesson3.12:CumulativeAlgorithms

232

1. HandoutWS3.12

2. Readtheinstructionsonthesheetaloud,thenaskstudentstoexplainthembacktoyou.

Askstudentswhypseudocodeissoimportanttoincludeinthisexercise.

Explicitlypointoutthespaceforastructurediagramorprogramoutline.Askstudentswhythisissuchanimportantstructuretoinclude.

Makesurethatstudentsareprogramminginpen,notinpencil,sothatalleditingstepsarevisible.

3. Givestudents10minutestobuildthefirstpartoftheprogram.

Ifstudentsarestruggling,youmayextendthetime,orofferuniversalhelpfultips.

ProgrammingActivity–Programmer2Input[15minutes]

Havestudentstradepaperswiththeirassignedprogrammingpartner.

1. Remindstudentstoaddtheirnametothepaperas“programmer2.”2. Givestudentsanother15minutestobuildontheprogramandmakeedits.

ProgrammingActivity–EditsandReflection[10minutes]

Havestudentsreturneachothers’papers,andhavethefirststudentmakeeditsandfillinthecommentsection.

AccommodationandDifferentiationAsa“runningactivity,”haveyourstudentscreateanewblanksheettitled“TrickyCodeCheatSheet,”andgivethemaplasticsleevetoprotectthisreferencesheetintheirbinder.Encouragestudentstostartwritingdownhints,tips,andusefulsnippetsofcodethattheycanrefertoduringhomework,classwork,programmingprojects,andeventests.

Everytimeyouencounterausefulsnippetofcode,recommendthatstudentsincludeitontheir“CheatSheet,”sostudentscandrilltheusefulcodethroughouttheyear.SometricksthatshowupontheAPinclude:

Using%2==0toidentifyevennumbers,use%2==1toidentifyoddnumbers.

Tofindthelastdigitofalargenumber,use%10.

Tipsfromtoday’sclasswouldinclude:

Lesson3.12:CumulativeAlgorithms

233

Tokeeparunningtotal,usesuminaforloop(initializeto0,puttherangeofnumbersintheloopheader).

Toaccesstheminormaxvalue,useanif/elsestatement(initializetofirstorhighest/lowestnumber,putdatarangeinforloopheader).

AskstudentswhatatipforScannerwouldlooklike,oratipforwhentoimportjava.util.*

VideoBJP4-4,Programmingwithif/elseandCumulativeSumshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c4-4

CSE142,CumulativeSum(23:07-38:40)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0c247411-e890-4835-8a79-bee6e74066c2&start=1387

ForumdiscussionLesson3.12CumulativeAlgorithms(TEALSDiscourseaccountrequired)

Lesson3.12:CumulativeAlgorithms

234

Lesson3.13—whileLoops

Overview

Objectives—Studentswillbeableto…

Tracewhileloopstopredict:ThenumberoftimesthebodyexecutesTheoutputofthecode

Differentiatebetweenwhileloops,ifstatements,andforloops

Assessments—Studentswill…

CompletePractice-Itquestions

Homework—Studentswill…

ReadBJP5.1“RandomNumbers”Completeself-checkquestions#1-4andexercise2

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS3.13

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction&think-pair-share 15min

StudentPractice-Itactivity 35min

Procedure

Lesson3.13:whileLoops

235

Bell-workandAttendance[5minutes]

Introduction&Think-Pair-Share[15minutes]

1. AskstudentstoofferpseudocodethatexplainshowtheymighttrackdamagetoaPokemon.

(Studentanswersshouldincludesomeofthesesteps:StartwithinitialHP,andwhileHPisgreaterthan0,askhowmuchdamage,subtractit,andendprintwith“Pokemonfainted!”)Pointoutthatthisprocesshasnopredeterminedlength(indefinitelooping),soyouneedtouseanewtypeofloopcalledawhileloop.

Ifstudentsneedadditionalexamplesofindefinitelooping,useasimplerexample,askingstudentshowtheywoulddoubleanumberuntilitwasbiggerthanN.

2. EngagestudentsintheintroductiontodaybyhavingstudentscompletethegraphicorganizeronWS3.13asyoureviewthestructure,flow,andsyntaxofthewhileloop.

3. Compareandcontrastthewhileandforloops(seecodesnippetsbelow):botharecontrolstructuresthatsendtheflowofcontrolthroughaloop,butscopediffers,sotheloopsexecuteindifferentways.

Havestudentspointoutwhereiisdeclared.

Introducetheconceptofdefinitevs.indefiniteloopsandaskstudentswhentheymightwanttouseanindefiniteloop(theywillprobablyhavewantedtousethisstructureintheirearlierprogrammingprojects—promptthemwiththisifnoonevolunteersanexample).

Call2studentsuptotheboard;onetotracetheflowofcontrolandtheotherwritetheoutput.

//whileloop://forloop:

inti=0;for(inti=0;i<10;i++){

while(i<10){System.out.println(i);

System.out.println(i);}

i++;

}

4. InvitestudentstoThink-pair-shareonthefollowingexample:

Lesson3.13:whileLoops

236

intn=91;

intfactor=2;

while(n%factor!=0){

factor++;

}

System.out.println("Firstfactoris"+factor);

Howmanytimesdoesthisloopexecute?Whatistheoutput?

Inthesamepairs,havestudentsrewritethewhileloopasaforloop.

StudentPractice-ItActivity[35minutes]

1. HavestudentscompletethefollowingPractice-Itproblems:

i. whileLoopsii. forToWhileiii. whileLoopMystery1iv. whileLoopMystery2

2. Ifstudentscompletetheseproblemswithtimetospare,havethemcompletePractice-Itexercise“gcd.”

AccommodationandDifferentiationIfstudentsarehavingdifficultytracingwhileloops,usingpropersyntax,orpredictingtheoutputoftheloop,youcanchangethePractice-Itexercisetoareciprocalteachingexercise,where¼oftheclassdoeseachproblem,andtheycometothefrontoftheroomtoexplaintheirsolutionandprocesstotherestoftheclass.

Ifyouhavestudentsthatfinishedtheclassworkaheadoftime,encouragethemtoexploredo/whileloops(whichareNOTpartoftheAPsubset).

CommonMistakesLoopscommonmistakes:http://interactivepython.org/runestone/static/JavaReview/LoopBasics/lMistakes.html

VideoCSE142,WhileLoop(11:21-15:55)

Lesson3.13:whileLoops

237

https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f9874ea5-8d4d-4bf1-8924-ded454847a58&start=681

ForumdiscussionLesson3.13whileLoops(TEALSDiscourseaccountrequired)

Lesson3.13:whileLoops

238

Lesson3.14—RandomNumbersN.B.THISLESSONISOPTIONAL(WhileMath.randommightbeincludedontheAPexam,theRandomclassisnotpartoftheAPsubset.)

Overview

Objectives—Studentswillbeableto…

Writeexpressionsthatgeneratearandomintegerbetweenanytwovalues.

Assessments—Studentswill…

CompletePractice-Itquestions

Homework—Studentswill…

ReadBJP5.2Completeprogrammingproject1

Materials&PrepProjectorandcomputerWhiteboardandmarkers

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandthink-pair-share 15min

StudentPractice-Itactivity 35min

Procedure

Lesson3.14:RandomNumbers

239

Hookyourclassbytalkingaboutrandomizedtasksthatariseingamestheymayplay.Forexample:

Createanenemythatspawnsaftersomerandomamountoftime,butbetween7and23seconds.

Pickarandomitemfromalistof100wordstheuserneedstoguessinHangman

Createanewusernamebetween6and10characterspickingrandomlywhateachcharacteris,fromlower/capitallettersandnumbers.

Makeaballbounce,butnotprecisely,byaddingrandomanglestothebounce.

Bell-workandAttendance[5minutes]

IntroductionandThink-Pair-Share[15minutes]

1. Oncestudentshaveallhadachancetoexplorethedice,showthemhowtogeneraterandomnumbersthattheycanuseintheirgameprogram,computersimulations,orsecurityprograms(movingforward).

Constructarandomobject(seeifanyonecantellyouhowtodothisfromtheirreadinglastnight):

Randomr=newRandom();

CallthenextIntmethod,passingtheupperlimitoftherangeofyourrandomnumber(inthecaseofa6sideddice,thiswouldbe6).

result=r.nextInt(6);//Givesyouarandomnumberbetween0-5.

Doesthiscodeaccuratelysimulateasixsideddice?(Havestudentswiththesix-sideddiceansweryourquestion.)Toshiftthatresultbetween1and6,youneedtoadd1toyourcode:

result=r.nextInt(6)+1;//Givesarandomnumberbetween1-6.

Outputtheresult:

System.out.println("Yourolleda"+result);

2. GivestudentsafewminutestodoaThink-Pair-Shareforthefollowingquestions:

Lesson3.14:RandomNumbers

240

Writeanexpressionthatsimulatesarollofa20–sideddice.Writeanexpressionthatyieldsarandomnumberbetween0.0and1.0.

3. ReviewTable5.2fromthebookasyoudiscusstheanswersinawholegroup.

nextInt()=randomintegerbetween-2^31and(2^31–1)nextInt(max)=randomintegerbetween0and(max–1)nextDouble()=randomrealnumberbetween0.0and1.0nextBoolean()=randomlogicalvalueoftrueorfalsePrimingtheloop:remindstudentsthattheymustinitializevariablesbeforetheloop(thismakessurethatJavaknowshowtoenter/starttheloop).

StudentPractice-ItActivity[35minutes]

1. HavestudentscompletethefollowingPractice-Itself-checkproblems:

a.randomRangeABCDEb.randomInteger0to1c.randomOddInteger50to99

2. Ifstudentscompletetheseproblemswithtimetospare,havethemcompletePractice-Itexercises:

a.randomXb.randomLines

AccommodationandDifferentiationIfstudentsarehavingdifficultytracingwhileloops,usingpropersyntax,orpredictingtheoutputoftheloop,youcanchangethePractice-Itexercisetoareciprocalteachingexercise,where1/5oftheclassdoeseachproblem,andtheycometothefrontoftheroomtoexplaintheirsolutionandprocesstotherestoftheclass.

Ifyouhavestudentsthatfinishedtheclassworkaheadoftime,encouragethemtocompletePractice-ItExercisethreeHeads.

VideoBJP5–1,RandomNumbershttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c5-1

CSHomeworkBytes,RandomNumbers,withElizabethhttps://www.youtube.com/watch?v=R0MqnEofFvs

Lesson3.14:RandomNumbers

241

CSE142,RandomNumbers(11:12–17:17)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fe3ea547-6068-4e56-ab0b-e8f8605dd836&start=672

CSE142,GuessingGame(17:18–37:13)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fe3ea547-6068-4e56-ab0b-e8f8605dd836&start=1038

ForumdiscussionLesson3.14RandomNumbers(TEALSDiscourseaccountrequired)

Lesson3.14:RandomNumbers

242

Lesson3.15—Fencepost&SentinelLoops

Overview

Objectives—Studentswillbeableto…

Describewhentousefencepostandsentinelloops.Usepropersyntaxtoconstructthesecontrolstructures.

Assessments—Studentswill…

Teachamini-lessonexplainingtherelationshipbetweenparametersandvaluesstoredinmemory

Homework—Studentswill…

ReadBJP5.3Completeexercises#6&8Summarizeallofyourdailynotesifnotalreadydone

Materials&PrepProjectorandcomputerWhiteboardandmarkersGroupcopiesofWS3.153ormoreclassroomcopiesofthetextbook

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Mini-lessonplanning&prep 15min

Studentpresentations&practice 30min

Lesson3.15:Fencepost&SentinelLoops

243

ProcedureToday3studentteamswillteachalessononfencepostalgorithms,sentinelloops,orsentinelloopswithifstatements.Yourhookwillbetoturntheclassovertostudentsassoonastheyenter.Studentgroupsareexpectedtogeneratesamplequestions;letstudentsknowthatyouwillcollectthosequestionstouseonquizzesorasbellwork.

Bell-workandAttendance[5minutes]

Ontheboard,ontheprojector,orinagrouphandout,letstudentsknowthattheyneedtopreparea5minutelessonanda2-5minuteclassactivitytoteachtheirtopic.Usethegradingrubricasoutlinedhere:

3pts. 2pts. 1pts. 0pts.

Presentationincludesdefinitionsandanexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithonemistake.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithmanymistakes.

Presentationincludesanon-exampleashelpfulcontrast.

Presentationincludesanon-examplethatismarginallyhelpful.

Presentationincludesanon-examplethatdoesnotaddtocomprehension.

Presentationincludesanon-examplethataddsconfusion,orpresentationdoesnotincludeanon-example.

Presentationincludesahelpfultipthatisclearlyexplainedandconciselystated.

Presentationincludesahelpfultipthatisclearlyexplainedorconciselystated.

Presentationincludesahelpfultipthatisnotclearlyexplainedandmayincludeasmallerror.

Presentationdoesnotincludeahelpfultiporhint.

Mini-LessonPlanning&Prep[15minutes]

1. Assigneachgroupasubsectionofsection5.2“FencepostAlgorithms,”andmakesurethatyoucirclethatassignmentoneachgroups’copyofWWS3.15.Studentgroupsshouldtake15minutestoreviewtheirsection,re-readtheexampleonthepagesfollowingtheexample,thenfigureouthowtheywanttoexplainthealgorithmtotheclass.

2. Ontheboardoroverhead,givestudentsafewthingstheyshouldconsiderinplanningtheirminilesson:

a.Whoisgoingtospeakwhen?

Lesson3.15:Fencepost&SentinelLoops

244

b.Howareyougoingtoillustratetheflowofcontrol?

c.Whatdoyouneedtohaveupontheboardtoillustrateyourmini-lesson,andwhoisinchargeofwritingitout?

d.Whereandhowwillyoufeaturetheoutputproducedbyyourcodesegment?

e.Whatisyourmini-activitygoingtolooklike?(Youmightwanttoassign1–2peopletoworkonthissectionwhiletherestofthegroupworksonthelesson.)

3. Havestudentgroupssequentiallyteachthroughfencepostalgorithms,sentinelloops,andfencepostswithifstatements.

4. EncouragestudentstoaddthesestrategiestotheirTrickyCodeCheatSheet.

StudentPresentations&Practice[30minutes]

AccommodationandDifferentiationIfyourclasslearnsbetterthroughtactileorvisio-spatiallearning,youcanchangethisassignmenttoamake-a-posterlesson,havingstudentsworkinpairsortripletstocreateaninformativeposterononeofthetopics.Ifyou’refortunateenoughtohaveatheatricalormusicalclass,invitethemtocreateasong,poem,ornarrateddance/playthatteachestheirtopic.Forpoemsorsongs,encouragestudentstowritethemoutorrecordthemsoyoucandisplaythemaroundyourroom.

CommonStudentQuestionsSinceyourstudent-instructorswon’tbeabletoanswerin-depthquestionsontheirtopic,youshouldbereadytoassistduringtheQ&Asectionoftheirlesson.Somestudentquestionsthathavepoppedupinthepast,withtheiranswers,arelistedbelow:

1. Thesentinelloopexampleinthebooksaysthatthesentinelvaluewillbereadandaddedtothesumunlesswedoafencepostalgorithmorifstatement.Whyisthat?Doesn’tthetestevaluatetofalseandterminatetheloop?

Writeanexampleontheboardinpseudocodeoractualcode,andtracetheflowofcontrolwithyourmarker.Inthiscase,thepseudocodeinthebookisabitmisleadingbecauseitlookslikethetestwillterminateintheheader.Thepromptforthesentinelisalreadyintheloopbody,sothesentinelwillbeevaluatedbeforelooptermination.

Lesson3.15:Fencepost&SentinelLoops

245

Ifyouthinkyourclasswillbecomfortable,instructyourteachinggrouptodothisillustration,andjusthelpalong.

2. Whatdoyoudoifyoudon’tknowthefirstvaluetoputinyourfencepostalgorithm?Whatifyou’regettingallofyourdatafromuserinput?

3. Whendoweknowtoreversetheorderofloopconstruction?Theexamplefromthebookhasusswitchingaroundalotofstuffforthesentinelloopwithifstatements.

Putanexampleupontheboard(orhavethestudentinstructorsdoso),andtracetheflowofcontrolbeforeandafterrearrangingtheloopbody.

VideoBJP5-3,SentinelLoopshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c5-3

CSE142,Fencepost(0:28-11:20)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f9874ea5-8d4d-4bf1-8924-ded454847a58&start=28

CSE142,SentinelLoops(15:56)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=f9874ea5-8d4d-4bf1-8924-ded454847a58&start=681

ForumdiscussionLesson3.15Fencepost&SentinelLoops(TEALSDiscourseaccountrequired)

Lesson3.15:Fencepost&SentinelLoops

246

Lesson3.16—BooleanLogic

Overview

Objectives—Studentswillbeableto…

WriteagamethatplaysRock-Paper-Scissors.

Assessments—Studentswill…

Submitaprogramattheendof2or3classperiods.

Homework—Studentswill…

OutlineChapter5(uptoandincludingBJP5.3)

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS3.16(RPS,Pig),DeMorgan’sLaw,Poster3.16.1,Poster3.16.2Linktorock-paper-scissorgame(http://tinyurl.com/bubyvtu)Poster3.16.1Poster3.16.2

Truthtablesareanimportanttool,especiallyforsomeAPtestquestions.Ifyouarenotfamiliarwithtruthtables,watchthis5minutetutorialonline(http://tinyurl.com/mw8ohof).Werecommendinstructorsdrawoutthe&&,||,and!truthtables,andmaybedoanintermediateexampleofatwo-operatorexpression,beforegettingintotheDeMorgan’slawexamplelaterinclass.

PacingGuide:Day1

Lesson3.16:BooleanLogic(2Days)

247

Section TotalTime

Attendance&studentplay 5min

IntroductiontoBooleanLogicAdd5–10minutesifusingtruthtables 10min

Studentprogrammingactivity 40min

PacingGuide:Day2

Section TotalTime

Attendance&outlinecollection 5min

Whole-grouptroubleshootinganddiscussion 10min

Studentprogrammingactivity 40min

ProcedureInplaceofbell-work,invitestudentstowarmupforclassbyvisitingtheonlineRockPaperScissorgameatthelinkabove.AfteraquickreviewofBooleanlogicandvariables,studentswillbeaskedtobuildtheirownRockPaperScissorgame.Thisprogrammingprojectshouldtakebetween2and355-minuteclassperiodstocomplete

Attendance&StudentPlay[5minutes]

IntroductiontoBooleanLogic[10minutes]

1. Studentsshouldhavealreadyreviewedthismaterialaspartoflastnights’homeworkassignment.Beforemovingontopurelymathematicalexamples,startwithareal-lifeexampleofhowweapplylogic.BesuretochangePandQtostatementsthatarerelevanttoyourstudents.

P:Itisaholiday.Q:Myfamilyishavingdinnertogether.

!(p||q)⇒Itisnotthecasethat(itisaholidayORmyfamilyishavingdinnertogether)

!p&&!q⇒ItisnotaholidayANDmyfamilyisnothavingdinnertogether.

Review&&,||,and!,includingnon-examples:

Lesson3.16:BooleanLogic(2Days)

248

┌──────────┬───────────────────────┬────────────────────┐

│Operator│Expression│Result│

┝━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━

━━━━━━━━━━┥

│AND│(4==4)&&(2>1)│Evaluatesto:True│

│OR│(1<2)││(2<1)│Evaluatesto:True│

│NOT│!(2<1)│Evaluatesto:True│

└──────────┴───────────────────────┴────────────────────┘

if(q==1||2||4){//ERROR:YoumustusefullBooleanexpressions.

statement;

statement;

}

if(q==1||q==2||q==4){//Correct

statement;

statement;

}

2. AsaspecialnoteonnegatingBooleanexpressions,reviewDeMorgan’slaw(poster3.16.1).HavestudentswriteDeMorgan’slawontheirTrickyCodeCheatSheet.

Ifyoufeelconfidentworkingwithtruthtables,workthroughthefollowingillustrationofDeMorgan’slaws.Ontheboardorprojector,onlywritetableheadersasyougo(puttingthemallupatoncemayleadtopanic/distractionforsomestudents).

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

│F│F│││││

│F│T│││││

│T│F│││││

│T│T│││││

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

HavestudentshelpyoufillouteverypossiblecombinationofBooleanvaluesforpandq.

Askstudentstoevaluatethelogicalexpressionforeachvalueofpandq.

Lesson3.16:BooleanLogic(2Days)

249

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

│F│F│F││││

│F│T│T││││

│T│F│T││││

│T│T│T││││

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

Nowhavestudentsnegateallofthevaluesfromthepreviouscolumn.

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

│││F│T│││

│││T│F│││

│││T│F│││

│││T│F│││

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

Askstudentstocompletethevaluesfor!pand!q,referringtothevaluesfromthefirstcolumn.

Lesson3.16:BooleanLogic(2Days)

250

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

│F│F│││T│T│

│F│T│││T│F│

│T│F│││F│T│

│T│T│││F│F│

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

Nowhavestudentsapplythe&&operatorto!pand!q.

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

│││││T│T│

T│

│││││T│F│

F│

│││││F│T│

F│

│││││F│F│

F│

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

Pointouttoyourstudentsthatthesetwocolumnsarethesame.Whenevertwocolumnsofatruthtablearethesame,wesaythattheexpressions(columnheadings)areequivalent,orinterchangeable.

Lesson3.16:BooleanLogic(2Days)

251

pqp││q!(p││q)!p!q!p

&&!q

┌───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬────

───────┐

││││T│││

T│

││││F│││

F│

││││F│││

F│

││││F│││

F│

└───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴────

───────┘

Intheillustrationabove,weshowedthat!(p&&q)isequivalentto!p&&!q.Invitestudentstoshowtheequivalenceof!(p&&q)and!p||!q.

3. Reviewoperatorprecedenceonyourclassroomposter3.16.2(orprojectedoverhead,ifyou’rehavingastudentmaketheposterforyouduringclass).

4. CheckforstudentunderstandingbyhavingstudentscompletePractice-Itself-checkquestionsassertions1andassertions3.

StudentProgrammingActivity[40minutes]

Ontheprojector,boardorasahandout(WS3.16),givestudentsthefollowingprogrammingprompt.AlinktotheNYTimesarticleaboutrockpaperscissorsisincludedintheMaterialssectionofthislessonplan.

PROGRAMMINGACTIVITY

Exercise1

WriteagamethatplaysmanyroundsofRockPaperScissors.Theuserandcomputerwilleachchoosebetweenthreeitems:rock(defeatsscissors,butlosestopaper),paper(defeatsrock,butlosestoscissors),andscissors(defeatspaper,butlosestorock).Iftheplayerandcomputerchoosethesameitem,thegameisatie.

Agoodprogramwillpromptforuserinput,compareinputtoacomputercounter-move,thenoutputaverdict(userloses,wins,orties),promptforanotherroundorexit.

Lesson3.16:BooleanLogic(2Days)

252

Anexcellentprogramwilldoallthatasatisfactoryprogramdoes,butwillusedifferentalgorithmicstrategiesforchoosingthebestitem.Teacher’snote:thereisnosuperiorstrategy—thefocushereistogetstudentstotrydifferentapproachesandconcludethatontheirown.

Exercise2

Youandyourpartnershouldtestoutthegamebyplayingitatleast3timeseach.Keeprecordofhowmanymovesittookbeforeyouwonorlostthegame.

Exercise3

Writeaprogramthatcompares2players.Yourprogramshouldpromptforeachplayer(1)thenumberoftimestheyplayedthegame,(2)thenumberoftimestheywonthegame,(3)thenumberofmovesforeachgame.Havetheprogramreportwhichplayerperformsbetteronthebasisoftheirreportedstatistics.Testyourprogrambyinputtingyourandyourpartner’sresultsfromExercise2.

Exercise4

WriteaprogramthatplaysthedicegamePig.Pigisa2-playergamewheretheplayerstaketurnsrepeatedlyrollingasingle6-sideddie.Aplayerrepeatedlyrollsthedieuntiloneofthetwoeventsoccurs:(1)eithertheplayerchoosestostoprolling,inwhichcasethesumofthatplayer’srollsareaddedtohis/hertotalpoints,or(2)iftheplayerrollsa1atanytime,allpointsfromthatturnarelotsandtheturnendsimmediately.Thefirstplayertoreachascoreofatleast100pointswins.

Togetfullcreditonthisassignment,youmustincludeastructurediagramand/orpseudocodeexplainingyourstrategy.

Beforeyoubegin,takeamomenttodecidehowyourcomputerwillpickrock,paper,orscissor.Shouldthecomputerpickrandomly?Shoulditpickthesameitemalways?Shoulditrepeatthesameitemforatime,thenswitchstrategies?ReadthroughtheNewYorkTimesarticleonRockPaperScissor,andanyotheronlinesourcesyouchoosetohelpyoudraftaplanforyourprogram.

Allowstudentstoworkinpairs,andencouragepairstotestouteachothers’programs,lookateachotherscode(tocheckforerrors),etc.Ifstudentsappeartobeworkingtooclosely,remindthemthateachteamisresponsibleforwritingtheirowncode.

Startgradingstudentnote-booksinsmallbatches(sostudentsarenotwithouttheirnotebooksfortoolong!)

Lesson3.16:BooleanLogic(2Days)

253

AccommodationandDifferentiationInviteyourartisticstudentstocreateposters3.16.1and3.16.2foryourclassroom.Ifneeded,workthroughthe2Practice-Itquestionsasawholeclass.

Foryourmoreadvancedstudents,youmightencouragethemtocreatemorecomplexalgorithms,ormoreadvancedinteractionwiththeuser.IftheyareinterestedinAIandmachinelearning,invitethemtoresearchthetopicandexperimentwithdifferenttechniquesontheirRockPaperScissorprogram.

MisconceptionsStudentsoftenhavethemisconceptionthatlogicalOR(||)isexclusiveOR.Inastudent’sdailylife,theycanhaveeitherbrownieorthecupcake.Thisimpliestheycanhaveoneortheother,notboth.However,inbooleanlogic,“aorb”isalsotrueifbotharetrue.

Studentsaskwhythesymbol&&forANDan||forOR?Andwhydouble&&vssingle&.

JavawasderivedfromtheCprogramminglanguage.ThedesignersKernighanandRichiemadedesigndecisionsbasedonpriorprogramminglanguagesoftheirtime.ThehistoryofCcanbefoundhere:https://www.bell-labs.com/usr/dmr/www/chist.html.Java’suseof&and|ishistoricallybasedonC.

Acommonsyntaxerrorbybeginnerandexperiencedprogrammersalikeistypingasingleampersand&orverticalbar|.Single&and|arebitwiseoperators,andarenotthesameasdouble&&and||whicharelogicalANDandOR,respectively.

LogicaloperatorsANDandORdonotfollowEnglishlanguagesyntax.Forexample,testingwhetheradicerolliseither7or11couldbetranslatedincorrectlyto:

if(roll==7||11)//INCORRECT:Logicaloperatormisconception

if(roll==7||roll==11)//CORRECT

VideoBJP5-4,TheBooleanTypehttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c5-4

Lesson3.16:BooleanLogic(2Days)

254

ForumdiscussionLesson3.16BooleanLogic(TEALSDiscourseaccountrequired)

Lesson3.16:BooleanLogic(2Days)

255

Lesson3.17—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

Studyforthetestby:ReviewingallthebluepagesattheendofChapters3,4,and5Re-readingsectionsasneeded

Submit5questionsforreviewinclasstomorrowusingelectronicsurvey

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

Lesson3.17:Finding&FixingErrors

256

ProcedureToday,studentswillhavetheopportunitytocorrectanyincorrecthomeworkassignments.Ifstudentsdidnothavetimetofinishtheprogrammingprojectsfromyesterday,youmayallowthemtimetoworkonthoseprojectstoday.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.(Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.)

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.Ifstudentshavenotfinishedtheirprogrammingprojectfromyesterday’sclass,allowthemtodosotoday.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemtotackleprogrammingproject1inChapter5.

Ifyouwereunabletofinishgradingstudentnotebooksyesterday,finishthemtodaywhilestudentsareworking.Returnnotebooksbytheendofclasssostudentsmayusethemtostudyfortheexam.

Lesson3.17:Finding&FixingErrors

257

ForumdiscussionLesson3.17Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson3.17:Finding&FixingErrors

258

Lesson3.18—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit1knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stestusingyourtargetedreviewlist

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopicsClassroomcopiesofthepracticetestWS3.18

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandtestformatorientation 15min

Testreview 30min

Checkstudentstudylists 5min

Lesson3.18:Review

259

Procedure

Bell-workandAttendance[5minutes]

IntroductionandTestFormatOrientation[15minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Studentsshouldalreadybefamiliarwiththesectionsofthetest,butitdoesn’thurttohavestudentsre-readthedirections.

3. Workthroughthesampleproblemsonthetestasawayofreviewingtopics,andansweranyquestionsthatstudentsbringupasyougo.

TestReview[30minutes]

1. Workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

a.Somequestionsyoumayalreadyhaveaddressedwhileworkingthroughthesampletest.

b.Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

2. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

3. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.(Yes,thiswillbearemindereveryfewminutes,butitwillpayofflaterwhenstudentsstartcreatingreviewlistswithoutpromptinglaterintheyear!)

Checkstudentstudylists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

AccommodationandDifferentiation

Lesson3.18:Review

260

Thefirstpracticeproblemcallsamethodinsideanexpressioninsideaparametertoansweranothermethodcall(thissoundscrazy,buttakealookatthequestionbeforeyouwriteitoff!)Logically,thequestionmakessense,butitmaythrowsomeofyourstudents.Usethequestionasanopportunitytomodelpropertest-takingstrategies:

Readcodeline-by-line.

Ifstumpedonamultiple-choicequestion,trypluggingintheanswerstoseeiftheyevaluatecorrectly.

Writenotesandcrossoutanswersonyourpapercopyofthetest.

IfyouhavebeenusingParsonsProblems,onyourstudents’testsyoumaywanttothrowina“fullchallenge”blanksection2questionduringthisunitorthenexttoscaffoldyourstudentsuptothechallengeofarealAPtest.

Aswritten,theexamsincreaseinlengthandcomplexitywitheachunit.Ifyourstudentsareallacingthetest,challengeyourstudentsbymodifyingthesection2questions,andaddingextrasection1questions.

ForumdiscussionLesson3.18Review(TEALSDiscourseaccountrequired)

Lesson3.18:Review

261

Test2GuideAswritten,thetestforthisunitisprobablytoolongforstudentstocompleteinoneclassperiod.Extraquestionshavebeenincludedsoyoucan:

1. Pickandchoosewhichquestionswillappropriatelyassessyourstudents.2. Createdifferentversionsofthetest(ifyou’venoticedthatcheatingisaproblem).3. SimulateanauthenticAPtestexperience.

Whenmodifyingthetesttosuityourstudents,don’tforgetto:

1. ChangetheheadingsonSectionI&IItoreflecttheactualnumberofquestions.2. ChangetheheadingsonSectionI&IItoreflectthecorrectpercentagesoftheirtotal

testscore.TheAPexamweightsSectionI&IIat50%oftheoverallscore,each.3. Adjustthetestpacingforyourclassperiod’stimespan.Theultimategoalistowork

yourstudentsuptoapaceof2minutesperSectionIquestion,and26minutesperSectionIIquestion(includingtimeforchecking).

ForumdiscussionTest2Guide(TEALSDiscourseaccountrequired)

Test2Guide

262

Lesson4.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit3.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP6.1Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

Ifyourclassisacingtheexams,andyoudonotfeelthatyouneedtore-teachanymaterial,youshouldskipthislessonandmoveondirectlytoLP4.1.Besuretoupdatestudenthomeworksostudentshaveread§6.1.intimeforthelesson.

PacingGuide

Lesson4.00:TestReview&Reteach

263

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

HowtheyfelttheyweregoingtodobeforethetestWhatsurprisedthemoncetheyweretakingthetestWhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)Whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).Inanon-judgmental,supportivetone,remindstudentsthattobesuccessfulinthecourse:

Readingismandatory

Homeworkismandatory(Andvaluable!Youwillneverassign“busy”work.)

Tobettermanagetheirtime,studentsshouldplanfor1hourofhomeworkaweeknight,withupto2hoursofhomeworkeachweekend.Ifthisseemsimpossible,theyshouldmeetwithyouortheirguidancecounselortoassesswhethertheycanfitinanAPclassatthistime.

ItisVERYimportanttokeepyourtonesympatheticatthispoint—anoverworked,overstressed,underperformingstudentwillslowyourentireclassdown,andcolorthatstudentagainstCSforthefuture!

Lesson4.00:TestReview&Reteach

264

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

a.Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

b.Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationIfstudents’gradesaresufferingbecausethereadingassignmentsaretakingthemtoolong,youhaveafewoptions(somemoredrasticthanothers):

Setasideclassroomtimetoreadthroughtheassignmentbeforestudentsleave.

Givestudentsthelinesofcodeneededtocompleteassignments,butinjumbledorder.Havestudentsrearrangethelinesofcodeintotheproperprogram(thisiscalledaParsonsProblem).

Flipyourclassroom:recordyourlectures,andhavestudentswatchthemandtakenotesforhomework.Anyclassworkdrillsorworksheetscanbedistributedfor“homework,”andthemorecomplicatedassignmentsthatwouldnormallybedoneathome,canbecompletedwithyourhelpwhentheycometoclass.

Lesson4.00:TestReview&Reteach

265

Ifstudentsdon’thaveacomputertoworkonPractice-Itproblemsathome,createprinted-outsheetsthatstudentscanwritecodeonto.Classtimeshouldthenbefilledwithreadingassignments,andmorecomplicatedcodingpracticesoyouareavailabletotutorasneeded.

Encourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.Unit4introducestheMagpielab,alongformprogramminglabwithplentyofenrichmentopportunities;encouragestudentstoworkonthisprojectiftheyareeverleftwithafewminutesaftercompletingaclassassignment.

ForumdiscussionLesson4.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson4.00:TestReview&Reteach

266

Lesson4.01—ArrayBasics

Overview

Objectives—Studentswillbeableto…

Define,populate,andaccessarrays.

Assessments—Studentswill…

CompleteexerciseswithmanipulativesonWS4.1.

Homework—Studentswill…

ReadBJP7.1“For-EachLoop”and“TheArraysClass”Completeself-checkquestions#1,7,9

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS4.1,Poster4.2Arraywhiteboards(seenotesatendoflesson)anddry-erasemarkersStudentsmall-groupassignments(~3-4studentspergroup)Largemanipulativeforteacherdemo(optional)

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductiontoarrays 20min

Studentarrayactivity 25min

Paperselection&gradeannouncement 5min

Lesson4.01:ArrayBasics

267

ProcedureDivideyourclassintosmallgroupstoday,andhavethemanipulatives(seebelow)outateachgroupstation,desk,orworkspace.Offerajust-in-timeintrotoarraysasoutlinedbelow,butdon’tbelaborinstruction;studentsmayhavebettersuccessphysicallyworkingthroughtheactivity.Circulatearoundtheroomtocheckforunderstanding,butletstudentshelpandchallengeeachother.

Bell-workandAttendance[5minutes]

IntroductiontoArrays[20minutes]

1. Openupwiththeexampleofdailytemperatureontheslides.

Asktheclasstobuildtheprogram,theyshouldreachthepointwheretheycalculatetheaverage,butareunabletocalculatethedaysaboveaverageastheymustaccessthedataasecondtime.

Inorderthesuccessfullymaketheprogram,wewouldneedtostorethetemperatureforeveryday.

Anarrayisanindexedstructurethatholdsmultiplevaluesofthesametype.Askstudentsifthey’veseenanythinginJavathatmightbeanarray.(AStringcanbethoughtofasanarrayofcharacters!)

Thevaluesstoredinanarrayarecalledelements.Individualelementsareaccessedusinganintegerindex(theposition).Askstudentswhatelementisstoredatindex2,4,and7inthisstring/array.

Sinceanarrayisanobject,youhavetoconstructit(youcan’tjustdeclareitasavariable).

int[]numbers=newint[10];

Nothingisinthehighlightedbracketsbecauseyou’redescribingwhattypeisgoingtobecontainedinthearray.

int[]numbers=newint[10];

Here’sthenameofyourarray—inthiscasewe’remakinganarrayofnumbers.

int[]numbers=newint[10];

Lesson4.01:ArrayBasics

268

Weusethenewkeywordsincewe’reconstructinganobject,thenwetellJavahowmanyelementswewanttostoreinourarray.Inthiscasewewanttostore10numbersinthearray.

Checkforstudentunderstandingbyaskingstudentstotellyouhowtoconstructanarraythatholds9integers.

int[]numbers=newint[9];

Alternatively,youcaninitializeanarraybywritingoutthefullarray.

int[]numbers={0,1,2,3,4,5};

2. Bothofthesesamplearraysareonly½donerightnow—they’rearraysfilledwith0sbecauseJavaauto-initializesarraystoadefaultvalueof0(forchar,double,andint)orfalse(forboolean).Soournumberarraylookssomethinglikethis:

.------------------.---.---.---.---.

|array`numbers`:|0|0|0|0|

+------------------+---+---+---+---+

|index|0|1|2|3|

`------------------'---'---'---'---'

Tofillinthisarray,weneedtofillinthevaluesforeachlocation:

numbers[0]=27;

numbers[3]=-6;

Nowthearraylookslikethis:

.------------------.---.---.---.---.

|array`numbers`:|27|0|0|-6|

+------------------+---+---+---+---+

|index|0|1|2|3|

`------------------'---'---'---'---'

3. Brieflytouchonothertypesofarraysandcommonerrors.

Youcanhavearraysofalmostanything:String,double,boolean,etc.Examplesofaninstantiateddoubleandbooleanarrayareontheslides.Asktheclasswhattheymustchangetocreatethesearrays.

Lesson4.01:ArrayBasics

269

Coverthecommonindex-out-of-boundsexception.Iftheprogramcallsillegalindexesorindexesoutside0andthearray’slength–1,Javawillthrowyouanexception.(It’salwaysnicetogooverreasonsforexceptionssoyoudon’tneedtocorrectthemalllater!)

4. Ifyouhaveareallybigarray,youcanuseaScannertograbvaluesfromuserinput,oryoucanautofillthemwithaloop:

for(inti=0;i<age.length;i++){

age[i]=input.nextInt();

}

Asyoumoveacrossthearray(inthiscasetofilleachelementwithauser-inputtedvalue),wecallthis“arraytraversal.”You’llneedtodothisalotinthefuture,soyoushouldputageneralformulainyourTrickyCodeCheatSheet:

for(inti=0;i<age.length;i++){

//dosomethingwithage[i];

}

StudentArrayActivity[25minutes]

1. Distributewhiteboardsandmarkerstogroupworkstationsbeforestudentsgetseated.

2. Ifyoufeelthatyourstudentsneedtheadditionalstructure,assigngroupstoworktogetheronProblem2.

3. Walkaroundtheroom,spot-checkingforstudentunderstandingandansweringanystudentquestions.

PaperSelection&GradeAnnouncement[5minutes]

Attheendofclass,considerchoosingonegroup’swhiteboardtoevaluateasademonstrationfortheclass.

AccommodationandDifferentiationRatherthanassigninggroupsrandomlyorbyability,usetieredgroupingasadifferentiationstrategy.Concepts/skillswillbecoveredatdifferentlevelsofcomplexityinresponsetodiagnosedneedsofeachlearner.Yourtieredgroupassignmentswillprobablyendupchangingfromoneexercisetoanother,sincestudents’needsandstrengthsvarywithinstructionalobjectivesandtasktypes.

Lesson4.01:ArrayBasics

270

Youcanreducepaperwasteandincreasestudentengagementbycreatinganinexpensiveclassroomsetof“arraywhiteboards”followingtheseinstructions:

1. Purchasepanelboardfromyourlocalhardwarestore(http://tinyurl.com/zgtlbhr)

2. Havetheassistantcuttheboardintolongstripsthatyoucanuseas1dimensionalarrays.

i. Ifyouliketouseindividualwhiteboardstocheckforstudentunderstanding,youcanhavewhiteboardscuttoindividualstudentsquares,thenhavestudentslineupthelittlewhiteboardsintoaone-dimensionalarrayforthisexercise.

ii. Ifyouplanonusingtheseasarrayboards,youcaneithersubdividetheboardsintoelement-blockswithblackelectricaltape,oryoucanhaveyourstudentsdrawtheblocksinwiththeirdryerasemarkers.(Thelatteroptionencouragesstudentstoconstructarraysofdifferentsizes.)

iii. Yourtotalnumberofarraywhiteboardsshouldbe:

(#smallgroupsinyourclassroom)*2+1instructorarrayboard

3. Usethesearray-whiteboardstodemonstratetherelationshipbetween1(andlater2)dimensionalarraysduringthisunit.

Inmathematics,amanipulativeisanobjectwhichisdesignedsothatalearnercanperceivesomemathematicalconceptbymanipulatingit,henceitsname.Theuseofmanipulativesprovidesawayforchildrentolearnconceptsinadevelopmentallyappropriate,hands-onandexperientialway.

[TEST:helloworld]

TeacherPriorCSKnowledgeArraysinJava(andotherobjectorientedprogramminglanguages)areclasses.Thisbringsthewholeobjectorientedparadigmintoplay.Whendeclaringanarrayvariable,thevariableisnowareferencetoanarrayobject.Inordertocreateanobjectfromaclasstheprogrammerusesthenewkeyword.Thereisadistinctionbetweenthearrayreferenceandthearrayobject.Thisprogrammingconstructallowsformultiplereferencetopointtothesameobject.

CommonMistakes

Lesson4.01:ArrayBasics

271

Arrayscommonmistakes:http://interactivepython.org/runestone/static/JavaReview/ArrayBasics/aMistakes.html

MisconceptionsStudentsunderstandingofthedifferencebetweentheindexiandthecontentofthei elementstoredina[i].

Loopbounds:

0-basedindexarrays,wherearraysend,versusarraylength,andwhataretherangeofindicestoexpressaparticulararrayrange.

VideoBJP7–1,ArraySimulationhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c7-1

CSE142,Arrays(1:35–26:06)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=14058dec-efd5-4db3-b841-9d836e92bfb4&start=95

CSHomeworkBytes,Arrays,withArielhttps://www.youtube.com/watch?v=PFohS2HvCgs

ForumdiscussionLesson4.01ArrayBasics(TEALSDiscourseaccountrequired)

th

Lesson4.01:ArrayBasics

272

Lesson4.02—For-EachLoop&ArraysClass

Overview

Objectives—Studentswillbeableto…

Populateandaccessarraysusingafor-eachloop

Assessments—Studentswill…

CompletemanipulativesexercisesonWS4.2

Homework—Studentswill…

ReadBJP7.2upto“ReversinganArray”Completeself-checkquestions#12-14

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS4.2Poster4.2Arraywhiteboards(seenotesatendofLP4.2)anddryerasemarkersStudentsmall-groupassignments(≈3-4studentspergroup)Largemanipulativeforteacherdemo(optional)

PacingGuide

Lesson4.02:For-EachLoop&ArraysClass

273

Section TotalTime

Bell-workandattendance 5min

IntroductiontoArrays 10min

StudentArrayActivity 35min

Paperselection&gradeannouncement 5min

ProcedureAswithyesterday’sclass,divideyourclassintosmallgroups,andhavethemanipulativesoutateachgroupstation,desk,orworkspace.Offerajust-in-timeintrotofor-eachloops,butdonotgetboggeddownintheintroductorylesson.Manystudentswilllearnfromphysicallypracticingthefor-eachcontrolstructureusingthearraywhiteboards.Circulatearoundtheroomtocheckforunderstanding,butletstudentshelpandchallengeeachother.

Bell-workandAttendance[5minutes]

IntroductiontoArrays[10minutes]

1. Brieflyintroducethefor-eachloop,arrayinitialization,andtheArraysclassbeforedismissingtheclasstoworkontheirgroupactivity:

Ifyouwanttoaccesseachelementinthearraywithoutchangingthevalues(tosummarizeorcountthem),youcanaccessthemusingafor-eachloop:

for(<type><name>:<array>){

<statement>;

<statement>;

}

2. Placeanarrayontheboard,demonstratingthequickwaytodeclareanarray,andthenillustratehowafor-eachloopcouldbeusedtoaccessthearray:

int[]fallTemperatures={55,50,59,69,48,30,48};

ThisinitializesanarraycalledfallTemperatureswith7integervalues.Askstudentswhentheymightseethesetemperaturesintheirregion,andhowthevaluesinthearraywoulddifferduringanotherseasonorinadifferentlocation.Itmaymake

Lesson4.02:For-EachLoop&ArraysClass

274

senseinyourregiontochangethearraynametowinterTemperaturesornightTimeTemperatures,etc.

for(inti=0;i<fallTemperatures.length;i++){

if(fallTemperatures[i]>32){

above++;

}

}

Thisisourtraditionalloop,whichtraversesthearrayandsumsupallthetemperaturesthatareabovefreezing(weassumethereisamethodcalled“above”thatkeepsarunningcountofhowmanydayswereabove32degrees).Wecanexpressthissameprocesswithafor-eachloop:

for(inti:fallTemperatures){

if(i>32){

above++;

}

}

withthegeneralformof:

for(<type><name>:<array>){

<statement>;

<statement>;

}

Makeapointofhavingyourstudentswriteanotetoremindthemselvesthatfor-eachloopscannotmodifyvalueswithinanarray,onlyexamineeachvalueinsequence.

StudentArrayActivity[35minutes]

1. Distributewhiteboardsandmarkersorpaperprintoutstogroupworkstationsbeforestudentsgetseated.

2. Ifyoufeelthatyourstudentsneedtheadditionalstructure,assigngroupstoworktogether.

3. Ifyouthinkstudentswillneedtheextraguidance,helpstudentstogetherinawhole-groupsetting.Tohelpstudentswithoutgivingthemtheansweroutright,pointoutthat:

a.numbers[7]evaluatesto0.

Lesson4.02:For-EachLoop&ArraysClass

275

b.numbers[numbers[7]]→numbers[0]doesNOTevaluateto0.

c.Instead,thememorylocationnumbers[0](theindex0ofthenumbersarray)receivesavalue.

4. Walkaroundtheroom,spot-checkingforstudentunderstandingandansweringanystudentquestions.

PaperSelection&GradeAnnouncement[5minutes]

Attheendofclass,considerchoosingonegroup’swhiteboardtoevaluateasademonstrationfortheclass.

AccommodationandDifferentiationIfyouhaveastudentthatwouldbenefitfromadditionaltactileorvisiospatiallearningexercises,invitehimorhertocreateaclassroomposterthatcontainsthesameinformationasPoster4.2.

Ratherthanassigninggroupsrandomlyorbyability,usetieredgroupingasadifferentiationstrategy.Concepts/skillswillbecoveredatdifferentlevelsofcomplexityinresponsetodiagnosedneedsofeachlearner.Yourtieredgroupassignmentswillprobablyendupchangingfromoneexercisetoanother,sincestudents’needsandstrengthsvarywithinstructionalobjectivesandtasktypes.

VideoCSE142,ArrayTraversal(26:06–33:26)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=14058dec-efd5-4db3-b841-9d836e92bfb4&start=1570

CSE142,For-EachLoop(19:40–22:40)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=14058dec-efd5-4db3-b841-9d836e92bfb4&start=1570

ForumdiscussionLesson4.02For-EachLoop&ArraysClass(TEALSDiscourseaccountrequired)

Lesson4.02:For-EachLoop&ArraysClass

276

Lesson4.02:For-EachLoop&ArraysClass

277

Lesson4.03—Printing,Searching,&TestingforEquality

Overview

Objectives—Studentswillbeableto…

Manipulatesingle-dimensionarraysusingavarietyofarraytransversalalgorithms.

Assessments—Studentswill…

Teachamini-lessononprinting,searching/replacing,testingforequality,reversinganarray,orstringtraversal.CompleteaquizattheendofDay2

Homework—Studentswill…

Day1:Completeself-checkquestions#15-17andexercise3Day2:ReadBJP7.3andcompleteself-checkquestions#19-21

Materials&PrepGroupcopiesofWS4.3Assignmentsfor5studentgroups5classroomcopiesofthetextbook(orhavestudentsbringtheircopiestoclass)Copiesofthegradingrubric(ontheoverheadorprintedout;optional)

Youwillneedtocirclestudentassignmentsonpoint2ofWS4.3,soeachgroupknowswhattopictheyareexpectedtoteach.

PacingGuide:Day1

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

278

Section TotalTime

Bell-workandattendance 5min

Introductiontoassignment 10min

Studentpreparationoflesson&quizquestions 40min

PacingGuide:Day2

Section TotalTime

Groupset-up,attendance 5min

Grouppresentations(~8minutespergroup) 40min

Quiz 10min

ProcedureYourhookfortoday’slessonistoturnthereignsovertostudentsimmediately.Haveinstructionsprintedoutandsittingatteamworkstations(oronstudentdesks).Encouragestudentstoanswertheirownquestionsusingtheinstructionsheetandtextbook.FrequentlyaskedquestionsandsuggestionsforstudentgroupsareincludedinAccommodationsandDifferentiation.

Bell-workandAttendance[5minutes]

IntroductiontoAssignment[10minutes]

1. ReviewtheassignmentasoutlinedonWS4.3,andaskstudentstoexplainbacktoyouwhattheirgrouppresentationsneedtoincludeforfullcredit.Ifyouneedto,reviewproceduresforgroupwork,thensplittheclassintogroups.

Ifyoufeelitwillbenefityourclass,reviewingordistributingthegradingrubricbeforetheassignmentshouldbedoneatthispoint.

StudentPreparationofLessonandQuizQuestions[40minutes]

Givestudentstheclassperiodtopreparetheirpresentationandgeneratequizquestionsfortomorrow’sclass.

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

279

Useatimerandperiodicallyannouncehowmuchtimeisleftinclasssostudentscanpacethemselves.

Emphasizetostudentsthattheyshouldprimarilydrawupontheirtextbookstohelpthemplantheirlesson.

Answerstocommonlyaskedquestions,andtipsforthedifferentgroupsmaybefoundbelow:

FAQ:PRINTINGANARRAY

Guidanceforstudentteachers

1. Ifstudentsarelackingdirection,encouragestudentstorefertothetextbookandtracetheloopandpredicttheoutputofthecodethatprintsthearray“list”vertically.

2. Agood“TrickyCodeCheatSheet”tipcanbefoundonthesamepage;anytimeyouseealistofvaluesseparatedbycommas,studentsshouldremembertouseafencepostalgorithm.

CommonQuestions/Answers

1. Whenwouldweencounteranemptyarray?

Ifyousetarrayvaluestonull,they’reactuallyempty(notjustequalto0orfalse).Anotherwayyoucouldgetanemptyarrayisifyouinitializedanarrayofsize0;thentherewouldbenoelementsatall!

2. Whydowehavetoincludeextracodetoaccountforanemptyarray?

Weputin“contingencycode”todealwithanemptyarraytobethorough.Ifwedon’thandlespecialcasescorrectly,Javawillthrowanexception,sowetrytocoverourbasesandpreventthatfromhappening.

FAQ:SEARCHINGANDREPLACING

Guidanceforstudentteachers

1. Ifstudentsarehavingtroubleoutliningtheirlesson,encouragethemtoteachcounting,thenlocatingvaluesinalist.Oncethey’vecoveredthosemethods,theycanfinishupbytracingthesamplemethodreplaceAllandexplainingtheoutput.

2. Agood“TrickyCodeCheatSheet”tipwouldbetheconventionofreturning-1ifavalueisnotfoundinthelist.

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

280

CommonQuestions/Answers

1. Whydoweuseafor-eachloopforcountingoccurrences,butnotforfindingvaluesinalist?

Neitheronerequiresyoutochangethecontentsofthearray!**Ifwe’refindinganiteminalistandreturningitsindex,thenweneedtotrackindexesaswesearch.That’sdonenaturallywitharegularforloop;withafor-eachloop,we’dhavetomanuallysimulateaforlooptocomputetheindex.

2. Whyisthemethod“count”initializedtozero?

Thisissettingupthelooptoworkcorrectly—review“primingthepump”analogyifneeded.

FAQ:TESTINGFOREQUALITY

Guidanceforstudentteachers

1. Remindstudentstoincludethedefinitionforwhatmakesarraysequivalent(theyhavethesamelengthandstorethesamesequenceofvalues).

2. Ifstudentsarestrugglingwiththesequenceoftheirlesson,youmightsuggestthattheybeingbyteachingthesamplemethod“equals,”thencirclingbacktoexplainwhytestingforinequalityiseasierthantestingforequality.

3. AgoodgeneraltipfortheTrickyCodeCheatSheetwouldbethecommonpatternformethodslike“equals;”Testallforthewaysthatthetwoobjectsmightnotbeequal,returningfalseifthereareanydifferences,ortrueattheveryendifalltestsarepassed.

CommonQuestions/Answers

1. Can’twejustuseArrays.equalstoseeiftwoarraysareequal?

Yes,youcan(andshould)usethismethodfromtheArraysclass.Inteachingyourunit,yourpurposeistofamiliarizestudentswiththewaytowritecodethattestsequalsingeneral.Whileyoumightnotneeditinthisparticularsituation,youmaywanttotweakthemethoddowntheroad,andyoucannotedittheArrays.equalsmethodbecauseitsnotinaclassyoucanedit.

FAQ:REVERSINGANARRAY

Guidanceforstudentteachers

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

281

1. Ifstudentsneedguidanceonstructuringtheirlesson,encouragethemtoworkthroughthefinal(correct)method“swap,”tracetheflowofcontrolandoutput,thencoverwhyotherversionsdon’twork.(Theymaynotpresentinthisorder,butcoveringthecorrectanswershouldhelpthemorganizetheirthoughts.)

2. AgoodtipfortheTrickyCodeCheatSheetistosummarizethestepsneededtoswaptwovalues.ThiscomesupoftenontheAPexam.

CommonQuestions/Answers

1. Whycan’twejustswapvaluesbyassigningthemtoeachother?

Ifyouassignonevaluetotheother,youcopyoverthevalues,so½waythroughtheprocess,you’vegot2copiesofthesamevalue.Thesecondhalfoftheswapdoesn’twork!

2. Whydowehavetostoptheswaploop½waythroughthelist.length?Won’tthatjustswap½ofthelist?

Usingalineof4–6objects(pens,paperclips,whateveryouhavearoundtheclassroom),startbyswappingthefirst&lastitems,thenthenext-inner-two,andsoon.Counteachmoveasyoumakeit,thenpauseatthehalfwaypoint,pointingoutyou’veconductedlength/2swaps.Proceedwiththefinalswaps,returningobjectsbacktotheiroriginalplace.

FAQ:STRINGTRAVERSALALGORITHMS

Guidanceforstudentteachers

1. Encouragethegrouptospendsometimeduringtheirlessononwhyyouuseparenthesesformostarrays,butnotwithstrings.

2. Ifstudentsareatalossforhowtoteachtheirsegment,suggestcoveringanexampleandanon-exampleforcontrast.Agoodnon-examplewouldbetraversinganarraythatisn’tastring.

CommonQuestions/Answers

None.

1. Collectquizquestionsbeforetheendofclass.CheckandcompileintoaquizfortheendofDay2.

2. OnDay2,giveeachgroup5minutestopresenttheirtopicand3minutesforquestions.

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

282

Encouragestudentstoaskquestions,andbesuretoaskaquestionortwoofeachteam(dependingonhowmanyteamsyouhave).

3. Usethegradingrubricasoutlinedhere:

3pts. 2pts. 1pts. 0pts.

Presentationincludesdefinitionsandanexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithfewmistakes.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithmanymistakes.

Presentationincludesanon-exampleashelpfulcontrast.

Presentationincludesanon-examplethatismarginallyhelpful.

Presentationincludesanon-examplethatdoesnotaddtocomprehension.

Presentationincludesanon-examplethataddsconfusion,orpresentationdoesnotincludeanon-example.

Presentationincludesahelpfultipthatisclearlyexplainedandconciselystated.

Presentationincludesahelpfultipthatisclearlyexplainedorconciselystated.

Presentationincludesahelpfultipthatisnotclearlyexplainedandmayincludeasmallerror.

Presentationdoesnotincludeahelpfultiporhint.

1. Administerthestudent-generatedquiztoassessstudentunderstanding.

AccommodationandDifferentiationCirclearoundtheroomtohelpstudentsthroughreadingthetextinthetextbook.Makesurethateachofyourworkingteamsareproperlystratified(ratherthanusingtieredgrouping).

Ifstudentsarespeedingalong,encouragestudentstowritedownquestionstoposetoothergroupsduringmini-lessons.Ifeveryonefinishescreatingtheirlessonsearly,starttheclassroompresentationsonDay1insteadofwaitingforDay2.Ifonly1or2groupshavefinishedearly,encouragegroupstorehearselessondelivery.

VideoBJP7-2,ArrayTraversalAlgorithmshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c7-2

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

283

CSE142,RandomAccesstoArray(33:26-42:00)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=14058dec-efd5-4db3-b841-9d836e92bfb4&start=2006

ForumdiscussionLesson4.03Printing,Searching,&TestingforEquality(TEALSDiscourseaccountrequired)

Lesson4.03:Printing,Searching,&TestingforEquality(2Days)

284

Lesson4.04—ReferenceSemantics

Overview

Objectives—Studentswillbeableto…

Compareandcontrasthowprimitivesandarraysaretreatedwhenpassedasparameters.

Assessments—Studentswill…

CompletegraphicorganizersandaworksheetExtracredit:completeaPokémonChallenge

Homework—Studentswill…

ReadBJP7.4upto“Command-LineArguments”Completeexercises#9,10

Materials&PrepProjectorandcomputerwiththispage:http://www.legendarypokemon.net/javacalc.htmlWhiteboardandmarkersClassroomcopiesofWS4.4InstructorcopyofWS4.4Answer

The“worksheet”fortodayisa5-pageworkpacket,soifyourschoolhaslonglines/productiontimeforthecopymachine,planahead!

PacingGuide

Lesson4.04:ReferenceSemantics

285

Section TotalTime

Bell-workandattendance 5min

Studentactivity 25–30min

Studenttrade&check 5min

Wholegroupreview&papersubmission 15min

ProcedureHookyourclasstodaywiththeconceptofa“backwards”classstructure.Usingonlytheinformationgleanedfromlastnight’sreading(andperhapssomehelpfromafriend),studentsshouldworkthroughasmuchoftheworksheetastheycaninthetimeallotted(~30minutes).Finishtheclasswithwhole-classnotetakingonthetopicsthatwerechallenginginthesheet.

Bell-workandAttendance[5minutes]

StudentActivity[25-30minutes]

HavestudentsstartworkingonWS4.4inpairsoralone.Useatimertohelpstudentspacethemselves.

StudentsTrade&Check[5minutes]

After25–30minutesgivestudentsafewminutestocheckeachothers’work.

WholeGroupReview&PaperSubmission

1. Asawholegroup,askstudentsforquestionstheyhadontheworksheet.Usetheanswerkeyincludedonthistoguideinstruction.

2. Collectworksheetsattheendofclass.

AccommodationandDifferentiationIfyouhavebeenusingParsonProblemsthroughouttheyear,yourstudentswillbefamiliarwiththeformatofQuestion8ontheworksheet.Forotherclasses,thismaybethefirsttimethey’vebeenaskedtorearrangeprovidedcode.Readthroughtheproblemoutloudwiththe

Lesson4.04:ReferenceSemantics

286

class,thenreadthroughthelinesofcodeinthebottomhalfofthequestion.Eachlineofcode(eventhelonebracket)canbeshuffledandre-arrangedtoprovidethecorrectcodesequence.

Studentsuccessinthislessonreliesheavilyonstudents’havingbeenabletoreadandcomprehendthepriornights’reading.InELLclassrooms,encouragestudentstoopentheirbooksandworkwiththetextinfrontofthem,andpairstudentsofdifferinglanguageabilities.

Ifyouknowyourstudents’readingabilitieswillnotallowforalessonlikethis,conductthelessonasawhole-group,teachingasegmentofthechapterandpausingtoletstudentsworkonaquestionbeforemovingforward.

Theworksheetmatchesupsequentiallywithsection7.3,soyoucanhavestudentsreadalongwithyourinthebookasyouworkthroughthesheet,and/oryoucanallowadvancedstudentstoworkontheirownasyouhelptherestofclass.

Therewillprobablybealotofvariationinhowlongittakesstudentstocompletetoday’sassignment.

Askstudentswhofinishearlytodesignahands-ondemonstrationthatusesthearraywhiteboards(andanyothermaterialsaroundtheroom)toexplaintheproperanswerstothequestionsontheworksheet.Iftheycomeupwithanycooldemos,usethemduringstudentreviewattheendoftheclass.

BereadywithaPokemonChallengeforthestudentsthatspeedthroughtheassignment:

POKEMONCHALLENGE

Thisjavabasedcalculator(http://www.legendarypokemon.net/javacalc.html)usesmedianIVs(initialvalues)andinputEVs(effortvalues)tocalculateaPokemon’sstatsonagivenlevel.

WriteamethodcalledmedianIVthatacceptsanarrayofintegerIVsasitsparameterandreturnsthemedianofthenumbersinthearray.

Themediannumberisthenumberthatappearsinthemiddleofthelistifyouarrangetheelementsinorder.Youcanassumethatthearrayisofoddsize(sothatoneelementisfoundinthemiddle),andthatthenumbersinthearrayarebetween0and99,inclusive.Forexample,themedianof[5,9,4,10,11]is9,andthemedianof[0,8,1,89,48,27,30]is27.

Hint:CheckouttheTallyprograminchapter7forsomeideasonwhatcodetouse.

Lesson4.04:ReferenceSemantics

287

VideoCSE142,ArrayInitializer(3:26–5:43)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=206

CSE142,Passingarrayasparameter(5:44–9:05)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=344

CSE142,Arrays.toString()(21:19–25:27)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=1278

CSE142,Valuesvsreference(25:28–39:18)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=1528

CSE142,modifyingarraywhenpassedasparameter(39:19–43:41)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=2359

ForumdiscussionLesson4.04ReferenceSemantics(TEALSDiscourseaccountrequired)

Lesson4.04:ReferenceSemantics

288

Lesson4.05—ShiftingValues&ArraysofObjects

Overview

Objectives—Studentswillbeableto…

ShiftelementswithinanarrayConstructarraysofobjects

Assessments—Studentswill…

CompletePractice-ItquestionsModelmemorymanipulationusingarraywhiteboards

Homework—Studentswill…

ReadBJP7.4“NestedArrays”andBJP7.5“RectangularTwo-DimensionalArrays”Completeself-checkquestions#27-29andexercise#4

Materials&PrepProjectorandcomputerwiththispage:http://www.legendarypokemon.net/javacalc.htmlClassroomwhiteboard&markersArraywhiteboard&markersSmallgroupassignments&seatingarrangements(ifpossible)

Ifyourclassroomstructureallowsit,arrangearraywhiteboardsandmarkersatstationswherestudentscangatheraroundthemtomodeltheconceptsyouteachduringyourintro.Ideally,studentswillbestandinghuddledaroundthearrays,activelymovingandrearrangingitems.

PacingGuide

Lesson4.05:ShiftingValues&ArraysofObjects

289

Section TotalTime

Bell-workandattendance 5min

Introduction&small-grouppractice 20–25min

Practice-ItQuestions 25–30min

Error-checkingalgorithm(seebelow) 10min

ProcedureHookyourclasstodaybyhavingtheminsmallgroupswiththearraywhiteboardsduringyourIntroduction.Asyouwriteoutthecodesamplesonthewhiteboard,pauseatdifferentstagestomodelwhatishappeningtotheelementsstoredinmemory.Astheintroductionprogresses,askstudentstomodelthechangesforthewholeclass,withyouandtheothergroupsreplicatingtheirmanipulations.Thekeytothisintroductionistohavestudentsworkingthroughtheexamplesinphysicalspace,somakesurethatallgroupsareworkingalongwiththeirarraywhiteboards.

Bell-workandAttendance[5minutes]

Introduction&Small-GroupPractice[10minutes]

1. IntroduceyourexamplearraycalledmetroCardRides(ordailyDrive,milesWalked,whateverrepresentsyourstudents’commutetoschool),andholdupanarrayofints:

2. Brieflyaskyourstudentstodirectyouinconstructingandinitializingthisarrayobject,thenaskstudentsforsomeideasastohowtomovethe5fromthefirstelementofthearraytothelastelement,sothatweendupwith[4][3][2][1][5].

Givestudentsaminutetotrymovingnumbersaroundtheirwhiteboards.Mostnumberscanbemovedbyshiftingdownthelinewithaforloop,butthefirstelementwillneedtoberemovedtoallow“space”fortheshift.

3. Askstudentshowtostorethatfirstelement(value5)intoalocalvariable,thenwritethatcodeonyourmainwhiteboard.

intfirst=metroCardRides[0];

Lesson4.05:ShiftingValues&ArraysofObjects

290

Redirectstudentstothetaskofshiftingtherestofyourvaluesonyourarray.Asaclass,discusswhatyouneedthecodetodo,thenaskthegroupstodraftsomecodeandtestthatcodeontheirarraybytracingthecodeandcheckingforerrors.

4. Thecorrectloopforthislooplookslikethis:

for(intj=0;j<metroCardRides.length–1;j++){

metroCardRides[j]=metroCardRides[j+1];

}

IfstudentsusemetroCardRides.lengthinsteadofmetroCardRides.length–1,walkthroughthelooponyourarraywhiteboard,demonstratingthatmetroCardRides.lengthcausesJavatorunofftheendoftheloopsincethereisnoelementatindex5.Alternatively,remindstudentsaboutzeroindexing,andseeiftheycatchtheirownmistake.

5. Askstudentstoremindyou(inpseudocode)whatallthestepsarethatareneededtosuccessfullyshiftthenumbersinthearray.

Modelonyourarraywhiteboardwhatstepshavealreadybeensuccessfullywritten,andaskstudentswhatislefttodonowthatyourarraylookslikethis:

Selectagrouptogiveyouthelaststepthatre-insertsthefirstelementatindex4,andasktheclasstofinishupthecompletemethod,soyourfinalmethodlookslikethis:

publicstaticvoidfirstToLast(int[]metroCardRides){

intfirst=metroCardRides[0];

for(intj=0;j<metroCardRides.length–1;j++){

metroCardRides[j]=metroCardRides[j+1];

}

metroCardRides[metroCardRides.length–1]=first;

}

6. Ifallstudentsunderstandthismethod,movethelastelementtothefirstposition,shiftingtheotherelementsonepositiontotheright.

Directstudentstostartworkingonthischallengebyre-settingtheirwhiteboardsandmodelingthedifferentstepsthatneedtooccur.

Lesson4.05:ShiftingValues&ArraysofObjects

291

Walkaroundtheroom,checkingthatstudentsareontherightpath.Studentsshouldrecognizethattheyneedtotemporarilystorethelastelementasavariablenowthatthey’reshiftingarrayelementsintheotherdirection.

7. Oncestudentshavewrittenthecodetheythinkiscorrect,havethemtracetheirowncodeandmanipulatethearraysintheirwhiteboard.

Encouragestudentstodivideupthistasksoonestudentreadsthecodeandanotherstudentmovestheelementsonthewhiteboard.Allmembersshouldbeengagedinerrorchecking.

8. Thecorrectfinalcodelookslikethis:

publicstaticvoidfirstToLastRight(int[]metroCardRides){

intlast=metroCardRides[metroCardRides.length–1];

for(intj=metroCardRides.length–1;j>=1;j--){

metroCardRides[j]=metroCardRides[j–1];

}

metroCardRides[0]=last;

}

9. Spotcheckstudentcodeforanoff-by-oneerror;startingtheloopat0asksJavatolookforavalueatindex-1,whichdoesn’texist.(Ifstudentsaremodelingtheircodeexecutionwiththearraywhiteboards,theyshouldcatchthis.)

Ifstudents“correct”thiserrorbystartingtheloopat1,askthemtomodelthecodeexecutionwiththeirarraywhiteboardsforyou.Theloopoverwritesthevalueatj–1withthevalueatj,sothearraywillstartfillinginwithall5sasthelooprepeatsitself:

Thesolutiontothisistricky!Itmightbeworthdiscussing/workingasaclassifgroupsaregettingstuckonthis.Theloopneedstoshiftvaluesrightbystartingattheleftandrunningbackwards.Seeifyoucangetstudentstobrainstormthissolutionbymanipulatingthevaluesontheirwhiteboardsfirst.

Lesson4.05:ShiftingValues&ArraysofObjects

292

Nowaddbackinthetemporarily-storedvalue1atindex0.

10. Collectthearraywhiteboards(orhavestudentssetthemaside)andbrieflyintroducearraysofobjects.

Thisisanoptionalextension.Sincewehaven’tstudiedobjectsyet,youmightwanttoleavethisoutifitistoofarbeyondyourstudents’zoneofproximateknowledge.

Arraysofobjectsstorereferencetoobjectsinsteadofaprimitivetypevalue.Drawingsomethinglikethismighthelpstudentcomprehension:

Lesson4.05:ShiftingValues&ArraysofObjects

293

Askstudentsleadingquestions,gettingthemtotellyouthatbecausethearrayandthearraycontentsarebothobjects,bothneedtobeconstructed.

Workthroughanexampletogetherasaclass;askstudentstohelpyouconstructanarrayofpoints.Yourcodeshouldlooksomethinglikethis:

Point[]points={

newPoint(3,7),

newPoint(4,5),

newPoint(8,2),

newPoint(7,5),

newPoint(2,8)

};

Practice-ItQuestions[25-30minutes]

1. Dependingonthemoodandfrustrationlevelsintheclass,youmaychoosetohavestudentsworkinpairs.

a.Ifstudentsarereallyhavingaroughtime,workthroughthefirstPractice-Itquestiontogetherasawholegroup.

b.Putsoft,soothing(butupbeat)musiconinthebackgroundtoencouragework

2. HavestudentslogintoPractice-IttocompletethefollowingPractice-Itself-checkquestions:

a.arrayCodeTracing3b.arrayCodeTracing4c.arrayMystery2d.arrayMystery3e.isPalindrome

3. HavestudentscompletePractice-ItExerciseappend.

Lesson4.05:ShiftingValues&ArraysofObjects

294

4. Ifmore25%ormoreoftheclassisstruggling,returntowholegroupwiththestipulationthatstudentswhounderstandthetaskmaycontinueworkingindependently.Otherwise,encouragepeertutoring,orusingthetextbookornotebooksforhelp.

Error-CheckingAlgorithm[10minutes]

Attheendofclass,iftimepermits,havestudentsdraftanalgorithmforerror-checking(seebelowfordetails).

AccommodationandDifferentiationIfyourclassneedsadditionalchallenges,makethearraysinyourexamplesabitmoresophisticated.Changethevaluesoradd“tricks”tothecode,andincludesomemistakesinyourdelivery(writtenorconceptual)toletthestudents“catch”you.Iftheydon’tcatchyou(andyou’reagoodactor),fumbleyourwayintorevealingthemistakeinlogicorcode,andletthemcatchyousoyoucanmodelapositiveattitudetowardserrorchecking.

Ifstudentsfinishthislessonearly,havethemdraftanalgorithmorchecklistthatwillhelpstudentschecktheirloopcodewhenshiftingvaluesinanarray(whatarecommonerrorstolookfor?).

Ifthechecklististhorough,brief,andcomplete,havestudentscreateahandoutorposterthatyoucanhanguporsharewiththeclass.

Toadjustforreading/comprehensionchallengesintheELLclassroom,considerhavingstudentsworkinsmallgroupswiththearraywhiteboardsinsteadofansweringquestionswithinPracticeIt.Giveeachgroup/studentaprintoutwiththequestions,andhavethemturnintheworksheetsattheendofclass.

VideoBJP7-3–1:Arrayshiftingalgorithmhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c7-3-1

CSE142:Mysterycodewalkthrough(9:06–21:18)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=560

CSE142:Reversinganarray(43:42–49:30)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=2622

Lesson4.05:ShiftingValues&ArraysofObjects

295

CSE142:Absolutevaluesanarray(1:42–5:11)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=acae034a-2b95-4eb3-b3f0-17a77a7b5ff3&start=2622

ForumdiscussionLesson4.05ShiftingValues&ArraysofObjects(TEALSDiscourseaccountrequired)

Lesson4.05:ShiftingValues&ArraysofObjects

296

Lesson4.06—NestedLoopAlgorithms&RectangularArrays

Overview

Objectives—Studentswillbeableto…

Correctlyadjustnestedloopheadersforusewitharrays.Correctlyconstructtwo-dimensionalarrays.

Assessments—Studentswill…

CompleteWS4.6

Homework—Studentswill…

ReadBJP10.1upto“AddingtoandRemovingfromanArrayList”Completeself-checkproblems#1-6

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS4.6Arraywhiteboards

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction/Reviewofobjects&stringprocessing ≈10min

RoundRobin ≈35min

Paperselection&gradeannouncement 3min

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

297

Iftheinstructiontakeslongerthanexpected,assigntheworksheettosmallgroupssostudentscanworktogethercollaboratively.Thisshouldallowyoutocompletethelessoninoneclassperiod.Alternatively,youcanassignstudentstofinishtheworksheetathomeforhomework,ormaketheworksheetshorter.

ProcedureThereareseveralwaysyoucanteachtoday’sclass.Youshouldfirstcheckinwithyourstudentstoseehowpreparedtheyarefortoday’slesson.Ifstudentsunderstoodmostofwhattheyreadforhomeworklastnight,youcanaskstudentsforspecificquestions,coveronlythosetopics,thenmoveontotheRound-Robinactivity.Ifyourclassismostlyconfused,youcanre-teachallofthecontent,workingthroughseveralexampleswithThinkPairSharesbeforebreakingintotheRoundRobinActivity.AnoptionalProgrammingChallengeisincludedattheendofthelessonifyourlessonfinishesearly.

Bell-workandAttendance[5minutes]

Introduction/ReviewofObjects&StringProcessing[10minutes]

1. Twodimensionalarrayscomeinhandywhentrackingcertaintypesofdata;adjusttheexplanationsoit’srelevanttoyourstudents(agrocerystore,aStarbucks,afarmer’smarket).

Previously,wemighthaveusedanarraytokeeptrackofsandwichordersinlineatabodega:

Supposewehaveseveralworkersatthebodegamakingsandwiches,andwewanttokeeptrackoftheorderseachoneisworkingon.Wecouldusemultiplearrays,oranarrayofarrays.

Totraversemultidimensionalarrays,weneedanewtooltohelpusfillthem.

2. Demonstrateabasicnestedloopusedtoswitchnumbersinanarray.Beginbyusingthearraywhiteboardtodemonstratewhatyouwantthecodetodo:

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

298

Challengethestudentstocomeupwithpseudocode(oractualcode,ifthey’rereadyforit)thatprintsoutalloftheinversionsinthisarray.Aninversionisapairofnumbersinwhichthefirstnumberinthelistisgreaterthanthesecondnumber.Besuretoemphasizethatnoelementsarebeingmovedorshifted.Theoutputforthearrayabovewouldbe:

(4,3)

(4,2)

(4,1)

(3,2)

(3,1)

(2,1)

Anarray

wouldoutput:

(3,1)

(3,2)

(4,2)

3. Asyourstudentsareworkingonthisproblem,encouragethemtousethewhiteboardarraystoorganizetheirthoughtsandvisualizetheproblem.Theirpseudocodeshouldlooksomethinglikethis:

for(everypossiblefirstvalue){

for(everypossiblesecondvalue){

if(firstvalue>secondvalue){

print(first,second).

}

}

}

Asawholegroup,orinindividualgroups(dependingonfamiliaritywiththematerial),constructthefinalcode:

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

299

for(inti=0;i<data.length-1;i++){

for(intj=i+1;j<data.length;j++){

if(data[i]>data[j]){

System.out.println("("+data[i]+","+data[j]+")");

}

}

}

Asa“TrickyCodeCheatSheet”tip,youmightdiscussthegeneralreminderthatforaninversion,thesecondvaluehastoappearafterthefirstvalueinthelist.Thismeansthatyouonlywanttocomparevaluesthatcomeafterthefirstvalue,sotheinnerloopinitializesatj=i+1.

Ifstudentsaskwhytheouterloopendsatdata.length–1,havethemtracethecodeandpredictoutputusingtheirwhiteboards.Theyshouldnoticethatsinceonlypairsofnumbersarebeingcompared,thelastelementofthearraywillneverbeapossiblefirstvalue.

4. Askavolunteerstudenttohelpyoubuildaphysicalrepresentationofamultidimensionalarray(anarrayofarrays).Demonstratethecodeusedtocreatearraysofmultipledimensions,andhavestudentsgatherarraywhiteboardsfromaroundtheroomtoshowwhatthearrayswouldlooklikeinmemory:

double:onedoublevalue

double[]:a1dimensionalarrayofdoubles

double[][]:a2dimensionalarray(grid)ofdoubles

double[][][]:a3dimensionalarray(cube)ofdoubles

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

300

Anarrayconstructedwiththecodebelowhas2rowsand3columns:

double[][]ages=newdouble[2][3];

Havestudentsindexthearrayforyou:

Youmightopttogivestudentsthisgeneralformulaforthesyntaxofdeclaringandconstructingamultidimensionalarray:

5. Runthroughsomeexampleswithyourstudents:

Toaccessthe1 elementofthe2 row:ages[1][0]

Toaccessallelementsofthe1 row:ages[0]

Toaccessallelementsofthe2 row:ages[1]

6. Multidimensionalarrayscanalsobepassedasparameters.Havestudentstracetheflowofcontrolandpredicttheoutputofthecodebelow:

publicstaticvoidprint(double[][]grid){

for(inti=0;i<grid.length;i++){

for(intj=0;j<grid[i].length;j++){

System.out.print(grid[i][j]+"");

}

System.out.println();

}

}

Askstudentswhyyoureferencedgrid.lengthintheouterloop(thenumberofrows),andwhatgrid[i].lengthrefersto(thenumberofcolumns).

Asafinaltip,letstudentsknowthatformultidimensionalarrays,Arrays.toStringwon’tworkcorrectly,andtheyshoulduseArrays.deepToStringinstead.

RoundRobin[45minutes]

1. Round-robinisadrillinganderror-checkingexerciseusedwithworksheets.Atminimum,thereshouldbe1questionforeachstudent(e.g.aclassof15studentswouldneedaworksheetwith15ormorequestions).Studentswritetheirnameonthe

st nd

st

nd

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

301

worksheet,completethefirstproblem,thenpassthepapertothestudentontheright(orwhateverdirectionyouchoose).Thenextstudentfirstchecksthepreviousanswer,correctingitifneedbe,thencompletesthesecondquestion.Eachstudentthenpassesonthepaperagain.Bytheendoftheexercise,eachstudenthascheckedandcompletedeachquestionontheworksheet.

2. ThehookisthatyouchooseonlyONEworksheetfromthepiletograde.Allstudentsgetagradefromthatoneworksheet.Thiskeepsstudentsinvestedthroughouttheexercise.Advancedstudentswillcheckquestionsthroughoutthewholeworksheet,andallstudentswilltrytheirbesttocatchtheirown(andothers’)mistakes,sincethewholeclasssharestherandomly-selected-paper’sgrade.

3. Youshouldtimeeachquestion/checkinginterval,andcall“TIME!”whenitistimeforstudentstopassalongpapers.

a.Questions1–4shouldtake≈1minuteeach.b.Questions5–9shouldtake≈2minuteseach.c.Questions10–12shouldtake≈3minuteseach.d.Questions13–14shouldtake≈4minuteseach.e.Questions15–16[Bonus]shouldtake≈5minuteseach.

Adjustthetimingonthesequestionsasneeded,buttrytokeepabriskpace.Partoftheengagementfactoristhesenseofurgency.

PaperSelection&GradeAnnouncement[3minutes]

Iftimeallows,randomlyselecttheworksheetandannouncetheclassgradewithabitoffanfare,congratulatingtheclassonajobwelldone.Ifthereareanyincorrectanswers,usethetimeattheendofclasstoreviewthecorrectsolutionsortakequestions.

AccommodationandDifferentiationTooptimizethisexercise,youmightconsiderrearrangingstudents(orcreatingapassing-path)thatmixesstudentsofdifferentcodingabilities.Theadvancedstudentscanusetheextratimetocorrectmistakesmadebyothers;iftheyaresittinginproximitytothestudentthatmadetheerror,theywillhaveabetterchanceofexplainingthecorrectanswertothem.

Duetothebriskpaceoftheround-robinrotation,thereshouldn’tbetoomuchdowntimeforanyonestudent.Ifyourstudentsarefinishingfasterthanthetimeintervalsindicated,reducetheamountoftimeallottedtomaintainasenseofurgency/keepstudentsontask.Iffinishedearly,offeraProgrammingChallengewhileyougradethesampleworksheet.

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

302

CommonMistakesTwodimensionalarrayscommonmistakes:http://interactivepython.org/runestone/static/JavaReview/Array2dBasics/a2dMistakes.html

VideosBJP7-3-2,TallyingwithanArrayhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c7-3-2

ForumdiscussionLesson4.06NestedLoopAlgorithms&RectangularArrays(TEALSDiscourseaccountrequired)

Lesson4.06:NestedLoopAlgorithms&RectangularArrays

303

Lesson4.07—ArrayList

Overview

Objectives—Studentswillbeableto…

ConstructcodeusingArrayList.Predicttheoutputofmethodsthattakearraysasparametersand/orreturnarrays.

Assessments—Studentswill…

Evaluatestatementsandpredictoutputduringagameofgrudgeball

Homework—Studentswill…

OutlineChapter7andBJP10.1“ArrayList”Completeself-checkquestions#3-6andexercise#3

Materials&PrepProjectorandcomputer(optional)WhitepaperandmarkersClassroomcopiesofPoster4.7Rulesforgrudgeball(seewebsitefordetails:http://toengagethemall.blogspot.com/2013/02/grudgeball-review-game-where-kids-attack.html)Teamassignmentsthatdivideyourclassinto5or6teamsNerfhoop&ball(orwastepaperandtrashcan)Taped2-and3-pointlines

BrieflyreviewtherulesofGrudgeballifyouhaveforgottenthem.Ifyouhaveremovedyour2and3pointlinesfromlasttimeyouplayed,testoutyour2and3pointlinesbeforeclassbegins.

PacingGuide

Lesson4.07:ArrayList

304

Section TotalTime

Bell-workandattendance 5min

Introductionandnote-taking 15min

Grudgeball 35min

ProcedureTohookyourclassfortoday’smaterial,andifspaceandwhiteboardsetupallow,setupthegrudgeball“court”andscoreboardbeforeclassbegins.Remindstudentsthatlecturecontentwillbetestedduringthegame.

Bell-workandAttendance[5minutes]

Introductionandnote-taking[10minutes]

1. Askstudentstonamesomelimitationsofarrays:shiftingvaluesisanordeal,addingelementsrequiresforminganew,largerarrayandcopyingvaluesover,deletingelementsleavesempty,unusedindexes.

2. IntroducethemoreflexibleArrayList(besuretoremindstudentsthattheyneedtoimportjava.util.ArrayList):

Usesarraystostorevalues(fastrandomaccess)

TheArrayListclasscontainsmethodstomakeadd,remove,andshiftvalueseasily.

ArrayListtakesatypeparametertodeterminewhatkindofvaluesitwilluseaselements:

ArrayList<String>storesalistofStrings.ArrayList<Point>storesalistofPoints.

Ifyouforgettopassaparameterwiththetypeyouwantthearraytocontain,thecodewon’texecute.

3. ConstructanArrayListofStringstodemonstratesyntax:

ArrayList<String>spongebob=newArrayList<String>();

Eventhoughthenotationlooksabitdifferent,thesyntaxisfairlysimilartowhatwe’veusedinthepast.ArrayList<type>ishowweindicatethetype—justlikeyou’duseintwhendeclaringaonedimensionalortwodimensionalarray.

ArrayList<String>spongebob=newArrayList<String>();

Lesson4.07:ArrayList

305

ThisisthenameofyourArrayList.Itcanbeanynon-keywordthatyouwanttouse.

ArrayList<String>spongebob=newArrayList<String>();

Askstudentsiftheycantellyouwhatthenewkeywordisfor(weusethenewkeywordwhenconstructinganobject).

ArrayList<String>spongebob=newArrayList<String>();

Wheneveryouseeemptyparentheses,itmeansthatyou’renotusingparameters.

4. UsingPoster4.7,reviewsomeofthemethodsyoucanusetomanipulateArrayLists.AddsomespongebobelementstoyourArrayList:

spongebob.add("PatrickStar");

spongebob.add("SquidwardTentacles");

spongebob.add("Mr.Krabs");

spongebob.add("Pikachu");

spongebob.add("SandyCheeks");

AskstudentsforsuggestionsonhowtoprintoutthisArrayList,andaskthemtopredicttheoutput:

System.out.println("SomeofthecharactersonSpongebobare"+spongebob);

StudentswillprobablynoticethatPikachuisnotacharacterintheSpongebobcartoon;askthemtorefertoPoster4.7tosuggestsomecodetoremovePikachufromthelist:

spongebob.remove(3);//Pikachuisstoredatindex3

Nowaskstudentstoaddanothercharacterfromtheshowtothemiddleofthelist,atindex3:

spongebob.add(3,"Plankton");

Thefirstparameter3indicatesthetargetlocation,andthesecondparameter"Plankton"indicatestheStringtobestoredthere.

["PatrickStar","SquidwardTentacles","Mr.Krabs","SandyCheeks"]

becomes

Lesson4.07:ArrayList

306

["PatrickStar","SquidwardTentacles","Mr.Krabs","Plankton"]

5. BrieflyreviewafewotherusefulArrayListmethods.Studentswillhaveanopportunitytopractice(andyouwillhaveanopportunitytoreteachifneeded)duringGrudgeball,sothiscanbeaquickoverview:

ARRAYLISTMETHODSOVERVIEW

TogetanelementfromtheArrayListandprintit

System.out.println(spongebob.get(3));

TogetthenumberofelementsintheArrayListandprintit

System.out.println(spongebob.size());

ToaddalltheelementsintheArrayList

intsum=0;

for(int=0;i<spongebob.size();i++){

Strings=spongebob.get(i);

sum+=s.length();

}

System.out.println("Totaloflengths="+sum);

Havestudentsjustifyyourcodechoices,andaskastudent(orstudents)totracethecodeandnarratethestepsfortheclass.

Toreplaceanarrayelement(noshifting)

spongebob.set(3,"Plankton");

ThiswouldreplacePikachuwithPlanktondirectly,withoutrequiringtheshiftingofthearray.

Toclearanarray

spongebob.clear();

Lesson4.07:ArrayList

307

Thisremovesallelementsfromthelistandleavesnullvaluesateachindex(it’sanemptyarraynow).

Grudgeball[35minutes]

1. Dividestudentsintotheirassignedteams.

2. Reviewtherulesforgrudgeball,andhavethestudentsrepeattherulesbacktoyou.

3. Usingtheproblemslistedbelow(andanyyoumayadd,dependingonyourclass’needs),playgrudgeballuntilateamwins,oruntiltheclassperiodends.

a.Ifaclassgetstheanswerwrong,BRIEFLYpausethegametohavestudentsoffercorrectionsbeforemovingtothenextteam’squestion.

b.Ifcorrectionseemstobedraggingon,jumpinandquicklyre-teachusingtheincorrectanswerasyourexample.Itisimportanttokeepthepacegoingtomaintainstudentinterestinthegame!

Gudgeballproblems&answershavebeengroupedassumingthatyouhave6teams.Ifyouhavefewerteams,each“round”willbeshiftedaccordingly,soyoumayhaveroundswheredifferentteamsarepracticingdifferentconcepts.Judgeeachteam’sknowledgegaps,andadjustwhichquestionsyouaskeachgroupaccordingly.

GRUDGEBALLPROBLEMSANDANSWERS

UseatypeparametertodeclareanArrayListthat:

a.StoresalistofStrings→ArrayList<String>b.Storesalistofintegers→ArrayList<Integer>(Wrapperclass)c.StoresalistofPoints→ArrayList<Point>d.Storesalistofdoubles→ArrayList<Double>(Wrapperclass)e.Storesalistofsoccerteams→ArrayList<String>f.Storesalistoftemperatures→ArrayList<Double>(Wrapperclass)

ConstructanArrayList:

g.Calledzthatstoresalistofints→ArrayList<int>z=newArrayList<Integer>();

h.CalledlistthatstoresalistofStrings→ArrayList<String>list=newArrayList<String>();

i.CalledjosethatstoresalistofPoints→ArrayList<Point>jose=newArrayList<Point>();

Lesson4.07:ArrayList

308

j.CalledpokemonthatstoresalistofPokémon→ArrayList<String>pokemon=newArrayList<String>();

k.CalledmetroCardthatstoresthenumberofmetrocardrideseachstudenthasleftontheircardtoday→ArrayList<Integer>metroCard=newArrayList<Integer>();

AccommodationandDifferentiationInELLclassrooms,readthequestionsaloudinadditiontoshowingthequestionontheboardorprojector.Considerdistributingaworksheetwiththequestionsonitsostudentscanwritedownanswersduringthegame.

CommonMistakesArraysListcommonmistakes:http://interactivepython.org/runestone/static/JavaReview/ListBasics/listMistakes.html

MisconceptionsJavauses3differentsyntaxforgettinglengthswhichisasourceofstudentconfusion:

String.length()

array.length

ArrayList.size()

VideosBJP10–1,RemovingfromanArrayLiasthttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c10-1

BJP10–2,AddingtoanArrayListofIntegershttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c10-2

CSE142,ArrayList(6:40–25:29)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=efa0eeba-81bc-497c-a1ae-46cda247c563&start=400

Lesson4.07:ArrayList

309

CSE142,WrapperClass(41:53–44:54)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=efa0eeba-81bc-497c-a1ae-46cda247c563&start=2510

ForumdiscussionLesson4.07ArrayList(TEALSDiscourseaccountrequired)

Lesson4.07:ArrayList

310

Lesson4.08—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

ReviewmaterialsfortheMagpielabby:ReviewingallthebluepagesattheendofChapter7andChapter10(onlythematerialforsection10.1ofChapter10)

Submit5questionsforreviewinclasstomorrowusingelectronicsurveyUpdateallsummariesinnotebookfortheupcomingnotebookcheck

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Thehomeworktonightasksstudentstosubmit5questionsforreview.Createanelectronicsurveyforstudentstocompletewith6textfields,oneforname,and5forquestionstheyhaveaboutCh.7andCh.10.1content.Setadeadlinebywhichtimestudentsmusthavesubmitted5questionsfromthechaptersthattheywouldliketoseereviewedaftercompletionoftheMagpielab.Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

YoushouldscorehomeworkfromLP4.7whilestudentsareworkingsoyoucanturnbackthoseassignmentsduringthisclassperiod.

Lesson4.08:Finding&FixingErrors

311

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkorclassworkassignments.Ifstudentsdidnothavetimetofinishthehomeworkfromyesterday,youmayallowthemtimetoworkonthattoday.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworkinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.

a.Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.

Ifstudentshavenotfinishedhomeworkassignments,allowthemtimetodaytocompletetheseassignmentstoturninforpartialcredit.

Studentstradework,check,andturnin[10minutes]

Lesson4.08:Finding&FixingErrors

312

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiationInELLclassrooms,pairstudentsandallowthemtoworktogethertocorrecttheirwork.

Forthosestudentswhohavenothingtocorrect(orfinishveryearly),rewardthemwithsilentfreetime,orallowthemtoworkonafree-choiceprogrammingproject.

ForumdiscussionLesson4.08Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson4.08:Finding&FixingErrors

313

Lesson4.09—MagpieLab

Overview

Objectives—Studentswillbeableto…

Completealong-formlab,usingifstatements,algorithms,theStingclass,arrays,andArrayLists.

Assessments—Studentswill…

CompleteCollegeBoard’sAPCSAMagpieChatbotLabAnswerassessmentquestionsonthefourthclassexam

Homework—Studentswill…

CompletehomeworkassignmentsasoutlinedinthePacingGuidebelow

Materials&PrepProjectorandcomputerMagpieChatbotLabTeacher’sGuideClassroomcopiesoftheMagpieChatbotLabStudentGuideAssociatedMagpieChatbotFiles

ReadthroughtheTeacherandStudentguidesaheadoftimetofamiliarizeyourselfwiththepartsofthislong-formlab.Usingtheguides,completethelabonyourowntospotpossiblechallengesforyourstudents.Uploadallstudentfilesontoeachcomputerdesktopforstudentaccess.

PacingGuide:Day1

Lesson4.09:MagpieLab(5Days)

314

Section TotalTime

StudentActivity1&2 Fullclass-students

Notebookchecks Fullclass-teacher

Homework:ReadCh.6intheBarronReviewBook TONIGHT

PacingGuide:Day2

Section TotalTime

StudentActivity2,continued Fullclass-students

Notebookchecks Fullclass-teacher

Homework:Completepracticequestions#1-18inBarron TONIGHT

PacingGuide:Day3

Section TotalTime

StudentActivity3 Fullclass-students

Notebookchecks(ifnotcompleted) Fullclass-teacher

Homework:Completepracticequestions#19-37inBarron TONIGHT

PacingGuide:Day4

Section TotalTime

StudentActivity4 Fullclass-students

Notebookchecks(ifnotcompleted) Fullclass-teacher

Homework:CheckandcorrectanswersinBarron TONIGHT

PacingGuide:Day5

Lesson4.09:MagpieLab(5Days)

315

Section TotalTime

StudentActivity5 Fullclass-students

Checkforstudentreviewquestions Fullclass-teacher

Homework:CheckBarronReviewBookforhighlighting,notetaking,andpracticetestcompletion/correction

TONIGHT

ProcedureAllguides,samplecode,answercode,andexamplecodemaybefoundinthefolder“Milestone1—MagpieChatbotLab.”AssessmentquestionsincludedontheTeacher’sguidehavebeenmovedtotheUnit4exam.

AboutBarron’s

Barron’sisanAPCSAreviewbookthatsomeschoolsprovidestudents.Ifyourschooldoesn’tprovideBarron’stherearemanyalternativehomeworkassignmentsthatcanbefoundatcodingbat.com/javaorpractice-it.

Alternatively,youcansavetimespentonthelabbycheckingactivitiesashomework.

GeneralProjectNotes

Tohelpstudentsstartthelabsmoothly,startActivity2asawholegroup.OpenEclipseandguidestudentsthroughopeningtheMagpieandMagpieRunnerfiles.

EncouragestudentstousetheirTrickyCodeCheatSheets,4CommandmentsofScope,notebooks,textbooks,classroomposters,andhomeworkassignments.

Offeroccasionaltime-checkstohelpkeepstudentsonpace.

Gradenotebooksandreviewbooksinbetweenhelpingstudentssostudentscankeepnotebooksforhomeworkandstudyingintheevenings.

AccommodationandDifferentiationInELLclassrooms,readalldirectionsaloudbeforebreakingintoindividualpractice,andallowuptotwicetheamountoftimeforcompletionofthelab.Asneeded,allowstudentstopairuptohelpeachotherwithreadingcomprehension(butremindstudentsthattheyeach

Lesson4.09:MagpieLab(5Days)

316

mustsubmittheirowncode).Eachdaythatyoubeginthelab,startwithaquicksurveyofstudentconcernsandquestions.

Differentiationofthelabassignmentcanbefoundonpage14oftheTeacher’sguide.

ForumdiscussionLesson4.09MagpieLab(TEALSDiscourseaccountrequired)

Lesson4.09:MagpieLab(5Days)

317

Lesson4.10—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit4knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stestusingtargetedreviewlist

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopicsClassroomcopiesofthepracticetestWS4.10

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.Ifyouarecrunchedfortime,holdthereviewsessionduringthesecondhalfofDay5oftheMagpieChatbotLab.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewofstudentquestions 30min

Sampletestreview 15min

Checkstudentstudylists 5min

Lesson4.10:Review

318

Procedure

Bell-workandAttendance[5minutes]

ReviewofStudentQuestions[30minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Beginwithareviewofstudent-submittedquestionsbeforereviewingthepracticequestions.

SampleTestReview[15minutes]

1. BeginreviewwithpracticetestWS4.10.HavestudentsworkthroughsectionIquestions,thenreviewtheanswersasaclass.

2. GivestudentstimetocompletesectionIIquestions,thenreviewtheanswersasaclass.

3. Finally,workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

Somequestionsyoumayaddresswhileworkingthroughthesampletest.

Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

4. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

5. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.

CheckStudentStudyLists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

ForumdiscussionLesson4.10Unit4Review(TEALSDiscourseaccountrequired)

Lesson4.10:Review

319

Lesson4.10:Review

320

Lesson5.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit4.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP8.1Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

Lesson5.00:TestReview&Reteach

321

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

howtheyfelttheyweregoingtodobeforethetestwhatsurprisedthemoncetheyweretakingthetestwhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

a.Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

b.Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Lesson5.00:TestReview&Reteach

322

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationEncourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,choosethesestudentstocreateyourclassroompostersafterschoolorforextracredit.

ForumdiscussionLesson5.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson5.00:TestReview&Reteach

323

Lesson5.01—ObjectOrientedProgramming

Overview

Objectives—Studentswillbeableto…

Describetherelationshipbetweenclasses,objects,andclientcode.Predicttheoutputofthecodethatusesobjects.

Assessments—Studentswill…

CompletePractice-Itquestions

Homework—Studentswill…

ReadBJP8.2upto“MutatorsandAccessors”

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS5.1.1Classroomcopiesofthetextbook(orjustsection8.1)Bookmarksonstudentcomputers(oremailedlinks)toBulbapedia

IfyoudecidetoemailorlinktothePokemonwikipage,thecompleteaddressis:http://bulbapedia.bulbagarden.net/wiki/Main_Page.Studentscanalsoeasilysearchforthepagebytypingin“bulbapedia”or“pokemonwiki.”

PacingGuide

Lesson5.01:ObjectOrientedProgramming

324

Section TotalTime

Bell-workandattendance 5min

Introduction:Discussion 10–30min

Introduction:SyntaxNotes 10–20min

Activity1:Practice-It 15min

Activity2:Researchingforacustomclass 15min

ReadthroughalloftheInstructor’snotesbeforeyouplanthislesson.Insomeclassrooms,itmightbebestifyouextendthisintoatwo-daylesson.Itisworthittospendplentyoftimediscussingconceptsofdesignanddebatingchoicestodrivehometheideathatobjectandclassconstructionarecompletelycustomizable.Ifyouareexpandingthislessonplantoatwo-daylesson,usegraphicorganizerWS5.1tohelpstudentsorganizetheirthoughtsfromtheclassdiscussionduringDay1.AsuggestedstoppingpointforDay1syntax/notesisindicatedbyadottedline.

OnDay2,startwiththesyntaxnotesbelowthedottedline,theninvitestudentstocompleteActivity1and2.

ProcedureIfyouhavetheoptiontorearrangeseating,setupstudentseatsinacircleforclassdiscussion.Asstudentsfilterin,startsmalldiscussionswiththefollowingtalkingpoints:Towritepersonalizedprogramsthathandlereal-lifedata,they’llneedtoknowhowtodesignandcreatetheirownmodelsofreal-lifeevents,phenomena,orprocesses.Ratherthanlearningnewstructuralcode,they’regoingtostartfocusingonmakingdesigndecisions.

Upuntilnowwehaveusedpre-madeobjectsandclassesthataregiventousbyimportingjavaclasses(bonuspointsifstudentscannamesomeexamples).Movingforward,they’llbeusingcustomizedclassesthatthey’vebuiltthemselves.

Bell-workandAttendance[5minutes]

Introduction:Discussion[10-30minutes]

1. Givestudentspermissiontoputdowntheirpencilstoparticipateinadiscussion(youcanreviewimportantdefinitionsaspartofarecapbeforeclasspractice).It’simportanttogetstudentsusedtocritiquinganddebatingdesigndecisionsbeforegettingintothenuts-and-boltsofobjects.

Lesson5.01:ObjectOrientedProgramming

325

Whatdowemeanby“modelsofreal-lifeevents,phenomena,orprocesses?”Inprogramming,objectsaremodelsofsomethingelse:

Theobjectforecastisamodelofafutureweatherevent.Theobjectstudent1isamodelofanactualstudentthatgoestothisschool.TheobjectmyDogisamodelofyourpetdog.

Whatdowemeanbymaking“designdecisions?”Tomodelaforecast,student,ordog,youneedtomakecertaindecisionsaboutwhatdataandactionsareimportanttoyourmodel.Askstudentstooffersomedesigndecisionsforaforecastobject:

i. Whattypesofdataareimportantforalocalforecast?

ii. WhatsortsofdatamightbeimportantforastudentwritingtheforecastobjectinAlaska?Arizona?Oklahoma?

iii. Whatbehavior(methods)mightwewantourforecastobjecttohave?

Discussionpointstobringup/guidestudentsto:

Ifyou’reinterestedinforecastingatornado,youmightchoosetomodeltheweatherwithfinergranularitythanyoumightoptforifpredictingrainfallorcloudcover.

Differentmodelcomponentswillbeappropriateindifferentsituations.

DoesaforecastwrittenbyastudentinArizonaneedthesameinputsandmethodsasaforecastinOklahoma?Whatmightbedifferent?Thesame?

2. Workthroughanotherdesigndiscussionaboutthestudent1ormyDogobject.Howmightyoudesignthestudent1objectinamusicschool?Amartialartsschool?Ahighschoolorcollege?Whatbehaviors(methods)anddata(states)mighttheyhaveincommon?Whichwouldbedifferent?(Boththemusicschoolandmartialartsschoolmightincludefieldsforbillinginformation,butonlythemartialartsschoolwouldhavefieldswithemergencymedicalinformation.)

Ifstudentsaresuggestingoverly-complexmodelsofstudent1ormyDog,useitasanopportunitytodiscusscomplexity.Isitalwaysagoodideatoaddstatesandbehaviors(dataandmethods)?Whenisitappropriatetomakeamodelmorecomplex?Whendoyouwanttokeepitsimple?

Theruleofthumbistoonlyincludethecomplexityyouneed.Ifthislanguageworksforyourclass,tellthemtoalwaysdesignaroundprinciplesofcompleteness,robustness,andsimplicity.

Completeness:DoesthismodeldoeverythingIneedittodo?DoesitcontainallthedataIneedittocontain?

Lesson5.01:ObjectOrientedProgramming

326

Robustness:IsthismodelsufficientlyflexibleforeverythingIneedittodo?CanIuseitindifferentcontexts(thisisn’timportantinthisunit,butwillbecomeimportantlater.)

Simplicity:Canmymodelbesimpler?Extracomplexitycanleadtocodingmistakesorerrorsdowntheroad.Iwantmycodetobeeasyforotherprogrammerstoread/interpret.

Introduction:SyntaxNotes[10-20minutes]

1. DistributegraphicorganizersWS5.1tothestudentsthatneedextrastructurefortheirnotes.Startbyshowingstudentsthedifferencebetweenaprogramthatisasetofactions(commands),andaprogramthatcontainsdataandbehavior(dataandmethods).

Thisobjectdigitsisa(verysimple,andsomewhatboring)modelofacollectionofintegers.Thismodelcontainsstate(data)andactions(methods):

int[]digits={1,2,3,4,5,6,7,8,9,10};//Thedataisstoredinthe

array.

System.out.println(Arrays.toString(digits));//Themethoddictatesactions

//tobedonewiththedata.

Dependingonyourclass’cultureandlevelofunderstanding,youmightconsiderabriefside-discussiononotherwayswecouldgettheprogramtoprintoutthearray.Askforstudentstovolunteersomeothercode,andaskstudentstoargue/debatewhetheritiseasiertowritethecodefromscratchoraskthearraytoformatitself(asabove).

2. AnobjectisacombinationofdataANDmethods.Thebookreferstotheseasstate(content,ordata)andbehavior(methods,orwhatistobedonewiththedata).

Thebehaviorcanmodifyorreportthedatacontainedbytheobject.

Thebookreferstothedataasthe“state”oftheobject

Askstudentstodescribehowweusetheword“state”indailylife,andaskthemtocomparetohowyouuse“state”incomputerscience.

Askstudentstoexplainhowtheword“behavior”appliestoanobject.

Bycontrast,thisisaprogramthatisnotanobject/model:

Lesson5.01:ObjectOrientedProgramming

327

while(guess!=number){

System.out.println("Incorrect.");

System.out.println("Yourguess?");

guess=console.nextInt();

numGuesses++;

}

Askstudentswhythisisn’tanobject/modelofsomething.(Thisprogramonlycontainsactions,nobehavior.)

3. Thecodethatusestheobjectsiscalledclientcode.You’dnevercreateamodelofsomething(createanobject)ifyouweren’tgoingtouseitwithotherprograms(clientcode).

Topullfromourearlierexample,whatsortofprogram/clientcodemightmakeuseofstudent1?(Anattendanceprogram,agraderecordsprogram)

Whatprogram(clientcode)mightneedtoaccessthedataandmethods(stateandbehavior)storedinthemyDogobject?(Aveterinarian’sdigitalmedicalcharts,adogshow’sregistrationprogram)

4. Usingwhicheverexampleismostengagingtoyourstudents,havethemwrite3objectswithpropersyntaxasaThink-Pair-Share.Beforeyoulisttheobjects,haveabriefdesignconversationasawholegroup,sostudentscandecidewhatdataandmethodsshouldbeincludedineachobject.Somesuggestedobjects:

myDog,teachersDog,sistersDogstudent1,student2,student3forecastNY,forecastAZ,forecastOK

Askstudentsiftheywrotethesamecodeoverandoveragain,howlongittookthem,iftheycanthinkofanotherwaytomakethetaskeasier(someofthemmighthavereadaboutclassesthenightbefore).

5. Aclassisablueprint(oroutline)thattellsJavahowtomakeaparticularsetofobjects.WecouldsaveourselvesalotoftimebywritingaclassStudent,whichwillmakesurethateverystudentobjecthas<whateverfieldsyourstudentsdecidedstudentshouldhave>.

Eachobjectiscalledaninstanceofthatclass.

TheobjectmyDogisaninstanceoftheDogclass.SoistheobjectteachersDogandsistersDog.WhatisanotherinstanceoftheDogclass?(Anyindividualdogiscorrect—categoriesofdog,suchasseeingEyeDogarenotobjects,butprobablyclassesinahierarchy—moreonthatlater!)

AskstudentstogiveinstancesoftheStudentandForecastclasses.

Lesson5.01:ObjectOrientedProgramming

328

Finally,askforstudentstoprovideexamplesoftheirownclassesandinstances.Someexamples:

Class:ClassroomChairInstances:Student1’sSeat,Student2’sseat,etc.

Class:PensInstances:Mypen,yourpen,thepenonthedesk

Ifyouusetheseexamples,walkaroundtheclassroom,physicallytouchingorpickinguptheinstancesofeachclass.

Asyouworkthroughtheseexamples,becarefulnottogenerateanexamplethatillustratesasuperclasswithclasses.Thiswillbecomingupinthenextunit,soit’simportantnottoconfusestudents.

Ifastudentgivesanexamplethatisoverlygeneral,youcanredirectthemtowardsamorespecificexample:

IncorrectStudentExample:Class=Car,Instances=Jetta,Prius,ModelTCorrection:Class=Car,Instances=myCar,yourCar,thatCarOverThere

Aclasscontainsseveralkeycomponents:

Fields—whichoutlinewhatdata(state)theobjectwillhold

Methods—whichdeterminethebehaviorofeachobject

Constructors—codethatinitializeseachobjectasitsbeingconstructedwiththenewkeyword

Aclassusesencapsulationtoprotecttheobject’sdatafromoutsideaccess(bytheclientcode).Youdothisbymakingeachfieldprivate.

Ifyouneedadditionalexamples,workthroughthebookexampleofthePointClass,drivinghometheideathataclasscancontainwhatevertheywant/need.Ifyourstudentsareeasilygraspingtheseconcepts,havethestudentshelpyoucreateaboutique/bespokeclassPokémon.Theideahereistogivethemadesignproblemthattheycanworkthrough,makingchoicesaboutcontentandbehaviorthatresultinamodelofthePokémongame.

Activity1:Practice-It[15minutes]

1. Studentswillbeworkingingroupsformuchoftheweek,sohavethemworkindependentlytoday.Ifstudentsarereallyhavingaroughtime,workthroughthefirstPractice-Itquestiontogetherasawholegroup.

Lesson5.01:ObjectOrientedProgramming

329

2. HavestudentsreadthroughthePointClassexamplebeforemovingontothePracticeItquestions.

3. HavestudentslogintoPracticeIttocompletethefollowingself-checkquestions:

a.whatIsOOPb.whatIsAnObjectc.StringObjectd.ReferenceMystery3e.CalculatorObject

4. Ifmore25%ormoreoftheclassisstruggling,returntowholegroupwiththestipulationthatstudentswhogetitmaycontinueworkingindependently.

Activity2:ResearchingForaCustomClass[5minutes]

1. AskstudentstotakeafewminutestoresearchthePokémongameinearnest.AnongoingdesignchallengewillbeforthemtoconstructamodelofthePokémongamethatresemblestheonetheyplayathome.Iftheyarealreadyfamiliarwiththegame,theyshouldvisitBulbapediatolearnhowsomeofthestatsarecalculated.Iftheyarenotfamiliarwiththegame,theyshouldwatchgameexamplesonYouTube,readtherulesandstepsonNintendo’swebsite,ornavigatethroughtheintropagesonBulbapedia.Thiscanbeextendedasahomeworkassignment.

Ifyourstudentshavetroublereading,directthemtothefollowingwebpagesinsteadofhavingthemsearchattheirowndiscretion:

i. http://www.pokemon.com/us/parents-guide/(Basicoverviewofthegame)

ii. https://youtu.be/DlEbXH8eUTk?t=1m26s(thisisa30minuteYouTubevideoofgameplay—studentsshouldeitherwatchitathomeoronlywatchthefirst5-10minutesinclass)

iii. http://www.pokemon.com/us/pokedex/(typesofPokemon)

iv. http://tinyurl.com/no4mzic(Pokemonwithstats)

v. http://en.wikipedia.org/wiki/Gameplay_of_Pokémon(Wikipediaentry)

2. Asstudentsresearch,havethemjotdownideasforwhattypeofdataandbehaviorstheywouldwanttoincludeinaPokémonclass.Whatdesignfeaturesdotheyfeelaremostimportanttotheirmodel?Encouragestudentstojustifytheiranswerstoeachother,you,andtheclassatlarge.

Lesson5.01:ObjectOrientedProgramming

330

3. Ifstudentsshowinterest,letthemreadaheadinthetextbooktofigureoutexactlywhatfields,methods,andconstructorstheymightuseinthenextclass.Askstudentstoreflectontheircurrentmodelandthinkofwaystheycouldimprove/changeit.

AccommodationandDifferentiationIfyouhavestudentswhoarespeedingthroughthislesson,invitethemtocreateamindmapoftheconceptsintroducedtodayusingkeyvocabularywords.Ifthemindmapisthorough,givethestudentmaterialstoturnthemapintoalarge-formatposterfortheclassroom.

Forstudentsstrugglingwiththevocabulary,askthemtobringinphysicalobjectsthatcanallbeclassifiedasthesametype.(Perhapstheybringindrinkbottles,ortypesofsnacks,ordifferentwritingimplements.)Usingthoseobjects,youshouldhavethemcreateanin-classdisplaythatmodelstherelationshipbetweenclassesandinstancesoftheclass.Havestudentslabelthephysicalobjectswith:

ClassnameObjectInstanceof[nameofclass]Samplecodeorpseudocode(onindexcardsorpiecesofpaper)for:

FieldsConstructorsMethods

Ifstudentsneedadditionalanchoringforthe“object”concept,askthemiftheycanguesswhatobjectthey’veworkedwithbefore.(Stringobjects,Scannerobjects,etc.)Haveabriefdiscussionwhereyou:

AskstudentstoprovideexamplesofdatastoredinStringobjects(Dataincludesthecharactersandtheirlocations,informationaboutthelengthofthestring.)

Askstudenttoprovideexamplesofbehavior(methods)associatedwithStrings.(Methodsincludeanythingusedinthe.dotnotation,suchass.length().)

Ifyouneedadditionaldiscussion,askstudentstodiscussthebehaviorandstateofarrayobjects.

TeacherPriorCSKnowledgeUptothispoint,studentshavebeenconsumersofobjects.TheyhaveusedtheString,Scanner,andArrayListclasses.Aswemoveintoobjectorientedprogrammingconcepts,studentswillbeabletocreateclassesandobjects.Thisislikebeingabletoreadalanguage

Lesson5.01:ObjectOrientedProgramming

331

tobeingabletowritealanguage.Bothrequiresomeknowledgeandskillinadditiontolotsofpractice.Theknowledgeandskillarerelatedforreadingandwriting,butnotnecessarilythesame.

MisconceptionsStudentsthinkclassisacollectionofobjects,ratherthanatemplateforcreatingobjects.

VideosBJP8-1,DefiningaClasshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c8-1

CSE142,IntroObjectOrientedProgramming(11:26–19:53)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=2071ef1c-2912-4b41-8052-d327180ea215&start=686

CSE142,ClassvsObject(26:36–31:43)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=2071ef1c-2912-4b41-8052-d327180ea215&start=686

ForumdiscussionLesson5.01ObjectOrientedProgramming(TEALSDiscourseaccountrequired)

Lesson5.01:ObjectOrientedProgramming

332

Lesson5.02—ObjectState&Behavior

Overview

Objectives—Studentswillbeableto…

Describeclasses,objects,andclientcode.Predicttheoutputofthecodethatusesobjects.

Assessments—Studentswill…

CompleteWS5.2individuallyorinpairs.

Homework—Studentswill…

ReadBJP8.3upto“TheKeywordthis”Completeself-checkquestions#9-11,13-16

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS5.2

YoushouldreadtheintroductionontheBulbepediawebsitesoyouunderstandthemainideasbehindthePokémongame.IfyousearchYouTube,youcanfindrecordedgamestoseehowaPokémonbattlestarts,progresses,andends.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction 15-30min

Studentpractice:WS5.2 25min

Studentstradework,check,andturnin 10min

Lesson5.02:ObjectState&Behavior

333

ProcedureYesterdayyouaskedstudentstodosomeresearchonwhatfields,constructors,andmethodswouldbeappropriateforbuildingacustom-madePokémonclass.Solicitstudents’inputbeforeyouworkthroughaPokémonclassexample.

AskstudentswhattheythinkaPokémonclassshouldinclude,andwhy.EncouragestudentstoarguefororagainstcertaindesignfeaturesinthePokémonclass.ShouldtheclassincludeallPokémonstats?Arethereanybehaviors(methods)youthinkallinstanceobjectsshouldhave?WhataresomeexamplesofinstancesofthePokémonclass?(AnyindividualPokémonisaninstanceofthePokémonclass,forexamplePikachu,Bulbasaur.)

Bell-workandAttendance[5minutes]

Introduction[15-30minutes]

1. Askstudentstoreviewtheirnotesfromthedaybefore,remindingyouwhatthemaincomponentsofaclassare.(Fields,methods,constructors,andencapsulation.)

Thesyntaxfordeclaringafieldisthesameasthesyntaxfordeclaringnormalvariables(typefollowedbysemicolon).Ifyourstudentsarefeelingconfident,inviteavolunteeruptodeclareafieldonthewhiteboardforyourPokémonclass.

RemindstudentsthatfieldssignifythatEVERYinstanceobjectoftheclassshouldhavethatvariableinsideit,soastheirexample,theyshoulddeclareatraitthateveryinstanceofPokémonwillhave.

Yourexampleshouldlooksomethinglikethis:

publicclassPokemon{

privateinthp;//Pokémonstatsincludehitpoints,or"HP"

privateintattack;

Studentswillprobablystartvolunteeringadditionalexamplesoncetheyrealizethatstatsmakeforgoodfields.Someotherfieldsinclude:

privateintdefense;

privateintspecialAttack;

privateintspecialDefense;

privateintspeed;

Lesson5.02:ObjectState&Behavior

334

Forthesakeofsimplicity,trytokeepstudentsto2or3fieldsfornow.Don’tjustarbitrarilydeclarethis;encouragestudentstothinkabouthowweuseclassesandobjectsasmodels.Askthemtocriticizeyourcurrentmodel.

Doesitneedtobecomplexyet?

Ifweoptforsimplicity,whatareweyieldinginsufficiency/robustness?

Ifstudentsagreetokeepitsimplefornow,remindthemthattheycanmakeadesignchoicetoincreasecomplexitylater.Mostprogrammersstartwithasimplermodelandbuildupastheyfleshouttheirprogram.

Ifstudentsneedadditionalexamplesforappropriatefields,leadstudentsthroughthefollowingexamples(havingthemaddasmuchofthecodeaspossible).Makesurethatstudentscanjustifytheirchoicesinfieldsandexplainwhytheywouldincludesomedataandnotothers.Ateveryopportunity,repeatthefactthattheyareusingdatatomodeltherealworld:

publicclassStudent{

privateStringname;

privateintgradeLevel;

privatedoublegpa;

publicclassDog{

privateStringbreed;

privatedoubleweightInKg;

publicclassForecast{

privatedoublewindSpeed;

privateStringwindDirection;

privatebooleantornadoWarning;

2. Remindstudentsthatinthepreviousclasstheylearnedthatobjectscombinebothstate(data)andbehavior(methods).Sofarwe’vecreatedfieldsinourclassesthatstatewhatdatawillbestoredinallinstanceobjects.

WhatwouldbeagoodmethodtoincludeinallinstancesoftheStudentclass?WhatwouldbeagoodmethodforallinstancesoftheDogclasstohave?Whatmethodshouldallforecastshave,nomatterwhatareayou’reforecastingfor?

3. Let’saddamethodinsidetheobjectthatwillreportinformationaboutthedatastoredinourPokémonobjects.Becausethismethodisbeingwrittenwithintheobject,werefertoitasaninstancemethod(itisnotinclientcode).

Pokémongetaneffortribboniftheircombinedstatsexceedacertainvalue.WhatwouldthemethodsumStatslooklike?

Lesson5.02:ObjectState&Behavior

335

publicintsumStats(){

returnhp+attack+defense+specialAttack+specialDefense+speed;

}

SincethismethodgetsinformationaboutyourPokémoninstance,butdoesn’tchangeanyofthevalues,whatdoyoucallthistypeofmethod?(Accessor)

Isthisclientcode?(No,itispartofthePokémonclass,whichiswhywecallitaninstancemethod.)

4. Let’swriteanotherinstancemethodthatwillletuschangethestate(datavalues)storedinourPokémoninstanceobjects.Inthegame,whatcanyoudotocauseyourstatstochange?(Winbattles,consumevitamins)

Pokémoncanusevitaminstoboosttheirstats.Herearesomeexamplevitaminsforyoutouseattheboard:

hpUp:+pointstoHPprotein:+pointstoattackiron:+pointstodefensezinc:+pointstospecialDefense

Inkeepingwithourearlierexample,amethodtoupdatestatswithvitaminswouldlooksomethinglikethis:

publicvoidconsumeVitamin(inthpUp,intprotein){

hp+=hpUp;

attack+=protein;

}

Studentsmaywanttoaddothervitamins.

5. Askstudentsiftheycandeducethesyntaxrulesforinstancemethodsbasedonthetwomethodswe’vewrittensofar:

public<type><name>(<type<name>,<type><name>…){

<statement>

<statement>

}

6. SinceweknowthatallinstancesofourPokémonclasswillhaveinitialvaluestotheirstats,wecouldcreateaconstructortoinitializeallofourvalues.

Lesson5.02:ObjectState&Behavior

336

Itoftendoesn’tmakesensetohaveJavaautoinitializeourstatsto0,sowebuildourownconstructorthatrequiresustopassinitialparameters.

Havestudentspointouttoyoutheclass,fields,andconstructor:

publicclassPokemon{

privateinthp;

privateintattack;

publicPokemon(inthitpoints,inta){//Inacompleteversio

nyou

hp=hitpoints;//wouldincludeallst

ats.

attack=a;

}

}

7. Nowthatyouusedtheconstructor,it’sveryeasytocreateobjects!WhatwouldaninstanceoftheclassPokémonbe?(AnyPokémontype;Pikachu,Bulbasaur,Squirtle,etc.)

Pokemonpikachu=newPokemon(70,120);

Ifstudentsaregettingexcitedaboutthisexample,askthemtolookuptypesandtheirtypicalinitialvalues(IVs)forhitpointsandattack.LetthempracticeconstructingnewinstancesofthePokémonclass.

AskstudentshowyouwouldaddthePokémontype(electric,ground,rock,etc.)totheconstructor.

PointoutthatitisincorrecttoconstructaPokémonobjectwithoutpassinginitialhitPointsandattackparameters.Sinceyouwroteacustom-madeconstructorforyourclass,Javawon’tletyoucallnewPokémon()anymore.Instead,yourcodejustwon’tcompile.

StudentPractice:WS5.2[25minutes]

1. Remindstudentstousetheirtextbooks,notes,classroomresources,andonlineaidstohelpthemanswerthequestionsonWS5.2.

2. Encouragestudentstoworkindependentlyuntilthelast10minutesofclass.

Studentstradework,check,andturnin[10minutes]

Lesson5.02:ObjectState&Behavior

337

Havestudentstradeanderror-checkeachother’spapers.Error-checkingpartnersshouldwritetheirnameonthesheetstosharecreditforthework.

AccommodationandDifferentiationInclasseswherereadingcomprehensionisanissue,havestudentsworkinpairstoday.Ifyouhavealreadycreatedthesmallgroupassignmentsforthenextclass(seeLP5.3),youcanassignpairsthatwillbeinthesamegrouptomorrow.

Ifyouhavestudentswhoarespeedingthroughthislesson,invitethemtocreateadiagramshowingthedifferentpartsofaclassandinstanceobjectthatweintroducedtoday.Ifthediagramiscorrectandthorough,givethestudentmaterialstoturnthediagramintoalarge-formatposterfortheclassroom.

TeacherPriorCSKnowledgeInNoviceJavaProgrammers’ConceptionsofObjectandClass,andVariationTheorybyEckerdalandThuné,novicestudentsviewobjectsatthreelevels:

Objects:

ObjectisexperiencedasapieceofcodeAsabove,andinadditionobjectisexperiencedassomethingthatisactiveintheprogramAsabove,andinadditionobjectisexperiencedasamodelofsomerealworldphenomenon

Class:

Classisexperiencedasanentityintheprogram,contributingtothestructureofthecodeAsabove,andinadditionclassisexperiencedasadescriptionofpropertiesandbehavioroftheobjectAsabove,andinadditionclassisexperiencedasadescriptionofpropertiesandbehavioroftheobject,asamodelofsomerealworldphenomenon

Softwaredevelopersareadeptatseeingobjectsandclassesasmodelsforbothrealandabstractconstructs.

ForthepurposesoftheAPtest,allfieldsareprivate.Thisensuresgoodprogrammingpracticeforbeginningstudentsbecauseitforcestheuseofaccessorsmethods:accessorsandmutators.Thedefaultaccessforfieldswhennoaccessmodifieris

Lesson5.02:ObjectState&Behavior

338

specifiedispackageprivate.Thismeansallclassesinthesamepackagewherethevariableisdefinedcanaccessthefield.

MisconceptionsStudentsaddstatictoclassmethoddefinitions.NowthatClasseshavebeenintroduced,staticmethodsthataretiedtotheclassareoftenconfusedwithnonstaticmethods.Studentscancallstaticmethodswithoutcreatinganobject,however,anobjectmustbecreatedfirstandthenon-staticmethodcanbecalled.

VideosBJP8-2:DefiningaClasshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c8-2

CSE142,ObjectOrientedProgrammingState(19:54–26:25)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=2071ef1c-2912-4b41-8052-d327180ea215&start=686

CSE142,ObjectOrientedProgrammingBehavior(31:44–42:44)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=2071ef1c-2912-4b41-8052-d327180ea215&start=1905

CSE142,Objectmethods(45:32–49:41)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=2071ef1c-2912-4b41-8052-d327180ea215&start=2732

ForumdiscussionLesson5.02ObjectState&Behavior(TEALSDiscourseaccountrequired)

Lesson5.02:ObjectState&Behavior

339

Lesson5.03—ObjectInitialization:Constructors

Overview

Objectives—Studentswillbeableto…

Describeandcreateclasses,objects,andclientcode.Predicttheoutputofthecodethatusesobjects.

Assessments—Studentswill…

CompletePractice-Itquestions

Homework—Studentswill…

ReadBJP8.4Takenotes,sinceyouwillhavetoteachamini-lessonlaterinthisunit

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersClassroomcopiesofWS5.3.1,WS5.3.2Studentsmall-groupassignments(3-4pergroup)2dialoguebubbles(indexcardsorstickynotes)foreachgroupRolloftape/gluestickforeachgroup1large,1medium,and2smallstickynotesforeachgroup1blanksheetofpaperforeachgroup

Mostteacherswilleitheralreadyhavethesematerialsonhand,orbeabletoborrowthemfromanotherteacherorthemainoffice.Youshouldtrytogiveyourclassroomteacheratleast1weeknoticetogetthesesuppliestogether.

Template5.3.1shouldbere-sizedtoledgerorlegalsizedpaper,ifitisavailableinyourschool.Ifyouhaveaccesstotheselargerpiecesofpaper,encouragestudentstowritetheircodelargelysostudentscaneasilyreadtheexampleswhentheyarepostedaroundthe

Lesson5.03:ObjectInitialization:Constructors

340

room.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction 10min

Studentwork 30min

Studentviewing&exitticket 10min

ProcedureThislessonincludestwohooks:First,assemblethepacketsofmaterialsforeachgroupbeforeclass,andlaythesuppliesoutforstudentstosee/wonderabout.Secondly,introducetoday’slessonwithahipsterflair(ifyoucanpullitoff)byemphasizingtheartisanal,custom-made,hand-crafted,boutique(etc.)natureoftheclassesandobjectstheywillbecreatingtoday.Theskyisthelimit!Theycanchooseanyclassofobjectstheyareinterestedinfortheirgroupwork.

Ifyoufeeladditionalmotivationisneeded,youcanofferaprize(TEALSswag,etc.)tothemostcreative,complete,andcorrectcodesample.Offersomejust-in-timeinstruction,thenletthestudentsworktogetherwiththeguidanceofWS5.3.1

Bell-workandAttendance[5minutes]

Introduction[10minutes]

1. Weknowthatobjectsuseconstructors—youmightrememberthemfromearlierintheyearwhenweusedthenewkeywordnewtoconstructanewarray.

Startyourconstructorwiththekeywordpublic

Followwiththeclassnameandwhateverparametersyouthinkyoushouldinclude

Thisisadesignquestion—whichparametersdoyouthinkshouldbeauto-initialized?Whendoesitmakesensetoproscribeaninitialstate?

2. Workthroughtheexampleswe’vereviewedinpreviousclasses.WhatconstructorlooklikefortheStudentclass?TheDogclass?AForecastclass?

Lesson5.03:ObjectInitialization:Constructors

341

Givethefirstexample,butwitheachexamplehavestudentsofferincreasingamountsofthecodethemselves.

Askstudentsiftheycanthinkofsomesituationswheretheymightwanttoleaveoutsomeofthefieldsfromtheconstructor.

publicclassStudent{

publicStringname;

publicintgradeLevel;

publicdoublegpa;

publicStudent(Stringn,intgl,doubleg){//It'sagoodideatou

seasingle

name=n;//letterfromthefield

syouare

gradeLevel=gl;//initializinginthec

onstructor.

gpa=g;//Itkeepsthingssimpl

e!

}

publicclassDog{

publicStringbreed;

publicdoubleweightInKg;

publicDog(Stringb,doublew){//Studentsmayaskwhywehavetoc

reate

breed=b;//theseadditionalparameternames.

This

weightInKg=w;//plumbingmayfeelclumsy,butit'

sjust

}//astepwehavetoacceptinJava.

publicclassForecast{

publicdoublewindSpeed;

publicStringwindDirection;

publicbooleantornadoWarning;

publicForecast(doublews,Stringwd){//Maybeitdoesn'tmakesens

etohave

windSpeed=ws;//atornadowarninginthef

orecast.

windDirection=wd;//Thisisadesignchoice!

}

Lesson5.03:ObjectInitialization:Constructors

342

Becauseyouhavebuiltacustomclasswithobjectsthatyoudesigned,youcan’trelyonJavatoauto-initializeyourobjectstozerovalueslikeitdoesfortheArrayclass.Thearrayclasshasitsownconstructorthatsays“setallinitialvaluestozero-equivalents.”Youwillalwaysneedtowriteyourownconstructortoinitializeyournewobjects.

StudentWork[30minutes]

1. Ifyouhaveasample(thatyoudidyourself,orthatyousavedfrompreviousstudents’work),holditupasanexamplefortheclass,butdonotletstudentslooktooclosely.Theideahereisforstudentstoseethattherearedifferentsheetsofpaperandstepstotheproject;youdon’twantthemlookingatdetailsofthecode.

2. Beforeyoubreakstudentsintogroups,remindtheclassthattheyshouldreadthroughalloftheinstructionsfirstsotheygetagoodideaofwhattheir“boutique”classisrequiredtodo/contain.

a.Theyshouldspendatleast5minutesdiscussingtheirapproachtoprogramdesign,potentialstrengths,andweaknessesofthatdesign,thencometoconsensus.

b.Warnstudentsthatyouwillaskallgroupmemberstojustifytheirdesignchoices.(Followthroughwiththis,walkingaroundtheroomtospot-checkstudents!)

3. Askstudentswhattheyshoulddoiftheyhaveaquestionorgethunguponpartoftheexercise.(Checktheirnotes,checkthebook,discussitasagroup,andifallthatdoesn’twork,raisetheirhandsforhelp.)

4. Breakstudentsintotheirassignedteamsanddistributethematerials(worksheets5.3.1and5.3.2)toeachgroup.Invitethemtostartonreadinganddesigndebate.

5. Ifstudentsarestrugglingwithaquestion,youcanreferthemtothefollowingsectionsintheirbook:

a.Steps1–2—Thefirsthalfofsection8.2b.Steps4–11—Thesecondhalfofsection8.2c.Step3—Thefirsthalfofsection8.3d.Step12—Section8.1

StudentViewing&ExitTicket[10minutes]

1. Havestudentsputouttheircodeondesks,orpinnedtothewall,andhavetheentireclassvisiteachArtisanalClass/Objectset.

2. Asatickettoleave,havestudentswritedowntheirname,thenameofanothergroup’sclass,andhowtheywoulddeclareanobjectaccordingtothatgroups’constructor.

Lesson5.03:ObjectInitialization:Constructors

343

AccommodationandDifferentiationForELLclasses,youmaywanttoletstudentsinvestigatethesamplefinishedproductmorecloselytogivethemcuesoninstructionssotheycanfocusonthecodinginstead.Ifthetaskisstillslowingtheclassdowntoogreatly,readthedirectionsaloudtotheclass,anddemonstratethesteprequired(e.g.selectingthestickynoteandstickingittothetemplate).

Moreadvancedclasseswillwhizthroughthisactivityin15minutesorless.Ifthishappensinyourclassroom,encouragestudentsto:

addmoremethods,includingcomments,andlabelingimplicitparameters

addmoreclientcode,includingcommentsonthecodetoexplainwhatitdoes

addotherclassesandobjects(onadditionaltemplates)andcreateamodelthatshowshowalltheobjects,classes,andclientcodemightlinktogetherinalargerprogram

reservesometimetocompletetoday’shomeworkandmoveontoLesson5.4.

TeacherPriorCSKnowledgeConstructorsyntax.HereisthestatementforcreatinganobjectfromclassPhone:

PhonemyPhone=newPhone();

Here’stheconstructorforclassPhone:

publicclassPhone{

publicPhone(){

//Phoneconstructorcodegoeshere

}

}

IfyoubreakdownthecreationofaPhoneobject:newPhone()therighthandsidePhone()issimplyamethodcall.Themethodthatiscalledistheconstructor.IfwenowlookattheconstructordefinitionpublicPhone(),itmatchestherighthandsideofthecreationofaPhoneobject.Theonlydifferencebetweencallingaconstructorwhencreatinganobjectandastaticornon-staticmethodisthereturntypeisimplied.Aconstructorbydefinitionreturnsareferencetoanobjectinthisexample,areferencetoaPhone.Sincetheconstructorbydefinitioncanonlyreturnonetype,itwasremovedfromthesyntaxwhendefiningaconstructor.

Lesson5.03:ObjectInitialization:Constructors

344

MisconceptionsStudentsaddingvoidreturntypetoconstructordefinition.Studentsareinthehabitofspecifyingareturntypeformethods.Theonecasewherethereturntypeisnotneediswhendefiningtheclass’constructor.Ifareturntypeisspecified,themethodistreatedasamethodoftheclassandnotasaconstructor.Thecodewillcompilebuttheconstructorwillneverbecalled.

VideosBJP8-3,DefiningaClasshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c8-3

CSE142,Usingvsbuildingobjects(1:41–7:36)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=101

CSE142,toString()(optional)(7:37–23:33)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=457

CSE142,Constructors(23:34–30:13)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=1414

CSE142,MultipleConstructors(optional)(30:14–35:37)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=1814

ForumdiscussionLesson5.03ObjectInitialization:Constructors(TEALSDiscourseaccountrequired)

Lesson5.03:ObjectInitialization:Constructors

345

Lesson5.04—Encapsulation

Overview

Objectives—Studentswillbeableto…

Explainwhatencapsulation/abstractionare,andwhytheyareimportantprogrammingstrategies.

Assessments—Studentswill…

Teachamini-lessononencapsulation/abstraction,usingprivatefields,usingclassinvariants,andchanginginternalimplementations

Homework—Studentswill…

CompleteaquizattheendofDay2Completechapter8self-checkquestions17-21

Materials&PrepGroupcopiesofWS5.4Assignmentsfor4studentgroups4classroomcopiesofthetextbook(orhavestudentsbringbookstoclass)Copiesofthegradingrubricontheoverheadorprintedout(optional)

Youwillneedtocirclestudentassignmentsonpoint2ofWS5.4,soeachgroupknowswhattopictheyareexpectedtoteach.

PacingGuide:Day1

Lesson5.04:Encapsulation

346

Section TotalTime

Bell-workandattendance 5min

Introduction;reviewingtheassignment 10min

Studentpreparationoflesson 30min

Studentpractice 10min

PacingGuide:Day2

Section TotalTime

Bell-workandattendance 5min

Studentmini-lessons 35min

Quizusingstudent-generatedquestions 15min

ProcedureYourhookfortoday’slessonistoturnthereinsovertostudentsimmediately.Haveinstructionsprintedoutandsittingatteamworkstations(oronstudentdesks).Encouragestudentstoanswertheirownquestionsusingtheinstructionsheetandtextbook.FrequentlyaskedquestionsandsuggestionsforstudentgroupsareincludedinAccommodationsandDifferentiation.

Bell-workandAttendance[5minutes]

Introduction&ReviewingtheAssignment[10minutes]

1. Preparestudentsbytellingthemthatthe4topicscoveredtodayarethe4subsectionsof8.4,thereadingthatwasduetoday.

2. Givestudents15minutestopreparetheirpresentationandgeneratequizquestionsfortomorrow’sclass.

a.Useatimerandannouncetimeat10-and5-minutesremainingsostudentscanpacethemselves.

b.Answerstocommonlyaskedquestions,andtipsforthedifferentgroupsmaybefoundbelow:

Lesson5.04:Encapsulation

347

ASSIGNMENTFAQ

Encapsulation&Abstraction

Guidanceforstudentteachers

1. Ifstudentsarelackingdirection,encouragestudentstorefertothetextbook.Agoodexampleofwhyit’simportanttoencapsulatecodecanbefoundinthe“Didyouknow”blueboxinsection8.4.

2. Agood“TrickyCodeCheatSheet”tipwouldbeforstudentstoformaruletheirpeerscanmemorizeforwhenits’appropriatetoencapsulatecode.

CommonQuestions/Answers

1. Whycan’twejustignorecode,orpromisenottomodifyitinsteadofencapsulatingit?

Mostlargeprogramsareauthoredbymanypeopleoverthecourseofmonthsoryears!Sometimesyoudon’tneed(orwant)toknowthedetailsofanotherprogrammingsegment—ifitain’tbroke,don’tfixit.Tokeepfromaccidentallychangingcode,it’sbestpracticeto“protect”itbyencapsulation.

PrivateFields

Guidanceforstudentteachers

1. Ifstudentsarehavingtroubleoutliningtheirlesson,suggestthattheystartwiththefourthcompleteversionofcodeinthetextbook.Iftheyusethetextbookexample,makesuretheypointoutwhichprogramistheclientcode.

2. Agood“TrickyCodeCheatSheet”tipwouldbetheconventionoffieldsatthetopoftheclass,followedbyconstructors,followedbymethods.

CommonQuestions/Answers

1. Whatisthescopeofprivatefields?

PrivatefieldsarevisibletoallofthecodeinsidethePointclass,includingtheinstancesoftheclass.Clientcodecannotdirectlyrefertoanobject’sfieldsifyou’veencapsulatedthem(markedthemasprivate).

2. Butwhatifwestillwantclientcodetohavetoreadsomeofthefields?

Writeanaccessormethod(a“get”method).Itreturnsacopyofthefield’svaluestotheclient,sotheclientcanseethevalues,butcan’tmodifythem.

Lesson5.04:Encapsulation

348

ClassInvariants

Guidanceforstudentteachers

1. Remindstudentstoincludethedefinitionofaclassinvariantforstudentstorecordintheirnotebooks.

2. Sincewedidnotcoverthethiskeyword,youshouldpointouttothegroupthatthethiskeywordintheexampleallowsthecodetodirectlyrefertotheimplicitparameter.Sincethismightbeconfusing,youshouldgivethisgroupextraassistance,orassignyourmostadvancedgroupthislesson.

3. Usingdivision/modulus60toconvertsecondstominutesorminutestohoursasoutlinedinthebookisausefultipforthe“TrickyCodeCheatSheet.”

CommonQuestions/Answers

1. Howisenforcingaclassinvariantdifferentfromusingaclassconstant?

Aclassconstantwillalwaysstaythesamevalue;itdoesnoteverchange.Aclassinvariantisafactaboutsomedatathatyouastheprogrammerassertwillalwaysbetrue.Forinstance,inPokemon,eachstatmustbelessthan255—thatisthemaxvalueyoucanhaveforanyonestat.ThevalueitselfmaygoupordowndependingonwhathappenstoyourPokemoninthegame,butitwillalwaysbelessthan255.

2. Canyouuseamutatormethodtochangetheclassinvariants?

No,sopickandchooseyourinvariantswithcaution!

3. Skiptheexceptionsexample—exceptionsarenotontheAPexamandwillnotbetested!

ChangingInternalImplementations

Guidanceforstudentteachers

1. Ifstudentsneedguidanceonstructuringtheirlesson,encouragethemtocoordinatewiththegroupteachingclassinvariants,sincetheywillbemodifyingthecodetaughtbythatgroup.Theymightalsowanttorefertothe“DidYouKnow”blueboxinthesection.

2. AgoodtipfortheTrickyCodeCheatSheetcouldbethesimplertimespancode.

CommonQuestions/Answers

1. Howcomechangingtheinternaldesigndoesaffectclientcode?

Lesson5.04:Encapsulation

349

Sinceyouencapsulatedyourclass,theclientcodewon’tknowthatyouchangedtheinternalstate.Theonlywayyourchangingtheclasscodecanmesswithaclientprogramisifyouchangetheconstructorsormethodheaders.

StudentPreparationofLesson[30minutes]

1. Giveeachgroup7minutestopresenttheirtopicand2minutesforquestions.

2. Encouragestudentstoaskquestions,andbesuretoaskaquestionortwoofeachteam(dependingonhowmanyteamsyouhave).

3. Usethegradingrubricasoutlinedhere:

3pts. 2pts. 1pts. 0pts.

Presentationincludesdefinitionsandanexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntax.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithfewmistakes.

Presentationincludesdefinitionsoranexamplewithpropersyntaxwithmanymistakes.

Presentationincludesanon-exampleashelpfulcontrast.

Presentationincludesanon-examplethatismarginallyhelpful.

Presentationincludesanon-examplethatdoesnotaddtocomprehension.

Presentationincludesanon-examplethataddsconfusion,orpresentationdoesnotincludeanon-example.

Presentationincludesahelpfultipthatisclearlyexplainedandconciselystated.

Presentationincludesahelpfultipthatisclearlyexplainedorconciselystated.

Presentationincludesahelpfultipthatisnotclearlyexplainedandmayincludeasmallerror.

Presentationdoesnotincludeahelpfultiporhint.

AccommodationandDifferentiationCirclearoundtheroomtohelpstudentsthroughreadingthetextinthetextbook.Makesurethateachofyourworkingteamsisproperlystratified(ratherthanusingtieredgrouping).

Ifstudentsarespeedingalong,encouragestudentstowritedownquestionstoposetoothergroupsduringmini-lessons.Ifagroupfinishesearly,encouragethemtorehearselessondelivery.

TeacherPriorCSKnowledge

Lesson5.04:Encapsulation

350

Javaisinconsistentwithitsuseofencapsulationwhichcouldcauseconfusionwithbeginningstudents.WhengettingthelengthofaStringa,theaccessmethod.length()isused.However,whengettingthelengthofanarray,thepublic,thoughfinal,instancevariable.lengthisused.

MisconceptionsStudentsgetthenotionthatbecauseofdataencapsulation,classescannotbefieldsofanotherclass.Eventhoughthedataintheclassisprotectedfrombeingmodifieddirectlybyotherclasses,theclassitselfcanbeusedasfieldsinotherclasses.

VideosBJP8-4,Encapsulationhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c8-4

CSE142,Encapsulation(35:38–45:58)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=2138

CSE142,“this”notation(optional)(45:59–49:46)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=0ef2111f-c799-4da9-b64a-2d876da98fb0&start=2759

ForumdiscussionLesson5.04Encapsulation(TEALSDiscourseaccountrequired)

Lesson5.04:Encapsulation

351

Lesson5.05—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

ReviewmaterialsforthePicturelabby:ReviewingallthebluepagesattheendofChapter8

Submit5questionsforreviewinclasstomorrowusingelectronicsurveyUpdateallsummariesinnotebookfortheupcomingnotebookcheck

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Thehomeworktonightasksstudentstosubmit5questionsforreview.Createanelectronicsurveyforstudentstocompletewith6textfields,oneforname,and5forquestionstheyhaveaboutCh.8content.Setadeadlinebywhichtimestudentsmusthavesubmitted5questionsfromCh.8thattheywouldliketoseereviewedaftercompletionofthePictureslab.Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

PacingGuide

Lesson5.05:Finding&FixingErrors

352

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkorclassworkassignments.Ifstudentsdidnothavetimetofinishthehomeworkfromyesterday,youmayallowthemtimetoworkonthattoday.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.

Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.

Ifstudentshavenotfinishedhomeworkassignments,allowthemtimetodaytocompletetheseassignmentstoturninforpartialcredit.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

Lesson5.05:Finding&FixingErrors

353

AccommodationandDifferentiationInELLclassrooms,pairstudentsandallowthemtoworktogethertocorrecttheirwork.Ifyounoticedaparticularproblemwasdifficultforthemajorityofstudents,readthequestionaloudandhelpstudentsworkthroughit.

Forthosestudentswhohavenothingtocorrect(orfinishveryearly),rewardthemwithsilentfreetime,orallowthemtoworkonafree-choiceprogrammingproject.

ForumdiscussionLesson5.05Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson5.05:Finding&FixingErrors

354

Lesson5.06—PictureLab

Overview

Objectives—Studentswillbeableto…

Completealong-formlab,usingtwo-dimensionalarraysofobjects,arraytraversingalgorithms,programanalysis,binarynumbers,inheritance,andinterfaces.

Assessments—Studentswill…

CompletethePictureLab

Homework—Studentswill…

Alistofhomeworkassignmentsisprovidedbelow.

Materials&PrepProjectorandcomputerPictureLabTeacher’sGuideClassroomcopiesofthePictureLabStudentGuideAssociatedPictureLab&PictureLabExtensionFilesDigitalcamera(optional)CD(optional)Eggcartonsandsmallcandies(SkittlesorM&Ms)(optional)Photonegative(optional)Rectangularmirror(optional)

ReadthroughtheTeacher,Student,andExtensionguidesaheadoftimetofamiliarizeyourselfwiththepartsofthislong-formlab.Usingtheguides,completethelabonyourowntospotpossiblechallengesforyourstudents.Uploadallstudentfilesontoeachcomputerdesktopforstudentaccess.Don’tgivethefinalClassesfoldertoyourstudents—itcontainssampleanswers!

NOTE:Ifyourstudentsentertheclassroomwithpriorprogrammingknowledge,orifyourclassismovingthroughtheAPcoursequicklywithease,youmaywanttodelivertheTextExcellab(includedinUnit5materials)instead.

Lesson5.06:PictureLab(9Days)

355

PacingGuide:Day1

Section TotalTime

StudentActivity1&2 Fullclass

Homework:Summarizeyournotesinyournotebooks.Notebookchecksinclasstomorrow!

TONIGHT

PacingGuide:Day2

Section TotalTime

StudentActivity3&4 Fullclass

NotebookChecks Duringclass

Homework:OutlineChapter8 TONIGHT

PacingGuide:Day3

Section TotalTime

StudentActivity5 Fullclass

NotebookChecks Duringclass

Homework:ReadandhighlightChapter2ofBarron’sreviewbook.Skip“ThethisKeyword”.

TONIGHT

PacingGuide:Day4

Section TotalTime

StudentActivity5&6 Fullclass

NotebookChecks Duringclass

Homework:TaketheChapter2examinBarron’sreviewbook,skipping#20.Gradeyouranswers.

TONIGHT

Lesson5.06:PictureLab(9Days)

356

PacingGuide:Day5

Section TotalTime

StudentActivity6,continued Fullclass

CheckBarron’sreviewbooksforhighlightingnote-taking,andpracticetestcompletionandcorrection Duringclass

Homework:ReadandhighlightChapter5ofBarron’sreviewbook. TONIGHT

PacingGuide:Day6

Section TotalTime

StudentActivity7 Fullclass

Homework:ReadBJP8.5andanswerself-checkquestions29–30 TONIGHT

PacingGuide:Day7

Section TotalTime

StudentActivity8 Fullclass

Creatingacollage Duringclass

Homework:Finishupcreatingacollage TONIGHT

PacingGuide:Day8

Section TotalTime

StudentActivity9 Fullclass

Simpleedgedetectionalgorithmandimplementation Duringclass

Homework:ContinueworkingonSimpleedgedetection. TONIGHT

PacingGuide:Day9

Lesson5.06:PictureLab(9Days)

357

Section TotalTime

StudentActivity9,continued Fullclass

FinishSimpleedgedetection Duringclass

Homework:Submit5reviewquestionsontheelectronicsurvey. TONIGHT

AboutBarron’sBarron’sisanAPCSAreviewbookthatsomeschoolprovidestudents.Ifyourschooldoesn’tprovideBarron’stherearemanyalternativehomeworkassignmentsthatcanbefoundathttp://codingbat.com/java(noclasses)orpractice-it.

Alternatively,youcansavetimespentonthelabbycheckingactivitiesasHomework.

ProcedureAllguides,samplecode,answercode,andexamplecodemaybefoundinthefolder“Milestone2PictureLab.”

1. Tohelpstudentsstartthelabsmoothly,startActivity1asawholegroup.

2. EncouragestudentstousetheirTrickyCodeCheatSheets,4CommandmentsofScope,notebooks,textbooks,classroomposters,andhomeworkassignments.

3. Offeroccasionaltime-checkstohelpkeepstudentsonpace.

4. Gradenotebooksandreviewbooksinbetweenhelpingstudentssostudentscankeepnotebooksforhomeworkandstudyingintheevenings.

AccommodationandDifferentiationInELLclassrooms,readalldirectionsaloudbeforebreakingintoindividualpractice,andallowuptotwicetheamountoftimeforcompletionofthelab.

Tosavetimeontherestofthelab,don’tspendtoomuchtimereviewingbinarynumbers,andrestrictcolorexploration(Activity2)to~20minutes.

Usethetactileexercisesassuggestedonpage6oftheTeacher’sguide(candyexerciseandexploringthedigitalcamera).

Lesson5.06:PictureLab(9Days)

358

Asneeded,allowstudentstopairuptohelpeachotherwithreadingcomprehension(butremindstudentsthattheyeachmustsubmittheirowncode).Eachdaythatyoubeginthelab,startwithaquicksurveyofstudentconcernsandquestions.

Adaptationsforgroupworkcanbefoundonpage19oftheTeacher’sguide.

Assessmentquestionshavebeenrelocatedtothepracticeexam,WS5.7.

ForumdiscussionLesson5.06PictureLab(TEALSDiscourseaccountrequired)

Lesson5.06:PictureLab(9Days)

359

Lesson5.07—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit5knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stestusingtargetedreviewlist

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopicsClassroomcopiesofthepracticetestWS5.7

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.Ifyouarecrunchedfortime,holdthereviewsessionduringthesecondhalfofDay12ofthePictureLab.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewofstudentquestions 30min

Sampletestreview 15min

Checkstudentstudylists 5min

Lesson5.07:Review

360

Procedure

Bell-workandAttendance[5minutes]

ReviewofStudentQuestions[30minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Beginwithareviewofstudent-submittedquestionsbeforereviewingthepracticequestions.

SampleTestReview[15minutes]

1. BeginreviewwithpracticetestWS5.7.HavestudentsworkthroughsectionIquestions,thenreviewtheanswersasaclass.

2. GivestudentstimetocompletesectionIIquestions,thenreviewtheanswersasaclass.

3. Finally,workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

a.Somequestionsyoumayaddresswhileworkingthroughthesampletest.

b.Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

4. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

5. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.

CheckStudentStudyLists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

ForumdiscussionLesson5.0Unit5Review(TEALSDiscourseaccountrequired)

Lesson5.07:Review

361

Lesson5.07:Review

362

Lesson6.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit5.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP9.1Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

Lesson6.00:TestReview&Reteach

363

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

howtheyfelttheyweregoingtodobeforethetestwhatsurprisedthemoncetheyweretakingthetestwhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

a.Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

b.Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Lesson6.00:TestReview&Reteach

364

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationEncourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,choosethesestudentstocreateyourclassroompostersafterschoolorforextracredit.

ForumdiscussionLesson6.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson6.00:TestReview&Reteach

365

Lesson6.01—InheritanceBasics

Overview

Objectives—Studentswillbeableto…

Correctlydefineinheritance.Usepropersyntaxtoextendaclass.Illustrateis-arelationships.Properlyimplementconstructorsofderivedclassesusingsuper.

Assessments—Studentswill…

CompleteaClassHierarchyposterasindicatedinWS6.1

Homework—Studentswill…

ReadBJP9.2upto“DividendStockBehavior.”Collectimagesthatrepresentinstancesoftheclassescreatedforin-classposterproject.

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersClassroomcopiesofWS6.1Startclassposter,Example6.1PicturesofPokémon(http://tinyurl.com/l6mybmr)orPokémonCardsStudentpairassignmentsArtsuppliesforeachgroup:

PosterpaperorcutsheetsofbutcherpaperLinedpaper(atleast3sheetspergroup)MarkersGlueSticksOldmagazines,flyers,newspaperstocutupforcollageScissorsYarn,string,orembroideryflossTape,magnets,ortackstohangfinishedwork

Lesson6.01:InheritanceBasics(2Days)

366

Mostofthesuppliesrequiredforthislessonarereadilyavailableinhighschools.Iftheschooldoesn’thaveposterpaper,butcherpaperworkswell.OthersuppliesmaybeavailabletoborrowfromtheMath,Science,orArtteachers.Togetanideawhatafinalstudentprojectshouldlooklike,checkoutthepictureofsamplestudentwork“Example6.1.”

PacingGuide:Day1

Section TotalTime

Bell-workandattendance 5min

Introduction 20min

Reviewoftheproject 5min

Studentwork 25min

PacingGuide:Day2

Section TotalTime

Studentwork&teachercheck 20min

Peerreview 10min

Whole-groupdiscussionandreteachifneeded 15min

Quiz 5min

ProcedureHookyourstudentsbyprominentlydisplayingpicturesorcardsofPokémon,artmaterials,andsamplework(ofyourownmaking,orsavedfromapreviousyear).Tofeaturethemostengagingstudentexamples,lookforworkthathasmanyinstancesofeachclass,andusesclasses/objectsthatarepopularwithyourclass.Invokeanairofmysteryanddon’tofferanexplanationforanyofit.

Bell-workandAttendance[5minutes]

Introduction[20minutes]

Lesson6.01:InheritanceBasics(2Days)

367

1. HaveaclassdiscussionaboutthePokémonpicture/cards.Askafewprobingquestionstomodeltheuseofproperprogrammingterminologyasyouhavestudentsworkthroughastarterassignment:

2. Askstudentswhatthepictureisof.DotheyknowthenamesortypesofthePokémonfeatured?AssignaquickThink-Pair-ShareassignmenthavingthestudentscreatingtheinstanceofthatPokémon.Here’sasampleprompt:

“CreatetheobjectPikachu.Pikachushouldhaveatype,alevel,and2methods.”

3. Showafewmorecards/pictures.AskstudentstodoanotherThink-Pair-Sharewithanotherprompttocreateanotherinstance(yourpromptshouldhavewhateverPokémonyou’vejustdiscussed):

“CreatetheobjectSquirtle.Squirtleshouldhaveatype,alevel,and2methods.”

4. Repeatthissequenceonemoretime;showingthecards,andhavingstudentscreateaPokémoninstanceobject.Yourstudentsshouldbegettingannoyedathavingtowritethesamethingsoverandoveragain.

5. AskstudentswhatallofthePokémonhaveincommon.Encouragethemtolistadditionaltraitsotherthantheonesyou’verequiredthemtoincludeinyourclassexercises.

6. AskstudentsiftheycanthinkofawaytocreatenewPokémonobjectswithouthavingto“reinventthewheel”eachtime.(Theymightbeabletosketchoutananswerbasedonthepreviousnight’sreadings.)

7. StudentsmightsuggestsubclassesofPokémon,inwhichcaseyoushouldpointoutthatthey’recreatingaclassthatisincludedwithinthelargerclassificationof“allPokémon.”

TheindividualPokémondemonstrateaninstanceofthePokémonclass.EachsubclassofPokémonisaspecializedversionoftheparentclass(orsuperclass)Pokémon.

Examples

AnelectricPokémonisaPokémon.Acomputersciencestudentisastudent.Amathteacherisateacher.Sodaisadrink.

Havestudentsdescribethehierarchicalstructureofeachrelationshipabove.ElectricPokémonisasubclass,Pokémonisthesuperclass.Studentisthesuperclass,computersciencestudentisthesubclass.Drinkisthesuperclass,sodaisthesubclass.

Lesson6.01:InheritanceBasics(2Days)

368

8. Confirmunderstandingbyaskingforstudentstogeneratesomeexamples.Ineachcase,theirtwocategoriesexhibitahierarchicalconnection;onetypeisaspecializedversionoftheother.

9. Askstudentstodefineaninheritancehierarchyintheirownwords.Brieflydiscusswhyyouwouldwanttouseinheritanceinprogramming.

Aninheritancehierarchyisasetofhierarchicalrelationshipsbetweenclassesofobjects.

Inheritanceisaprogrammingtechniquethatallowsaderivedclasstoextendthefunctionalityofabaseclass,inheritingallofitsstateandbehavior.)

Superclassistheparentclassinaninheritancerelationship.

Subclass,orchildclassisthederivedclassinaninheritancerelationship.

10. Checkforunderstandingbyreturningtotheexamplesabove,andaskingstudentstogiveanexampleofsomecharacteristics(fields)theparentclasswouldhave,andwhatcharacteristicsstudentswouldaddtothespecializedsubclasses.

Example:DrinkscouldhaveaStringnameandbooleancarbonated,andSodacouldaddabooleancaffeinated.

11. Theclassheaderforasubclassthatextendsthefunctionalityoftheparentclasslookslikethis:

publicclassMammalextendsAnimal{

publicclassMotorcycleextendsVehicle{

publicclassChurroextendsPastry{

Pointoutthatthesubclassnamesarecapitalizedbyconvention,andthatyoualwaysusetheextendskeyword.Givestudentsamomenttothinkofafewhierarchicalrelationshipsinathink-pair-share,andaskseveralvolunteerstocometothefrontoftheroomtodemonstratethecorrectclassheader.

12. Forthefollowingexample,wewillcreatesubclassesthatextendtheDrinksuperclasswrittenbelow.Ifyourstudentsneedadditionalpracticebuildingclassesofobjects,youcanhavethemhelpyouwritethiscode.Inmoreadvancedclasses,youmayjustrevealthisclassasafully-formedstartingpointtodemonstratehowtowritesubclasses.

Lesson6.01:InheritanceBasics(2Days)

369

publicclassDrink{

privateStringname;

privatebooleanhasCarbonation;

privatedoublegramsOfSugar;

privatedoubleounces;

publicDrink(Stringn,Booleanh,doubleg){

name=n;

hasCarbonation=h;

gramsOfSugar=g;

ounces=8;//FDAdefinesaservingas8oz.

}

publicvoidchug(doublegulp){

if(ounces<gulp){

thrownewIllegalArgumentException("Notenough"+name+"left.");

}else{

System.out.println("Glug,glug,glug!");

ounces-=gulp;

System.out.println("Youhave"+ounces+"oz.of"+name+"left.");

}

}

publicStringgetState(){

return"liquid";

}

publicvoidprintLabel(){

System.out.println("Enjoyrefreshing"+name+"!");

}

}

13. Becausethesubclassisstillaclass,youshouldaddfieldsandconstructors,asyoudowithanyclass:

publicclassSugarFreeDrinkextendsDrink{

privatebooleanhasSweetener;

privatedoublecaffeineContent;

TheadditionalfieldshasSweetenerandcaffeineContentcharacterizeallSugarFreeDrinkDrinkobjects.YoupointouttostudentsthatSugarFreeDrink“isakindofDrink.”Spot-checkstudentunderstandingbyaskingifobjectsoftheDrinksuperclasswillinitializewithavalueforhasSweetenerorcaffeineContent.(No.)

14. SugarFreeDrinkdrinksstillhaveaname,abooleancarbonationvalue,sugarcontent,andounces,butwe’veaddedanewfieldsspecifyingwhetherornotthesugarfreedrinkshavecaffeineandartificialsweeteners.Theconstructorthenlookslikethis:

Lesson6.01:InheritanceBasics(2Days)

370

publicSugarFreeDrink(Stringname,booleanhasCarbonation,booleanh,doublec){

Thefieldsinthesubclass’constructornowcontain<type><superclassparametervalues>(highlighted),exceptforthenewfields,whichstillhaveaformalparameter(inthiscasehandc).

Tocompletetheconstructorsoitcanaccessthefieldsyoualreadywroteinthesuperclass,youusethekeywordsuper:

//mustbefirstlineafterconstructorheader

super(name,hasCarbonation,0.0);

Noticethatwe’veinitializedallobjectsintheSugarFreeDrinkclasstohave0.0gramsofsugar.

Completetheconstructorwithyoursubclass’newfields:

hasSweetener=h;

caffieneContent=c;

}

15. Youcanalsoaddmethodsthatonlyapplytoyoursubclass,justthewayyounormallywriteobjectmethods:

publicvoidprintWarningLabel(){

if(hasSweetener){

System.out.println("ThisdrinkisnotsafeforPhenylketonurics.");

}else{

System.out.println("Thisdrinkcontainsnoartificialsweeteners.");

}

}

ReviewoftheProject[5minutes]

1. Brieflyreviewtheassignmentwithyourstudents,readingthedirectionsaloudifneedbe.

2. Ifyouhaven’talreadydistributedprojectmaterialsatthispoint,dosowhileyourstudentsarerearrangingintopartnerpairs.

StudentWork[25minutes]

Lesson6.01:InheritanceBasics(2Days)

371

1. Encouragestudentstotake5–10minutesonStep1.Theyshouldreviewallstepsoftheprojecttoensurethattheirselectionofclasseslendsitselftotheproject(e.g.theyshouldn’tpicksomethingtheydon’tknowalotaboutbecausethey’llhavetroublecomingupwithfieldsandmethods).

2. Offertimechecksevery10minutessostudentscanstayonpace.Bytheendofthefirstday,theyshouldhavegottentostep6or7.Visiteachgrouptomakesurethattheyhaven’tveeredoffcourse.

3. Ondaytwo,checkstudentworkandhelpstudentsdisplaytheirworkaroundtheroom.

4. Checkthattheflow-of-controlstring(seeWS6.1forexplanation)correctlyshowshowamethodispassedthroughsubclassestothesuperclass.

5. Remindstudentstotakenotes(Step11onWS6.1)tohelpthemremembertalkingpointsforlaterintheclass.

6. Asawholegroup,askstudentstovolunteerwhattheyreallylikedaboutothers’projects.Solicitquestionsandcritiques,re-teachingifneeded.

7. Administerquiz6.1toassessstudentunderstanding.

AccommodationandDifferentiationEncourageadvancedstudentstoaddadditionalclasses,fields,methods,andclientcode.Ifstudentsstillhavetimetospare,encouragethemtoreadonmethodoverriding,andinvitethemtoaddthatcodeaswell.Studentscanattachthis“extracode”usingpaperandtape/glueorstickynotes.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,givethemyourstarterDrinkclassandSugarFreesubclass,andletthembuildoffofyourexamples.Youcanprintoutyourstartercodeandcutitintopiecesandshufflethemsostudentshavetoplaceeachlineinthecorrectlocation(aswithaParsonproblem).

Ifyourstudentsneedfurtherinstructiononcallingasuperclass’constructor,gothroughafewmoreexamplesusingtheDrinksuperclass,orclassesthatyoucreatedasawholegroup.Oneexamplehasbeenoutlinedbelow:

Lesson6.01:InheritanceBasics(2Days)

372

publicclassSugarDrinkextendsDrink{

privatebooleanisJuice;

publicSugarDrink(Stringname,booleanhasCarbonation,doublegramsOfSugar,

doubleounces,booleaniJ){

super(name,hasCarbonation,gramsOfSugar,ounces);

isJuice=iJ;

}

TeacherPriorCSKnowledgeTheObjectOrientedProgramming(OOP)paradigmcouldbethoughtofasmimickingtherealworldwhereobjectsconsistsofdatathatdefinethemandactionsthatcanbeperformedonthedata.Asyouwillsee,theprocessoflearningOOPisinfinitelymorecomplex.

ThepillarsofObjectOrientedProgramming(OOP):inheritance,encapsulation,andpolymorphism.Inanutshellinheritanceallowsforcodereusebydefiningmethodsonceinasuperclass,encapsulationprovidesdatasecuritybyhidingdataimplementationfromtheuserandonlyallowingmethodsintheclasstomodifythedata,andpolymorphismoffersflexibilitytothedesignerbywayofmethodsdefinedinmanyforms.

MisconceptionsStudents’useof“inheritance”priortocomputerscienceareinthecontextofinheritancefromanancestorandgeneticinheritanceoftraits.However,incomputerscience,inheritanceisusedforclassificationwheretheclassthatinherits(extends)fromamoregeneralclass(superclass).Neitherofthestudents’priorknowledgeanduseofinheritanceisanaccuraterepresentationofJava’sclassstructure.

CommonMistakesObjectorientedconceptscommonmistakes:http://interactivepython.org/runestone/static/JavaReview/OOBasics/ooMistakes.html

VideoBJP9-1,Inheritance:InteractingwiththeSuperclasshttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c9-1

Lesson6.01:InheritanceBasics(2Days)

373

CSHomeworkBytes,Inheritance,withZachhttps://www.youtube.com/watch?v=Alv2ApK_jdo

CSE142,Inheritance(23:28–35:06)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8a0a0287-877b-42df-99fc-e9f551929bef&start=1408

ForumdiscussionLesson6.01InheritanceBasics(TEALSDiscourseaccountrequired)

Lesson6.01:InheritanceBasics(2Days)

374

Lesson6.02—OverridingMethods&AccessingInheritedCode

Overview

Objectives—Studentswillbeableto…

Replacesuperclassbehaviorbywritingoverridingmethodsinthesubclass.Writesubclassmethodsthataccesssuperclassmethods.

Assessments—Studentswill…

AddcodetotheirClassPostersfromthepreviouslesson.

Homework—Studentswill…

ReadtherestofBJP9.2startingfrom“TheObjectClass.”

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS6.2Classpostersfrom6.1Artsuppliesforeachgroup:

MarkersPosterpaper(alternativelyprinterpaperandtape)Tape,magnets,ortackstohangfinishedwork

PacingGuide

Lesson6.02:OverridingMethods&AccessingInheritedCode

375

Section TotalTime

Bell-workandattendance 5min

Introduction&reviewoftheproject 10min

Studentwork 15min

Peerreview 10min

Whole-groupdiscussion/critique 10min

ProcedureHookyourstudentsbyprominentlydisplayingartmaterials,andsamplework(ofyourownmaking,orsavedfromapreviousyear).Tofeaturethemostengagingstudentexamples,lookforworkthathasaparticularlycomplexorimpressiveflow-of-controlpattern(seeWS.6.2forexplanation).Ifyouhavethetime,thiswouldbeagreatopportunitytodisplaysomecomplexcodeforstudentstoexamineontheirowntime.Themoreintricatethestringpatternontheposter,themoreintriguingthesamplewillappear.

Bell-workandAttendance[5minutes]

Introduction&ReviewoftheProject[10minutes]

1. Inheritancemakesitconvenienttoreusecodebetweenclasses.However,sometimeswe’llwanttospecializecodeinasubclass,orignoreamethodthatdoesn’tapply.Askstudentsforexampleswhenthismightbethecase.Ifthey’rehavingtroublethinkingofconcreteexamples,askthemtothinkofanexamplefromtheirownclasshierarchythattheycreatedinthepreviouslesson.Someexamplestogettheclassstarted:

SubclassMammalmighthaveaspecialcaseofAnimalsuperclassmethodfeedYoung(becausetheylactate).

SubclassHotDrinkmightuseadifferentmethodchugfromtheDrinksuperclass(maybethemethodinvolvessippingorburningyourtongue).

2. Replacingsuperclassbehaviorbywritinganewversionofthemethodsinthesubclassiscalledoverriding.Tooverrideamethod,writethemethodyouwanttoreplaceinthesubclass!Nospecialsyntaxisrequired!

BuildingonourDrinkexamplefromthelastlesson,wecanwriteourownchugmethodforsubclassSugarFreeDrink:

Lesson6.02:OverridingMethods&AccessingInheritedCode

376

publicvoidchug(doublegulp){

System.out.println(“Yuck,thistastesterrible!”);

}

ComparethistotheDrinksuperclassmethodchug,whichisreproducedhereforconvenience:

publicvoidchug(doublegulp){//SuperclassDrinkmethod

if(ounces<gulp){

thrownewIllegalArgumentException();

}else{

System.out.println("Glug,glug,glug!");

ounces-=gulp;

System.out.println("Youhave"+ounces+"oz.ofdrinkleft.");

}

}

3. Havestudentspointoutthedifferencesbetweenthetwomethods,predictthenewoutput,andofferadditionaloralternativechangestotheoverriddenSugarFreeDrinkchugmethod.

Makesurethatthey(oryou)pointoutthatthenumberofouncesinthedrinkwillNOTbeupdatedintheoverriddenmethodasitstands.

4. Itwouldbealotofextraworktore-writetherestoftheglugmethodifallyouhadwantedtodowasaddanextraprintlnstatementthatweputintheoverriddenmethod.Fortunately,thereisawaytoaccessthatmethodtoputitbackintoournew,overriddenmethod(highlightedbelow):

publicvoidchug(doublegulp){

System.out.println("Yuck,thistastesterrible!");

super.chug(gulp);

}

Thismethodnowoutputs“Yuck,thistastesterrible!”,updatesthenumberofouncestoreflecttheamountyoudrank,throwsanexceptionifyoudon’thaveanyounces,andoutputsthenumberofouncesleftinthedrink.

Askstudentswhyit’svalidtocalltheoverriddenmethodchug,andreferencethesuperclassmethodchugbythesamename.(Thesuperclassmethodisaccessedusingdotnotation,whichtellsJavawheretodirecttheflowofcontrol.)

5. WhatifwewanttoaccessotherinformationdirectlyfromtheDrinkclass?Remember,ourdrinkclasshadafieldsforname,hasCarbonation,gramsOfSugar,andounces,butthey’reallprivatebecauseweweresmartandrememberedtoencapsulatethem.

Lesson6.02:OverridingMethods&AccessingInheritedCode

377

IfwewantedtowriteamethodinourSugarFreeDrinksubclassthataccessesthedatacontainedinname,wewouldhavetoaddagetmethodfirstintheSuperclassDrink:

publicdoublegetName(){//WritteninsuperclassDrink.

returnname;

}

Thismakesacopyofnamethatispublic,andcanbeaccessedoutsideoftheDrinkclass.Nowwecangoaheadandwriteoursubclassmethodusingtheaccessor(highlightedbelow):

publicvoidadvertising(){

System.out.println(

"Avoidtheextracaloriesbydrinkingdelicious"+getName()+"ever

yday!!"

);

}

6. HavestudentsofferadditionalexamplesusingtheDrinksuperclass,orusingexamplesfromtheirownclasshierarchy.

7. Completetheintroductionbyaskingstudentstoexplainwhatthedifferenceisbetweenoverridingandoverloadingmethods.(Overloadingmethodsiswhenoneclasscontainsmultiplemethodswiththesamename,butadifferentnumberofparameters—sometimescalledtheparametersignature.)

StudentWork[15minutes]

1. BrieflyreviewWS6.2withyourstudents,readingthedirectionsaloudifneedbe.

2. Ifyouhaven’talreadydistributedprojectmaterialsatthispoint,dosowhileyourstudentsarerearrangingintopartnerpairs.

3. Encouragestudentstotake5–10minutesonStep1.Theyshouldreviewallstepsoftheprojecttoensurethattheiradditionalmethodsmakesense.

Announcethatyou’llofferextracredittofunnyorcreativecode(ifthatfitsinwithyourteachingstyle).

4. Offertimecheckssostudentscanstayonpace.Beforeyouallowstudentstobeginthepeerreviewtourofothers’work,remindthemtotakenotesontheirfeedbacksotheywillbeabletocontributetothegroupcritique/discussionattheendofclass.

Lesson6.02:OverridingMethods&AccessingInheritedCode

378

PeerReview[10minutes]

Allowstudents10minutestotoureachother’sworkandofferfeedback.

Whole-groupDiscussion/Critique[10minutes]

Ifpossible,rearrangestudentseatsintoacircleforthecritiquetoencourageinformaldiscussion.

Asawholegroup,askstudentstovolunteerwhattheyreallylikedaboutothers’projects.

Solicitquestionsandcritiques,andre-teachifneeded.

Awardclassroomparticipationpointstoallstudentswhocontributetothediscussion.

AccommodationandDifferentiationEncourageadvancedstudentstoaddadditionalclasses,fields,methods,andclientcode.Ifstudentsstillhavetimetospare,encouragethemtoincreasecodecomplexity,addadditionallevelstotheclasshierarchy,orhelptheirpeers.

Ifyouhaveafewstudentsthatarestrugglingwiththeassignment,allowthemtoworkingroupsof4,eachpairhelpingtheotherwiththeircode.Ifstudentsneedadditionalguidance,havestudentscompletetheworksheetasaseriesofthink-pair-shares,whereyoureturntowholegrouptoshareanddiscussanswersbeforemovingontothenextstep.Teachingtheclassthiswaywillroughlydoublethetimerequiredtocompletetheexercise.

MisconceptionsWhenfirstlearningpolymorphism,studentslearnmethodoverridebeforemethodoverload.However,inordertosuccessfullyoverrideamethod,thesubclassmethodmusthavethesamemethodsignatureasthesuperclass,otherwisethemethodwillbeoverloaded.Thecodemustmatchthemethodparametersandreturntypeandthemethodspublic,theycannotbeprivateorstatic.Whenhelpingstudentsdebugtheircodewheretheoverriddenmethodisnotbehavingasanticipated,askingthestudentifthemethodsignaturesmatchcanhelpfindtheerrorontheirown.

Video

Lesson6.02:OverridingMethods&AccessingInheritedCode

379

BJP9-2,Polymorphismhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c9-2

CSE142,Polymorphism(35:07–49:57)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8a0a0287-877b-42df-99fc-e9f551929bef&start=2107

ForumdiscussionLesson6.02OverridingMethods&AccessingInheritedCode(TEALSDiscourseaccountrequired)

Lesson6.02:OverridingMethods&AccessingInheritedCode

380

Lesson6.03—InteractingwiththeObjectSuperclass

Overview

Objectives—Studentswillbeableto…

Replacesuperclassbehaviorbywritingoverridingmethodsinthesubclass.Writesubclassmethodsthataccesssuperclassmethods.

Assessments—Studentswill…

CompletePractice-ItquestionsCompleteaworksheet

Homework—Studentswill…

ReadBJP9.3upto“InterpretingInheritanceCode.”

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS6.3,Poster6.3Poster6.3Empty&washed,ornon-refrigerated,drinkbottles,withlabelsaffixed(optional)

Poster6.3issettoprintamovie-sizedposterof15”x20”.Ifyoudonotwanttoprintaposterthissize,accessthe.pptxversionoftheposter,andresetthepagesizetolegal,ledger,orwhateverlarger-formatpaperyouhaveavailabletoyou.Note:Somefontsonthisposterprintincrediblysmall.

Arrangethedrinkbottlesinaspacewherestudentscanpickthemupandlookatthemifneedbe.EncouragestudentstolookatthebottlestogetideasforfieldstheycanuseintheirDrinksubclasses.

PacingGuide

Lesson6.03:InteractingwiththeObjectSuperclass

381

Section TotalTime

Bell-workandattendance 5min

Reviewoftheproject 10min

Studentpractice:Practice-It 15min

Studentpractice:WS6.3 25min

ProcedureMostofstudentpracticetodayisareviewandfurtherintegrationoftheconceptsthatwereintroducedsincethebeginningofthisunit.Theonlynewconceptbeingdrilledtodayistheequalsmethod.

Bell-workandAttendance[5minutes]

ReviewoftheProject[10minutes]

1. AllclassesaresubclassesoftheObjectclass.Whetheryouwriteextendsintheheaderornot,allclassesinherittheObjectclass.ItisbuiltintoJavathisway,soyouneverhavetoexplicitlywriteextendsObjectinaclassheader.

ThismeansthatallcodeinheritssomegeneralizedmethodsthatcomeautomaticallywiththeObjectclass.

2. TheAPexamcoverstoStringandequalsmethodsonly.

AskstudentsiftheyrememberwhattoStringmethoddoes.(Itgivestheclassnamefollowedbyalocationinmemory,whichisn’tveryhelpful,sowealwayscreateourowntoStringmethodswhenwecreateaclass.)

Askstudentsiftheyrememberwhywecan’tjustuse==totestforequalitybetweenobjects.

3. The==operatortestswhethertwoobjectshavethesameidentity,iftheyrefertothesameobject,notwhetherthetwoobjectsareinthesamestate.

Lesson6.03:InteractingwiththeObjectSuperclass

382

Stringz="z";

Stringa=z+z;

Stringb="zz";

a==b;//EvaluatestofalsebecauseaandbrefertodifferentStrings

Stringc=b;

c==b;//EvaluatestotruebecausecandbrefertothesameString

4. Thedefaultequalsmethod(thatcomeswithyourObjectsuperclass)doesthesamethingasthe==operator.(SincetheequalsmethodcomesfromtheObjectsuperclass,itinterpretsitsinputparameterasanobject.)ButforStrings,theequalsmethoddoessomethingsmarter:

a.equals(b);//Evaluatestotruebecausethecontentofaandbarethesame"

zz"

c.equals(b);//EvaluatestotruebecausecandbrefertothesameString

Torewriteanequalsmethodthatcomparesobjectstate(tooverridetheObjectversionoftheequalsmethod),youneedtocasttheobjectinordertoletJavaknowthattheobjectsreallycanbecompared.

TotestiftwoDrinkobjectshavethesamenameandservingsize,youwouldwriteanequalsmethodthatlookslikethis:

publicbooleanequals(Objecto){

Drinkother=(Drink)o;

returnname.equals(other.name)&&(ounces==other.ounces);

}

StudentPractice:Practice-It[15minutes]

1. HavestudentsworkindividuallyorinpairstocompletethefollowingPractice-Itquestions:

a.subclassSyntaxb.inheritanceVariableSyntaxc.CarTruckd.CarTruck2e.MonsterTruck

StudentPractice:WS6.3[25minutes]

Lesson6.03:InteractingwiththeObjectSuperclass

383

Oncestudentshavecompletedtheseexercises,distributeworksheet6.3.

Readthroughthequestionsaloud,ifneeded.

IfyouarehavingthestudentsworkinEclipse,besuretoreviewyourprocedureforsubmittingworkelectronicallybeforestudentsbegin.

EncouragestudentstoexplorethedrinkbottlestogetideasforfieldstheycanuseintheirDrinksubclasses.

AccommodationandDifferentiationAtthispointofthecourse,introducingTextExcelmaybebeneficial.Althoughthestudentsdon’thavetherequiredknowledgetocompletetheproject(yet),TextExcelandcanbeusefulwhenexplainingpolymorphisminthefollowinglessonbecauseofhowcellsaredisplayed.Ifyoudodecidetogothisroute,it’sagoodideatogiveyourclassatleastahalf-daytoworkonTextExceltogetabetterunderstandingofthepromptandwheretheygetstuckintheproject.

Encourageadvancedstudentstoaddadditionalclasses,fields,methods,andclientcode.Ifstudentsstillhavetimetospare,encouragethemtoincreasecodecomplexity,addadditionallevelstotheclasshierarchy,orhelptheirpeers.

Ifyouhaveafewstudentsthatarestrugglingwiththeassignment,allowthemtoworkingroupsof4,eachpairhelpingtheotherwiththeircode.Ifstudentsneedadditionalguidance,havestudentscompletetheworksheetasaseriesofthink-pair-shares,whereyoureturntowholegrouptoshareanddiscussanswersbeforemovingontothenextstep.Teachingtheclassthiswaywillroughlydoublethetimerequiredtocompletetheexercise.

MisconceptionsStudentsoftenhaveconfusiononthedifferencebetweenoverridingvsoverloadingmethods.Thefollowingisachartofthedifferences:

Lesson6.03:InteractingwiththeObjectSuperclass

384

OverridingMethodwithsamename,

parameters,andreturntype

OverloadMethodswithsamenamebutparametersand/orreturntype

MethodSignature Same Different

Classhierarchy Subclassoverridessuperclass Overloadedmethodcanexist

anywhereinclasshierarchy

Behavior Changebehaviorofsuperclassmethod Multiplebehavior

Execution RunTime CompileTime

VideoCSE143,InteractingwithObjects(2:46–30:39)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ed2ec8fa-511a-43fe-9c51-7929dc4f10d8&start=166

CSE143,Interactingwalkthrough(30:40–40:10)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ed2ec8fa-511a-43fe-9c51-7929dc4f10d8&start=1840

ForumdiscussionLesson6.03InteractingwiththeObjectSuperclass(TEALSDiscourseaccountrequired)

Lesson6.03:InteractingwiththeObjectSuperclass

385

Lesson6.04—Polymorphism

Overview

Objectives—Studentswillbeableto…

Definepolymorphism.Tracetheexecutionofmethodsthroughaclasshierarchyandpredictoutput.

Assessments—Studentswill…

CompleteaTracingInheritanceguideCompleteWS6.4

Homework—Studentswill…

ReadBJP9.4“Is-aVersusHas-aRelationships.”Completeself-checkquestions#18,20

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS6.4.1TracingInheritanceGuideWS6.4.2ClasshierarchiesandclientcodefromSection9.3(onboardorprojector)

TheRoundRobinworksheetis11pageslong,soitmaytakeawhiletoprintout/copy.

PacingGuide

Lesson6.04:Polymorphism

386

Section TotalTime

Bell-workandattendance 5min

IntroductiontoPolymorphism 10min

TracingInheritanceGuide 10min

Studentpractice:WS6.4.1 25min

Gradeaworksheetandannounceclassgrade 5min

ProcedureHookyourclasstodaybydisplayingasampleofpolymorphiccode,andaskingstudentstovoteastowhethertheythinkthecodeisvalid.Raisethestakesbyofferingextraclassparticipationpointstothestudentsthatvotecorrectly.Askstudentstoexplaintheirreasoningbehindtheanswer,andallowalittletimefordebate.

Bell-workandAttendance[5minutes]

IntroductiontoPolymorphism[10minutes]

1. Beforewarnedthatstudentsmayhaveahardtimewithpolymorphicsyntax.Upuntilnow,we’vebeendrillingmatchingkeywordsandtypes.Passingdifferenttypesasparameterswithinthesamemethodmayseemcounterintuitive.Youshoulddrillandrepeatthatsuchbehaviorisonlyvalidwhensubstitutingsubclassobjects.

2. Polymorphismistheabilityforthesamecodetobeusedwithseveraldifferenttypesofobjects.Althoughthesamecodeisused,itwillbehavedifferentlydependingonthetype(class)ofobjectused.

Whydoesthiswork?Itislegalforasuperclassvariabletorefertoanobjectofitssubclass.Referencevariablesdonothavetoexactlymatchthetypeofobjecttheyreferto!

IfpublicclassLionextendsAnimal{…},

thenAnimalsimba=newAnimal();orAnimalsimba=newLion();orLionsimba=newLion();butnotLionsimba=newAnimal();

TheobjectreferredtobysimbareferstoaLionobject,notanAnimalobject.MethodscalledonsimbawillbehavelikeaLionobject(e.g.theLionroars).Itmaybebeneficialtodiscussthefollowingpointswithyourstudents:

Lesson6.04:Polymorphism

387

i. LionisatypeofAnimalsoitisokaytoassignsimbatoanAnimal.

ii. SinceLionoverridessomeofthemethodsofAnimal,whenwecallthoseoverriddenmethods,we’llstillseethebehaviorLiondefines.

iii. WhenweassignsomethingtoanAnimal,theonlyrequirementisthatitis-a-particularAnimal.Sowecanonlyaccessbehavior(methods)thattheAnimalclassknowsabout.

3. Askstudentstothink-pair-sharetoprovideexamplesofothercorrectassignmentstatements.Whenyoucallonstudentsforexamples,besuretohavestudentsexplainhowthenewobjectswillbehave(whatmethodsapply).

4. IfTextExcelhasalreadybeenintroducedinanycapacity,it’seasytousetheCellsasexamples.TheRealCellclassisthesuperclasstotheValueCell,PercentCellandFormulaCellmakingiteasytogetreturnedvaluesasadouble:

RealCellmyCell=(anysubcell);

myCell.getDoubleValue();//Returnsthedoublevaluetobedisplayed.

5. AskstudentstowalkthroughtheMusicalInstrumentexamplewithyou.

MusicalInstrument[]instruments={

newMusicalInstrument(),

newElectricKeyboard(),

newGuitar(),

newElectricGuitar()

};

for(inti=0;i<instruments.length;i++){

System.out.println(instruments[i]);

instruments[i].pickSound();

instruments[i].playNote();

System.out.println();

}

Haveyourstudentsreadthetableofoutputs(ontheslides)andfillintheoriginalmethodtofindtheiranswer.Itwillhelpthemwiththeworksheet.

TracingInheritanceGuide[10minutes]

1. DistributecopiesofWS6.4.2andreviewthestepsthatallstudentsshouldusetodeterminetheoutputofapolymorphicprogramliketheexampleyoujustshowed.Theyshouldusethishandoutthewaytheyusetheirproblem-solvingalgorithm,asaproceduretobeusedoneverypolymorphicproblem.

Lesson6.04:Polymorphism

388

2. DemonstrateStep1:UsingtheABCexampleinsection9.3ofthebook,diagramtheclasshierarchy.GivethefirstexamplewithTrickyCodeTipthattheheaderwithoutextendsisthesuperclass,thenhavestudentshelpyoufillouttherestofthisdiagram.

3. DemonstrateStep2:StartingwithclassA(asemphasizedbelow),determinetheoutputforeachmethodlisted.Havestudentsfillinthistableintheirnotes,volunteeringanswersforclassesB,C,andD.

4. DemonstrateStep3:ProjecttheclientcodeABCDMainandaskstudentstousethetabletopredicttheoutcomefromthecode.Thecorrectoutputisgivenbelow:

Lesson6.04:Polymorphism

389

A

A1

A2

A

A1

B2

C

C1

A2

C

C1

D2

PlacetheclasshierarchyforclassesE,F,GandHontheprojector(alsoinsection9.3).GivestudentsafewminutestousetheTracingInheritanceguidetocreateatableofoutputforclassesE,F,GandH.

StudentPractice:WS6.4.1[25minutes]1. Round-robinisadrillinganderror-checkingexerciseusedwithworksheets.Students

writetheirnameontheworksheet,completethefirstproblem,thenpassthepapertothestudentontheright(orwhateverdirectionyouchoose).Thenextstudentfirstchecksthepreviousanswer,correctingitifneedbe,thencompletesthesecondquestion.Eachstudentthenpassesonthepaperagain.Bytheendoftheexercise,eachstudenthascheckedandcompletedeachquestionontheworksheet.

2. ThehookisthatyouchooseonlyONEworksheetfromthepiletograde.Allstudentsgetagradefromthatoneworksheet.Thiskeepsstudentsinvestedthroughouttheexercise.Advancedstudentswillcheckquestionsthroughoutthewholeworksheet,andallstudentswilltrytheirbesttocatchtheirown(andothers’)mistakes,sincethewholeclasssharestherandomly-selected-paper’sgrade.

i. Sincetoday’sworksheetonlyhas13questions,yourchosenworksheetwillonlyrepresentasubsetoftheclass.

ii. Youshouldstillgradeoneworksheetonly,andgiveneveryonethesamegradefromthatonepaper.Thiswillkeepstakeshighforallstudents,sincetheywon’tknowwhichpaperyouwillselecttograde.

Lesson6.04:Polymorphism

390

iii. Youshouldtimeeachquestion/checkinginterval,andcall“SWITCH!”whenitistimeforstudentstopassalongpapers.Suggestedtimelimitsaregivenbelow.Ifyounoticethatatimespanistooshortortoolong,adjustalltimespansaccordingly.TimeestimatesasgivenarebasedoffofAPTesttiming.

i. Question1shouldtake5minutes;projecttheA,B,C,andDclassesontheoverhead.

ii. Question2shouldtake1minute.iii. Question3shouldtake5minutes.iv. Question4shouldtake3minutes.v. Question5shouldtake2minutes.vi. Question6shouldtake5minutesvii. Question7shouldtake3minutes.viii. Question8shouldtake5minutes.ix. Question9–13shouldtake2minutesAdjustthetimingonthesequestionsasneeded,buttrytokeepabriskpace.Partoftheengagementfactoristhesenseofurgency.

GradeAWorksheetandAnnounceClassGrade[5minutes]

Iftimeallows,randomlyselecttheworksheetandannouncetheclassgradewithabitoffanfare,congratulatingtheclassonajobwelldone.Otherwise,selectonepapertogradeafterclass,thenreturnthepapertothestudentforstudypractice.

AccommodationandDifferentiationTooptimizethisexercise,youmightconsiderrearrangingstudents(orcreatingapassing-path)thatmixesstudentsofdifferentcodingabilities.Theadvancedstudentscanusetheextratimetocorrectmistakesmadebyothers;iftheyaresittinginproximitytothestudentthatmadetheerror,theywillhaveabetterchanceofexplainingthecorrectanswertothem.

Duetothebriskpaceoftheround-robinrotation,thereshouldn’tbetoomuchdowntimeforanyonestudent.Ifyoudofindastudentthatislookingbored,makeeyecontactwiththemasyouremindtheentireclassthateveryoneshouldbecheckingtheproblemshandedtothemoncetheyaredonewithsolvingtheirassignedproblem.

IntheELLclassroom,youmayneedtoreducethenumberorcomplexityofquestionsofferedontheworksheettocompletethislessoninoneclassperiod.

Reassigntheremovedquestionsashomework,bellwork,orquizzes.

Readeachquestionaloudfortheclass.

Lesson6.04:Polymorphism

391

Dothefirstfewproblems(orasmatteringofproblemsthroughouttheworksheet)asawholegroupforadditionalscaffolding.

Alternatively,youcandotheentireassignment,butallow2classperiodstocompleteeachgroup.

ForumdiscussionLesson6.04Polymorphism(TEALSDiscourseaccountrequired)

Lesson6.04:Polymorphism

392

Lesson6.05—Has-aRelationships

Overview

Objectives—Studentswillbeableto…

Identifyandexplainwhytwoclasseshaveanis-aorahas-arelationship.Createahas-arelationshipbetweentwoclasses

Assessments—Studentswill…

CompleteanAPSectionIIquestion“Trio”

Homework—Studentswill…

ReadBJP9.5

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhiteboardandmarkersProjectionorclassroomcopiesofWS6.5(anAPSectionIIquestion)StudentpairassignmentsVideoforhook:https://vimeo.com/18439821

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction(withpairwork) 15min

Studentpractice 25min

Studentshare/wholegroupreview 10min

Procedure

Lesson6.05:Has-aRelationships

393

HookyourclasstodaywiththeShapeshiftervideo(linkin“Materials&Prep”).Askstudentswhatthedifferentanimalshadincommoninthevideo,andwhatrealanimalshaveincommon.Whatbehaviorsdidtheanimalshaveincommon?Whatwasabehaviorthatstuckoutasuniquetoeachanimal?Theideahereistogetstudentsthinkingabouthowtouseinheritance(andeventuallypolymorphism)toreusecodefordifferentclasses.

Bell-workandAttendance[5minutes]

Introduction(withpairwork)[15minutes]

1. Continuetheclassdiscussionbypromptingstudentstopairupanddrawoutaclasshierarchyincluding:Animal,Carnivore,Tiger,andDonkey.

2. Afterstudentshavecreatedthehierarchy,askthemtoconsidersomebehaviorsthatwouldalsoapplytotheclassesZooandZookeeper.Studentsshouldsharethesebehaviorsandjotthemdownintheirnotebooksforlaterreference.

3. Usingstudent-generatedexamples,illustratetheis-arelationships,andareaswhereyoumightincludehas-arelationships:

Anis-adescribesinheritancebetweenasubclassandasuperclass.Thesuperclassinheritsallthecodefromthesuperclassbecauseyoucanthinkofitasasubsetofthesuperclass.(Hopefullyastudentcanvolunteerananswerlikethis.)

HavestudentscreateclasshierarchiesforZooStaffandZooFacilities.(Somestafftitlescouldbezookeeper,customerservicerepresentative,ortrainer.Typicalzoofacilitiesincludebathrooms,giftshops,andcafeterias.)

Lesson6.05:Has-aRelationships

394

Has-adescribestherelationshipbetweenaclassthatisclientcodeofanotherclass.Theclassisacomponentofthe“clientclass,”andoneobjectcontainstheother.Tocreateahas-arelationship,writeafieldintheclassthatreferstotheotherclass:

publicclassZoo{

privateAnimal[]animals;

privateZooMember[]zooMembers;

privateZooFacility[]zooFacilities;

Wecreatefieldsthatrefertootherclasses(highlighted)tocreateahas-arelationship.Whenyoucan’tsubstituteoneclassforanother,youshoulduseahas-arelationship.Azooisnotananimal(orarrayofanimals),norisitastaffmember(orarrayofstaffmembers).Azoocontains,orhas,allofthesecomponents.

StudentPractice[25minutes]

1. Studentsshouldremainintheirstudentpairs.Ifyourclassroomhascomputers,studentsshouldcompletethefollowingexerciseinEclipse,andyoushouldreviewtheprotocolforsubmittingassignmentselectronically.

2. Beforestudentsgetstarted,askstudentswhattypesofmealstheyseeinfastfoodrestaurants,andwhatoptionsaretypicallybundledtogether.Guidestudentstodiscuss:

i. Sandwiches:chicken,burger,fish

ii. Drinks:soda,water,juice,coffee,milk

iii. Sides:Frenchfries,onionrings,tatertots,salad,appleslices

Intheexampleshere,ChickenSandwich,BurgerSandwich,FishSandwich,SodaDrink(etc.)aresubclasses.Averyrichclasshierarchycanbeformedhere!Explaintostudentsthatthey’regoingtogeneratecomplexcodethatusesinheritanceandpolymorphismtomodelthestateandbehaviorofValueMeals.

Lesson6.05:Has-aRelationships

395

3. Ontheprojector,whiteboard,orasahandout,givestudentsthe2014APexamSectionIIquestion4problem“Trio.”AcopyofthisproblemhasbeenincludedinyourmaterialsasWS6.5.

4. Givestudents≈20minutestowriteanddebugtheirsamplecode.Walkaroundtheroomcheckingonstudentsandofferingguidanceiftheyarestuckoronthewrongpath.Chooseoneortwostudentpairstosharetheircodewiththeclassduringwhole-groupdiscussion,andhelpthosestudentssaveandtransfertheirfilestotheprojectingcomputer.

StudentShare/WholeGroupReview[10minutes]

Inawholegroup,askforstudentstosharetheircodeandexplainhowtheestablishedthehas-arelationshipbetweenclasses.Checkforstudentunderstandingbyaskingwhyahas-arelationshipwasmoreappropriatethancreatingais-a(hierarchical)relationship.

AccommodationandDifferentiation

CommonQuestions/Issues

YoumayhavetoremindstudentstowritetoStringmethodsintheotherclassesaswell.HavestudentsdemonstrateflowofcontrolonthetoStringmethodtodemonstratewhyatoStringmethodinthe“clientclass”willrequireatoStringmethodintheotherclasses.

Checktomakesurestudentsareusingprivatefields.Ifyou’reseeingmanystudentsusingpublicfields,pausetheclasstoleadawholegroupdiscussionaboutwhyencapsulationissoimportant.(TheY2Kbugisaparticularlyexcitingexampleofwhathappenswhenwedon’tencapsulatecode.Besuretodescribethepanicanddoomsdaypredictionsthatthiscaused!)

Ifyourstudentshavebeenhavingtroubletracingtheflowofcontrolasamethodcallsanothermethodinadifferentclass,takesometimetodemonstratehowtousethestep-intoandstep-overbuttonsinEclipse.

Thestep-overandstep-intobuttonscanbefoundinthetoptoolbar.

Inthescreenshotbelow,thepointerrestsonthestep-intobutton,whichwilladvancetheflowofcontrolonestepatatime.Thestep-overbuttonwilljumptotheendlocationofcontroloncetheentiremethodhasexecuted.

Lesson6.05:Has-aRelationships

396

Ifstudentscompletethisassignmentquickly,encouragethemtoincreasethecomplexityanddepthoftheprogram.Someideastogetstudentsstarted:

IntroduceanAquariumclasswithassociatedhas-aandis-arelationshipstosomeoftheclassesyoualreadycreated.

CreateadditionalsubclassesinAnimal,orclassessuchasAquariumStaffasneeded.

Ifyou’dlikeforstudentstoexpandontheAPquestiongiven,havestudents:

CreateadditionalsubclassesforDrink/Sandwich/Salad(ifnotalreadydone)

CreateaMenuofValueMealoptions,andallowusertoselecttheoptionstheywanttocreateameal

AddservingsizestoDrinkandSide,andcreateaSuperSizeValueMeal

AddpricetoSandwich/Drink/SaladandhaveValueMealpricesbe85%ofthetotalitemprices.

Ifstudentsarestrugglingwiththeassignment,allowmoretime(uptotwoclassperiods)tocompletethelesson.Readthepromptaloudfortheclass,anddothestepstogetherifneeded.InclasseswithELLs,youcandistributesavedEclipsefilesthatcontainanentirefunctionalprogram,withshuffledcomponents.Studentswillneedtoorganizethecodefragmentsintotheproperorder(aParsonsproblem).

TeacherPriorCSKnowledgeIs-arelationshipsdefineclasshierarchythroughinheritance,whilehas-arelationshipsdefineclassesthroughtheincorporationofcomponentclasses.

MisconceptionsHas-aimpliesaone-to-onerelationship,whileinmanycases,classeshaveaone-to-manyrelationship.Useexampleswherethehas-a(composition)relationshipismorethanjusta1∶1relationship.Forexample,adeckofcardshas52cards.

Forumdiscussion

Lesson6.05:Has-aRelationships

397

Lesson6.05Has-aRelationships(TEALSDiscourseaccountrequired)

Lesson6.05:Has-aRelationships

398

Lesson6.06—Interfaces

Overview

Objectives—Studentswillbeableto…

Implementanduseinterfaces.

Assessments—Studentswill…

Completeanin-classcompetition

Homework—Studentswill…

ReadBJP9.6Summarizenotesinnotebookfortomorrow’snotebookcheckForextracredit:

GenerateyourownclasshierarchythatdemonstratesthesameconceptsillustratedbytheFinancialClassHierarchyoutlinedinthebook.Theextra-creditprojectisdue[oneweekfromassignment].

Materials&PrepProjectorandcomputer(ifyouareableto/opttouseEclipsewithyourstudents)WhitepaperandmarkersInClassPoster6.6Smallgroupassignments(≈4peoplepergroup)

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Introduction 15min

Classcompetition(smallgroups) 20min

Wholegroupreviewandcompetitionjudging/award 15min

Lesson6.06:Interfaces

399

ProcedureHookyourclassbyannouncingaclasscompetition.FeatureTEALSswag,extracreditpoints,freehomeworkpasses,orraffleticketsasprizes.Breakstudentsintotheirsmallgroupsbeforebeginningyourintroduction.

Bell-workandAttendance[5minutes]

Introduction[10minutes]

1. Beginwithalecture/discussionaboutinheritanceandinterfaces.

2. We’veseenthatinheritanceisausefultoolforprogramming.(Askstudentswhyinheritanceisuseful:itenablespolymorphismandcodesharing.)

Butinheritancehaslimitations:

Askstudentsifwecaninheritcodefrommorethanonesuperclass.(No.)

Ifyouwantanis-arelationshiporpolymorphism,butyoudon’twanttogiveasubclassaccesstothecode,inheritancewon’tgiveyoutheencapsulationyouneed.

3. There’saspecialtoolwecanusecalledaninterfacethatallowsyoutorepresentacommonsupertypebetweenclasseswithoutactuallysharingcode.

Aninterfaceconsistsofasetofmethoddeclarationswithoutamethodbody.

Thinkoftheinterfaceasapromiseofbehavior;themethodisdeclared,butnotdefined.Themethodwillbe(ispromisedtobe)definedinthesubclassmethod.

Ifyoudon’tdefinethemethodinyoursubclass(ifyoudon’tfollowthroughonyourpromise),you’llgetanerror.

4. Demonstratewhatthislookslikeinpractice.Youcanusetheexamplegivenbelow,orasktheclasstohelpyougenerateanexampleoftheirownchoosing.Startwithasketchsostudentscanvisualizetherelationshipsbetweeninterfacesandclasses,andreviewinheritancevocabularyasyouconstructthediagram:

Lesson6.06:Interfaces

400

Interfacesarerepresentedbydottedboxesandarrows,classandclasshierarchiesarerepresentedbysolidlinesandboxes.

Ifyouwishtoshowyourstudentsthatinterfacescanbesharedbyunrelatedclasshierarchies,youcanaddtothediagramaboveasshownbelow.Thecoloroftheinterfacearrowshasbeenchangedtoredsoit’seasiertoseewheretodrawthelines.

Lesson6.06:Interfaces

401

publicinterfaceSalty{//ThisisapromisetoimplementthesodiumCont

ent

doublesodiumContent();//intheclassthatimplementstheSaltyinterf

ace.

}

publicinterfaceAromatic{

StringdescribeAroma();//Noticethelackof"public"!Publicis*assum

ed*.

}

publicinterfaceGreasy{//Pointoutthatinterfaceslookjustlikeclas

ses

doubleamountOfGreaseInMg();//butwithoutfieldsormethodbodies

}

publicinterfaceEdible{

doublecalories();

}

5. Asyouwritetheclassheaderbelow,pointoutthekeywordimplementsandmatchuptheinterfacesintheheaderwiththeinterfacesinthediagram.

publicclassBaconextendsPorkimplementsSalty,Aromatic,Greasy,Edible{

privatedoubleamountInKg;

publicBacon(doubleamount){

amountInKg=amount;

}

publicdoublecalories(){

returnamountInKg*CALORIES_PER_KG_OF_BACON;

}

Askstudentstopointouttheheaderandtheconstructor.Askthemiftheycanguesswhyyouincludedacaloriesmethod.Iftheydon’tremembertheanswerfromtheirreadingassignment,pointtotheinterfaceswithoutanyadditionalcomment(you’refollowingthroughonyourpromisetoimplementthemethod).

AskstudentsiftheBaconclassiscomplete.HavethemhelpyoufixitbyaddingtheothermethodsyoupromisedtoimplementintheAromatic,Greasy,andSaltyinterfaces.PointoutPoster6.6asanaidtohelpstudentswriteinterfacescorrectly.

ClassCompetition(SmallGroups)[20minutes]

Lesson6.06:Interfaces

402

1. Ontheboardoroverhead,projectaseriesoffiveinterfacesonathemethatyoufeelwillcreativelyengageyourclass(youshouldblankoutthepartsthatyoufeelwillmaketheexamplemostengaging).Somesampleclassesandinterfaceswithsuggestedmethods:

i. Subclasses:Red,Orange,Yellow,Green,Blue

Interface:colorSampleMethods:doublewavelengthInNm,BooleanisPrimaryColor

ii. Subclasses:Wood,Brick,Adobe,Stone,Canvas

Interface:buildingMaterialSampleMethods:StringmovableHousing,doublecostPerLb

iii. Subclasses:Boeing747,Pheasant,PaperAirplane,Cannonball

Interface:fliesSampleMethods:getMaximumAltitude,getRange,getSpeed

2. Inviteeachteamtoprovideateamname,andexplainthechallenge:

i. Studentsshoulddefineclassestoimplementasmanycombinationsofinterfacesaspossible.

ii. Studentsmustincludeatleast1methodforeachinterface.

iii. Eachclasshastoimplementtheinterfacemethodsandincludeaconstructor.

3. Theteamwiththemostcombinationsofinterfacesattheendofthetimelimit(≈20minutes)winthecompetition.

WholeGroupReview&CompetitionJudging/Award[15minutes]

Leavetimetohavegroupssharetheirinterfaceswiththerestoftheclassduringwholegroupdiscussion.Payattentiontoanyparticularlycreativeorwackyexamplesthatstudentscomeupwith.

AccommodationandDifferentiationIfyourstudentsrequireadditionalpracticewithinterfacesbeforebeginningtheclasscompetition,workthroughbuildingaclassLardthatimplementstheinterfacesGreasyandFoodItem.

DuringtheActivity

Lesson6.06:Interfaces

403

Ifyourstudentsrequireextrascaffolding,generate1methodforeachinterfaceasawholegroupbeforethecompetitionbegins.Writethesemethodsontheboardwiththeinterfacesforeasyreference.

Ifyourstudentsrequireanextrachallenge,changerulec(instep2ofActivity)toincludeadditionalmethodsand/orfields.

TeacherPriorCSKnowledgeAstudentmayaskabouttheIs-AandHas-Arelationshipsintroducedinthepreviouslesson,whicharegreatfordescribinginheritancevscomposition.Butwhataboutinterfaces?TherelationshipthatcanbeusedisCan-Do.Aclassthatimplementsaninterfacecandothebehaviorsspecifiedintheclassitimplements.

MisconceptionsStudentsoftenhaveconfusiononthedifferencebetweenextendsvsimplements.Syntacticallyisfairlystraightforwardtoextendfromasuperclassandimplementfromaninterface.Conceptually,inheritance(extends)isusedtodefineaclasshierarchywherecommonfunctionallyisfactoredoutintothesuperclass.Incontract,interfaces(implements)isusedtoseparateoutthemethodsdefinitionfromthemethodimplementation.Noclasshierarchyisimpliedwhenimplementinganinterface.

VideoBJP9-3,ImplementComparableInterfacehttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c10-3

CSHomeworkBytes,InterfaceandAbstractClasses,withElizabethhttps://www.youtube.com/watch?v=iiZ_TIZsE6Q

CSE143,Interfaces(note:usesArrayIntListwritteninclassasanexample)(3:43–26:35)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=696d623a-dca4-4b64-bdfd-71d49fc9b47d&start=223

ForumdiscussionLesson6.06Interfaces(TEALSDiscourseaccountrequired)

Lesson6.06:Interfaces

404

Lesson6.06:Interfaces

405

Lesson6.07—ProgrammingProject

Overview

Objectives—Studentswillbeableto…

Writecomplexcodethatusespolymorphism,inheritance,andinterfaces.

Assessments—Studentswill…

SubmitmultipleprogramselectronicallyTaketwoquizzesfromtheBarron’sreviewbook

Homework—

AlistofhomeworkassignmentsislistedinthePacingGuide

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesoftextbook(forDay4)Asamplegroceryreceipt(forDay4)

PacingGuide:Day1

Section TotalTime

ProgrammingProjectI Fullclass

Gradestudentnotebooks Duringclass

Homework:OutlineChapter9 TONIGHT

PacingGuide:Day2

Lesson6.07:ProgrammingProject(5Days)

406

Section TotalTime

ProgrammingProjectI(Project9.1fromthetextbook) Fullclass

Checkstudentoutlinesforcompleteness Duringclass

Homework:ReadandoutlineChapter4inBarron’sreviewbook TONIGHT

PacingGuide:Day3

Section TotalTime

ProgrammingProjectII(Project9.3fromthetextbook) Fullclass

Homework:TaketheChapter4quiz.Gradeyouranswers. TONIGHT

PacingGuide:Day4

Section TotalTime

ProgrammingProjectIII(Exercise9.3fromthetextbook) Fullclass

Homework:ReadandoutlineChapter3inBarron’sreviewbook. TONIGHT

PacingGuide:Day5

Section TotalTime

TakeChapter3quizINCLASSStudentsgradetheirownanswersandsubmitreviewbooksforagrade.

Fullclass

CheckBarron’sreviewbooksforhighlighting,note-taking,andquizcompletion/grading Duringclass

Homework:ReviewChapter9andsubmit5questionsforreview. TONIGHT

Procedure

Lesson6.07:ProgrammingProject(5Days)

407

Studentsshouldcompletetheprogrammingprojectsontheirown.Readthroughtheinstructionswiththeclass,andhelpstudentspacethemselvesbysettingprogressgoalsforeachday.

Beforelettingstudentsbegintheprojects,askstudentswhatresourcesareavailabletothemsotheycanhelpthemselvesbeforecallingyouover.(Notebooks,textbook,classhandouts,studentworkandpostershangingaroundtheroom,onlineresources.

AboutBarron’s

Barron’sisanAPCSAreviewbookthatsomeschoolsprovidestudents.Ifyourschooldoesn’tprovideBarron’stherearemanyalternativehomeworkassignmentsthatcanbefoundatcodingbat.com/javaorpractice-it.

Alternatively,youcansavetimespentonthelabbycheckingactivitiesashomework.

Ifyou’vechosentointroduceTextExcelearlier,youcanassignportionsofTextExcelashomeworkheretosavetimelaterinthecourse.TextExcellikeFracCalctakesalotofinandoutofclasstimetocomplete,andtimesavedheresavestimeforAPtestreview.

ProgrammingProjects

Ontheoverheadorsharedelectronically,providestudentswiththefollowingprogrammingprompts:

ProgrammingProjectI

Writeaninheritancehierarchyofthree-dimensionalshapes:

1. Makeatop-levelshapeinterfacethathasmethodsforgettinginformationsuchasthevolumeandsurfaceareaofathree-dimensionalshape.

2. Thenmakeclassesandsubclassesthatimplementvariousshapessuchascubes,rectangularprisms,spheres,triangularprisms,cones,andcylinders.

3. Placecommonbehaviorinsuperclasseswheneverpossible,anduseabstractclassesasappropriate.

4. Addmethodstothesubclassestorepresenttheuniquebehaviorofeachthree-dimensionalshape,suchasamethodtogetasphere’sradius.

ProgrammingProjectII

Writeaninheritancehierarchythatstoresdataaboutsportsplayers.

Lesson6.07:ProgrammingProject(5Days)

408

1. Createacommonsuperclassorinterfacetostoreinformationcommontoanyplayerregardlessofsport,suchasname,number,andsalary.

2. Thencreatesubclassesforplayersofyourfavoritesports,suchasbasketball,soccerortennis.

3. Placesport-specificinformationandbehavior(suchaskicking,verticaljumpheight,orspeed)intosubclasseswheneverpossible.

ProgrammingProjectIII

HavestudentssubmitanswerstoExercise9.3intheirtextbooks.Thisassignmentwillbesubmittedonpaper.Aswritten,studentsarenotgivensomecodethatimplementsGroceryBill,Employee,andItem.Ifyouwishtomakethisanelectronicassignment,youshouldconsiderprovidingstudentswithsomestartercode.

AccommodationandDifferentiationInsomeclassrooms,youmaywanttoprovidethemathematicalformulasforfindingthevolumeofspheres,triangularprisms,cones,andcylinderssostudentscanfocusoncodingratherthanfindingandtranslatingthemath.Youcanalsointroduceandreinforceusefulvocabularybyprovidingphysicalexamplesoftheseshapes.Ifyouarehavingtroublefindingprisms,cones,andcylinders,youcanmaketheseitemsoutofpaperbyprintingouttemplatesandfollowingtheinstructionsatthiswebsite:(http://tinyurl.com/asz6e69)

TohelpstudentsprocessProgrammingProjectIII,youmaywanttoreadthroughexercise9.3inthetextbookwiththeclass,breakingdowntheproblemintoitspartsasawholegroup.InELLclassrooms,youshouldbringinphysicalsamplesofgroceryreceiptsandpassthemaroundorviewthemontheprojector.Havestudentspointoutthedifferentpartsofthereceiptastheyrelatetotheassignment.

Remindstudentstoalwaysdrawastructurediagram,sketchouttheirplanusingpseudocode,andincludecommentstoremindthemselves(andyou!)ofwhateachsectionofcodeisfor.

ForumdiscussionLesson6.07ProgrammingProject(TEALSDiscourseaccountrequired)

Lesson6.07:ProgrammingProject(5Days)

409

Lesson6.07:ProgrammingProject(5Days)

410

Lesson6.08—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

Reviewforthetestbyby:ReadingoverthebluepagesattheendofChapter9

Submit5questionsforreviewinclasstomorrowusingelectronicsurvey

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Thehomeworktonightasksstudentstosubmit5questionsforreview.Createanelectronicsurveyforstudentstocompletewith6textfields,oneforname,and5forquestionstheyhaveaboutCh.9content.Setadeadlinebywhichtimestudentsmusthavesubmitted5questionsfromCh.9Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

PacingGuide

Lesson6.08:Finding&FixingErrors

411

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedlastweek.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkorclassworkassignments.Ifstudentsdidnothavetimetofinishthehomeworkfromyesterday,youmayallowthemtimetoworkonthattoday.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.

Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Offertimechecksforstudentssotheystayontask.

Ifstudentshavenotfinishedhomeworkassignments,allowthemtimetodaytocompletetheseassignmentstoturninforpartialcredit.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

Lesson6.08:Finding&FixingErrors

412

AccommodationandDifferentiationInELLclassrooms,pairstudentsandallowthemtoworktogethertocorrecttheirwork.

Forthosestudentswhohavenothingtocorrect(orfinishveryearly),rewardthemwithsilentfreetime,orallowthemtoworkonafree-choiceprogrammingproject.

ForumdiscussionLesson6.08Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson6.08:Finding&FixingErrors

413

Lesson6.09—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit6knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stestusingtargetedreviewlist

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopics

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewofstudentquestions 40min

Checkstudentstudylists 5min

Procedure

Bell-workandAttendance[5minutes]

Lesson6.09:Review

414

ReviewofStudentQuestions[30minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Beginwithareviewofstudent-submittedquestionsbeforereviewingthepracticequestions.

3. Finally,workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

Somequestionsyoumayaddresswhileworkingthroughthesampletest.

Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

4. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

5. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.

CheckStudentStudyLists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

ForumdiscussionLesson6.09Unit6Review(TEALSDiscourseaccountrequired)

Lesson6.09:Review

415

Test5GuideAswritten,thetestforthisunitisprobablytoolongforstudentstocompleteinoneclassperiod.Extraquestionshavebeenincludedsoyoucan:

1. Pickandchoosewhichquestionswillappropriatelyassessyourstudents.

2. Createdifferentversionsofthetest(ifyou’venoticedthatcheatingisaproblem).

3. SimulateanauthenticAPtestexperience.

Whenmodifyingthetesttosuityourstudents,don’tforgetto:

1. ChangetheheadingsonSectionI&IItoreflecttheactualnumberofquestions.

2. ChangetheheadingsonSectionI&IItoreflectthecorrectpercentagesoftheirtotaltestscore.TheAPexamweightsSectionI&IIat50%oftheoverallscore,each.

3. Adjustthetestpacingforyourclassperiod’stimespan.Theultimategoalistoworkyourstudentsuptoapaceof90secondsperSectionIquestion,and26minutesperSectionIIquestion(includingtimeforchecking).

4. KeeptrackofwhichquestionsyouremovefromthetestsoyoucanusethemduringUnit9testprep/review.

Eveninthefinal(reduced-size)version,thetestwillbeverylong.Besuretotakethisintoaccountwhenphotocopyingversionsofthetest.Ifyouteachmultiplesectionsofthisclass,youmaywanttohavestudentsusebubble-insheetssoyoucanerasestudentmarkingsandre-usetestpacketsbetweenclassperiods.

ForumdiscussionTest5Guide(TEALSDiscourseaccountrequired)

Test5Guide

416

Lesson7.00—TestReview&ReteachN.B.THISLESSONISOPTIONAL(Seebelowfordetails.)

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit6.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP13.1upto“Sorting.”Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

Toaccommodateforlate-yearschedulingdrift,Unit7isplannedwith4periodsof“wiggleroom.”Unit7includesalong-formatlabthattakesaminimumof1155-minuteclassperiodstocomplete.IfyoufeelthatyouneedtoplanadditionaltimeforstudentstocompletetheElevenslab,skipthisreviewlesson,andassigntestreviewandcorrectionasahomeworkassignment.Allowstudentstoworktogetherontheassignmentsotheycan

Lesson7.00:TestReview&Reteach

417

helpeachotherwithcorrectinganswers.ItisagoodideatocheckwitheachgroupbeforetheyleaveclasstoensurethattheyhaveA)exchangedcontactinformation,B)havesetupalocationandtimetodotheassignmenttogether.

Therestofthehomeworkassignmentscanbeshiftedaccordingly,sincetherearefewerhomeworkassignmentsthantherearedaysoftheElevenslab(seeLP7.3forhomeworkschedule).

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Beginwithstudentcomplaintsandsuggestionstobuildstudentbuy-in.Askstudents:

howtheyfelttheyweregoingtodobeforethetestwhatsurprisedthemoncetheyweretakingthetestwhattheyfeltworkedinthefirstunit(lessons,reviewstrategies,assignments)whatdotheythinktheywanttochangeforthesecondunit

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelings,thenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).

Lesson7.00:TestReview&Reteach

418

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

i. Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

ii. Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationEncourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,choosethesestudentstocreateyourclassroompostersafterschoolorforextracredit.

ForumdiscussionLesson7.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson7.00:TestReview&Reteach

419

Lesson7.01—SearchingAlgorithms

Overview

Objectives—Studentswillbeableto…

Compareandcontrastthedifferentsearchalgorithms.

Assessments—Studentswill…

Completesomeshort-answerquestions.

Homework—Studentswill…

ReadBJP13.1“Sorting.”Completeself-checkquestions#4-6andexercises#1-3

Materials&PrepProjectorandcomputerWhiteboardandmarkersClassroomcopiesofWS7.1CSUnpluggedActivity:SearchingAlgorithms(http://csunplugged.org/searching-algorithms/)ClassroomcopiesofBattleship1A,1A’,1B,1B’,2A,2A’,2B,2B’

IncludedintheCSUnpluggedactivity10-15slipsofpaperwithdifferentintegersprintedonthem(1integerperpaper)IndividuallywrappedsmallcandiesStudentpairassignments

PacingGuide

Lesson7.01:SearchingAlgorithms

420

Section TotalTime

Bell-workandattendance 5min

Intro&demonstration 10min

Studentactivity1:BattleshipLinearSearching 15min

Studentactivity2:BattleshipBinarySearching 15min

Worksheetcompletion/wholegroupdiscussion 10min

ProcedureHookyourstudentsbyplacingthebowlofcandysomewherevisible.Beforetheintroductorylecture,announcethattoday’sclassisa“gameday,”andstudentswillspendtheirtimeinvestigatingcomputeralgorithmsbyplayingBattleship.

Bell-workandAttendance[5minutes]

Intro&Demonstration[10minutes]

1. Beginwithalecture/discussionaboutsearchalgorithms.

2. Computersareusefulbecausetheycanmanagelargecollectionsofdataquicklyandeasily.Askstudentstogivesomeexamplesabouthowlargecollectionsofinformationaremanagedbycomputers.

Examples:Dataaboutitemsforsaleareaccessedasbarcodes,schoolsstoredataaboutstudents,whichcanbeaccessedbystudentname,IDnumber,orgradelevel,weathermenstorehistoricalandcurrentdataaboutatmosphericconditions,etc.

3. Largecollectionsofdataaren’tmanageableunlessweareabletosearchforaparticulardatapoint(datum).

Example:Whenyousearchtheinternet,you’researchingforasinglekeyword(orphrase)calleda“searchkey”withinaparticularwebpage(orsetofwebpages).

4. Eventhoughcomputersworkveryquickly,whenwedealwithsearchinglargedatasets,weneedtousealgorithmsthatarequicktouse.Adifferenceofasecondortwoisactuallyquitealotwhenyouthinkabouthowmanytimesadayweusesearches.

Usingyourphone,theclassclock,awatch,stopwatch,oryourcomputer,demonstratefortheclasswhat3secondsfeelslike.Askstudentstoimagineeachwebsearchtakingthatlong.

Lesson7.01:SearchingAlgorithms

421

Demonstrate10seconds,andaskstudentstoimaginewhatwouldhappeninagrocerystoreifeachitemscannedtook10secondsforthepricelook-up.Askforestimatesonhowlongitwouldtakeasinglefamilytocheckoutgroceriesfortheweek,andhavestudentsofferpredictionsastohowthiswouldaffectbusinessandconsumerexperienceinthestore.

5. Whenwedecideasprogramdesignerswhichsearchingorsortingalgorithmstouse,wefactorin:

i. Thesizeofthedataarrayii. Thespaceefficiencyofthealgorithm(howmuchmemoryituses)iii. Run-timeefficiency(howfastitexecutes)

6. DEMONSTRATION:UsingtheCSUnpluggedguide“IntroductoryActivity,”getyourstudentsthinkingabouttheprocessofandrelationshipbetweensearchingandsortingdata.UsetheintroductoryactivitytointroducetheBattleshipgames.

StudentActivity1:BattleshipLinearSearching[15minutes]

1. Ontheprojectorortheboard,reviewtherulesforBattleships–ALinearSearchingGamefromtheCSUnpluggedactivity.Distributesheets1Aand1Btostudentpairs(facedownsostudentsdon’tseeeachother’spapers).

2. DistributeWS7.1sostudentscananswerquestionsastheyplaytheBattleshipgames.

3. Givestudents≈15minutestoplaytheBattleshipgameandanswerthecorrespondingquestionsontheirworksheets.Studentsthatcompletethegamewithenoughtimetodoasecondroundshouldreceive1A’and1B’.Besuretopaceyourstudentsbyannouncing5minutesbeforetransition.

StudentActivity2:BattleshipBinarySearching[15minutes]

1. UsingtheCSUnpluggedguideforBattleships–ABinarySearchingGame,explaintheupdatedrulesforthisgame.Distributesheets2Aand2Btostudentpairs(facedown).

2. Remindstudentstoanswerthequestionsontheirworksheets.

3. Givestudents≈15minutestocompletethegameandanswertheirworksheets,thencalltheclasstogetherforawholegroupdiscussionoftheiranswers.Studentsthatcompletethegamewithenoughtimetodoasecondroundshouldreceive2A’and2B’.

WorksheetCompletion/Whole-GroupDiscussion[10minutes]

Lesson7.01:SearchingAlgorithms

422

Discusstheworksheetquestionsasaclass,assessingstudentunderstandingandre-teachingasneeded.

AccommodationandDifferentiationToensurethatstudentsunderstandtheassignment,readthequestionsonWS7.1beforestudentsbegintheactivity.

Helpstudentswithmetacognitionbycheckinginwithstudentpairsduringtheactivities.Askthemtoexplaintheirdecisionmakingprocesstoyou,andiftheyarehavingtroublearticulatingtheiralgorithms,askthemtoexplainonedecisionatatime.

Wheneverpossible,youshouldencouragestudentstodo2roundsofBattleshipforeachsearchalgorithm.Thiswillallowstudentstotracktheirownlearning.

Ifyourstudentsareadvancingthroughthecoursequicklyandeasily,youcanaugmentthisunitbyhavingstudentswritecodetoimplementsequentialorbinarysearch.Assignfurtherreadinginthetextbook(thelatter½ofChapter13),anddiscusswithstudentshowtheycanimplementcodethatoperateliketheprocessesexploredduringclass.

TeacherPriorCSKnowledgeAbinarysearchcanbewrittenusingiteration,butbinarysearchlendsitselftowelltorecursion.Atthispointinthecurriculum,studentshavenotlearnedrecursion.Youcanrevisitthebinarysearchalgorithmafterintroducingrecursion.

Big-OnotationisnotpartoftheAPCSAexam.However,somemethodofdenotingrelativesize,whetheritbetimeormemoryusage,needstobeintroduced.Youcanusebig-Onotationorinventoneyourown.

Theexecutiontimeofalinearsearchisn²whiletheexecutiontimeofbinarysearchisn·log (n).Itisnotnecessaryforstudentstofullyunderstandlogarithmsinordertounderstandthatbinarysearchisfasterthanlinearsearchforlargevaluesofn.

VideoBJP13-1,BinarySearchhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c13-1

2

Lesson7.01:SearchingAlgorithms

423

CSE143,BinarySearch(1:57–12:41)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=67aa1877-adc1-41d9-9bb6-1621cfa8a99e&start=107

ForumdiscussionLesson7.01SearchingAlgorithms(TEALSDiscourseaccountrequired)

Lesson7.01:SearchingAlgorithms

424

Lesson7.02—SortingAlgorithms

Overview

Objectives—Studentswillbeableto…

Compareandcontrastdifferentsortingmethodsandevaluatetheirrelativespeedandefficiency.

Assessments—Studentswill…

Completesomeshortanswerquestionsonworksheets

Homework—Studentswill…

ReadBJP13.1“Shuffling.”(CheckDifferentiationforadvancedhomeworkassignmentandalternateclassroomactivities)

Materials&PrepProjectorandcomputerWhiteboardandmarkersCSUnpluggedActivity:SortingAlgorithms(http://csunplugged.org/sorting-algorithms)Balancescales(oneforeachgroupofstudents)Classroomcopiesofworksheetactivities(includedinCSUnpluggedActivity)Setsof8containersofequalsizebutdifferentweights(oneforeachgroup)Studentpair/groupassignments

Yourphysics,mathematics,orchemistryteachermayhaveweightsetsandscalesthatyoucanuseforthislesson.Ifyoudonothaveweightsets,usingprescriptionbottles,M&MMinicontainers,oroldfilmcanistersfilledwithdifferentamountsofsandwillalsowork.Ifyoudonothavetimetocollectentiresetsoftheseitems,placingpennies,beans,orsandinsealedpaperlunchbagswillworkinapinch(warning:thiscangetmessyifyourstudentsaren’tcareful!).It’simportanttochooseopaquecontainerssostudentsdon’ttaketheshortcutofeyeballingtheweightsinsteadofusingthescale.

Ifyoucannotfindbalancescales,directionsonhowtomakeasetcanbefoundonthesewebsites:

Lesson7.02:SortingAlgorithms

425

https://kriegerscience.wordpress.com/2011/09/28/how-to-make-a-set-of-weighing-scales/http://www.wikihow.com/Make-a-Balance-Scale-for-Kids

PacingGuide:Day1

Section TotalTime

Bell-workandattendance 5min

Introduction 10min

Studentactivity1:SortingWeights 35min

PacingGuide:Day2

Section TotalTime

Introduction&Setup 5min

Studentactivity2:DivideandConquer 30min

Wholegroupdiscussion&codedemo 10min

ProcedureHookyourstudentsbyplacingthematerialsforthelessonoutaroundtheroom.

Bell-workandAttendance[5minutes]

Introduction[10minutes]

1. Leadaclassdiscussionaboutwhyitwouldbeimportanttosortdata:

Askstudentswhichsearchingmethodwentfasteryesterday(binarysearch),andwhataprerequisiteforthistypeofsearchwas(arrayneedstobeordered/sorted).

Askforadditionalexamplesofwhenitmightbeimportanttosortdata.(SortingsongsiniTunes,sortinghomeworkassignmentfilesonyourhomecomputer,sortinggoodsinastorebylocation,price,ortype,etc.)

StudentActivity1:SortingWeights[35minutes]

Lesson7.02:SortingAlgorithms

426

1. Distributeworksheetsfor“SortingWeights”tostudentpairsorgroups.

2. Reviewthedirectionswiththeclass,anddistributematerials.

Ifyourclassisnotfamiliarwithhowtousethescales,takeafewminutestodemonstratetheproperwaytoreadthescalesandrecordtheweightdata.

Besuretoremindstudentstocounthowmanycomparisonstheymakeduringtheactivity!

Makethe“extraforexperts”questionmandatory.

3. Givestudents≈35minutestocompletethisactivity—theywillneedtomake28comparisonsforthisexercise.

DAY2

StudentActivity2:DivideandConquer[30minutes]

1. Brieflyreviewthenextactivityforthe“DivideandConquer”activity.

Pointouttostudentsthattheymusttryouttheadditionalsortingmethodsonthelastpage(insertionsortorbubblesort).

Remindstudentstokeeptrackofhowmanycomparisonstheymakeforeachtypeofsort.

2. Givestudents~30minutestocompletethisactivity,thencalltheclasstogetherforawholegroupdiscussionoftheiranswers.

WholeGroupDiscussion&CodeDemonstration[10minutes]

1. Discusstheworksheetquestionsasaclass;askstudents:

whatsortingalgorithmswerethequickest

whichsortingalgorithmsshouldusemorememory

whichsortingalgorithmsthey’veusedintheirlives,andwhatthosesituationswere.(Someexamplestogetthemstartedincludesortingnotesorhomeworkintodateorder,organizingshuffledcards,etc.)

Lesson7.02:SortingAlgorithms

427

2. TheAPsubsetdoesnotincludespecificsortingcode,butstudentsarerequiredtoconceptuallyunderstandthemechanismsusedineachofthesortingalgorithms.Studentsshouldbefamiliarwiththebest-andworst-casescenariosforeachofthesortingalgorithms.Givethestudentsasummaryofthisinformationbyhavingstudentscopythenotesbelow,orbyofferingthisinformationasahandout.

SORTINGALGORITHMS

SelectionSort

Foranarrayofnelements,thearrayissortedaftern-1passes.Aftertheithpass,thefirstielementsareintheirsortedposition.

Thestepsare:

1. Thealgorithmdividestheinputlistintotwoparts:thesublistofitemsalreadysorted,whichisbuiltupfromlefttorightatthefront(left)ofthelist,andthesublistofitemsremainingtobesortedthatoccupytherestofthelist.

2. Initially,thesortedsublistisemptyandtheunsortedsublististheentireinputlist.

3. Thealgorithmproceedsbyfindingthesmallest(orlargest,dependingonsortingorder)elementintheunsortedsublist,exchangingitwiththeleftmostunsortedelement(puttingitinsortedorder),andmovingthesublistboundariesoneelementtotheright.

AusefulanimationofselectionsortcanbefoundonWikipediahere:(http://tinyurl.com/muo8ycd).

InsertionSort

Foranarrayofielements,thearrayissortedaftern-1passes.Aftertheithpass,thefirstielementsaresortedwithrespecttoeachother,butnotintheirfinalsortedpositions.Theworst-caseforinsertionsortiswhenthearrayisinitiallysortedinreverseorder(becausesortingtakesthemostnumberofcomparisons/moves).Thebest-casescenarioisifthearrayisinitiallysortedinincreasingorder(becausenoelementswillhavetobemoved).

Thestepsare:

1. Insertionsortiterates,consumingoneinputelementeachrepetition,andgrowingasortedoutputlist.

2. Eachiteration,insertionsortremovesoneelementfromtheinputdata,findsthelocationitbelongswithinthesortedlist,andinsertsitthere.

3. Itrepeatsuntilnoinputelementsremain.

Lesson7.02:SortingAlgorithms

428

AusefulanimationofinsertionsortcanbefoundonWikipediahere:(http://tinyurl.com/ldw8bj6).

AccommodationandDifferentiationIfyourstudentsneedmoretimetocompletetheexercise,havethemskipthebubblesearchexercise.

Haveseveralshuffleddecksofcardsavailableforstudentstosortiftheyfinishtheexerciseearly.Youcantimestudentsortingandturnitintoacompetitionifyouneedtoofferextraengagement/motivation.

Encouragestudentstowritethealgorithmsfordifferentsortingmethodsintheirownwords.Ifastudentcomesupwithaparticularlywell-wordedexample,encouragethemtoturnitintoaposterorhandoutfortheentireclasstouse.

Ifyouhaveenoughtime,andyourstudentsarefollowingalongwell,haveyourstudentspracticeimplementingsortingcode.UseAPquestions(like#17inthe2009exam)togivestudentspracticeatrecognizingaright-to-leftselectionsortandchoosingthecorrectinnerforloop.

OptionalLesson

Analternativelessonplanisoutlinedhere.Thislessonexaminesthesortingmethodsingreaterdetail,andtakesatleast2classperiodstoconduct.Ifyouarepressedfortime,youshouldnotusetheseplanssincetheytakemoretimetocover,andaddressthematerialinamorechallengingway(thoughtheactivitiesarecleverlydisguisedasfun)!

1. Introducetheseactivitiesinlieuoftheonesmentionedinthelessonplanabove.

Bring8studentstofrontofclassroom,giveeachapieceofpaperwithauniquesimplenumberonit,whichtheyholdsoclasscansee.

Pick“SortMasters”fromtheremainderoftheclasstogivethe8studentsinstructionsabouthowtogetintosmallest-to-biggestorder.

AllowthefirsttwoSortMasterstogiveinstructionswithoutcommentary,unlessitlooksliketheyareexplicitlyusingselectionsort(movelowest/biggestnumbertooneend)orinsertionsort(moveanumbertocorrectposition)orbubblesort(AandBareinwrongorder,soswap),inwhichcasenamewhattheyaredoingandencouragethemtobeexplicitindescribingtheirinstructions.

Lesson7.02:SortingAlgorithms

429

Inthisfirstactivity,donotworryaboutexplicitcomparisonsoftwonumbersatatime,SortMasterscanpicksmallest/largestdirectly.

IfthefirsttwoSortMastershavenotshowninsertionorselectionsort,telltheclassthatthey’regoingtolookatthismoresystematically/algorithmicallynow.

Ifselectionsortnotcovered–askanewSortMasterwhoshouldgofirst?Whoshouldgosecond(selectionsort)?

Ifinsertionsortnotcovered–askanewSortMastertostartwithaskingwhethersecondpersonshouldgobeforeorafterfirst?Wherethirdpersonshouldgorelativetofirstandsecond?

Studentsbacktoseats;askforacomparisonofselectionvs.insertionsort:

Selection:Whogoesinthenextposition?

Insertion:Intowhichpositiondoesthenextpersongo?

2. Activity1A:IntroduceideathatwhileSortMasterscouldeyeballeveryonetoseewhogoesnext,computerscanonlycomparetwothingsatatime.

Distributebalancesandweights.Instructeachteamtostartwithweights1-8inorder.Activity1AisessentiallysameasActivity1,exceptyouexplicitlytellstudentstousetheideaofSelectionSortwhenorderingtheirweights.

Studentsdiscussquestionsintheirgroups,answeringquestionsincludingnumberofcomparisons.

3. Activity1B:StudentsthenmoveontoActivity1B,sameas1A,exceptexamininginsertionsort.Studentsshouldbeexplicitlytoldtoresettheirweightsininitialorder.

Asatrick,setupinitialweightsformostgroupsinrandomorder,butatleastonegroupshouldhaveinitialpositionsinascendingweightorder,andanotherwithweightsindescendingweightorder.

Comebacktoclassdiscussion.Expectgroupstohavesimilarnumbersofcomparesforselectionsort,butwidelydifferentnumbersforinsertionsort.

Asa“grandreveal,”announcethedifferentstartconditions,sostudentswilldiscoverthissignificantbehaviordifferencebetweenselectionandinsertion.

TeacherPriorCSKnowledge

Lesson7.02:SortingAlgorithms

430

Manystudentslearnbubblesortasoneofthefirstsortingalgorithms.Givenbubblesortslargeamountofswappingintheworstcase,itisaterriblesortingalgorithm.However,ifyouaskstudentstoformalinecreatingarandomlistandthentogetinsizeplaceorder,thealgorithmtheyusuallyuseissomesortofbubblesortwhereeachstudentiscomparedtothestudentnexttothem.

Whengivenadeckofrandomcardsandaskedtosortthem,studentsusuallycomeupwitheitherselectionsortorinsertionsort.However,theselectinsortusedtosorttherandomcardsisdifferentfromtheactualalgorithmused.Selectionsortswapsthenextsmallest(orlargest)iteminthelist.However,whenstudentsselectthenextsmallestitem,theyinsertitinthecardsalreadysortedandshifttheremainingcardsdown.Youcanimplementaselectionsortinthismanner,ittakesamuchlargernumberofswaps.

MisconceptionsSelectionsortrequirestheuseofindexesinanarrayinordertokeeptrackofthenextlowest(orhighest)item.Thisrequiresstudentstothinkinonemorelevelofabstraction.Oftentimesstudentswillstartwithsavingthenumberandthenrealizetheyneedtheindex.Whattheyendupwithistwovariables,oneforthesavednumberandonefortheindex.

VideoBJP13-2,Sortinghttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c13-2

CSE143,BubbleSort(optional)(8:34–13:38)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=1fdd364a-4d01-49cf-96b3-ce2f67b77dcf&start=514

CSE143,InsertionSort(13:39–16:13)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=1fdd364a-4d01-49cf-96b3-ce2f67b77dcf&start=819

CSE143,SelectionSort(16:14–17:21)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=1fdd364a-4d01-49cf-96b3-ce2f67b77dcf&start=974

ForumdiscussionLesson7.02SortingAlgorithms(TEALSDiscourseaccountrequired)

Lesson7.02:SortingAlgorithms

431

Lesson7.02:SortingAlgorithms

432

Lesson7.03—ElevensLab

Overview

Objectives—Studentswillbeableto…

Completealong-formlab,demonstratingeffectiveuseofobject-orientedprogramdesign,programimplementationandanalysis,andstandarddatastructuresandalgorithms.

Assessments—Studentswill…

CompletetheElevensLab

Homework—Studentswill…

Alistofhomeworkassignmentsisprovidedbelow.

Materials&PrepElevensLabTeacher’sGuideClassroomcopiesoftheElevensLabStudentGuideAssociatedElevensLabActivityStarterCode

ReadthroughtheTeacher,Student,andExtensionguidesaheadoftimetofamiliarizeyourselfwiththepartsofthislong-formlab.Usingtheguides,completethelabonyourowntospotpossiblechallengesforyourstudents.Sincelaterstartercodepackagesincludeanswerstotheearliersectionsofthelab,werecommendthatyoudonotuploadallstudentfilesontocomputerdesktopsforstudentaccess.Ifpossible,emailActivityNStarterCodetostudentsthedayofthelab.Otherwise,uploadfilesmanuallytoeachdesktopbeforeeachclassperiod.

PacingGuide:Day1

Lesson7.03:ElevensLab(16Days)

433

Section TotalTime

StudentActivity1 Fullclass

Homework:Readsection13.3Completeself-checkquestions#16–21,23–24

TONIGHT

PacingGuide:Day2

Section TotalTime

StudentActivity2 Fullclass

Homework:Readsection13.4Completeself-checkquestions#27-30

TONIGHT

PacingGuide:Day3

Section TotalTime

StudentActivity2,continued Fullclass

Homework:Summarizenotesandfillinmissingdaysfornotebookchecktomorrow.

TONIGHT

PacingGuide:Day4

Section TotalTime

StudentActivity3Seenotesforleadingclassroomdiscussionbelow Fullclass

NotebookChecks Duringclass

Homework:OutlineChapter13 TONIGHT

PacingGuide:Day5

Lesson7.03:ElevensLab(16Days)

434

Section TotalTime

StudentActivity3,continued Fullclass

NotebookChecks Duringclass

Homework:ReadandhighlightChapter8ofBarron’s(OPTIONAL)

TONIGHT

PacingGuide:Day6

Section TotalTime

StudentActivity4 Fullclass

Gradestudentoutlines Duringclass

Homework:TaketheChapter8examinBarron’sreviewbook.Gradeyouranswers.(OPTIONAL)

TONIGHT

PacingGuide:Day7

Section TotalTime

StudentActivity5(OPTIONAL) Fullclass

CheckBarron’sReviewbooksforhighlighting,notetaking,andpracticetestcompletionandcorrection.(OPTIONAL)

Duringclass

PacingGuide:Day8

Section TotalTime

StudentActivity5,continued(OPTIONAL) Fullclass

CheckBarron’sReviewbooksforhighlighting,notetaking,andpracticetestcompletionandcorrection.(OPTIONAL)

Duringclass

PacingGuide:Day9

Lesson7.03:ElevensLab(16Days)

435

Section TotalTime

**StudentActivity6 Fullclass

CheckBarron’sReviewbooksforhighlighting,notetaking,andpracticetestcompletionandcorrection.(OPTIONAL)

Duringclass

Homework:Correctallhomework&classworkassignmentsforresubmissionandgrading

TONIGHT

PacingGuide:Day10

Section TotalTime

StudentActivity7 Fullclass

Homework:Correctallhomework&classworkassignmentsforresubmissionandgrading

TONIGHT

PacingGuide:Day11

Section TotalTime

StudentActivity8 Fullclass

Re-gradecorrectedassignments Duringclass

PacingGuide:Day12

Section TotalTime

StudentActivity9 Fullclass

Re-gradecorrectedassignments Duringclass

PacingGuide:Day13

Lesson7.03:ElevensLab(16Days)

436

Section TotalTime

StudentActivity9,continued Fullclass

Re-gradecorrectedassignments Duringclass

Homework:Submit5questionsviaelectronicsurveyfortestreview TONIGHT

PacingGuide:Day14

Section TotalTime

StudentActivity10(OPTIONAL) Fullclass

Re-gradecorrectedassignments Duringclass

PacingGuide:Day15

Section TotalTime

StudentActivity11(OPTIONAL) Fullclass

PacingGuide:Day16

Section TotalTime

StudentActivity11(OPTIONAL) Fullclass

ProcedureAllguides,samplecode,answercode,andexamplecodemaybefoundinthefolder“Milestone3ElevensLab.”

1. Tohelpstudentsstartthelabsmoothly,startActivity1asawholegroup.

2. EncouragestudentstousetheirTrickyCodeCheatSheets,4CommandmentsofScope,notebooks,textbooks,classroomposters,andhomeworkassignments.

3. Offeroccasionaltime-checkstohelpkeepstudentsonpace.

4. Gradenotebooksandreviewbooksinbetweenhelpingstudentssostudentscankeepnotebooksforhomeworkandstudyingintheevenings.

Lesson7.03:ElevensLab(16Days)

437

AboutBarron’s

Barron’sisanAPCSAreviewbookthatsomeschoolsprovidestudents.Ifyourschooldoesn’tprovideBarron’stherearemanyalternativehomeworkassignmentsthatcanbefoundatcodingbat.com/javaorpractice-it.

Alternatively,youcansavetimespentonthelabbycheckingactivitiesashomework.

NotesforIntroductionLectureforActivity3

1. Theteacher’sguiderecommendsleadingtheactivitywithadiscussiononwhatmakesagoodshufflingalgorithm.

TheCollectionsclasshasamethodcalledshufflethatacceptsalistasitsparameter,andrearrangesitselementsrandomly:

Collections.shuffle(list);//Wherelististhenameofthearrayyouwant

toshuffle.

AskstudentswhatSystem.out.printlnmethodtheycouldcalltogetthetopcard(orfirstelement)ofthearray.

System.out.println("Topcard="+list.get(0));

AccommodationandDifferentiationEachdaythatyoubeginthelab,startwithaquicksurveyofstudentconcernsandquestions.Asneeded,allowstudentstopairuptohelpeachotherwithreadingcomprehension(butremindstudentsthattheyeachmustsubmittheirowncode).

Adaptationsforgroupworkcanbefoundonpage17oftheTeacher’sguide.

InELLclassrooms,readalldirectionsaloudbeforebreakingintoindividualpractice,andallowuptotwicetheamountoftimeforcompletionofthelab.

Tosavetimeonthelab,skiplessonsmarkedasoptional.

Encourageadvancedstudentstoworkthroughtheoptionallabactivities.Otherwise,thesestudentscanserveasstudentTAs,helpingotherswhentheygetstuckoncode.RemindstudentTAsnottogiveanswersdirectly,buttoaskleadingquestionsandmodelingsolutionstosimilarproblems.

Lesson7.03:ElevensLab(16Days)

438

ForumdiscussionLesson7.03ElevensLab(TEALSDiscourseaccountrequired)

Lesson7.03:ElevensLab(16Days)

439

Lesson7.04—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit7knowledge.

Assessments—Studentswill…

Createapersonalizedlistofreviewtopicstoguidetonight’sstudysession.

Homework—Studentswill…

Studyfortomorrow’stestusingtargetedreviewlist

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopics

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewofstudentquestions 40min

Checkstudentstudylists 5min

Procedure

Bell-workandAttendance[5minutes]

Lesson7.04:Review

440

ReviewofStudentQuestions[30minutes]

1. Clearlyindicatethatyouexpectallstudentstohavealistofreviewtopicstostudythisevening.Periodicallyremindstudentsthatthislistwillbecheckedattheendofclass.

2. Beginwithareviewofstudent-submittedquestionsbeforereviewingthepracticequestions.

3. Finally,workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

Somequestionsyoumayaddresswhileworkingthroughthesampletest.

Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

4. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

5. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.

CheckStudentStudyLists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclistasaclassparticipationgrade.

ForumdiscussionLesson7.04Unit7Review(TEALSDiscourseaccountrequired)

Lesson7.04:Review

441

Test6GuideAswritten,thetestforthisunitisprobablytoolongforstudentstocompleteinoneclassperiod.Extraquestionshavebeenincludedsoyoucan:

1. Pickandchoosewhichquestionswillappropriatelyassessyourstudents.

2. Createdifferentversionsofthetest(ifyou’venoticedthatcheatingisaproblem).

3. SimulateanauthenticAPtestexperience.

Whenmodifyingthetesttosuityourstudents,don’tforgetto:

1. ChangetheheadingsonSectionI&IItoreflecttheactualnumberofquestions.

2. ChangetheheadingsonSectionI&IItoreflectthecorrectpercentagesoftheirtotaltestscore.TheAPexamweightsSectionI&IIat50%oftheoverallscore,each.

3. Adjustthetestpacingforyourclassperiod’stimespan.Theultimategoalistoworkyourstudentsuptoapaceof90secondsperSectionIquestion,and26minutesperSectionIIquestion(includingtimeforchecking).

4. KeeptrackofwhichquestionsyouremovefromthetestsoyoucanusethemduringUnit9testprep/review.

Eveninthefinal(reduced-size)version,thetestwillbeverylong.Besuretotakethisintoaccountwhenphotocopyingversionsofthetest.Ifyouteachmultiplesectionsofthisclass,youmaywanttohavestudentsusebubble-insheetssoyoucanerasestudentmarkingsandre-usetestpacketsbetweenclassperiods.

ForumdiscussionTest6Guide(TEALSDiscourseaccountrequired)

Test6Guide

442

Lesson8.00—TestReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit7.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

ReadBJP12.1upto“StructureofRecursiveSolutions”Correctanyincorrecttestanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Classdiscussion(ifneeded) 10min

Testreviewandreteach 35min

Checkstudentnotesandreturntests 5min

Lesson8.00:TestReview&Reteach

443

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’testsbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

ClassDiscussion(ifneeded)[10minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Withyourco-teachersand/orTAsyoushoulddecidehowtoshiftfocusastheAPtestisrightaroundthecorner.Withyourstudents,youshouldfollowthesamepost-mortemformatasinotherreviewunits,butwiththeAPexaminmind.

DoyourstudentswanttofocusonSectionIItesttakingstrategies?

Perhapstheyfeeltheyneedtodrillquick-responseSectionIquestions?

Asasanity-check,studentsshouldberemindedthattheyonlyhave1.5minutestosolveeachSectionIquestionontheAP.Iftheyarenotenearthispace,orifthisisanunrealisticgoal(duetolanguageand/orreadingbarriers),decideasaclasstofocusontest-takingstrategies(skipping,guessing,processofelimination)toreduceanxietyandrecoupsomepotentiallylostpoints.

2. Onceyoufeelthatadialoguehasbeenestablished,validatestudents’feelingsthenchallengethem(e.g.APcoursesarestressful,butthisisgoodpracticeforcollege,wherethepaceisfasterandprofessorsdon’tgivepersonalizedinstruction).Studentscangetverydiscouragedduringthistimeofyear.Inspireandamuseyourclassbypointingoutoldwordwallsorassignments(ifyoustillhavethemup),showingstudentshowfartheyhavecomesincethebeginningoftheschoolyear.

TestReviewandReteach[30minutes]

1. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

Lesson8.00:TestReview&Reteach

444

Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

2. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

3. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

4. ForSectionIIquestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

Checkstudentnotesandreturntests[5minutes]

Attheendofclass,checkstudentnotes,andreturnthetestsinhardcopyformifapplicable.

AccommodationandDifferentiationEncourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,choosethesestudentstocreateyourclassroompostersafterschoolorforextracredit.

ForumdiscussionLesson8.00TestReview&Reteach(TEALSDiscourseaccountrequired)

Lesson8.00:TestReview&Reteach

445

Lesson8.01—ThinkingRecursively

Overview

Objectives—Studentswillbeableto…

Definerecursion.

Assessments—Studentswill…

DescriberecursivemethodsCompareiterativeandrecursivemethodsduringaclassdiscussion

Homework—Studentswill…

ReadtherestofBJP12.1

Materials&PrepProjectorandcomputerWhiteboardandmarkersBookmarksoneachcomputer(orURLonprojector)for(http://www.softschools.com/games/logic\_games/tower\_of\_hanoi)

YoushouldfamiliarizeyourselfwiththeTowerofHanoiasneeded.The(exhaustive)Wikipediaarticlecoversthedifferentalgorithmsthatmaybeusedtosolvetheproblem(here:http://en.wikipedia.org/wiki/Tower_of_Hanoi).Ifyouarepressedfortime,youshouldreadtheintroduction,origins,iterativeandrecursivesolutionsonly.Thestory/legendassociatedwiththepuzzleissummarizedhere:(http://www.qef.com/oise/hanoi/hanoi01.html).

PacingGuide

Lesson8.01:ThinkingRecursively

446

Section TotalTime

Bell-workandattendance 5min

Activity:TowerofHanoiGame 15min

ClassDiscussion&Solutions 20min

Lecture 10min

ProcedureYourhooktodayistoinvitestudentstoplaytheTowerofHanoigameassoonastheyentertheclassroom.Youshouldnotofferanycluesorhintsastowhytheyareplayingthegame;onlysupplytheinformationoutlinedinthe“Activity”sectionbelow.

Bell-workandAttendance[5minutes]

Activity:TowerofHanoiGame[15minutes]

1. HavestudentsnavigatetotheTowerofHanoigameatthelinklistedin“Materials&Prep”.

2. Tellstudentsthattheyhave15minutestowinthegame.

Astheyplaythegame,theyshouldtakenotesonwhatstrategieshaveworkedandwhichoneshavefailed.(Pointoutthattheyaredevisingtheirownalgorithms.)

Theyarenotallowedtonavigatetoanyotherwebsite.(Ifyoudocatchstudentscheating,it’sactuallyabonus!They’retakingtheinitiativetolearnandunderstandanalgorithmthatusesrecursionJ)

3. Ifstudentsfinishearly:

InvitethemtotrytooptimizetheirsolutionInvitethemtotrythegameusingalargerstackofrings.

4. After10–15minutesofplay(orsooner,ifyouhaveaparticularlyadvancedclass),calltheclassbacktogetherforawholegroupdiscussion.

ClassDiscussion&Solutions[20minutes]

1. Beginthegroupdiscussionwiththefollowingseriesofwarm-upquestions.Usethesesoft-ballquestionstoengagestudentswhoareusuallyshyorquietinclass.

Didyouenjoythegame?

Lesson8.01:ThinkingRecursively

447

Didyouwin/solvethegame?Howlongdidittakeyoutosolvethegame?Haveanyofyoueverplayedthisgamebefore?Haveyouheardofthisgamebefore?

2. Ifyourclassisinterestedinsuchthings,explaintothemthehistoryofthegameanditsinitiallegend(thisinformationcanbefoundfollowingthelinksin“Materials&Prep.”)

3. Askyourstudentsabouttheirsolutions(ornon-solutions,ifnoonehascorrectlysolvedtheprobleminthetimeallotted).

Whatstepsdoyoutaketosolvetheproblem?Whatdoesyouralgorithmlooklike?

Ifstudentssuggestaniterativesolution(foranexample,refertotheWikipediapage),pointoutthatthereisafaster/moreefficientalgorithmtheycanuse.

Ifastudentsuggestsarecursivesolution(ifyouneedanexample,checktheWikipediapage),pointoutthatthissolutionisthefastestsolutiontotheproblem.Intheworldofcomputing,that’sagreatthing!ButinthestoryabouttheBuddhistmonks,weprobablywouldn’twanttosharethissolutionwiththem.

Didanyoneuseadifferentsetofstepsorrules(heuristics)tosolvetheproblem?

Asadesignapproach,whatshouldbeourfirststepinthinkingaboutsolvingthissolution?(Canwebreaktheproblemdownintosmallerproblemsthatareeasiertosolve?)

4. Onceyou’vecompletedadiscussionaboutthealgorithms’studentsused,watchtheanimationasaclass,askingstudentstopointoutwhatpatternstheyseeinthesolution.

Linktoanimationishere:http://www.eisbox.net/blog/2009/04/06/tower-of-hanoi-animation/

Alessattractive,buteasiertofollowanimationcanbefoundhere:https://www.youtube.com/channel/UCMDuzeB8MqT_-AwFGT8qQ-g/search?query=Hanoi

Lecture[10minutes]

1. Providestudentswiththefollowingdefinitions:

Iteration/Iterative:Aprogrammingtechniqueinwhichyoudescribeactionstoberepeatedtypicallyusingaloop.

Recursion/Recursive:Aprogrammingtechniqueinwhichyoudescribeactionstoberepeatedusingamethodthatcallsitself.

Lesson8.01:ThinkingRecursively

448

2. Askstudentswhichalgorithmsfromyourclassdiscussionwereiterative,andwhichoneswererecursive.Youshouldseeifstudentscancomeupwitha“ruleofthumb”thathelpsthemdecidewhenamethodisrecursiveinsteadofiterative.(Thekeyisthatthemethodwillcallitselfinthemethodbody!)

3. Iftimeallows,watchtheanimationagain,andaskstudentstonarratetheanimationusingrecursivepseudocode.(Correctanswerswillincluderuleslike“TomoveapileofheightNfromAtoC,movethepileofheightN-1fromAtoB,movetheNthdiscfromAtoC,thenmovethepileofheightN-1fromBtoC.”Thisisatoughproblemtoarticulate—theimportantpartisthatstudentsunderstandthatbreakingtheproblemintosmallerpartsisthekeytofindingthesimplestproblemtosolve(nextlessonwilldiscussthe“basecase.”)

Besuretospotcheckstudentsforunderstandingduringtheclassdiscussionandnote-takingsession.Ifyouwouldratherassessstudentsformally,givestudentsaquickticket-to-leaveassignment:havethemhandyouapieceofpaperwiththeirnameandtheirdefinitionofrecursionastheywalkoutthedoor.

AccommodationandDifferentiationIfstudentsneedadditionalmodelingofiterativeandrecursivemethods,reviewtheseexamplesoutlinedinthebookchapter:

ThewriteStarsprogramtakesanintegerparameternandproducesalineofoutputwithnstarsonit.Here’stheiterativesolution(youknowit’siterativebecauseitusesaloop):

publicstaticvoidwriteStars(intn){

for(inti=1;i<=n;i++){

System.out.print("*");

}

System.out.println();

}

ThissameprogramcanbewrittenusingarecursiveversionofthewriteStarsmethod(weknowit’sarecursivemethodbecauseitcallsitselfinthemethodbody):

Lesson8.01:ThinkingRecursively

449

publicstaticvoidwriteStars(intn){

if(n==0){

System.out.println();

}else{

System.out.print("*");

writeStars(n-1);

}

}

Ifyourstudentsarespeedingthroughthislesson,askthemtotryoutthealgorithmsproposedduringtheclassdiscussion.Havestudentstrackhowmanymoveseachapproachtakes,andhaveyourstudentsexplainifarecursivemethodisfaster.

Forabroaderdiscussionofself-referenceinothercontexts(language,art,andliterature)getstudentsthinkingabouttermslike“neveragain”orplayCarliSimon’s“You’reSoVain”(https://youtu.be/b6UAYGxiRwU).

TeacherPriorCSKnowledgeManyproblemscanbesolvedwitheitheriterationorrecursion.Ingeneral,iterativesolutionsrunfasterthanrecursivesolutionsbecausetherecursivecallhastheaddedoverheadofmakingafunctioncall.Inaddition,thereisamemorycosttoeachfunctioncall.Manycompilerscanoptimizecertaintypesofrecursivealgorithmsliketailrecursiontominimizethedifferenceinexecutiontimeandmemoryusage.

MisconceptionsWhenthebasecaseismetexecutionoftherecursivecallendsandexecutioncontinuesfromtheinitialrecursivecall.Thismaybeconceptuallytruefortailrecursionbutalthoughdesirable,notallrecursivecallsconformtothispattern.

CommonMistakesRecursioncommonmistakes:http://interactivepython.org/runestone/static/JavaReview/Recursion/rMistakes.html

Video

Lesson8.01:ThinkingRecursively

450

BJP12-1,RecursiveTracinghttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c12-1

CSHomeworkBytes,Recursion,withMaxinehttps://www.youtube.com/watch?v=a2Op-yPcm-A

CSE143,Recursion(6:32–32:28)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=c698c41a-6872-46d3-9c55-87ce2ba78276&start=392

ForumdiscussionLesson8.01ThinkingRecursively(TEALSDiscourseaccountrequired)

Lesson8.01:ThinkingRecursively

451

Lesson8.02—WritingRecursiveSolutions

Overview

Objectives—Studentswillbeableto…

Identifyrecursivemethods.Predicttheoutput(orreturnvalue)ofrecursivemethods.

Assessments—Studentswill…

Evaluatestatementsandpredictoutputduringagameofgrudgeball

Homework—Studentswill…

ReadBJP12.2Completeself-checkquestions#5,7-9andexercise#1

Materials&PrepProjectorandcomputer(optional)WhitepaperandmarkersRulesforgrudgeball(seewebsitefordetails:http://toengagethemall.blogspot.com/2013/02/grudgeball-review-game-where-kids-attack.html)Teamassignmentsthatdivideyourclassinto5or6teamsNerfhoop&ball(orwastepaperandtrashcan)Taped2-and3-pointlines

BrieflyreviewtherulesofGrudgeballifyouhaveforgottenthem.Ifyouhaveremovedyour2and3pointlinesfromlasttimeyouplayed,testoutyour2and3pointlinesbeforeclassbegins.IfyoudonotwishtoplayGrudgeballinyourclassroom(orifyouareunableto),mostGrudgeballquestionscanbefoundintheself-checkquestionbankfor12.1.

PacingGuide

Lesson8.02:WritingRecursiveSolutions

452

Section TotalTime

Bell-workandattendance 5min

Introductionandnote-taking 15min

Activity:Grudgeball 35min

ProcedureTohookyourclassfortoday’smaterial,andifspaceandwhiteboardsetupallow,setupthegrudgeball“court”andscoreboardbeforeclassbegins.Remindstudentsthatlecturecontentwillbetestedduringthegame.

Bell-workandAttendance[5minutes]

Introductionandnote-taking[10minutes]

1. Beginbyaskingstudentswhatmakesamethodrecursive(itcallsitself).Askstudentstooffersuggestionsastohowtowritearecursivemethod.Usingpseudocode(oractualcode,iftheyofferit),outlinetheirsuggestionontheboard.Itshouldlooksomethinglikethis:

publicstaticvoidwriteStars(intx){

writeStars(x-1);//Printsastar.

}

2. Don’tworryifstudentsdon’tincludeabasecase!Congratulateyourstudentsonrememberingthatthemethodcallsitself,thenaskstudentshowthismethodissupposedtostop.(Itwon’t!Thisiscalledinfiniterecursion.)Tomakesurethatyouwriterecursivemethodsthatwork,youneedtoremember2keyingredients:

Basecase:acasewithinarecursivesolutionthatissosimple,itcanbesolvedwithoutneedingtocallthemethodagain(arecursivecall).

Recursivecase:Acasewithinarecursivesolutionthatinvolvesreducingtheoverallproblemtoasimplerproblemofthesamekindthatcanbesolvedbyarecursivecall.

3. Addthese2ingredientstotheexampleyoucurrentlyhaveontheboard.Itshouldlooksomethinglikethis:

Lesson8.02:WritingRecursiveSolutions

453

publicstaticvoidwriteStars(intx){

if(x==0){

//Thisisthebasecase:"write0stars"needsnoadditionalmethod.

System.out.println();

}else{

//Thisistherecursivecase:writeonestar,thenwritehowevermany

//starsareleft.

System.out.println("*");

writeStars(x–1);

}

}

4. Emphasizetostudentsthatyoucanwritemorethanonerecursivecase,butyoumustalwayshaveatleast1basecaseand1recursivecase,orthecodewon’twork.(Becauseyouneedbothtypesofcases,recursivesolutionsareoftenwrittenasif/elseornestedstatements.)

5. Askstudentstoexplainwhatdoesn’tworkaboutthiscode,andaskthemtocorrecttherecursivecodehere:

publicstaticvoidwriteStars(intx){

System.out.print("*");

writeStars(n-1);

}

There’sarecursivecase,whichisgood,butthereisnobasecase!Thiscausesinfiniterecursionsinceithasnowayofstopping.Insteadofstoppingat0stars(whichiswhatthebasecasewouldbe),thecodewilltrytowrite-1,-2,-3…starsforever!

Activity:Grudgeball[35minutes]

1. Dividestudentsintotheirassignedteams.

2. Reviewtherulesforgrudgeball,andhavethestudentsrepeattherulesbacktoyou.

3. Usingtheproblemslistedbelow(andanyyoumayadd,dependingonyourclass’needs),playgrudgeballuntilateamwins,oruntiltheclassperiodends.

Ifaclassgetstheanswerwrong,BRIEFLYpausethegametohavestudentsoffercorrectionsbeforemovingtothenextteam’squestion.

Ifcorrectionseemstobedraggingon,jumpinandquicklyre-teachusingtheincorrectanswerasyourexample.Itisimportanttokeepthepacegoingtomaintainstudentinterestinthegame!

Lesson8.02:WritingRecursiveSolutions

454

Gudgeballproblems&answershavebeengroupedassumingthatyouhave6teams.Ifyouhavefewerteams,each“round”willbeshiftedaccordingly,soyoumayhaveroundswheredifferentteamsarepracticingdifferentconcepts.Judgeeachteam’sknowledgegaps,andadjustwhichquestionsyouaskeachgroupaccordingly.

4. QuestionsforyourGrudgeballgamearelistedbelow:

GRUDGEBALLPROBLEMS

ConceptualQuestions

a)Whatisrecursion?b)Howdoesarecursivemethoddifferfromaniterativemethod?c)Whatdoyoulookforinarecursivemethod?(Whatpartsdoesithave?)d)Whatisabasecase?e)Whatisarecursivecase?f)Doesarecursivemethodneedtohavebothbaseandrecursivecases?g)Whydoesarecursivemethodneedtohaveabasecaseandarecursivecase?h)Canarecursivemethodhavemorethanonebasecase?i)Canarecursivemethodhavemorethanonerecursivecase?j)Whathappensifarecursivesolutionismissingabasecase?

Predict-the-OutputQuestions

Usethefollowingmethodforquestionsk–s:

publicstaticvoidmystery1(intn){

if(n<=1){

System.out.print(n);

}else{

mystery1(n/2);

System.out.print(","+n);

}

}

Whatistheoutputproducedbythemethodcallindicated?

k)mystery1(1);l)mystery1(2);m)mystery1(3);n)mystery1(4);

Lesson8.02:WritingRecursiveSolutions

455

o)mystery1(16);p)mystery1(30);q)mystery1(100);r)mystery1(-1);s)mystery1(2.2);

Predict-the-OutputQuestions(continued)

Usethefollowingmethodforquestionst–x:

publicstaticvoidmystery2(intn){

if(n>100){

System.out.print(n);

}else{

mystery2(2*n);

System.out.print(","+n);

}

}

Whatoutputisproducedbythemethodcallindicated?

t)mystery2(113);u)mystery2(70);v)mystery2(42);w)mystery2(30);x)mystery2(10);

AccommodationandDifferentiationInELLclassrooms,readthequestionsaloudinadditiontoshowingthequestionontheboardorprojector.Considerdistributingaworksheetwiththequestionsonitsostudentscanwritedownanswersduringthegame.

Ifstudentsarehavingdifficultywiththe“predicttheoutput”questions,astep-by-stepexplanationofhowarecursivemethodexecutescanbefoundhere(http://tinyurl.com/lablr3h).Youcanpatternyourexplanations/re-teachingtostudentsusingthesamemethod.

Misconceptions

Lesson8.02:WritingRecursiveSolutions

456

Whentherecursivecallismade,mistakenlythinkingthesameparameterisbeingusedinsteadofadistinctcopyfortherecursivecall.

Theonlytimethebasecaseiscalledisiftheinitialcallisthebasecase.

VideoBJP12-2,ImplementingaRecursiveFunctionhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c12-2

ForumdiscussionLesson8.02WritingRecursiveSolutions(TEALSDiscourseaccountrequired)

Lesson8.02:WritingRecursiveSolutions

457

Lesson8.03—MechanicsofRecursion

Overview

Objectives—Studentswillbeableto…

Modelhowrecursivemethodsexecute.

Assessments—Studentswill…

WritearecursivemethodModeltheexecutionofthatmethodfortheinstructorModelamethodwrittenbytheirpeers

Homework—Studentswill…

Completeself-check#6,10andexercise#3

Materials&PrepProjectorandcomputerforhook(https://youtu.be/3WBvS_n2oTY)WhiteboardandmarkersClassroomcopiesofWS8.3,TeacherDemo8.3OnepairofscissorsforeachgroupSmallgroupassignments(~4studentspergroup)Classroomcopiesofthetextbook(optional)PrintoutforTeacherDemo8.3(optional)

Carefullyreadthroughthe“MechanicsofRecursion”exampleinsection12.2.YoushouldmakeacopyofWS8.3foryourselfanddotoday’sactivitybeforedeliveringthelessonsoyoucansmoothlydemonstrate(andcheck)howtomodelarecursivemethod.Ifyoudecidetomodelanexamplefortheclassbeforetheactivity,usethepre-printedexamplesostudentscan’tjustcopytheirsamplemethodfromthebook.

PacingGuide[Optional,LessonsVary]

Lesson8.03:MechanicsofRecursion

458

Section TotalTime

Bell-workandattendance 5min

Discussionofhook&introduction 15min

Activity1:ModelingRecursiveMethods 20min

Activity2:ModelingaPeer’sMethods 10min

ProcedureOnyourclassroomprojectororscreen,havetheanimationoftheDragonCurveplayingonaloop(linkin“MaterialsandPrep”).Adjusttheplayertoplay2xspeedtokeepstudentinterest;youmaywanttomutethemusic.Asbell-work,askstudentshowthisanimationisanexampleofrecursion.Theirexplanationshoulddescribetherecursivecaseinpseudocode.

Bell-workandAttendance[5minutes]

DiscussionofHook&Introduction[15minutes]

1. Beginbyreviewingthehook/Bellworkwithstudents.Theremaybesomedebateastowhattherecursiveandbasecasesareforthiscurve;allowtimeforstudentstoargueandcometoconsensus.Studentsshouldunderstandthat(A)thebasecaseisjustasinglestraightline,and(B)therecursivecaseinvolvesrepeatedthelinewitha90°turn.

2. There’sanimportantdistinctiontobemadehere:theanimationslinkedtofromthislessonshowrecursionfromthe“bottomup.”Thisisnotthewaythatrecursionworks.Themodelingactivityisabetterrepresentationoftherecursiveprocess;theanimationsaremeantonlytodemonstratehoweventhesimplestrecursivemethodcanquicklyyieldlarge,complexresults.

Ifyoufeelitmightbehelpfultoshowyourstudentsarecursiveimplementationofdrawingthedragoncurve,youcanfindonehere:https://scratch.mit.edu/projects/65378560/.

Ifyourclassisfairlyadvanced,youmaywanttoskipTeacherDemo8.3.AdvancedstudentswillbenefitfromexploringthemodelontheirownasoutlinedinWS8.3.However,formanyclassesadditionalscaffoldingwillbeneeded.

3. Toperformthedemo,youshould:

CutoutthecardsintheTeacherDemo8.3

Lesson8.03:MechanicsofRecursion

459

Ifyouhaveaclassroomprojector,dothedemonstrationunderthecapturesoyourcardsaremagnifiedtothepointwherestudentsinthebackoftheclassroomcanseewhatyouaredoing.Ifyoudonothaveamagnifyingprojector,youmaywanttodothisdemoasyouwalkaroundtheclass,showingstudentswhatisoneachcard.

ExplaintostudentsthatyouaremodelingJava’scallstack.AcallstackisthewaythatJavakeepstrackofthesequenceofmethodsthathavebeencalled.Themodelyourusingtodayisanotherwayoftrackingflow-of-control.

Tellstudentsthatinyourexampleyou’llbemodelingamethodthatreversesalistofwords.Whenstudentsbreakintogroupsfortheactivity,theywillbewritingtheirownrecursivemethodsandmodelingJava’scallstackforthemethodsthathavebeencalled.

Brieflyreviewthereversemethodintroducedin12.2.

4. ShowstudentsthefirstpieceofpaperformTeacherDemo8.3withthemethoddefinition.

i. Thisshouldlookprettyfamiliartostudents,buthavethempointouttoyoutherecursivecase(input.nextLine())toreview.

ii. Pointouttostudentsthenewfeatureonyourmodelthatholdsthelocalvariableline.Askstudentswhattheythinkthisrepresents?(Itisaplaceinthecomputer’smemorythatstoresthevariableline.)

iii. Askstudentstonarratewhathappenswhenwecallthereversemethod.

iv. Writethethisvariableontheslipofpaper,andaskstudentswhathappensnext.Themethodwillgetcalledagain—butbecauserecursionworksdifferentlythaniterativecode,wedon’tjustrunthroughthemethodagainlikewithaloop.

v. Takeoutthesecondcopyofthereversemethod,andplaceitoverthefirstpaper,asindicatedinthetextbook.Havestudentswalkyouthroughthemethodagainandtellyouwhatlocalvariablewillgetwritteninthestoragespaceatthebottomofthepaper(“is”).

vi. Repeatthesestepsuntilyouhavereachedthebasecase(thefifthsheetofpaper).Askstudentswhatthelocalvariableis,anddiscusswhathappenswhenthereisnowordlefttoreverse.(Theinput.hasNextLine()returnsfalse,sothatmethodterminates.)

vii. Nowremovethatfifthcardfromthepile,revealingthefourthcopyofthemethodagain.LetstudentsknowthatJavareturnstowhereitwasbeforeitexecutedthecallthatjustterminated.

Lesson8.03:MechanicsofRecursion

460

i. Askstudentswhathappensnext.(Weprinttheline“no?”andterminate.)Writethisoutputontheboardsostudentscankeeptrackoftheoutput.

ii. ThismeansthatJavanowgoestotheplacewhereitwasbeforeitterminatedthiscall.Askstudentswhatyoushoulddonowinyourmodelingofthisrecursivemethod.(Takeoffthiscard,andrevealthethirdmethodcard.)

viii. Continueinthiswayuntilyouhavereturnedtothefirstcard.

ix. Ifyouneedtorepeatsectionsofthisdemo,dosountilyoufeelthat50%ofyourclassunderstandstheprocess.Atthispoint,studentsshouldbeabletohelpeachotherlearntheconceptsduringtheiractivity.

Activity1:ModelingRecursiveMethods[20minutes]

1. Directstudentstoreadthroughallthedirectionsfirstbeforebeginningtheactivity.Pointouttothemthattheywillbecompletingtheirowndemo(similartotheoneyoujustcompleted)usingtheirowncode.

2. Breakstudentsintosmallgroupsanddistributeworksheetsandscissors.

3. Keepstudentsonpacebyannouncing10-and5-minutewarnings.

4. Ifstudentscomplainabouthavingtorewritetheirrecursivecodesomanytimes,pointoutthatit’sagoodthingthatweonlyhavetotypeouttherecursivecodeonce!Inreality,themethoddoesn’texistasmanycopies(thatwouldtakeupalotofmemory!)We’rejustusingphysicalexamplestokeeptrackofhowJavaiscallingeach“round”oftherecursivemethod.

5. Asstudentswork,checkfirstforcorrectrecursivemethods,thenmakeasecondroundhavingstudentsperformtheirmodelingactivityforyou.

6. Besureeachgroupexplains:

Wherethebasecaseis,andwhenthebasecaseoccurs.

Wheretherecursivecaseis.

Whatcausesthemethodtoadvancetothenextroundofrecursion.

Whatcausesthemethodtoterminate.

WhereJavareturnstoafteramethodhasterminated.

Whattheoutputis.

7. Ifstudentsdonotanswerallofthesequestionscorrectly,givethemtimetoregroupandassessthemagainaftertheyhavecorrectedtheirthinking.

Lesson8.03:MechanicsofRecursion

461

Activity2:ModelingaPeer’sMethods[10minutes]

1. After20minutes(orwhenstudentsfinish),havegroupstradecodesheets,andchallengethegroupstoworktheirwaythroughthecodeagain.

2. Keepthemonpacebyannouncingtime(theyonlyhave10minutesforthissecondactivity).Visiteachgroupandaskforgroupstomodelthesenewmethodsforyou.

3. Youcanopttoselectsomestudentgroupsthathaveasmoothpresentationtosharewiththeentireclassbeforeclassdismisses.

Activity3:IterativetoRecursiveandVice-Versa[Optional]

1. Introduceiterativeandrecursivemethodsthatproducethesameresult.Forexample,hereisaniterativeandrecursiveexampleforsolvingfactorials:

//Recursive|//Iteration

intfactorial(intn){|intfactorial(intn){

if(n==1){|intproduct=1;

return1;|for(inti=2;i<=n;i++)

{

}else{|product*=i;

returnn*factorial(n-1);|}

}|returnproduct;

}|}

2. Inviteyourclasstotakearecursivefunctionandturnitintoaniterativefunction.Youcanprovideanewrecursivefunctionortheycanuseone’sthey’vepreviouslyworkedwith.Tohelpyourclass,puttherecursivestepintoaforloopthatworkedtoreachthebasecase[i(=<>)(#)].

3. Discusswhatneededtochangebetweentherecursiveanditerativecalls.

4. Now,askyourclasstodotheinverse;takeaniterativefunctionandturnitintoarecursiveone.Basedoffyourdiscussionandthepreviouschangebetweenrecursionanditeration,thistaskshouldbeeasier.

Activity4:CreatingFractalswithRecursion[Optional]

1. Explaintoyourstudentsthatthedragoncurveweworkedwithearlieriscalledafractal,afractalbeingageometricfigureinwhicheachparthasthesamestatisticalcharacterasthewhole.Theyfollowapatterninwhichsimilarpatternsrecuratprogressivelysmallerscales.

Lesson8.03:MechanicsofRecursion

462

2. Inviteyourclasstocreatethedragoncurveinpseudocode,theyshouldnoticethatthefigure(theydon’tknowhowtodraw)rotates90°arounditsnearpoint.

3. Now,asaneasieractivity,we’regoingtoplaywiththeKochcurve,whichthecodecanbefoundhereonstack:http://stackoverflow.com/questions/13000994/koch-snowflake-java-recursion.Explainallpartsofthisprogram,specificallythelevel,turning,therecursionindrawKochCurve,andthegpdrawpackagebeingused(myPencilandmyPaper).

TheKochcurvefollowsthreerules:

i. Dividethelinesegmentintothreesegmentsofequallength.

ii. Drawanequilateraltrianglethathasthemiddlesegmentfromstep1asitsbaseandpointsoutward.

iii. Removethelinesegmentthatisthebaseofthetrianglefromstep2.

4. Asafunlesson,letyourclassplaywiththevalues,alteringtheKochcurvetocreatenewdesigns.Awardprizestospecialanduniquefractalsstudentscreateorrequirethatafractal(anditscode)beturnedinattheendofclass.Ifyourclassiscomfortablewiththeactivity,youcanintroducecolorformyPencilwhichopensadoorforinterestingdesigns.

AccommodationandDifferentiationWhileallstudentsshouldwritetheirOWNalgorithm,youshouldencouragestudentstoworkinpairsorsmallgroupssotheycanshareideasandhelpeachotherorganizetheirthoughts.ThisisparticularlyimportantinELLclassrooms,whereemergentEnglishspeakerscanpairwithadvancedEnglishlearners.Ifsomestudentswanttodothisprojectallontheirown,letthem.

Ifyouhavestudentswhoarespeedingthroughthislesson,youshouldencouragethemto:

CreateamnemonicoracrostictorememberallthestepsforcheckingsyntaxerrorsMakeaposterfortheclassroomillustratingthemnemonicoracrosticHelpanotherstudentwiththeworksheet(explain,notsolve-for-them)

AboutErrorCheckinginEclipseIfyourstudentsareenthusiasticabouttheDragonCurve,expandonthediscussionbypointingoutthatthereare2repetitionsintheDragoncurve,oneleftandoneright.Thismeansthatthereare2listsintherecursivecode.

Lesson8.03:MechanicsofRecursion

463

Askstudentstospeculateonwhatthecurvewouldlooklikewith4repetitions.Ananimationofa3Ddragoncurvecanbefoundhere:(https://youtu.be/BnUTikyR1CU)

Forless-advancedclassrooms,youmaywanttopre-populatethegroupworksheetswithrecursivemethods.Thiswillallowstudentstofocusonprocessingtheexecutionofthemethodratherthanstrugglingwithsyntax.Thisisnotrecommendedunlessyouareverypressedfortime.Inmostcases,studentsshouldbepracticingproperlywritingrecursivecode.

VideoBJP12-3,ImplementingaRecursiveMethodhttp://media.pearsoncmg.com/aw/aw_reges_bjp_2/videoPlayer.php?id=c12-3

ForumdiscussionLesson8.03MechanicsofRecursion(TEALSDiscourseaccountrequired)

Lesson8.03:MechanicsofRecursion

464

Lesson8.04—MergeSort

Overview

Objectives—Studentswillbeableto…

UsemergeSorttosortanArrayList.UserecursiontotraverseandArray.

Assessments—Studentswill…

BuildamergealgorithmtobeappliedinmergeSort.

Homework—Studentswill…

Summarizenotesfornotebookchecktomorrow

Materials&PrepProjectorandComputerWhiteboardandMarkersElectronicsurveyforstudentreviewrequests

Thehomeworktonightasksstudentstosubmit2questionsforreview;thenumberisreducedforthisuntilsincethereisfarlessmaterialthanusual.Createanelectronicsurveyforstudentstocompletewith3textfields,oneforname,and2forquestionstheyhaveaboutCh.12content.Setadeadlinebywhichtimestudentsmusthavesubmitted2questionsfromCh.12Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

PacingGuide

Lesson8.04:MergeSort

465

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywewillreturntosortingandcoverMergeSort.MergeSortactsrecursively;ittakesalist,splitsitdownintosingleelements,andcomparestheelements,mergingthemtogetherinanorderlyfashion.Thefirstpartofthelessoncoversmergeasit’sconceptuallyeasier,thesecondpartofthelessoncoversthesplittingofthelist.

Bell-workandAttendance[5minutes]

IntroductiontoMergeSort[5minutes]

1. Beginyourlecturebybringingtheclassbacktoselectionandinsertionsort.Makethecasethatselectionandinsertionsortbothwork,buttakemoretimeforyourcomputertoprocess(graphinslides).

2. ShowyourclassanexamplediagramofmergeSort;theyshouldrealize(withyourhelp)thattheworstcaseperformanceformergeSortisfasterthaneitherselectionorinsertionsort.

Merge[15minutes]

1. Inviteyourclasstotryandmergetwosortedlistsofnumbers.Howwouldwecomputeasinglesortedlistcontainingallthenumbersinlist1andlist2?Haveyourclasssetupthepseudocode.

Wemustmaintainanindexforeachliststartingat0.

Wemustcreateandemptylisttoholdtheresult.

Whenwehaven’texhaustedourtwolists,insertthesmallestelementatthepointinthenewlistandadvancetheindex.

Lesson8.04:MergeSort

466

2. Letyourclassworkfor10minutestotryandcreatethemergefunction.Usingtheresponsestheycomeupwith,leadthemtothecorrectmergefunction.(Shownonslides,usingArrayList<Integer>)

MergeSort[30minutes]1. Challengeyourclasstotryandimplementmergeintoasortingalgorithm.Thosewho

havedonethereadingshouldhaveanideaaboutwheretogetstarted,butmaygetstuckontherecursiveportion.

Youcangivethemtheseinstructionstogetstarted:

i. Ifthelist’ssizeis0or1,justreturntheoriginallist(asitisalreadysorted)

ii. Splitthelistparameterintotwolists,of(roughly)equalsize:list1and2.

iii. Sortbothlist1and2.

iv. Mergethetwosortedlists,andreturntheresult.

2. Forlabtoday,yourclasswillbetaskedwithmakingthismergeSortalgorithm.Attheendofclasspostthesolutionupontheboard.

Providehintsthroughouttheprocess,namely:

i. Whenthelist’ssizeis0or1andyoureturntheoriginal,thatisyourbasecase.

ii. SplityourlistsbasedoffArrayList.size().

iii. Themergefunctiondoesmerging.

3. Iftheclassisstruggling,walkthroughtheentiremergeSortalgorithmwiththem,mergeSortiscoveredbytheAPsoabaselevelofunderstandingisimportant.

AccommodationandDifferentiationInELLclassrooms,pairstudentsandallowthemtoworktogethertocorrecttheirwork.Ifyounoticedaparticularproblemwasdifficultforthemajorityofstudents,readthequestionaloudandhelpstudentsworkthroughit.

Forthosestudentswhohavenothingtocorrect(orfinishveryearly),rewardthemwithsilentfreetime,orallowthemtoworkonafree-choiceprogrammingproject.

Video

Lesson8.04:MergeSort

467

CSE143,SelectionSort(17:22–28:11)https://uw.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=1fdd364a-4d01-49cf-96b3-ce2f67b77dcf&start=1042

ForumdiscussionLesson8.04MergeSort(TEALSDiscourseaccountrequired)

Lesson8.04:MergeSort

468

Lesson8.05—Finding&FixingErrors

Overview

Objectives—Studentswillbeableto…

Finderrorsintheirreturnedhomeworkassignments.Correcttheircode

Assessments—Studentswill…

Re-submitallhomeworkassignmentswithcorrectedanswers.

Homework—Studentswill…

Reviewmaterialsforthequizby:ReviewingallthebluepagesattheendofChapter12forsections12.1and12.2OutlineChapter12uptosection12.3

Submit2questionsforreviewinclasstomorrowusingelectronicsurvey

Materials&PrepAnystudenthomeworkassignmentsthatyouhavenotyetreturnedStudentself-helpsystem(suchasC2B4orstudentpairing)Electronicsurveyforstudentreviewrequests

Thehomeworktonightasksstudentstosubmit2questionsforreview;thenumberisreducedforthisuntilsincethereisfarlessmaterialthanusual.Createanelectronicsurveyforstudentstocompletewith3textfields,oneforname,and2forquestionstheyhaveaboutCh.12content.Setadeadlinebywhichtimestudentsmusthavesubmitted2questionsfromCh.12Ifstudentsdonothavequestions,stipulatethattheystillhavetosubmitsomethingtoreceivecredit,evenifitisonlyquestionstheythinkotherstudentsmayhave.

PacingGuide

Lesson8.05:Finding&FixingErrors

469

Section TotalTime

Bell-workandattendance 5min

Introductionandhomeworkdistribution 5min

Studentwork 35min

Studentstradework,check,andsubmit 10min

ProcedureTodaywecontinuereinforcingconceptsandapplyingthetools,procedures,andcodethatwereintroducedearlier.Studentswillhavetheopportunitytocorrectanyincorrecthomeworkorclassworkassignments.Itmaybethecasethatstudentsneedtopracticethemodelingexercisefromthepreviouslesson.Youshouldsetupasectionoftheroomforstudentstohelpeachothermodelcodeexecutionquietly.

Bell-workandAttendance[5minutes]

IntroductionandHomeworkDistribution[5minutes]

1. Returnstudenthomeworkpackets,orhavestudentsplacetheirreturnedhomeworksinapileontheirdesk.

2. Collectthehomeworkassignmentsfromlastnight,andquicklygradethemwhilestudentsareworkingontheirotherassignments.Returnthoseworksbackimmediatelysostudentscancorrectanyerrors.

Someoftheassignmentsfromthenightbeforemaytakeawhiletograde(especiallyexercise12.3).Youmaywanttohavestudentshelpyouwiththegrading,orextendtheclassworktohomework.Ifyoucannotgrade12.3beforetheendofclass,youmightwanttointegratethisexerciseintoyourtestreviewsession.

3. Explaintostudentsthattheyhavetheopportunitytogetfullcreditontheirhomeworkgradesbycorrectingthemnow,inclass.Askstudentsforsuggestions/ideasonhowtomakesuretheydon’tmissanyerrors.

Bynowstudentsshouldbeusedtorelyingontheirerrorchecklist/algorithm.

StudentWork[35minutes]

Havestudentsworkindividuallytocorrecttheirhomeworkgrades.

Lesson8.05:Finding&FixingErrors

470

Offertimechecksforstudentssotheystayontask.

Ifstudentshavenotfinishedhomeworkassignments,allowthemtimetodaytocompletetheseassignmentstoturninforpartialcredit.

Studentstradework,check,andturnin[10minutes]

Attheendofclass,havestudentstradetheirhomeworkassignmentstoevaluateeachother’scorrectionsbeforesubmission.

AccommodationandDifferentiationInELLclassrooms,pairstudentsandallowthemtoworktogethertocorrecttheirwork.Ifyounoticedaparticularproblemwasdifficultforthemajorityofstudents,readthequestionaloudandhelpstudentsworkthroughit.

Forthosestudentswhohavenothingtocorrect(orfinishveryearly),rewardthemwithsilentfreetime,orallowthemtoworkonafree-choiceprogrammingproject.

ForumdiscussionLesson8.05Finding&FixingErrors(TEALSDiscourseaccountrequired)

Lesson8.05:Finding&FixingErrors

471

Lesson8.06—Review

Overview

Objectives—Studentswillbeableto…

IdentifyweaknessesintheirUnit8knowledge.

Assessments—Studentswill…

CompleteQuiz8.5.

Homework—Studentswill…

ReadandhighlightStudyforQuiz

Materials&PrepProjectorandcomputerWhiteboardandmarkerResultsfromelectronicsurveyofreviewtopics

Oncestudentshavesubmittedtheirreviewrequests,assemblethosetopicsintocategoriesandpreparetore-teachthetopicsasneeded.Ratherthanusinganentireclassperiodforatest,we’recondensedtheChapter12topicsintoaquiz.ThisshouldallowyoumoretimetostartreviewingfortheAPexam.

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Reviewofstudentquestions 40min

Procedure

Lesson8.06:Review

472

Atthebeginningofclasstoday:

Remindstudentsthatthequizisattheendofclasstoday.

Reviewstudent-submittedquestions.

Bell-workandAttendance[5minutes]

ReviewofStudentQuestions[30minutes]

1. Workthroughthevariousreviewtopics,prioritizingquestionsthatpoppedupthemost.

Somequestionsyoumayaddresswhileworkingthroughthesampletest.

Bereadyforadditionalquestionstopopupasyougo.Saveyourselftheworkanduseoldhomeworkquestionsandstudent-generatedtestquestionsasexamplestoworkthrough.

2. Useacombinationofgroup-solvingquestionsonthewhiteboard,think-pair-share,andtimed-responseasreviewstrategies.

3. Afteryou’vecompletedreviewinganidea,remindtheclassthattheyshouldwritedownthattopiciftheyfeeltheystillhavetoreviewittonight.

CheckStudentStudyLists[5minutes]

Spendthelast5minutesofclasscheckingeachstudent’sreviewtopiclist.

Accommodation&DifferentiationThequizfeaturesarecursivemethodtoproducetheFibonaccisequence.Ifyourstudentsneedextrahelp/scaffolding,youmightwanttoshowstudentsthisYouTubevideo(https://youtu.be/dsmBRUCzS7k)andleadaclassdiscussiontoensurestudentsarefamiliarwiththemathinvolved.

ForumdiscussionLesson8.06Review&Quiz(TEALSDiscourseaccountrequired)

Lesson8.06:Review

473

Lesson8.08—QuizReview&Reteach

Overview

Objectives—Studentswillbeableto…

Re-learnorstrengthencontentknowledgeandskillsfromUnit8.

Assessments—Studentswill…

Re-submittestanswerswithupdatedcorrectionsforpartialorfullcreditCreditdependsoninstructorpreference

Homework—Studentswill…

CompletetheassessmentinChapter7ofBarron’sReviewBookCorrectanyincorrectquizanswersbyre-answeringonaseparatesheetofpaper

Togetbackcredit,theymustjustifytheirnewanswersStaplenewanswersheettooldtestandturnintomorrow

Materials&PrepProjectorandcomputerWhiteboardandmarkersCorrectedstudenttestsStudentgrades(postedonline,emailedtostudents,orhandedbackonpaperinclass)Digitalcopyoftestquestionsforprojector

PacingGuide

Section TotalTime

Bell-workandattendance 5min

Quizreviewandreteach 30min

Returnquizzes/starthomeworkassignment 15min

Lesson8.08:QuizReview&Reteach

474

ProcedureReturnstudentgradesbeforeclassbeginsorwhilestudentsarecompletingthebellwork.

Donotreturnstudents’quizzesbeforethereviewsession,sinceyouwanttomotivatestudentstopayattentiontotheentirereview,takingsupplementalnotestheentiretime.

Bell-workandAttendance[5minutes]

QuizReview&Reteach[30minutes]

1. Ifgradesarelow,invitetheclasstoadiscussionofwhatcanbeimproved.Withyourco-teachersand/orTAsyoushoulddecidehowtoshiftfocusastheAPtestisrightaroundthecorner.Withyourstudents,youshouldfollowthesamepost-mortemformatasinotherreviewunits,butwiththeAPexaminmind.

DoyourstudentswanttofocusonSectionIItesttakingstrategies?

Perhapstheyfeeltheyneedtodrillquick-responseSectionIquestions?

Asasanity-check,studentsshouldberemindedthattheyonlyhave1.5minutestosolveeachSectionIquestionontheAP.Iftheyarenotenearthispace,orifthisisanunrealisticgoal(duetolanguageand/orreadingbarriers),decideasaclasstofocusontest-takingstrategies(skipping,guessing,processofelimination)toreduceanxietyandrecoupsomepotentiallylostpoints.

Studentscangetverydiscouragedduringthistimeofyear.Inspireandamuseyourclassbypointingoutoldwordwallsorassignments(ifyoustillhavethemup),showingstudentshowfartheyhavecomesincethebeginningoftheschoolyear.

2. Walkthestudentsthrougheachquestiononthetest,glossingoverquestionsthateveryoneansweredcorrectly.

Youcanaskforstudentstovolunteeranswers,orcallonstudentsrandomly.Makesurethatstudentsexplaintheirlogicwhentheyanswer.Ifastudentgivesanincorrectanswer,theexplanationwilltellyouwhatyouneedtore-teachorclarify.

Donotskipquestionsthateveryoneansweredcorrectly,butdonotspendmorethanthetimeittakestoreadthequestion,andcongratulatestudents’correctanswers.

3. Projectacopyofeachquestionasyoureview—thiswillhelpstudentsrecallthequestion/processtheinformation.

Lesson8.08:QuizReview&Reteach

475

4. Makesurethatstudentsaretakingnotesduringthere-teach,remindingstudentsthatforhomework,theywillhaveanopportunitytowinbacksomeofthepointsontheirexam.

5. ForSectionII-typequestions,selectasampleofstudentwork(withanyidentifyinginformationobscured),andworkthroughtheanswertogetherasaclass.

ReturnQuizzes/StartHomeworkAssignment[15minutes]

Attheendofclass,iftimeallows,returnthequizzesandallowstudentssometimetobegintheirhomeworkassignment.

AccommodationandDifferentiationEncourageadvancedstudentstotakeonadditionalprogrammingchallenges.OneeasywaytodothisistoassignProgrammingProjectsfromthebluepagesattheendofeachChapter.Section12.5hasanexcellentrecursivegraphicslabthatwouldbeawonderfulassignmentforadvancedstudents.

Ifyouhaveafewstudentsthatarestrugglingwiththeclass,choosethesestudentstocreateyourclassroompostersafterschoolorforextracredit.

ForumdiscussionLesson8.08QuizReview&Reteach(TEALSDiscourseaccountrequired)

Lesson8.08:QuizReview&Reteach

476

Lesson9.00—ReviewingfortheAPExam

TopicReview&Re-teachingTogetasenseforwhichtopicsyourclassneedstoreview,werecommendadministeringaBarron’spracticeexamasapre-test,anotherasapost-testaftersomereview,thenthe2009releasedAPCSAexam(themostrecentfully-releasedexam)asafinalpractice.

The2009examincludesGridWorldquestions(Freeresponsequestion2,multiplechoicequestions21–25).Instructorscouldhavestudentsskipthesenowobsoletequestions,orreplacethemwithquestionsofsimilardifficultyfromthe2004examtoallowanAPscoretobereasonablycomputed.

Asyoure-teachconcepts,practicequestionsandassessmentscanbegleanedfromtheBellevueInternationalMasteryTests(includedasafilewithintheUnit9materials).Thesetests,writtenandgraciouslysharedbyArthurWatson,provideaneasywaytoretestyourstudents.Shouldyoudecidetousetheseresources,keepthefollowinginmind:

1. Thetestsdonotincluderecursion,searching,orsortingsincethesewerethemostrecentlycoveredunitsbeforewhole-yearreview.

2. Thereare3versionsofeachtest(A,B,andC).Versionsaresimilar,sostudentscanre-takeeachexamafterworkingonmaterialtoearnahigherscore.

3. AsitgetsclosertoAPtesttime,ArthurletshisclassusetheAversiontest/answerkeystostudyfortheBandCversions.

PracticeQuestionsWhetherin-classorforhomework,givingstudentsampleopportunitiestodrilltestquestionswillhelpthemovercometestanxiety.Theresourceslistedbelowprovidepracticematerialusingdifferentlearningmodalities:

Lesson9.00:ReviewingfortheAPExam

477

WebsiteURL Features

http://APcomputersciencetutoring.comPracticeproblems&solutionsbrokendownbytopic.OldAPmultiple-choicequestions&answers.

http://tinyurl.com/obwpm39 175multiple-choicequestions(self-checking)

http://tinyurl.com/nkauhfb Timedpracticetests,flashcards,featured“questionoftheday.”

TestTakingStrategiesIfyouhavebeenusingtheexamsprovidedwiththiscurriculum,studentsshouldbefamiliarwiththedirectionsandguidingtextoftheAPexam.Duringreview,youshouldpushthetest-takingstrategiescoveredinthewebsitesreferencedbelow:

WebsiteURL Features

http://tinyurl.com/APCSTips OfficialtipsfromtheCollegeBoard.

http://tinyurl.com/APCSlist Test-takingtipsandSectionIItipsfromateacher.

http://tinyurl.com/APCSquickReference SeepageA1forquickreferenceguideincludedwiththeexam.

Accommodation&DifferentiationThereare3availablepracticeexamsyoucangivetoyourstudents.ForELLclassrooms,startbygivingthefirstpracticeexamwithalittleextratime(~10minutes)oneachsection,sotheyhavetimetogetusedtopacingandreading.

Afteryouhavere-taughttopics,assignedpracticetimedpracticeathome,givethenextexamatfulltime,andaskthestudentstoreportbacktoyouwhattheyfeltwerethemostchallengingaspectsoftheexam.

Ifstudentsreportthatreadingisslowingthemdown,takeaclassperiodortwotodrillthewordwallvocabulary.Havestudentspracticereadingandexplainingquestionstoeachother.Atthispoint,repetitioniskey.Strengtheningtopic-specificvocabularyandrecallwillbemorebeneficialthanreviewingadditionaltopics.

Somefunvocabularyreviewstrategiesinclude:

Pictionary:encouragestudentstowritesomecode(orfind,orcircleitinasampleofcodeontheboardorprojector)toillustrateaconceptorterm.

Lesson9.00:ReviewingfortheAPExam

478

Vocabularybingo:Printoutwordwallwords(orchallengingconcepts)onbingocards(youcanmakethemonlinehere:http://osric.com/bingo-card-generator/).Ratherthanjustcallingoutwords,callthedefinitionofthetermorprojectanexampleoftheconceptinsamplecode,havingstudentscomeupwiththewordtheyneedtofindonthebingosheet.

Ifyourstudentsarespeedingthroughthereviewsessions,addadditionalchallengesbystickingtoSectionIIquestions.StudentscanaccessSectionIIquestionsfrom2009–2014ontheAPCSwebsitehere:http://tinyurl.com/m7ljyec.ThemostrecentreleasedSectionIItestquestionsandscoringrubricareincludedwithUnit9materials.2014’squestionsandscoringrubricareavailableontheAPwebsite.

ForumdiscussionLesson9.0ReviewingfortheAPExam(TEALSDiscourseaccountrequired)

Lesson9.00:ReviewingfortheAPExam

479

APComputerScienceACurriculumDevelopmentThisprojectcontainsthesourcefortheTEALSAPComputerScienceACurriculum.Contentcanbebrowsedinthefollowingways:

OnGitBook—TheofficialsourceforthebookOnGitHub—FromtherepositorycontentsonGitHubLocally–Fromalocalcloneofthedevelopmentrepository

StyleGuidelinesPleasereadtheStyleGuidelinesbeforemodifyingthecontentsofthisrepo.They'reshortandensureconsistencyacrossthedocset.

AuthorsChristineKeefe(CurriculumDeveloper)NathanielGranor(TEALSCoordinator)

LicenseThisworkislicensedunderaCreativeCommonsAttribution-NonCommercial-ShareAlike4.0Internationallicense.SeeLICENSE.mdforthefulllicense.

Acknowledgements

TEALSSummerFellows

BenWatskyJulianBoss

MarkdownConversion&RepoSetup

SteveHollasch

AboutThisCurriculum

480

KenneyChan

SpecialThanks

GlennDurfeePeterDurham

APCSCurriculumSquadVolunteers

KevinWilsonLeoFranchiMikiFriedmanJimSteinbergerRobynMoscowitzEricHalseyKevinTrotterAndrewSmithPaulRoalesDavidBromanYaelElmatadGlennDurfeePeterDurhamNelsonCollinRalphCaseCharleyWilliamsJeffreyBooth

APCSCurriculumSquadTeachers

NateBinzJanetRobertsBrettWortzmanIngridRoche

AboutThisCurriculum

481

TEALSAPCSACurriculum—HowtoContribute

RepositoryLocationThecurriculum'ssourcecodeishostedonGithubathttps://github.com/TEALSK12/apcsa-public.Restrictedinstructor-onlycontentishostedathttps://github.com/TEALSK12/apcsa-instructor.

DidyoucatchanerrorintheTEALSAPCSAcurriculum,orperhapshaveanideaforanadditionthatwouldmakeitbetter?Ifso,we'dlovetoseewhatyou'vegot!

MethodsofContributingWecanacceptchangesandsuggestionstothisrepoinabunchofdifferentways,soheretheyarefromleastinvolvedtomost.

CasualCommunication

YoucanmakecommentseitherinourSlackchannel(#apcsa-curriculuminhttps://tealsk12.slack.com)ortouspersonallyviaemailtoKenneyChanorSteveHollasch.IfyouhaveaGitHubaccount,though,it'sbettertosubmitanissue,asthere'sahigherguaranteethatitwon'tgetlost.

SubmitanIssue

Thebestwaytomakesureyourfeedbackisrecognized,tracked,andhandledistosubmitanissueonGitHub.You'llneedaGitHubaccounttodothis.

SubmitaPullRequest(PR)

Thisisthemostinvolvedroute,butmorepowerful.Itworksforallkindsofissues,fromfixingtypostomakingradicalchangesincurriculum.Ofcourse,ifyoudecideonsomethingmassive,makesuretovettheideawithusfirst.

Contributing

482

Ifyou'redoingsomethingsmallorobvious,andyou'recomfortable,feelfreetojustgostraighttoapullrequest.Foranythingelse,youmightwanttofirstsubmitanissue.Intheissue,mentionthatyou'rewillingtodotheworkyourself.Iftheideaissound,we'llgiveyouthegreenlightbeforeyoucommitanyeffortortime.

HowtoSubmitaPullRequest(Advanced)ThefollowingstepsoutlinetheeasiestwaytosubmitaPR:

1. Createalocalworkingcloneoftheapcsarepository.Ifyouhaven'tdonethisbefore,justgotothemaincodepageandhitthe"Cloneordownload"button.ExplaininghowtouseGitisoutsidethescopeofthispage,soyou'llneedtoknowhowtodothisalready.

2. Createandcheckoutafeaturebranchforyourwork.(Themasterbranchisprotected,andyouwon'tbeabletosubmitchangesthere.)

3. Makeyourchangesinthefeaturebranch.Makesureyoufollowthestyleguidelinesasyoudoso.

4. PushyourbranchuptotheGitHubrepo.Forexample,ifyouworkonthecommandline,andyourfeaturebranchisnamed"moar-glitter",thenyou'ddothis:

gitpushorigin--set-upstreammoar-glitter

ThisjustneedstohappenoncetoestablishtheconnectionbetweenyourlocalbranchandabranchofthesamenameuponGitHub.Afterthat,ifyouhavemorechangestoadd,youcanjustgitpushwhileworkinginyourfeaturebranch.

5. Whenyou'redoneandreadyforreview(andallofyourcommitshavebeenpushed),headtothemaincodepage.Thereyoushouldseeyourbranchinahighlightedboxwitha"Compare&pullrequest"buttonontheright.Ifnot,youcanjusthitthe"Newpullrequest"button.Ifyoudidthelatter,therewillbetwobuttonstocontrolwhichbranchisgoingtomergeintowhich.Inthiscase,thebasebranchshouldbemaster,andthecomparebranchshouldbemoar-glitter.Oncethat'sset,besuretoenteradescriptivecommentaboutthepullrequest.Ifthere'sanassociatedissue,includetheissuenumber,prefixedwitha#character.Forexample,ifthisisafixforissue137,include#137inthecomments.

6. Finally,hitthe"Createpullrequest"button.Thiswillautomaticallynotifythereviewers.Severalthingscouldhappen:

AreviewerapprovesyourPRandmergesitintomaster.Gitbookwillseethechangesandautomaticallybuildanupdatewithyourchangeswithinafewminutes.

Contributing

483

AreviewerrejectsyourPR.Thisshouldn'thappenifyougotapprovalinasubmittedissue.Ifnot,youshouldgetaclearexplanationwhythechangewasnotaccepted.

AreviewermaypointoutproblemswithyourPR,andrequestchangesbeforeapproving.You'llneedtomonitoryourPRtocatchthis.OneaidisthatGitHubtracksnoficationsintheupperrightcornerofthewebpages(thebellicon),andshouldalertyoutochangerequests.

7. Afterthedusthassettled,pleasedeleteyourfeaturebranchfromtheGitHubrepo.Youmayofcoursechoosetokeepitinanylocalclones,butthiswillkeeptheprimaryrepocleanofbranchclutter.Theoneexceptiontothisisifyourfeatureislong-running,andyouplantoissueastringofPRsasworkprogresses.

Hopefully,allwentwell,andyou'vehelpedtomakeourcurriculumevenbetter--thankyou!

Contributing

484

top related