{"title":"OpenDSA Stand-alone Modules","desc":"OpenDSA Stand-alone Modules (auto-generated config)","build_dir":"StandaloneModules","code_dir":"SourceCode/","code_lang":{"Java":{"ext":["java"],"label":"Java","lang":"java"},"Java_Generic":{"ext":["java"],"label":"Java (Generic)","lang":"java"},"C++":{"ext":["cpp","h"],"label":"C++","lang":"C++"}},"lang":"en","build_JSAV":false,"suppress_todo":false,"dispModComp":true,"glob_exer_options":{"JXOP-debug":"true"},"chapters":{"modules":{"Background/IntroDSA":{"long_name":"Data Structures and Algorithms","sections":{"Data Structures and Algorithms":{"IntroSumm":{"long_name":"Introduction Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Background/IntroSumm.html","mod_name":"IntroDSA","threshold":5}},"Some Software Engineering Topics":{"showsection":true}}},"Biography/CarlGauss":{"long_name":"Spotlight: Carl Friedrich Gauss","sections":{"Spotlight: Carl Friedrich Gauss":{}}},"Biography/FrancisBacon":{"long_name":"Spotlight: Francis Bacon","sections":{"Spotlight: Francis Bacon":{}}},"Tutorials/cmdline":{"long_name":"Command Line Basics","sections":{"What's A CLI?":{}}},"Tutorials/parameters":{"long_name":"Parsing Command Line Parameters In Your Progam","sections":{"Parameters In Programming":{}}},"Tutorials/eclipseparameters":{"long_name":"Using Parameters in Eclipse","sections":{"Using Parameters in Eclipse":{}}},"Tutorials/webcattools":{"long_name":"Installing the Web-CAT Submission Plug-in for Eclipse","sections":{"Introduction":{},"Installing the Plug-in":{},"Installing student.jar":{},"Installing formatting support":{}}},"Tutorials/debugmethods":{"long_name":"Common Debugging Methods","sections":{"Common Debugging Methods":{}}},"Tutorials/debug":{"long_name":"Debugging In Eclipse","sections":{"Debugging In Eclipse":{}}},"Tutorials/scanning":{"long_name":"Reading Input (from Files or Otherwise)","sections":{"The Scanner Class":{}}},"Tutorials/randomaccessfile":{"long_name":"Random Access Files In Java","sections":{"Understanding File I/O":{}}},"Tutorials/junitstart":{"long_name":"JUnit Testing And You","sections":{"Getting Started":{}}},"Tutorials/junitbasic":{"long_name":"Writing JUnit Tests","sections":{"Writing JUnit Tests":{}}},"Tutorials/junitcoverage":{"long_name":"Code Coverage In JUnit","sections":{"Code Coverage In JUnit":{}}},"Design/ADT":{"long_name":"Abstract Data Types","sections":{"Abstract Data Types":{"ADTCON":{"type":"dgm","mod_name":"ADT"},"CMdatatypeSumm":{"long_name":"Concept map data types exercises","required":true,"points":1.0,"type":"ka","av_address":"Exercises/CMP/CMdatatypeSumm.html","mod_name":"ADT","threshold":5},"IntroADTSumm":{"long_name":"ADT Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Design/IntroADTSumm.html","mod_name":"ADT","threshold":4}}}},"Design/IntroOO":{"long_name":"Introduction to Object Oriented Programming","sections":{"Introduction to Object Oriented Programming":{"CMoopSumm":{"long_name":"Concept map OOP exercises","required":true,"points":1.0,"type":"ka","av_address":"Exercises/CMP/CMoopSumm.html","mod_name":"IntroOO","threshold":5}}}},"Design/IntroUML":{"long_name":"The Unified Modeling Language","sections":{"The Unified Modeling Language":{}}},"Design/IntroProcess":{"long_name":"Software Development Processes","sections":{"Software Development Processes":{}}},"PointersJava/PointerIntro":{"long_name":"Pointers Chapter Introduction","sections":{}},"PointersJava/BasicPointers1":{"long_name":"Basic References Part 1","sections":{"Pointers and References":{},"Data Types in Java":{"primativeVsRefCON":{"long_name":"primativeVsRefCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/primativeVsRefCON.css"],"scripts":["AV/Pointers/primativeVsRefCON.js"],"mod_name":"BasicPointers1"}},"Referencing and Dereferencing":{"empRefnullCON":{"type":"dgm","mod_name":"BasicPointers1"}},"changePointeeDataDirect":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changePointeeDataDirect","long_name":"changePointeeDataDirect","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"419","type":"extr","mod_name":"BasicPointers1"},"The Employee Class":{},"Reference Assignments":{"empRefsecondCON":{"type":"dgm","mod_name":"BasicPointers1"}},"circularList1":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"circularList1","long_name":"circularList1","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"421","type":"extr","mod_name":"BasicPointers1"}}},"PointersJava/BasicPointers2":{"long_name":"Basic References Part 2","sections":{"Sharing":{"PointerEX1PRO":{"long_name":"PointerEX1PRO","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Pointers/PointerEX1PRO.html","mod_name":"BasicPointers2","threshold":1}},"Shallow and Deep Copying":{"shallowdeepCON":{"type":"dgm","mod_name":"BasicPointers2"},"shallowdeepExampleCON":{"long_name":"Shallow Deep Copy Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/shallowdeepExampleCON.css"],"scripts":["AV/Pointers/shallowdeepExampleCON.js"],"mod_name":"BasicPointers2"},"PointerEX2PRO":{"long_name":"PointerEX2PRO","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Pointers/PointerEX2PRO.html","mod_name":"BasicPointers2","threshold":1}},"Shallow and Deep Comparing":{},"Bad References":{"empRefnullCON":{"type":"dgm","mod_name":"BasicPointers2"},"badPointerPowCON":{"long_name":"badPointerPowCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/badPointerPowCON.css"],"scripts":["AV/Pointers/badPointerPowCON.js"],"mod_name":"BasicPointers2"}}}},"PointersJava/Syntax":{"long_name":"Pointers Syntax","sections":{"Syntax":{"employeePtr2CON":{"long_name":"employeePtr2CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/employeePtr2CON.css"],"scripts":["AV/Pointers/employeePtr2CON.js"],"mod_name":"Syntax"},"examplePointerCodeCON":{"long_name":"examplePointerCodeCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/examplePointerCodeCON.css"],"scripts":["AV/Pointers/examplePointerCodeCON.js"],"mod_name":"Syntax"}},"changeHeadPointer1":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeHeadPointer1","long_name":"changeHeadPointer1","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"415","type":"extr","mod_name":"Syntax"},"Java References vs Pointers":{},"How Are References Implemented In The Machine?":{"memoryModelCON":{"type":"dgm","mod_name":"Syntax"}}}},"PointersJava/LocalMem":{"long_name":"Local Memory","sections":{"Local Memory":{"simpleLifetimeCON":{"long_name":"simpleLifetimeCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/simpleLifetimeCON.css"],"scripts":["AV/Pointers/simpleLifetimeCON.js"],"mod_name":"LocalMem"},"T1-T5CON":{"long_name":"T1-T5CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/T1-T5CON.css"],"scripts":["AV/Pointers/T1-T5CON.js"],"mod_name":"LocalMem"}}}},"PointersJava/HeapMem":{"long_name":"Heap Memory","sections":{"Heap Memory":{"garbageDisposalCON":{"long_name":"garbageDisposalCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/garbageDisposalCON.css"],"scripts":["AV/Pointers/garbageDisposalCON.js"],"mod_name":"HeapMem"},"LocalHeapaloc":{"type":"dgm","mod_name":"HeapMem"},"LocalHeapdealoc":{"type":"dgm","mod_name":"HeapMem"},"LocalHeapintptr42":{"long_name":"LocalHeapintptr42","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/LocalHeapintptr42.css"],"scripts":["AV/Pointers/LocalHeapintptr42.js"],"mod_name":"HeapMem"}}}},"PointersJava/Links1":{"long_name":"Link Nodes","sections":{"Link Nodes":{"linkNodes1CON":{"long_name":"linkNodes1CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/linkNodes1CON.css"],"scripts":["AV/Pointers/linkNodes1CON.js"],"mod_name":"Links1"},"linkNodes2CON":{"long_name":"linkNodes2CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Pointers/linkNodes2CON.css"],"scripts":["AV/Pointers/linkNodes2CON.js"],"mod_name":"Links1"},"PointerEX3PRO":{"long_name":"PointerEX3PRO","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Pointers/PointerEX3PRO.html","mod_name":"Links1","threshold":1}}}},"PointersJava/Links2":{"long_name":"Link Nodes Practice Exercises","sections":{"createList":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"createList","long_name":"createList","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"type":"extr","mod_name":"Links2"},"iterateOverList":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"iterateOverList","long_name":"iterateOverList","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"type":"extr","mod_name":"Links2"},"changePointeeNext1":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changePointeeNext1","long_name":"changePointeeNext1","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"type":"extr","mod_name":"Links2"},"addNodeAtHead":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"addNodeAtHead","long_name":"addNodeAtHead","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"429","type":"extr","mod_name":"Links2"}}},"PointersJava/Exercises":{"long_name":"Additional Practice Exercises","sections":{"changeHeadPointer2":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeHeadPointer2","long_name":"changeHeadPointer2","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"416","type":"extr","mod_name":"Exercises"},"changeQPointer":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeQPointer","long_name":"changeQPointer","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"417","type":"extr","mod_name":"Exercises"},"changeRPointer":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeRPointer","long_name":"changeRPointer","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"418","type":"extr","mod_name":"Exercises"},"changePointeeDataInDirect":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changePointeeDataInDirect","long_name":"changePointeeDataInDirect","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"420","type":"extr","mod_name":"Exercises"},"circularList2":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"circularList2","long_name":"circularList2","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"422","type":"extr","mod_name":"Exercises"},"circularList3":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"circularList3","long_name":"circularList3","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"423","type":"extr","mod_name":"Exercises"},"changePointeeNext2":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changePointeeNext2","long_name":"changePointeeNext2","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"425","type":"extr","mod_name":"Exercises"},"findValueInList":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"findValueInList","long_name":"findValueInList","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"427","type":"extr","mod_name":"Exercises"},"addNodeAtTail":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"addNodeAtTail","long_name":"addNodeAtTail","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"430","type":"extr","mod_name":"Exercises"},"changeNodesOrder1":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeNodesOrder1","long_name":"changeNodesOrder1","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"431","type":"extr","mod_name":"Exercises"},"changeNodesOrder2":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"changeNodesOrder2","long_name":"changeNodesOrder2","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"432","type":"extr","mod_name":"Exercises"}}},"Background/MathpreIntro":{"long_name":"Chapter Introduction","sections":{}},"Background/SetDef":{"long_name":"Sets and Relations","sections":{"Set Notation":{"SetTFrelation":{"long_name":"Relations Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Background/SetTFrelation.html","mod_name":"SetDef","threshold":5}},"Equivalence Relations":{"SetTFequivrel":{"long_name":"Equivalence Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Background/SetTFequivrel.html","mod_name":"SetDef","threshold":3}},"Partial Orders":{"SetTFpartialorder":{"long_name":"PartialOrder Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Background/SetTFpartialorder.html","mod_name":"SetDef","threshold":3}}}},"Background/MiscMath":{"long_name":"Miscellaneous Notation","sections":{}},"Background/Logarithms":{"long_name":"Logarithms","sections":{"Logarithms":{"MathLogSumm":{"long_name":"Logarithms Practice Questions","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Background/MathLogSumm.html","mod_name":"Logarithms","threshold":10}}}},"Background/Summations":{"long_name":"Summations","sections":{"Summations":{"SummationOneToNCON":{"long_name":"Summation of the first N Integers visualization","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Background/SummationOneToNCON.css"],"scripts":["AV/Background/SummationOneToNCON.js"],"mod_name":"Summations"},"SummationTwoPowerICON":{"long_name":"Summation Two Power I visualization","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Background/SummationTwoPowerICON.css"],"scripts":["AV/Background/SummationTwoPowerICON.js"],"mod_name":"Summations"}}}},"Background/RecurrenceIntro":{"long_name":"Recurrence Relations","sections":{"Recurrence Relations":{"LinearRecurrencesCON":{"long_name":"Linear Recurrences Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Background/LinearRecurrencesCON.css"],"scripts":["AV/Background/LinearRecurrencesCON.js"],"mod_name":"RecurrenceIntro"},"LinearRecurrencesNCON":{"long_name":"Linear Recurrences Slideshow (n)","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Background/LinearRecurrencesNCON.css"],"scripts":["AV/Background/LinearRecurrencesNCON.js"],"mod_name":"RecurrenceIntro"}}}},"Background/Proofs":{"long_name":"Mathematical Proof Techniques","sections":{"Mathematical Proof Techniques":{"twoColorCON":{"type":"dgm","mod_name":"Proofs"},"TwoColoringProofCON":{"long_name":"Two Coloring Proof Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Background/TwoColoringProofCON.css"],"scripts":["AV/Background/TwoColoringProofCON.js"],"mod_name":"Proofs"}}}},"Background/Estimation":{"long_name":"Estimation","sections":{}},"Background/MathpreSumm":{"long_name":"Chapter Summary Questions","sections":{"Chapter Summary Questions":{"MathBgSumm":{"long_name":"Math Background Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Background/MathBgSumm.html","mod_name":"MathpreSumm","threshold":5}}}},"Searching/BinarySearch":{"long_name":"Searching in an Array","sections":{"Searching in an Array":{"binarySearchCON":{"long_name":"Binary Search Algorithm Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/binarySearchCON.css"],"scripts":["AV/Searching/binarySearchCON.js"],"mod_name":"BinarySearch"},"binarySearchPRO":{"long_name":"Binary Search Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Searching/binarySearchPRO.html","mod_name":"BinarySearch","threshold":1.0}}}},"AlgAnal/AnalChap":{"long_name":"Chapter Introduction","sections":{}},"AlgAnal/AnalPrelim":{"long_name":"Problems, Algorithms, and Programs","sections":{"Problems, Algorithms, and Programs":{"ProblemAlgorithmCON":{"long_name":"Problem, Algorithm, and Program definitions Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/ProblemAlgorithmCON.css"],"scripts":["AV/AlgAnal/ProblemAlgorithmCON.js"],"mod_name":"AnalPrelim"},"AnalPrelimSumm":{"long_name":"Problems, Algorithms, Programs Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/AnalPrelimSumm.html","mod_name":"AnalPrelim","threshold":4}}}},"AlgAnal/AnalIntro":{"long_name":"Comparing Algorithms","sections":{"Comparing Algorithms":{"GrowthRatesCON":{"type":"dgm","mod_name":"AnalIntro"},"GrowthRatesZoomCON":{"type":"dgm","mod_name":"AnalIntro"},"CompareGrowth":{"long_name":"Comparing Growth Rates Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/AlgAnal/CompareGrowth.html","mod_name":"AnalIntro","threshold":3}},"Growth Rates Ordering Exercise":{"GrowthRatesPRO":{"long_name":"Growth Rates Ordering Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/GrowthRatesPRO.html","mod_name":"AnalIntro","threshold":3}}}},"AlgAnal/AnalCases":{"long_name":"Best, Worst, and Average Cases","sections":{"Best, Worst, and Average Cases":{"AnalCasesSameCON":{"long_name":"Simple analysis cases slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/AnalCasesCON.css"],"scripts":["AV/AlgAnal/AnalCasesSameCON.js"],"mod_name":"AnalCases"},"AnalCasesDiffCON":{"long_name":"Best, Worst, and Average cases slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/AnalCasesCON.css"],"scripts":["AV/AlgAnal/AnalCasesDiffCON.js"],"mod_name":"AnalCases"}}}},"AlgAnal/AnalCompvsAlg":{"long_name":"Faster Computer, or Faster Algorithm?","sections":{"Faster Computer, or Faster Algorithm?":{"FasterCorASumm":{"long_name":"Faster Computer or Faster Algorithm Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/FasterCorASumm.html","mod_name":"AnalCompvsAlg","threshold":2}}}},"AlgAnal/AnalAsymptotic":{"long_name":"Asymptotic Analysis and Upper Bounds","sections":{"Asymptotic Analysis and Upper Bounds":{"GrowthRatesCON":{"type":"dgm","mod_name":"AnalAsymptotic"},"GrowthRatesZoomCON":{"type":"dgm","mod_name":"AnalAsymptotic"},"UpperBoundCON":{"long_name":"Upper Bounds visualization","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/UpperBoundCON.css"],"scripts":["AV/AlgAnal/UpperBoundCON.js"],"mod_name":"AnalAsymptotic"},"SimpleCostsCON":{"type":"dgm","mod_name":"AnalAsymptotic"},"UpperBoundsSumm":{"long_name":"Asymptotic Analysis and Upper Bounds Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/UpperBoundsSumm.html","mod_name":"AnalAsymptotic","threshold":4}}}},"AlgAnal/AnalLower":{"long_name":"Lower Bounds and Theta Notation","sections":{"Lower Bounds and Theta Notation":{"LowerBoundCON":{"long_name":"Lower Bounds visualization","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/LowerBoundCON.css"],"scripts":["AV/AlgAnal/LowerBoundCON.js"],"mod_name":"AnalLower"},"LowerThetaSumm":{"long_name":"Lower Bounds and Theta Notation Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/AlgAnal/LowerThetaSumm.html","mod_name":"AnalLower","threshold":5}}}},"AlgAnal/AnalProgram":{"long_name":"Calculating Program Running Time","sections":{"Calculating Program Running Time":{"binarySearchCON":{"long_name":"Binary Search Algorithm Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/binarySearchCON.css"],"scripts":["AV/Searching/binarySearchCON.js"],"mod_name":"AnalProgram"},"binarySearchPRO":{"long_name":"Binary Search Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Searching/binarySearchPRO.html","mod_name":"AnalProgram","threshold":1.0,"exer_options":{"JXOP-code":"none"}},"BsearchDandCRecurCON":{"long_name":"Binary Search recurrence slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/BsearchDandCRecurCON.css"],"scripts":["AV/AlgAnal/BsearchDandCRecurCON.js"],"mod_name":"AnalProgram"}},"Summary Exercise":{"AnalProgramSumm":{"long_name":"Program Code Analysis Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/AnalProgramSumm.html","mod_name":"AnalProgram","threshold":5}}}},"AlgAnal/AnalProblem":{"long_name":"Analyzing Problems","sections":{"Analyzing Problems":{"AnalProblemSumm":{"long_name":"Problem Analysis Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/AnalProblemSumm.html","mod_name":"AnalProblem","threshold":5}}}},"AlgAnal/AnalMisunderstanding":{"long_name":"Common Misunderstandings","sections":{"Common Misunderstandings":{"MisunderstandingsGraphCON":{"long_name":"Example's graph Visualization","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/AlgAnal/MisunderstandingsGraphCON.css"],"scripts":["AV/AlgAnal/MisunderstandingsGraphCON.js"],"mod_name":"AnalMisunderstanding"},"MisSumm":{"long_name":"Common Misconceptions Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/MisSumm.html","mod_name":"AnalMisunderstanding","threshold":4}}}},"AlgAnal/AnalMultiple":{"long_name":"Multiple Parameters","sections":{}},"AlgAnal/AnalSpace":{"long_name":"Space Bounds","sections":{}},"AlgAnal/AnalTuning":{"long_name":"Code Tuning and Empirical Analysis","sections":{"Code Tuning and Empirical Analysis":{}}},"AlgAnal/AlgAnalSummCS2":{"long_name":"Algorithm Analysis Summary Exercises","sections":{"Summary Exercise: CS2":{"AlgAnalCS2Summ":{"long_name":"Algorithm Analysis Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/AlgAnalCS2Summ.html","mod_name":"AlgAnalSummCS2","threshold":5}}}},"AlgAnal/AlgAnalSummCS3":{"long_name":"Algorithm Analysis Summary Exercises","sections":{"Summary Exercise: CS3":{"AlgAnalCS3Summ":{"long_name":"Algorithm Analysis Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/AlgAnal/AlgAnalCS3Summ.html","mod_name":"AlgAnalSummCS3","threshold":5}}}},"List/ListIntro":{"long_name":"Chapter Introduction: Lists","sections":{}},"List/ListADT":{"long_name":"The List ADT","sections":{"The List ADT":{"listADTposCON":{"long_name":"List ADT Positions Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/listADTCON.css"],"scripts":["AV/List/listADTposCON.js"],"mod_name":"ListADT"}},"List ADT Programming Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"List ADT Programming Exercise","long_name":"List ADT Programming Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"type":"extr","mod_name":"ListADT"}}},"List/ListArray":{"long_name":"Array-Based List Implementation","sections":{"Array-Based List Implementation":{"alistVarsCON":{"long_name":"Array-based List Variables Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/alistCON.css"],"scripts":["AV/List/alistVarsCON.js"],"mod_name":"ListArray"},"alistIntroCON":{"long_name":"Array-based List Intro Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/alistCON.css"],"scripts":["AV/List/alistIntroCON.js"],"mod_name":"ListArray"},"alistInsertCON":{"long_name":"Array-based List Insertion Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/alistCON.css"],"scripts":["AV/List/alistInsertCON.js"],"mod_name":"ListArray"},"AlistInsertPRO":{"long_name":"Array-based List Insert Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AlistInsertPRO.html","mod_name":"ListArray","threshold":3}},"Append and Remove":{"alistAppendCON":{"long_name":"Array-based List Append Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/alistCON.css"],"scripts":["AV/List/alistAppendCON.js"],"mod_name":"ListArray"},"alistRemoveCON":{"long_name":"Array-based List Remove","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/alistCON.css"],"scripts":["AV/List/alistRemoveCON.js"],"mod_name":"ListArray"},"AlistRemovePRO":{"long_name":"Array-based List Remove Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AlistRemovePRO.html","mod_name":"ListArray","threshold":4}},"Array-based List Practice Questions":{"ALSumm":{"long_name":"Array-based List Summary","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/ALSumm.html","mod_name":"ListArray","threshold":3}}}},"List/ListLinked":{"long_name":"Linked Lists","sections":{"Linked Lists":{"llistRepCON":{"type":"dgm","mod_name":"ListLinked"},"llistBadCON":{"long_name":"Linked List Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistBadCON.js"],"mod_name":"ListLinked"},"llistBadDelCON":{"long_name":"Linked List Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistBadDelCON.js"],"mod_name":"ListLinked"},"llistInitCON":{"type":"dgm","mod_name":"ListLinked"},"llistHeaderCON":{"type":"dgm","mod_name":"ListLinked"},"llistVarsCON":{"long_name":"Linked List Variables Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistVarsCON.js"],"mod_name":"ListLinked"},"llistConsCON":{"long_name":"Linked List Constructors Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistConsCON.js"],"mod_name":"ListLinked"},"llistInsertCON":{"long_name":"Linked List Insert Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistInsertCON.js"],"mod_name":"ListLinked"},"llistSpecialCON":{"long_name":"Linked List Special Insert Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistSpecialCON.js"],"mod_name":"ListLinked"},"LlistInsertPRO":{"long_name":"Linked List Insert Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/LlistInsertPRO.html","mod_name":"ListLinked","threshold":5}},"Linked List Remove":{"llistRemoveCON":{"long_name":"Linked List Remove Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistRemoveCON.js"],"mod_name":"ListLinked"},"LlistRemovePRO":{"long_name":"Linked List Remove Exercise","required":true,"points":2,"type":"ka","av_address":"Exercises/List/LlistRemovePRO.html","mod_name":"ListLinked","threshold":5},"llistOtherCON":{"long_name":"Linked List Position Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/llistCON.css"],"scripts":["AV/List/llist.js","AV/List/llistOtherCON.js"],"mod_name":"ListLinked"}}}},"List/ListAnalysis":{"long_name":"Comparison of List Implementations","sections":{"Space Comparison":{"ListOverhead":{"long_name":"Breakeven Point Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/ListOverhead.html","mod_name":"ListAnalysis","threshold":3}},"Time Comparison":{"LLSumm":{"long_name":"Linked List Summary Exercise","required":true,"points":2,"type":"ka","av_address":"Exercises/List/LLSumm.html","mod_name":"ListAnalysis","threshold":6}}}},"List/ListDouble":{"long_name":"Doubly Linked Lists","sections":{"Doubly Linked Lists":{"dlistDiagramCON":{"type":"dgm","mod_name":"ListDouble"},"dlistInsertCON":{"long_name":"Doubly Linked List Insert","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/DoubleLinkList.css","AV/List/dlistCON.css"],"scripts":["DataStructures/DoubleLinkList.js","AV/List/dlist.js","AV/List/dlistInsertCON.js"],"mod_name":"ListDouble"},"dlistAppendCON":{"long_name":"Doubly Linked List Append","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/DoubleLinkList.css","AV/List/dlistCON.css"],"scripts":["DataStructures/DoubleLinkList.js","AV/List/dlist.js","AV/List/dlistAppendCON.js"],"mod_name":"ListDouble"},"dlistRemoveCON":{"long_name":"Doubly Linked List Remove","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/DoubleLinkList.css","AV/List/dlistCON.css"],"scripts":["DataStructures/DoubleLinkList.js","AV/List/dlist.js","AV/List/dlistRemoveCON.js"],"mod_name":"ListDouble"},"dlistPrevCON":{"long_name":"Doubly Linked List Prev","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/DoubleLinkList.css","AV/List/dlistCON.css"],"scripts":["DataStructures/DoubleLinkList.js","AV/List/dlist.js","AV/List/dlistPrevCON.js"],"mod_name":"ListDouble"}}}},"List/ListElement":{"long_name":"List Element Implementations","sections":{"List Element Implementations":{"listElementDataCON":{"long_name":"List Element Data","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/listElementCON.css"],"scripts":["AV/List/listElementDataCON.js"],"mod_name":"ListElement"},"listElementTypeCON":{"long_name":"List Element Type","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/listElementCON.css"],"scripts":["AV/List/listElementTypeCON.js"],"mod_name":"ListElement"},"listElementDeleteCON":{"long_name":"List Element Delete","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/listElementCON.css"],"scripts":["AV/List/listElementDeleteCON.js"],"mod_name":"ListElement"},"ListSumm":{"long_name":"List Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/ListSumm.html","mod_name":"ListElement","threshold":3}}}},"List/StackArray":{"long_name":"Stacks","sections":{"Stack Terminology and Implementation":{"astackVarCON":{"long_name":"Array stack variables slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/astackCON.css"],"scripts":["AV/List/astackVarCON.js"],"mod_name":"StackArray"},"astackTopCON":{"long_name":"Array stack top position slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/astackCON.css"],"scripts":["AV/List/astackTopCON.js"],"mod_name":"StackArray"},"astackPushCON":{"long_name":"Array stack push slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/astackCON.css"],"scripts":["AV/List/astackPushCON.js"],"mod_name":"StackArray"},"AstackPushPRO":{"long_name":"Array-based Stack Push Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AstackPushPRO.html","mod_name":"StackArray","threshold":5}},"Pop":{"astackPopCON":{"long_name":"Array stack pop slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/astackCON.css"],"scripts":["AV/List/astackPopCON.js"],"mod_name":"StackArray"},"AstackPopPRO":{"long_name":"Array-based Stack Pop Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AstackPopPRO.html","mod_name":"StackArray","threshold":5}}}},"List/StackLinked":{"long_name":"Linked Stacks","sections":{"Linked Stack Implementation":{"lstackDiagramCON":{"type":"dgm","mod_name":"StackLinked"},"lstackPushCON":{"long_name":"Linked stack push","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/lstackCON.css"],"scripts":["AV/List/llist.js","AV/List/lstackPushCON.js"],"mod_name":"StackLinked"},"LstackPushPRO":{"long_name":"Linked Stack Push Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/LstackPushPRO.html","mod_name":"StackLinked","threshold":5}},"Linked Stack Pop":{"lstackPopCON":{"long_name":"Linked stack pop","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/lstackCON.css"],"scripts":["AV/List/llist.js","AV/List/lstackPopCON.js"],"mod_name":"StackLinked"},"LstackPopPRO":{"long_name":"Linked Stack Pop Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/LstackPopPRO.html","mod_name":"StackLinked","threshold":5},"lstackTwostackCON":{"type":"dgm","mod_name":"StackLinked"}}}},"List/Freelist":{"long_name":"Freelists","sections":{"Freelists":{"listFreeCON":{"long_name":"Freelist Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/listFreeCON.css"],"scripts":["AV/List/llist.js","AV/List/listFreeCON.js"],"mod_name":"Freelist"}}}},"List/StackRecur":{"long_name":"Implementing Recursion","sections":{}},"List/Queue":{"long_name":"Queues","sections":{"Queue Terminology and Implementation":{"aqueueFirstCON":{"long_name":"Array-based Queue Positions Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["AV/List/aqueueFirstCON.js"],"mod_name":"Queue"},"aqueueDriftCON":{"long_name":"Array-based Queue Drift Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["AV/List/aqueueDriftCON.js"],"mod_name":"Queue"},"aqueueBadCON":{"long_name":"Array-based Queue Bad Representation Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["AV/List/aqueueBadCON.js"],"mod_name":"Queue"},"aqueueCircularCON":{"long_name":"Circular Array-based Queue Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["DataStructures/CircularQueue.js","AV/List/aqueueCircularCON.js"],"mod_name":"Queue"},"aqueueEmptyCON":{"long_name":"Empty Circular Array-based Queue Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["DataStructures/CircularQueue.js","AV/List/aqueueEmptyCON.js"],"mod_name":"Queue"},"aqueueVarCON":{"long_name":"Array-based Queue Variables Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/aqueueCON.css"],"scripts":["AV/List/aqueueVarCON.js"],"mod_name":"Queue"},"AqueueEnqueuePRO":{"long_name":"Array-based Queue Enqueue Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AqueueEnqueuePRO.html","mod_name":"Queue","threshold":5}},"Array-based Dequeue Practice":{"AqueueDequeuePRO":{"long_name":"Array-based Queue Dequeue Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/AqueueDequeuePRO.html","mod_name":"Queue","threshold":5}}}},"List/QueueLinked":{"long_name":"Linked Queues","sections":{"Linked Queues":{"lqueueIntroCON":{"long_name":"Linked Queue Intro","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/lqueueCON.css"],"scripts":["AV/List/llist.js","AV/List/lqueueIntroCON.js"],"mod_name":"QueueLinked"},"lqueueEnqueueCON":{"long_name":"Linked Queue Enqueue","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/lqueueCON.css"],"scripts":["AV/List/llist.js","AV/List/lqueueEnqueueCON.js"],"mod_name":"QueueLinked"},"LqueueEnqueuePRO":{"long_name":"Linked Queue Enqueue Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/LqueueEnqueuePRO.html","mod_name":"QueueLinked","threshold":5}},"Linked Dequeue":{"lqueueDequeueCON":{"long_name":"Linked Queue Dequeue","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/List/lqueueCON.css"],"scripts":["AV/List/llist.js","AV/List/lqueueDequeueCON.js"],"mod_name":"QueueLinked"},"LqueueDequeuePRO":{"long_name":"Linked Queue Dequeue Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/LqueueDequeuePRO.html","mod_name":"QueueLinked","threshold":5}},"Comparison of Array-Based and Linked Queues":{"StackQSumm":{"long_name":"Stack/Queue Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/List/StackQSumm.html","mod_name":"QueueLinked","threshold":5}}}},"List/ListSumm":{"long_name":"Linear Structure Summary Exercises","sections":{"Practice Questions":{"ListdsSumm":{"long_name":"List Data Structures General Questions","required":true,"points":2,"type":"ka","av_address":"Exercises/List/ListdsSumm.html","mod_name":"ListSumm","threshold":5}},"Chapter Review Questions":{"ListChapterSumm":{"long_name":"List Chapter Summary","required":true,"points":2,"type":"ka","av_address":"Exercises/List/ListChapterSumm.html","mod_name":"ListSumm","threshold":10}}}},"RecurTutor/RecIntro":{"long_name":"Introduction","sections":{"Introduction":{"recurIntroDelegateCON":{"long_name":"Recursion Introduction Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurIntroCON.css"],"scripts":["AV/RecurTutor/recurIntroDelegateCON.js"],"mod_name":"RecIntro"},"recurIntroDetailsCON":{"long_name":"Recursion Introduction Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurIntroCON.css"],"scripts":["AV/RecurTutor/recurIntroDetailsCON.js"],"mod_name":"RecIntro"}}}},"RecurTutor/Write":{"long_name":"Writing a recursive function","sections":{"Writing a recursive function":{"recurWriteStepsCON":{"long_name":"Recursion Code Writing Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurWriteCON.css"],"scripts":["AV/RecurTutor/recurWriteStepsCON.js"],"mod_name":"Write"},"recurWriteSumCON":{"long_name":"Recursion Code Writing Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurWriteCON.css"],"scripts":["AV/RecurTutor/recurWriteSumCON.js"],"mod_name":"Write"}}}},"RecurTutor/CodeCompletionEx":{"long_name":"Code Completion Practice Exercises","sections":{"Introduction":{},"Recursion Programming Exercise: Largest":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Largest","long_name":"Recursion Programming Exercise: Largest","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"46","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: Multiply":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Multiply","long_name":"Recursion Programming Exercise: Multiply","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"47","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: GCD":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: GCD","long_name":"Recursion Programming Exercise: GCD","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"48","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: log":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: log","long_name":"Recursion Programming Exercise: log","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"49","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: Cummulative Sum":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Cummulative Sum","long_name":"Recursion Programming Exercise: Cummulative Sum","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"51","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: Add odd values":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Add odd values","long_name":"Recursion Programming Exercise: Add odd values","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"52","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: Sum Of the Digits":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Sum Of the Digits","long_name":"Recursion Programming Exercise: Sum Of the Digits","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"53","type":"extr","mod_name":"CodeCompletionEx"},"Recursion Programming Exercise: Count Characters":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Count Characters","long_name":"Recursion Programming Exercise: Count Characters","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"54","type":"extr","mod_name":"CodeCompletionEx"}}},"RecurTutor/HarderWrite":{"long_name":"Writing More Sophisticated Recursive Functions","sections":{}},"RecurTutor/HarderCodeCompletionEx":{"long_name":"Harder Code Completion Practice Exercises","sections":{"Recursion Programming Exercise: Minimum of array":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Minimum of array","long_name":"Recursion Programming Exercise: Minimum of array","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"55","type":"extr","mod_name":"HarderCodeCompletionEx"},"Recursion Programming Exercise: Is Reverse":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Is Reverse","long_name":"Recursion Programming Exercise: Is Reverse","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"56","type":"extr","mod_name":"HarderCodeCompletionEx"},"Recursion Programming Exercise: Decimal to Binary":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Decimal to Binary","long_name":"Recursion Programming Exercise: Decimal to Binary","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"57","type":"extr","mod_name":"HarderCodeCompletionEx"}}},"RecurTutor/WritingEx":{"long_name":"Writing Practice Exercises","sections":{"Recursion Programming Exercise: Cannonballs":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Cannonballs","long_name":"Recursion Programming Exercise: Cannonballs","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"58","type":"extr","mod_name":"WritingEx"},"Recursion Programming Exercise: Check Palindrome":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Check Palindrome","long_name":"Recursion Programming Exercise: Check Palindrome","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"59","type":"extr","mod_name":"WritingEx"},"Recursion Programming Exercise: Subset Sum":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Subset Sum","long_name":"Recursion Programming Exercise: Subset Sum","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"60","type":"extr","mod_name":"WritingEx"},"Recursion Programming Exercise: Pascal Triangle":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Recursion Programming Exercise: Pascal Triangle","long_name":"Recursion Programming Exercise: Pascal Triangle","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"61","type":"extr","mod_name":"WritingEx"}}},"RecurTutor/Trace":{"long_name":"Tracing Recursive Code","sections":{"Tracing Recursive Code":{"recurTraceWindCON":{"long_name":"Recursion Tracing Winding and Unwinding","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurTraceCON.css"],"scripts":["AV/RecurTutor/recurTraceWindCON.js"],"mod_name":"Trace"},"recurTraceFactCON":{"long_name":"Recursion Tracing Factorial Function","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurTraceCON.css"],"scripts":["AV/RecurTutor/recurTraceFactCON.js"],"mod_name":"Trace"},"recurTraceSumCON":{"long_name":"Recursion Tracing Sum Function","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurTraceCON.css"],"scripts":["AV/RecurTutor/recurTraceSumCON.js"],"mod_name":"Trace"},"recurTraceDmnCON":{"long_name":"Recursion Tracing General Domino Effect","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurTraceCON.css"],"scripts":["AV/RecurTutor/recurTraceDmnCON.js"],"mod_name":"Trace"},"TOHfigCON":{"type":"dgm","mod_name":"Trace"},"recurTraceTOHCON":{"long_name":"Recursion Tracing Towers of Hanoi","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/RecurTutor/recurTraceCON.css"],"scripts":["AV/RecurTutor/recurTraceTOHCON.js"],"mod_name":"Trace"}}}},"RecurTutor/TracingEx":{"long_name":"Tracing Practice Exercises","sections":{"Forward Flow Tracing Exercises":{"RecTraceSummFwdFlow":{"long_name":"Recursion Tracing Exercises Set 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummFwdFlow.html","mod_name":"TracingEx","threshold":1.0}},"Backward Flow Tracing Exercises":{"RecTraceSummbckwrdFlow":{"long_name":"Recursion Tracing Exercises Set 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummbckwrdFlow.html","mod_name":"TracingEx","threshold":1.0}},"Find Error Tracing Exercises":{"RecTraceSummFuncErr":{"long_name":"Recursion Tracing Exercises Set 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummFuncErr.html","mod_name":"TracingEx","threshold":1.0}},"Two Recursive Calls Tracing Exercises":{"RecTraceSummTwoRC":{"long_name":"Recursion Tracing Exercises Set 4","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummTwoRC.html","mod_name":"TracingEx","threshold":1.0}},"How Many Times Tracing Exercises":{"RecTraceSummHowmany":{"long_name":"Recursion Tracing Exercises Set 5","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummHowmany.html","mod_name":"TracingEx","threshold":1.0}},"Harder Tracing Exercises":{"RecTraceSummHard":{"long_name":"Recursion Tracing Exercises Set 6","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecTraceSummHard.html","mod_name":"TracingEx","threshold":1.0}}}},"RecurTutor/RecSummaryEx":{"long_name":"Summary Exercises","sections":{"Summary Questions":{"RecChapterSumm":{"long_name":"Recursion Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/RecurTutor/RecChapterSumm.html","mod_name":"RecSummaryEx","threshold":5}}}},"Design/DesignPatterns":{"long_name":"Design Patterns","sections":{"Design Patterns":{"DesignPatternSumm":{"long_name":"Design Patterns Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Design/DesignPatternSumm.html","mod_name":"DesignPatterns","threshold":4}}}},"Design/DesignAltList":{"long_name":"Alternative List ADT Designs","sections":{}},"Design/Comparison":{"long_name":"Comparing Records","sections":{"Comparing Records":{"CompareSumm":{"long_name":"Record Comparison Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Design/CompareSumm.html","mod_name":"Comparison","threshold":5}}}},"Design/Dictionary":{"long_name":"The Dictionary ADT","sections":{"The Dictionary ADT":{"DesignDictionarySumm":{"long_name":"Dictionary Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Design/DesignDictionarySumm.html","mod_name":"Dictionary","threshold":3}}}},"Binary/BinaryTreeIntro":{"long_name":"Binary Trees Chapter Introduction","sections":{}},"Binary/BinaryTree":{"long_name":"Binary Trees","sections":{"Definitions and Properties":{"BinExampCON":{"type":"dgm","mod_name":"BinaryTree"},"BinDiffCON":{"type":"dgm","mod_name":"BinaryTree"},"FullCompCON":{"type":"dgm","mod_name":"BinaryTree"},"DefSumm":{"long_name":"Tree Definition Summary Exercises","required":true,"points":2,"type":"ka","av_address":"Exercises/Binary/DefSumm.html","mod_name":"BinaryTree","threshold":8}},"Practice Questions":{"Treeprobs":{"long_name":"Tree/Node Exercises","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Binary/Treeprobs.html","mod_name":"BinaryTree","threshold":4}}}},"Binary/RecursiveDS":{"long_name":"Binary Tree as a Recursive Data Structure","sections":{"Binary Tree as a Recursive Data Structure":{"ListRecDSCON":{"type":"dgm","mod_name":"RecursiveDS"},"BinRecDSCON":{"type":"dgm","mod_name":"RecursiveDS"},"SumBinaryTreeCON":{"long_name":"Sum values in a Binary Tree Slide Show","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/RecursiveDSCON.css"],"scripts":["AV/Binary/SumBinaryTreeCON.js"],"mod_name":"RecursiveDS"}}}},"Binary/BinaryTreeFullThm":{"long_name":"The Full Binary Tree Theorem","sections":{}},"Binary/BinaryTreeTraversal":{"long_name":"Binary Tree Traversals","sections":{"Binary Tree Traversals":{"BinExampCON":{"type":"dgm","mod_name":"BinaryTreeTraversal"},"preorderCON":{"long_name":"Preorder Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BTCON.css"],"scripts":["AV/Binary/preorderCON.js"],"mod_name":"BinaryTreeTraversal"},"postorderCON":{"long_name":"Postorder Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BTCON.css"],"scripts":["AV/Binary/postorderCON.js"],"mod_name":"BinaryTreeTraversal"},"inorderCON":{"long_name":"Inorder Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BTCON.css"],"scripts":["AV/Binary/inorderCON.js"],"mod_name":"BinaryTreeTraversal"},"btTravPreorderPRO":{"long_name":"Binary Tree Preorder Traversal Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/btTravPreorderPRO.html","mod_name":"BinaryTreeTraversal","threshold":0.9,"exer_options":{"JXOP-code":"none"}}},"Postorder Traversal Practice":{"btTravPostorderPRO":{"long_name":"Binary Tree Postorder Traversal Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/btTravPostorderPRO.html","mod_name":"BinaryTreeTraversal","threshold":0.9,"exer_options":{"JXOP-code":"none"}}},"Inorder Traversal Practice":{"btTravInorderPRO":{"long_name":"Binary Tree Inorder Traversal Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/btTravInorderPRO.html","mod_name":"BinaryTreeTraversal","threshold":0.9,"exer_options":{"JXOP-code":"none"}}},"Summary Questions":{"TravSumm":{"long_name":"Tree Traversal Summary Questions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Binary/TravSumm.html","mod_name":"BinaryTreeTraversal","threshold":3}}}},"Binary/WritingTraversals":{"long_name":"Implementing Tree Traversals","sections":{"Implementing Tree Traversals":{},"Binary Tree Increment By One Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Increment By One Exercise","long_name":"Binary Tree Increment By One Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":1.0,"workout_id":"80","type":"extr","mod_name":"WritingTraversals"}}},"BTRecurTutor/BinaryTreeInfFlw":{"long_name":"Information Flow in Recursive Functions","sections":{"Information Flow in Recursive Functions":{},"Binary Tree Set Depth Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Set Depth Exercise","long_name":"Binary Tree Set Depth Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"66","type":"extr","mod_name":"BinaryTreeInfFlw"},"Collect-and-return":{"BinaryTreeMistakesCON":{"long_name":"Binary Tree Common Mistakes Slideshow","required":false,"points":1.0,"threshold":0.9,"type":"ss","links":["AV/Binary/WriteTrav.css"],"scripts":["AV/Binary/BinaryTreeMistakesCON.js"],"mod_name":"BinaryTreeInfFlw"}},"Binary Tree Check Sum Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Check Sum Exercise","long_name":"Binary Tree Check Sum Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"71","type":"extr","mod_name":"BinaryTreeInfFlw"},"Binary Tree Leaf Nodes Count Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Leaf Nodes Count Exercise","long_name":"Binary Tree Leaf Nodes Count Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"72","type":"extr","mod_name":"BinaryTreeInfFlw"},"Binary Tree Sum Nodes Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Sum Nodes Exercise","long_name":"Binary Tree Sum Nodes Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"68","type":"extr","mod_name":"BinaryTreeInfFlw"},"Combining Information Flows":{},"Binary Tree Check Value Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Check Value Exercise","long_name":"Binary Tree Check Value Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"65","type":"extr","mod_name":"BinaryTreeInfFlw"},"Combination Problems":{},"Binary Tree Height Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Height Exercise","long_name":"Binary Tree Height Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"70","type":"extr","mod_name":"BinaryTreeInfFlw"},"Binary Tree Get Difference Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Get Difference Exercise","long_name":"Binary Tree Get Difference Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"73","type":"extr","mod_name":"BinaryTreeInfFlw"},"Binary Tree Has Path Sum Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Tree Has Path Sum Exercise","long_name":"Binary Tree Has Path Sum Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"67","type":"extr","mod_name":"BinaryTreeInfFlw"}}},"Binary/BinaryTreeImpl":{"long_name":"Binary Tree Node Implementations","sections":{"Binary Tree Node Implementations":{"BTnullpointerCON":{"type":"dgm","mod_name":"BinaryTreeImpl"},"expressionTreeCON":{"type":"dgm","mod_name":"BinaryTreeImpl"},"expressionTraversalCON":{"long_name":"Expression Tree Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BTCON.css"],"scripts":["AV/Binary/expressionTraversalCON.js"],"mod_name":"BinaryTreeImpl"}}}},"Binary/Composite":{"long_name":"Composite-based Expression Tree","sections":{"Composite-based Expression Tree":{}}},"Binary/BinaryTreeNodeSpace":{"long_name":"Binary Tree Space Requirements","sections":{"Binary Tree Space Requirements":{"TreeOverheadFIB":{"long_name":"Tree Overhead Exercise","required":true,"points":2,"type":"ka","av_address":"Exercises/Binary/TreeOverheadFIB.html","mod_name":"BinaryTreeNodeSpace","threshold":5}}}},"Binary/BST":{"long_name":"Binary Search Trees","sections":{"Binary Search Tree Definition":{"BSTShapeCON":{"type":"dgm","mod_name":"BST"},"BSTsearchCON":{"long_name":"BST Search Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BSTCON.css"],"scripts":["AV/Binary/BSTsearchCON.js"],"mod_name":"BST"},"BSTsearchPRO":{"long_name":"BST Search Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/BSTsearchPRO.html","mod_name":"BST","threshold":0.9,"exer_options":{"JXOP-code":"none","JXOP-feedback":"continuous","JXOP-fixmode":"undo"}}},"BST Insert":{"BSTinsertCON":{"long_name":"BST Insert Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BSTCON.css"],"scripts":["AV/Binary/BSTinsertCON.js"],"mod_name":"BST"},"BSTinsertPRO":{"long_name":"BST Insert Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/BSTinsertPRO.html","mod_name":"BST","threshold":0.9,"exer_options":{"JXOP-code":"none","JXOP-feedback":"continuous","JXOP-fixmode":"undo"}}},"BST Remove":{"BSTdeletemaxCON":{"long_name":"BST deletemax Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BSTCON.css"],"scripts":["AV/Binary/BSTdeletemaxCON.js"],"mod_name":"BST"},"BSTremoveCON":{"long_name":"BST remove Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/BSTCON.css"],"scripts":["AV/Binary/BSTremoveCON.js"],"mod_name":"BST"},"BSTremovePRO":{"long_name":"BST Remove Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Binary/BSTremovePRO.html","mod_name":"BST","threshold":0.9,"exer_options":{"JXOP-code":"none","JXOP-feedback":"continuous","JXOP-fixmode":"undo"}}},"BST Analysis":{"BSTSumm":{"long_name":"BST Question Summary","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Binary/BSTSumm.html","mod_name":"BST","threshold":2}}}},"Binary/BSTDict":{"long_name":"Dictionary Implementation Using a BST","sections":{}},"BTRecurTutor/BinaryTreeGuidedInfFlw":{"long_name":"Binary Tree Guided Information Flow","sections":{"Binary Tree Guided Information Flow":{"IneffBinaryTreeRangeCON":{"long_name":"Inefficient Binary Tree Traversal on Range Slide Show","required":false,"points":1.0,"threshold":0.9,"type":"ss","links":[],"scripts":["AV/BTRecurTutor/IneffBinaryTreeRangeCON.js"],"mod_name":"BinaryTreeGuidedInfFlw"}},"Binary Search Tree Small Count Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Binary Search Tree Small Count Exercise","long_name":"Binary Search Tree Small Count Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"64","type":"extr","mod_name":"BinaryTreeGuidedInfFlw"}}},"BTRecurTutor/MultipleBinaryTrees":{"long_name":"Multiple Binary Trees","sections":{"Mirror Image Binary Trees Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Mirror Image Binary Trees Exercise","long_name":"Mirror Image Binary Trees Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"74","type":"extr","mod_name":"MultipleBinaryTrees"},"Same Binary Tree Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Same Binary Tree Exercise","long_name":"Same Binary Tree Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"69","type":"extr","mod_name":"MultipleBinaryTrees"},"Structurally Identical Binary Trees Exercise":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Structurally Identical Binary Trees Exercise","long_name":"Structurally Identical Binary Trees Exercise","enable_scrolling":"False","frame_width":"1000","frame_height":"900","partial_credit":"False","points":2.0,"workout_id":"75","type":"extr","mod_name":"MultipleBinaryTrees"}}},"BTRecurTutor/BSTCheck":{"long_name":"A Hard Information Flow Problem","sections":{}},"Binary/CompleteTree":{"long_name":"Array Implementation for Complete Binary Trees","sections":{"Array Implementation for Complete Binary Trees":{"CompleteFIB":{"long_name":"Complete Tree Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Binary/CompleteFIB.html","mod_name":"CompleteTree","threshold":5}}}},"Binary/Heaps":{"long_name":"Heaps and Priority Queues","sections":{"Heaps and Priority Queues":{"heapinsertCON":{"long_name":"Heap insert Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/binaryheap.js","AV/Binary/heapinsertCON.js"],"mod_name":"Heaps"},"heapinsertPRO":{"long_name":"Heap Insert Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Binary/heapinsertPRO.html","mod_name":"Heaps","threshold":0.9,"exer_options":{"JXOP-code":"none"}}},"Building a Heap":{"HeapBldChoiceCON":{"long_name":"Heap Build Choices","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/HeapBldChoiceCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Binary/HeapBldChoiceCON.js"],"mod_name":"Heaps"},"HeapsIndCON":{"type":"dgm","mod_name":"Heaps"},"heapbuildCON":{"long_name":"Heapbuild Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/binaryheap.js","AV/Binary/heapbuildCON.js"],"mod_name":"Heaps"},"heapbuildPRO":{"long_name":"Heap Build Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Binary/heapbuildPRO.html","mod_name":"Heaps","threshold":0.9,"exer_options":{"JXOP-code":"none"}},"heapbuildProofCON":{"long_name":"Heap build analysis proof Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Binary/heapbuildProofCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Binary/heapbuildProofCON.js"],"mod_name":"Heaps"}},"Removing from the heap or updating an object's priority":{"heapmaxCON":{"long_name":"Remove Max Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/binaryheap.js","AV/Binary/heapmaxCON.js"],"mod_name":"Heaps"},"heapremovePRO":{"long_name":"Heap Remove Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Binary/heapremovePRO.html","mod_name":"Heaps","threshold":0.9,"exer_options":{"JXOP-code":"none"}},"heapremoveCON":{"long_name":"Remove Any Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/binaryheap.js","AV/Binary/heapremoveCON.js"],"mod_name":"Heaps"}},"Priority Queues":{"HeapSumm":{"long_name":"Heap Question Summary","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Binary/HeapSumm.html","mod_name":"Heaps","threshold":5}}}},"Binary/Huffman":{"long_name":"Huffman Coding Trees","sections":{"Huffman Coding Trees":{"huffmanBuildCON":{"long_name":"Huffman Coding Tree Slideshow: Build","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/huffman.css","AV/Binary/huffmanCON.css"],"scripts":["DataStructures/huffman.js","AV/Binary/huffmanBuildCON.js"],"mod_name":"Huffman"},"huffmanLabelCON":{"long_name":"Huffman Coding Tree Slideshow: Label Edges","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/huffman.css","AV/Binary/huffmanCON.css"],"scripts":["DataStructures/huffman.js","AV/Binary/huffmanLabelCON.js"],"mod_name":"Huffman"},"huffmanCodesCON":{"long_name":"Huffman Coding Tree Slideshow: Setting Codes","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/huffman.css","AV/Binary/huffmanCON.css"],"scripts":["DataStructures/huffman.js","AV/Binary/huffmanCodesCON.js"],"mod_name":"Huffman"},"huffmanDecodeCON":{"long_name":"Huffman Coding Tree Slideshow: Decoding","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/huffman.css","AV/Binary/huffmanCON.css"],"scripts":["DataStructures/huffman.js","AV/Binary/huffmanDecodeCON.js"],"mod_name":"Huffman"},"HuffmanDecodePRO":{"long_name":"Huffman Decoding Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Binary/HuffmanDecodePRO.html","mod_name":"Huffman","threshold":5},"huffmanCustomBuildAV":{"long_name":"huffmanCustomBuildAV","required":false,"points":0.0,"type":"ss","av_address":"AV/Binary/huffmanCustomBuildAV.html","mod_name":"Huffman","threshold":1}}}},"Binary/TreeTrie":{"long_name":"Trees versus Tries","sections":{"Trees versus Tries":{"TreeTimelineCON":{"long_name":"Tree timeline Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Development/TreeTrieCON.css"],"scripts":["AV/Development/TreeTimelineCON.js"],"mod_name":"TreeTrie"},"TrieTimelineCON":{"long_name":"Trie timeline Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Development/TreeTrieCON.css"],"scripts":["AV/Development/TrieTimelineCON.js"],"mod_name":"TreeTrie"}}}},"Binary/HuffProof":{"long_name":"Proof of Optimality for Huffman Coding","sections":{"Proof of Optimality for Huffman Coding":{"HuffProofCON":{"type":"dgm","mod_name":"HuffProof"}}}},"Binary/BinaryChapSumm":{"long_name":"Binary Tree Chapter Summary","sections":{"Summary Questions":{"BinaryChapSumm":{"long_name":"BinaryChapSumm","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Binary/BinaryChapSumm.html","mod_name":"BinaryChapSumm","threshold":10}}}},"Sorting/InSort":{"long_name":"Chapter Introduction: Sorting","sections":{}},"Sorting/SortNotation":{"long_name":"Sorting Terminology and Notation","sections":{"Sorting Terminology and Notation":{"SortNotationS1CON":{"long_name":"Sorting Terminology and Notation Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/SortNotationS1CON.css"],"scripts":["AV/Sorting/SortNotationS1CON.js"],"mod_name":"SortNotation"},"SortIntroSumm":{"long_name":"Sorting Intro Summary","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/SortIntroSumm.html","mod_name":"SortNotation","threshold":3}}}},"Sorting/InsertionSort":{"long_name":"Insertion Sort","sections":{"Insertion Sort":{"insertionsortCON":{"long_name":"Insertion Sort Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/insertionsortCON.js"],"mod_name":"InsertionSort"},"insertionsortAV":{"long_name":"Insertion Sort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/insertionsortAV.html","mod_name":"InsertionSort","threshold":1},"InssortPRO":{"long_name":"Insertion Sort Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/InssortPRO.html","mod_name":"InsertionSort","threshold":5}},"Insertion Sort Analysis":{"InsertionSortWorstCaseCON":{"long_name":"Insertion Sort Worst Case Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/InsertionSortWorstCaseCON.css"],"scripts":["AV/Sorting/InsertionSortWorstCaseCON.js"],"mod_name":"InsertionSort"},"InsertionSortBestCaseCON":{"long_name":"Insertion Sort Best Case Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/InsertionSortBestCaseCON.css"],"scripts":["AV/Sorting/InsertionSortBestCaseCON.js"],"mod_name":"InsertionSort"},"InsertionSortAverageCaseCON":{"long_name":"Insertion Sort Average Case Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/InsertionSortAverageCaseCON.css"],"scripts":["AV/Sorting/InsertionSortAverageCaseCON.js"],"mod_name":"InsertionSort"},"InssortSumm":{"long_name":"Insertion Sort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/InssortSumm.html","mod_name":"InsertionSort","threshold":5}}}},"Sorting/BubbleSort":{"long_name":"Bubble Sort","sections":{"Bubble Sort":{"bubblesortS1CON":{"long_name":"Bubble Sort Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/bubblesortS1CON.js"],"mod_name":"BubbleSort"},"bubblesortS2CON":{"long_name":"Bubble Sort Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/bubblesortS2CON.js"],"mod_name":"BubbleSort"},"bubblesortAV":{"long_name":"Bubble Sort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/bubblesortAV.html","mod_name":"BubbleSort","threshold":1},"BubsortPRO":{"long_name":"Bubble Sort Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Sorting/BubsortPRO.html","mod_name":"BubbleSort","threshold":3}},"Bubble Sort Analysis":{"BubbleSortAnalysisCON":{"long_name":"Bubble Sort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/BubbleSortAnalysisCON.css"],"scripts":["AV/Sorting/BubbleSortAnalysisCON.js"],"mod_name":"BubbleSort"},"BubsortSumm":{"long_name":"Bubble Sort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/BubsortSumm.html","mod_name":"BubbleSort","threshold":5}}}},"Sorting/SelectionSort":{"long_name":"Selection Sort","sections":{"Selection Sort":{"selectionsortS1CON":{"long_name":"Selection Sort Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/selectionsortS1CON.js"],"mod_name":"SelectionSort"},"selectionsortS2CON":{"long_name":"Selection Sort Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/selectionsortS2CON.js"],"mod_name":"SelectionSort"},"selectionsortAV":{"long_name":"Selection Sort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/selectionsortAV.html","mod_name":"SelectionSort","threshold":1},"SelsortPRO":{"long_name":"Selection Sort Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Sorting/SelsortPRO.html","mod_name":"SelectionSort","threshold":5}},"Selection Sort Analysis":{"SelectionSortAnalysisCON":{"long_name":"Selection Sort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/SelectionSortAnalysisCON.css"],"scripts":["AV/Sorting/SelectionSortAnalysisCON.js"],"mod_name":"SelectionSort"},"ptrSwapCON":{"long_name":"Selection Sort Pointer Swap","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/ptrSwapCON.css"],"scripts":["AV/Sorting/ptrSwapCON.js"],"mod_name":"SelectionSort"},"SelsortSumm":{"long_name":"Selection Sort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/SelsortSumm.html","mod_name":"SelectionSort","threshold":5}}}},"Sorting/ExchangeSort":{"long_name":"The Cost of Exchange Sorting","sections":{"The Cost of Exchange Sorting":{"FindInversionsPRO":{"long_name":"Inversions Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Sorting/FindInversionsPRO.html","mod_name":"ExchangeSort","threshold":5}},"Analysis":{"ExchangeSortCON":{"long_name":"Exchange Sort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/ExchangeSortCON.css"],"scripts":["AV/Sorting/ExchangeSortCON.js"],"mod_name":"ExchangeSort"},"ExchangeSumm":{"long_name":"Exchange Sorting Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/ExchangeSumm.html","mod_name":"ExchangeSort","threshold":5}}}},"Sorting/SortOpt":{"long_name":"Optimizing Sort Algorithms with Code Tuning","sections":{"Code Tuning for Simple Sorting Algorithms":{"insertionSortWithoutSwapPRO":{"long_name":"Insertion Sort Without Swap Proficiency Exercise","required":true,"points":0.0,"type":"pe","av_address":"AV/Sorting/insertionSortWithoutSwapPRO.html","mod_name":"SortOpt","threshold":0.9,"exer_options":{"JXOP-code":"none"}}}}},"Sorting/Shellsort":{"long_name":"Shellsort","sections":{"Shellsort":{"shellsortCON1":{"long_name":"Shellsort Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCON1.js"],"mod_name":"Shellsort"},"shellsortCON2":{"long_name":"Shellsort Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCODE.js","AV/Sorting/shellsortCON2.js"],"mod_name":"Shellsort"},"shellsortCON3":{"type":"dgm","mod_name":"Shellsort"},"shellsortCON4":{"long_name":"Shellsort Slideshow 3","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCON4.js"],"mod_name":"Shellsort"},"shellsortCON5":{"long_name":"Shellsort Slideshow 4","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCODE.js","AV/Sorting/shellsortCON5.js"],"mod_name":"Shellsort"},"shellsortCON6":{"type":"dgm","mod_name":"Shellsort"},"shellsortCON7":{"long_name":"Shellsort Slideshow 5","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCODE.js","AV/Sorting/shellsortCON7.js"],"mod_name":"Shellsort"},"shellsortCON8":{"type":"dgm","mod_name":"Shellsort"},"shellsortCON9":{"long_name":"Shellsort Slideshow 6","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/shellsortCODE.js","AV/Sorting/shellsortCON9.js"],"mod_name":"Shellsort"},"ShellsortSublistSumm":{"long_name":"Shellsort Sublist Proficency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/ShellsortSublistSumm.html","mod_name":"Shellsort","threshold":5}},"Putting It Together":{"shellsortAV":{"long_name":"Shellsort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/shellsortAV.html","mod_name":"Shellsort","threshold":1},"ShellsortSeries":{"long_name":"Shellsort Series Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/ShellsortSeries.html","mod_name":"Shellsort","threshold":5}},"Shellsort Practice Exercise":{"shellsortPRO":{"long_name":"Shellsort Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Sorting/shellsortPRO.html","mod_name":"Shellsort","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}},"Optimizing Shellsort":{"shellsortPerf":{"long_name":"Shellsort Performance Activity","required":true,"points":2.0,"type":"pe","av_address":"AV/Sorting/shellsortPerf.html","mod_name":"Shellsort","threshold":1.0}},"Shellsort Summary Questions":{"ShellsortSumm":{"long_name":"Shellsort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/ShellsortSumm.html","mod_name":"Shellsort","threshold":5}}}},"Sorting/Mergesort":{"long_name":"Mergesort Concepts","sections":{"Mergesort Concepts":{"mergesortAV":{"long_name":"Mergesort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/mergesortAV.html","mod_name":"Mergesort","threshold":1},"mergesortCON":{"long_name":"Merging Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/mergesortCON.js"],"mod_name":"Mergesort"},"MergesortMergePRO":{"long_name":"Mergesort Merging Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/MergesortMergePRO.html","mod_name":"Mergesort","threshold":5}},"Mergesort Practice Exercise":{"mergesortPRO":{"long_name":"Mergesort Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Sorting/mergesortPRO.html","mod_name":"Mergesort","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}},"MergeSortAnalysisCON":{"long_name":"Mergesort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/MergeSortAnalysisCON.css"],"scripts":["AV/Sorting/MergeSortAnalysisCON.js"],"mod_name":"Mergesort"}}}},"Sorting/MergesortImpl":{"long_name":"Implementing Mergesort","sections":{"Implementing Mergesort":{"mergeImplS1CON":{"long_name":"Mergesort Implementation Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/mergeImplS1CON.js"],"mod_name":"MergesortImpl"},"mergeImplS2CON":{"long_name":"Mergesort Implementation Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/mergeImplS2CON.js"],"mod_name":"MergesortImpl"},"MergesortSumm":{"long_name":"Mergesort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/MergesortSumm.html","mod_name":"MergesortImpl","threshold":5}}}},"Sorting/Quicksort":{"long_name":"Quicksort","sections":{"Introduction":{"QuicksortPivotPRO":{"long_name":"Quicksort Pivot Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/QuicksortPivotPRO.html","mod_name":"Quicksort","threshold":5}},"Partition":{"quicksortCON":{"long_name":"Quicksort Partition Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/quicksortCON.css"],"scripts":["AV/Sorting/quicksortCODE.js","AV/Sorting/quicksortCON.js"],"mod_name":"Quicksort"},"QuicksortPartitPRO":{"long_name":"Quicksort Partition Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/QuicksortPartitPRO.html","mod_name":"Quicksort","threshold":5},"QuickSortPartitionAnalysisCON":{"long_name":"Quicksort Partition Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/QuickSortPartitionAnalysisCON.css"],"scripts":["AV/Sorting/QuickSortPartitionAnalysisCON.js"],"mod_name":"Quicksort"}},"Putting It Together":{"quicksortAV":{"long_name":"Quicksort Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/quicksortAV.html","mod_name":"Quicksort","threshold":1},"quicksortPRO":{"long_name":"Quicksort Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Sorting/quicksortPRO.html","mod_name":"Quicksort","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}},"Quicksort Analysis":{"QuickSortWorstCaseCON":{"long_name":"Quicksort Worst Case Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/QuickSortWorstCaseCON.css"],"scripts":["AV/Sorting/QuickSortWorstCaseCON.js"],"mod_name":"Quicksort"},"QuickSortBestCaseCON":{"long_name":"Quicksort Best Case Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/QuickSortBestCaseCON.css"],"scripts":["AV/Sorting/QuickSortBestCaseCON.js"],"mod_name":"Quicksort"},"QuickSortAverageCaseCON":{"long_name":"Quicksort Average Case Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/QuickSortAverageCaseCON.css"],"scripts":["AV/Sorting/QuickSortAverageCaseCON.js"],"mod_name":"Quicksort"},"QuicksortSumm":{"long_name":"Quicksort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/QuicksortSumm.html","mod_name":"Quicksort","threshold":5}}}},"Sorting/Heapsort":{"long_name":"Heapsort","sections":{"Heapsort":{"heapsortCON":{"long_name":"Heapsort Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/binaryheap.js","AV/Sorting/heapsortCON.js"],"mod_name":"Heapsort"},"HeapsortStepPRO":{"long_name":"Heapsort RemoveMax Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Sorting/HeapsortStepPRO.html","mod_name":"Heapsort","threshold":5}},"Heapsort Proficiency Practice":{"heapsortPRO":{"long_name":"Heapsort Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Sorting/heapsortPRO.html","mod_name":"Heapsort","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}},"Heapsort Analysis":{"HeapSortAnalysisCON":{"long_name":"Heapsort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/HeapSortAnalysisCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Sorting/HeapSortAnalysisCON.js"],"mod_name":"Heapsort"},"HeapsortSumm":{"long_name":"Heapsort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/HeapsortSumm.html","mod_name":"Heapsort","threshold":5}}}},"Sorting/BinSort":{"long_name":"Binsort","sections":{"Binsort":{"binsortS1CON":{"long_name":"Binsort Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/binsortS1CON.js"],"mod_name":"BinSort"},"binsortS2CON":{"long_name":"Binsort Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Sorting/binsortS2CON.js"],"mod_name":"BinSort"}}}},"Sorting/RadixSort":{"long_name":"Radix Sort","sections":{"Radix Sort":{"radixLinkAV":{"long_name":"Radix Sort Linked Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/radixLinkAV.html","mod_name":"RadixSort","threshold":1},"RadixsortPRO":{"long_name":"Radix Sort Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Sorting/RadixsortPRO.html","mod_name":"RadixSort","threshold":4}},"Array-based Radix Sort":{"radixArrayAV":{"long_name":"Radix Sort Array Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Sorting/radixArrayAV.html","mod_name":"RadixSort","threshold":1},"RadixSortAnalysisCON":{"long_name":"Radix Sort Analysis Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/RadixSortAnalysisCON.css"],"scripts":["AV/Sorting/RadixSortAnalysisCON.js"],"mod_name":"RadixSort"},"RadixSortSumm":{"long_name":"Radix Sort Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/RadixSortSumm.html","mod_name":"RadixSort","threshold":5}}}},"Sorting/SortingEmpirical":{"long_name":"An Empirical Comparison of Sorting Algorithms","sections":{"An Empirical Comparison of Sorting Algorithms":{"SortAlgCompSumm":{"long_name":"Sort Comparison Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/SortAlgCompSumm.html","mod_name":"SortingEmpirical","threshold":5}}}},"Sorting/SortingLowerBound":{"long_name":"Lower Bounds for Sorting","sections":{"Lower Bounds for Sorting":{"SortingLowerBoundCON":{"long_name":"Sorting Lower Bound Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Sorting/SortingLowerBoundCON.css"],"scripts":["AV/Sorting/SortingLowerBoundCON.js"],"mod_name":"SortingLowerBound"},"SortBoundSumm":{"long_name":"Lower Bounds Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Sorting/SortBoundSumm.html","mod_name":"SortingLowerBound","threshold":4}}}},"Sorting/SortSumm":{"long_name":"Sorting Summary Exercises","sections":{"Sorting Summary Exercises":{"SortChapterSumm":{"long_name":"Sorting Chapter Summary Exercise","required":true,"points":2,"type":"ka","av_address":"Exercises/Sorting/SortChapterSumm.html","mod_name":"SortSumm","threshold":10}}}},"Files/FileProc":{"long_name":"Chapter Introduction: File Processing","sections":{}},"Files/Secondary":{"long_name":"Primary versus Secondary Storage","sections":{}},"Files/Diskdrive":{"long_name":"Disk Drives","sections":{"Disk Drives":{"diskSector":{"type":"dgm","mod_name":"Diskdrive"}}}},"Files/BuffPool":{"long_name":"Buffer Pools","sections":{"Buffer Pools":{"buffintroCON":{"long_name":"Buffer Pool Introduction Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/buffpoolCON.css"],"scripts":["AV/Files/buffintroCON.js"],"mod_name":"BuffPool"},"LRUCON":{"long_name":"LRU Replacement Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/buffpoolCON.css"],"scripts":["AV/Files/LRUCON.js"],"mod_name":"BuffPool"},"LRUwriteCON":{"long_name":"LRU Replacement with write Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/buffpoolCON.css"],"scripts":["AV/Files/LRUwriteCON.js"],"mod_name":"BuffPool"},"BufferPoolAV":{"long_name":"Buffer Pool Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Files/BufferPoolAV.html","mod_name":"BuffPool","threshold":1}}}},"Files/FileProg":{"long_name":"The Programmer's View of Files","sections":{}},"Files/ExternalSort":{"long_name":"External Sorting","sections":{"External Sorting":{"extMergeSortCON":{"long_name":"External Merge Sort Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/extsortCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Files/extMergeSortCON.js"],"mod_name":"ExternalSort"},"extMergeSortExampCON":{"long_name":"External Merge Sort Example Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/extsortCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Files/extMergeSortExampCON.js"],"mod_name":"ExternalSort"},"extSortOverCON":{"type":"dgm","mod_name":"ExternalSort"},"extRSCON":{"long_name":"External Replacement Selection Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/extsortCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Files/extRSCON.js"],"mod_name":"ExternalSort"},"extSortSnowCON":{"type":"dgm","mod_name":"ExternalSort"},"extRSPRO":{"long_name":"Replacement Selection Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Files/extRSPRO.html","mod_name":"ExternalSort","threshold":1.0}},"Multiway Merging":{"extMultiMergeCON":{"long_name":"Multiway Merge Example Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Files/extsortCON.css"],"scripts":["DataStructures/binaryheap.js","AV/Files/extMultiMergeCON.js"],"mod_name":"ExternalSort"},"extMultiMergePRO":{"long_name":"Multi-way Merge Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Files/extMultiMergePRO.html","mod_name":"ExternalSort","threshold":0.9}}}},"Hashing/HashIntro":{"long_name":"Introduction","sections":{"Introduction":{"hashIntroCON":{"long_name":"Hashing Intro Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/hashIntroCON.css"],"scripts":["AV/Hashing/hashIntroCON.js"],"mod_name":"HashIntro"}}}},"Hashing/HashFunc":{"long_name":"Hash Function Principles","sections":{"Hash Function Principles":{"Birthday":{"long_name":"Birthday Problem Calculator","required":false,"points":0.0,"type":"ss","av_address":"AV/Hashing/Birthday.html","mod_name":"HashFunc","threshold":1},"BirthdayFIB":{"long_name":"Birthday Problem Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/BirthdayFIB.html","mod_name":"HashFunc","threshold":3}}}},"Hashing/HashFuncExamp":{"long_name":"Sample Hash Functions","sections":{"Sample Hash Functions":{"hashFuncExCON1":{"long_name":"Hash Function Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Hashing/hashFuncExCON1.js"],"mod_name":"HashFuncExamp"},"hashFuncExCON2":{"long_name":"Hash Function Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Hashing/hashFuncExCON2.js"],"mod_name":"HashFuncExamp"},"MidSquare":{"long_name":"Mid-Square Calculator","required":true,"points":0.5,"type":"pe","av_address":"AV/Hashing/MidSquare.html","mod_name":"HashFuncExamp","threshold":1.0}},"A Simple Hash Function for Strings":{"StringSimple":{"long_name":"Simple String Folding Calculator","required":true,"points":0.5,"type":"pe","av_address":"AV/Hashing/StringSimple.html","mod_name":"HashFuncExamp","threshold":1.0}},"String Folding":{"StringSfold":{"long_name":"Improved String Folding Calculator","required":true,"points":0.5,"type":"pe","av_address":"AV/Hashing/StringSfold.html","mod_name":"HashFuncExamp","threshold":1.0}},"Hash Function Practice":{"HashFuncFIBSumm":{"long_name":"Hash Function Pick Slot Summary","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashFuncFIBSumm.html","mod_name":"HashFuncExamp","threshold":5}},"Hash Function Review Questions":{"HashFuncSumm":{"long_name":"Hash Function Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashFuncSumm.html","mod_name":"HashFuncExamp","threshold":5}}}},"Hashing/OpenHash":{"long_name":"Open Hashing","sections":{"Open Hashing":{"openhashCON":{"type":"dgm","mod_name":"OpenHash"},"OpenHashPRO":{"long_name":"Open Hashing Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/OpenHashPRO.html","mod_name":"OpenHash","threshold":5}}}},"Hashing/BucketHash":{"long_name":"Bucket Hashing","sections":{"Bucket Hashing":{"buckethashCON1":{"long_name":"Bucket Hashing Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/buckethashCON.css"],"scripts":["AV/Hashing/buckethashCON1.js"],"mod_name":"BucketHash"},"HashBucketPRO":{"long_name":"Bucket Hashing Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashBucketPRO.html","mod_name":"BucketHash","threshold":5}},"An Alternate Approach":{"buckethashCON2":{"long_name":"Bucket Hashing Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/buckethashCON.css"],"scripts":["AV/Hashing/buckethashCON2.js"],"mod_name":"BucketHash"},"HashBucket2PRO":{"long_name":"Alternate Bucket Hashing Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashBucket2PRO.html","mod_name":"BucketHash","threshold":5}}}},"Hashing/HashCSimple":{"long_name":"Collision Resolution","sections":{"Collision Resolution":{"linProbeCON1":{"long_name":"Linear Probing Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/linProbeCON.css"],"scripts":["AV/Hashing/linProbeCON1.js"],"mod_name":"HashCSimple"},"linProbeCON2":{"long_name":"Linear Probing Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/linProbeCON.css"],"scripts":["AV/Hashing/linProbeCON2.js"],"mod_name":"HashCSimple"},"HashLinearPPRO":{"long_name":"Linear Probing Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashLinearPPRO.html","mod_name":"HashCSimple","threshold":5}}}},"Hashing/HashCImproved":{"long_name":"Improved Collision Resolution","sections":{"Linear Probing by Steps":{"collisionCON1":{"long_name":"Linear Probing By Steps Slideshow 1","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON1.js"],"mod_name":"HashCImproved"},"collisionCON2":{"long_name":"Linear Probing By Steps Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON2.js"],"mod_name":"HashCImproved"},"HashLinearStepPPRO":{"long_name":"Linear Probing By Steps Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/HashLinearStepPPRO.html","mod_name":"HashCImproved","threshold":5}},"Pseudo-Random Probing":{"collisionCON3":{"long_name":"Pseudo-Random Probing Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON3.js"],"mod_name":"HashCImproved"},"HashPseudoRandomPPRO":{"long_name":"Pseudo-Random Probing Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/HashPseudoRandomPPRO.html","mod_name":"HashCImproved","threshold":5},"collisionCON4":{"long_name":"Avoiding the Train","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON4.js"],"mod_name":"HashCImproved"}},"Quadratic Probing":{"collisionCON5":{"long_name":"Quadratic Probing Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON5.js"],"mod_name":"HashCImproved"},"HashQuadraticPPRO":{"long_name":"Quadratic Probing Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/HashQuadraticPPRO.html","mod_name":"HashCImproved","threshold":5},"collisionCON6":{"long_name":"Quadratic Probing Problem","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON6.js"],"mod_name":"HashCImproved"}},"Double Hashing":{"collisionCON7":{"long_name":"Double Hashing Slideshow 2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON7.js"],"mod_name":"HashCImproved"},"collisionCON8":{"long_name":"Double Hashing Slideshow 3","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Hashing/collisionCON.css"],"scripts":["AV/Hashing/collisionCON8.js"],"mod_name":"HashCImproved"},"HashDoublePPRO":{"long_name":"Double Hashing Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/HashDoublePPRO.html","mod_name":"HashCImproved","threshold":5}}}},"Hashing/HashAnal":{"long_name":"Analysis of Closed Hashing","sections":{"Analysis of Closed Hashing":{"HashAnalSumm":{"long_name":"Analysis of Closed Hashing Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashAnalSumm.html","mod_name":"HashAnal","threshold":5}}}},"Hashing/HashDel":{"long_name":"Deletion","sections":{"Deletion":{"hashdelCON":{"long_name":"Hash Deletion Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/Hashing/hashdelCON.js"],"mod_name":"HashDel"},"HashingDelPRO":{"long_name":"Hash Deletion Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Hashing/HashingDelPRO.html","mod_name":"HashDel","threshold":0.9}},"Hashing Deletion Summary Questions":{"HashDelSumm":{"long_name":"Hash Deletion Summary Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Hashing/HashDelSumm.html","mod_name":"HashDel","threshold":3}}}},"Hashing/HashSumm":{"long_name":"Hashing Chapter Summary Exercises","sections":{"Hashing Review":{"HashChapterSumm":{"long_name":"Hashing Chapter Summary Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Hashing/HashChapterSumm.html","mod_name":"HashSumm","threshold":10}}}},"MemManage/MemmanIntro":{"long_name":"Chapter Introduction: Memory Management","sections":{}},"MemManage/Dynamic":{"long_name":"Dynamic Storage Allocation","sections":{"Dynamic Storage Allocation":{"freeblocklistCON":{"type":"dgm","mod_name":"Dynamic"},"fragCON":{"type":"dgm","mod_name":"Dynamic"}}}},"MemManage/SequentialFit":{"long_name":"Sequential-Fit Methods","sections":{"Sequential-Fit Methods":{"seqFitCON":{"type":"dgm","mod_name":"SequentialFit"}}}},"MemManage/FirstFit":{"long_name":"First Fit","sections":{"First Fit":{"firstFitAV":{"long_name":"First Fit Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/firstFitAV.html","mod_name":"FirstFit","threshold":1},"firstFitPRO":{"long_name":"First Fit Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/MemManage/firstFitPRO.html","mod_name":"FirstFit","threshold":0.9}}}},"MemManage/CircularFit":{"long_name":"Circular First Fit","sections":{"Circular First Fit":{"firstFitAV":{"long_name":"Circular First Fit Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/firstFitAV.html","mod_name":"CircularFit","threshold":1}}}},"MemManage/BestFit":{"long_name":"Best Fit","sections":{"Best Fit":{"firstFitAV":{"long_name":"Best Fit Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/firstFitAV.html","mod_name":"BestFit","threshold":1}}}},"MemManage/WorstFit":{"long_name":"Worst Fit","sections":{"Worst Fit":{"firstFitAV":{"long_name":"Worst Fit Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/firstFitAV.html","mod_name":"WorstFit","threshold":1}}}},"MemManage/MMPerformance":{"long_name":"Sequential Fit Peformance","sections":{"Sequential Fit Peformance":{"firstFitAV":{"long_name":"Sequential Fit Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/firstFitAV.html","mod_name":"MMPerformance","threshold":1}}}},"MemManage/Buddy":{"long_name":"Other Memory Allocation Methods","sections":{"Other Memory Allocation Methods":{"buddyCON":{"type":"dgm","mod_name":"Buddy"},"BuddyAV":{"long_name":"Buddy Method Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/MemManage/BuddyAV.html","mod_name":"Buddy","threshold":1}}}},"MemManage/Garbage":{"long_name":"Failure Policies and Garbage Collection","sections":{}},"Indexing/IndexIntro":{"long_name":"Indexing Chapter Introduction","sections":{}},"Indexing/LinearIndexing":{"long_name":"Linear Indexing","sections":{"Linear Indexing":{"varindexCON":{"long_name":"Simple linear index Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/linearIndexingCON.css"],"scripts":["AV/Indexing/varindexCON.js"],"mod_name":"LinearIndexing"},"linindexCON":{"long_name":"Two-level linear index Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/linearIndexingCON.css"],"scripts":["AV/Indexing/linindexCON.js"],"mod_name":"LinearIndexing"},"linearIndexingPRO":{"long_name":"Linear Indexing Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Indexing/linearIndexingPRO.html","mod_name":"LinearIndexing","threshold":0.9},"TwoDArrCON":{"type":"dgm","mod_name":"LinearIndexing"},"InvertedCON":{"type":"dgm","mod_name":"LinearIndexing"},"InvListCON":{"type":"dgm","mod_name":"LinearIndexing"}}}},"Indexing/ISAM":{"long_name":"ISAM","sections":{}},"Indexing/TreeIndexing":{"long_name":"Tree-based Indexing","sections":{"Tree-based Indexing":{"pagedBSTCON":{"long_name":"Paged BST Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/treeIndexingCON.css"],"scripts":["AV/Indexing/pagedBSTCON.js"],"mod_name":"TreeIndexing"},"rebalanceBSTCON":{"long_name":"Paged BST With Disk Accesses Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/treeIndexingCON.css"],"scripts":["AV/Indexing/rebalanceBSTCON.js"],"mod_name":"TreeIndexing"},"TreeIndexing":{"long_name":"Tree Indexing Proficiency Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Indexing/TreeIndexing.html","mod_name":"TreeIndexing","threshold":5}}}},"Indexing/TwoThreeTree":{"long_name":"2-3 Trees","sections":{"2-3 Trees":{"twoThreedgmCON":{"type":"dgm","mod_name":"TwoThreeTree"},"simpleInsertCON":{"long_name":"2-3 Tree Insert Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/twoThreeTreeCON.css"],"scripts":["AV/Indexing/twoThreeTreeCON.js","AV/Indexing/simpleInsertCON.js"],"mod_name":"TwoThreeTree"},"promoteCON":{"long_name":"2-3 Tree Insert Promotion Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/twoThreeTreeCON.css"],"scripts":["AV/Indexing/twoThreeTreeCON.js","AV/Indexing/promoteCON.js"],"mod_name":"TwoThreeTree"},"splitCON":{"long_name":"2-3 Tree Insert Split Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/twoThreeTreeCON.css"],"scripts":["AV/Indexing/twoThreeTreeCON.js","AV/Indexing/splitCON.js"],"mod_name":"TwoThreeTree"}}}},"Indexing/BTree":{"long_name":"B-Trees","sections":{"B-Trees":{"BTreedgmCON":{"type":"dgm","mod_name":"BTree"},"TTPbuildCON":{"long_name":"TTPbuildCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/TTPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/TTPbuildCON.js"],"mod_name":"BTree"},"TTPfindCON":{"long_name":"TTPfindCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/TTPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/TTPfindCON.js"],"mod_name":"BTree"},"TTPdeleteCON":{"long_name":"TTPdeleteCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/TTPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/TTPdeleteCON.js"],"mod_name":"BTree"},"BPfindCON":{"long_name":"BPfindCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/BPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/BPfindCON.js"],"mod_name":"BTree"},"BPbuildCON":{"long_name":"BPbuildCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/BPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/BPbuildCON.js"],"mod_name":"BTree"},"bPlusTreeInsertPRO":{"long_name":"B+ Tree Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Indexing/bPlusTreeInsertPRO.html","mod_name":"BTree","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous"}},"BPdeleteCON":{"long_name":"BPdeleteCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/BPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/BPdeleteCON.js"],"mod_name":"BTree"},"BPbuild5CON":{"long_name":"BPbuild5CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Indexing/BPTree.css","AV/Indexing/BPTreeCON.css"],"scripts":["AV/Indexing/BPlusTreeNode.js","AV/Indexing/BPlusTree.js","AV/Indexing/BPbuild5CON.js"],"mod_name":"BTree"}}}},"Indexing/IndexingSumm":{"long_name":"Indexing Summary Exercises","sections":{"Indexing Summary":{"IndexChoice":{"long_name":"Choosing an Index","required":true,"points":2,"type":"ka","av_address":"Exercises/Indexing/IndexChoice.html","mod_name":"IndexingSumm","threshold":5}}}},"General/GenTreeIntro":{"long_name":"General Trees","sections":{"General Trees":{"GenTreeCON":{"type":"dgm","mod_name":"GenTreeIntro"},"GenTreePreTravCON":{"long_name":"General Tree Preorder Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/GenTreeCON.css"],"scripts":["AV/General/GenTreePreTravCON.js"],"mod_name":"GenTreeIntro"},"GenTreePostTravCON":{"long_name":"General Tree Postorder Traversal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/GenTreeCON.css"],"scripts":["AV/General/GenTreePostTravCON.js"],"mod_name":"GenTreeIntro"}}}},"General/UnionFind":{"long_name":"Union/Find and the Parent Pointer Implementation","sections":{"The Union/Find Problem":{"UFfigCON":{"type":"dgm","mod_name":"UnionFind"},"UFconcomCON":{"type":"dgm","mod_name":"UnionFind"},"ufCON":{"long_name":"Union/Find Example","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/UFCON.css"],"scripts":["AV/General/ufCON.js"],"mod_name":"UnionFind"},"pathcompCON":{"long_name":"Union/Find Path Compression Example","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/UFCON.css"],"scripts":["AV/General/pathcompCON.js"],"mod_name":"UnionFind"},"UnionFindPRO":{"long_name":"Union/Find Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/General/UnionFindPRO.html","mod_name":"UnionFind","threshold":0.9}}}},"General/SequentialRep":{"long_name":"Sequential Tree Representations","sections":{"Sequential Tree Representations":{"BinExampCON":{"type":"dgm","mod_name":"SequentialRep"},"SequentialTreeCON":{"long_name":"First sequential representation Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/SequentialTreeCON.css"],"scripts":["AV/General/SequentialTreeCON.js"],"mod_name":"SequentialRep"},"SequentialTreePRO":{"long_name":"First Sequential Representation Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/General/SequentialTreePRO.html","mod_name":"SequentialRep","threshold":5}},"Alternative Sequential Representation":{"SequentialTreeAltCON":{"long_name":"Second sequential representation Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/SequentialTreeCON.css"],"scripts":["AV/General/SequentialTreeAltCON.js"],"mod_name":"SequentialRep"},"SequentialTreeAltPRO":{"long_name":"Alternate Sequential Representation Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/General/SequentialTreeAltPRO.html","mod_name":"SequentialRep","threshold":5}},"Bit Vector Representation":{"SequentialTreeBitsCON":{"long_name":"Bit vector sequential representation Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/SequentialTreeCON.css"],"scripts":["AV/General/SequentialTreeBitsCON.js"],"mod_name":"SequentialRep"},"SequentialTreeBitVectorPRO":{"long_name":"Bit Vector Sequential Representation Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/General/SequentialTreeBitVectorPRO.html","mod_name":"SequentialRep","threshold":5}},"General Tree Sequential Representation":{"SequentialGenTreeCON":{"long_name":"General Tree sequential representation Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/General/SequentialTreeCON.css"],"scripts":["AV/General/SequentialGenTreeCON.js"],"mod_name":"SequentialRep"},"SequentialTreeGenTreePRO":{"long_name":"General Tree Sequential Representation Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/General/SequentialTreeGenTreePRO.html","mod_name":"SequentialRep","threshold":5}}}},"Graph/GraphIntro":{"long_name":"Graphs Chapter Introduction","sections":{"Graph Terminology and Implementation":{"GdirundirCON":{"type":"dgm","mod_name":"GraphIntro"},"GneighborCON":{"type":"dgm","mod_name":"GraphIntro"},"GpathDefCON":{"type":"dgm","mod_name":"GraphIntro"},"GconcomCON":{"type":"dgm","mod_name":"GraphIntro"},"GsparseDefCON":{"type":"dgm","mod_name":"GraphIntro"},"GacyclicDefCON":{"type":"dgm","mod_name":"GraphIntro"},"GdirRepCON":{"type":"dgm","mod_name":"GraphIntro"},"GundirRepCON":{"type":"dgm","mod_name":"GraphIntro"},"GweightedCON":{"type":"dgm","mod_name":"GraphIntro"},"GspaceCalcSumm":{"long_name":"Graph Space Requirements Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Graph/GspaceCalcSumm.html","mod_name":"GraphIntro","threshold":5}},"Graph Terminology Questions":{"GraphIntroSumm":{"long_name":"Graph Terminology Summary Exercise","required":true,"points":3.0,"type":"ka","av_address":"Exercises/Graph/GraphIntroSumm.html","mod_name":"GraphIntro","threshold":10}}}},"Graph/GraphImpl":{"long_name":"Graph Implementations","sections":{}},"Graph/GraphTraversal":{"long_name":"Graph Traversals","sections":{"Graph Traversals":{"DFSCON":{"long_name":"Depth-First Search Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/DFSCON.css"],"scripts":["AV/Graph/DFSCON.js"],"mod_name":"GraphTraversal"},"DFSPE":{"long_name":"DFS Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Graph/DFSPE.html","mod_name":"GraphTraversal","threshold":0.9}},"Breadth-First Search":{"BFSCON":{"long_name":"Breadth-First Search Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/BFSCON.css"],"scripts":["AV/Graph/BFSCON.js"],"mod_name":"GraphTraversal"},"BFSAV":{"long_name":"BFS AV","required":false,"points":0.0,"type":"ss","av_address":"AV/Graph/BFSAV.html","mod_name":"GraphTraversal","threshold":1},"BFSPE":{"long_name":"BFS Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Graph/BFSPE.html","mod_name":"GraphTraversal","threshold":0.9}}}},"Graph/GraphTopsort":{"long_name":"Topological Sort","sections":{"Topological Sort":{"topSortCON":{"type":"dgm","mod_name":"GraphTopsort"},"topSortDFSCON":{"long_name":"TopSort Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/topSortDFSCON.css"],"scripts":["AV/Graph/topSortDFSCON.js"],"mod_name":"GraphTopsort"},"topSortQCON":{"long_name":"topSortQCON Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/topSortQCON.css"],"scripts":["AV/Graph/topSortQCON.js"],"mod_name":"GraphTopsort"}}}},"Graph/GraphShortest":{"long_name":"Shortest-Paths Problems","sections":{"Shortest-Paths Problems":{"DistanceExampCON":{"type":"dgm","mod_name":"GraphShortest"},"DijkstraCON":{"long_name":"Dijkstra Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/DijkstraCON.css"],"scripts":["AV/Graph/DijkstraCON.js"],"mod_name":"GraphShortest"},"DijkstraPE":{"long_name":"Dijkstra's Algorithm Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Graph/DijkstraPE.html","mod_name":"GraphShortest","threshold":0.9}}}},"Graph/MCST":{"long_name":"Minimal Cost Spanning Trees","sections":{"Minimal Cost Spanning Trees":{"MCSTCON":{"type":"dgm","mod_name":"MCST"},"primCON":{"long_name":"Prim's Minimum Cost Spanning Tree Algorithm Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/primCON.css"],"scripts":["AV/Graph/primCON.js"],"mod_name":"MCST"},"PrimPE":{"long_name":"Prim's Algorithm Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Graph/PrimPE.html","mod_name":"MCST","threshold":0.9}}}},"Graph/Kruskal":{"long_name":"Kruskal's Algorithm","sections":{"Kruskal's Algorithm":{"kruskalCON":{"long_name":"Kruskal Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Graph/kruskalCON.css"],"scripts":["AV/Graph/kruskalCON.js"],"mod_name":"Kruskal"},"KruskalPE":{"long_name":"Kruskal's Algorithm Proficiency Exercise","required":true,"points":2.0,"type":"pe","av_address":"AV/Graph/KruskalPE.html","mod_name":"Kruskal","threshold":0.9}}}},"Graph/Floyd":{"long_name":"All-Pairs Shortest Paths","sections":{}},"Spatial/Spatial":{"long_name":"Spatial Data Structures","sections":{"Spatial Data Structures":{}}},"Spatial/PRquadtree":{"long_name":"The PR Quadtree","sections":{"The PR Quadtree":{"PRquadtreeAV":{"long_name":"PRquadtreeAV","required":false,"points":0.0,"type":"ss","av_address":"AV/Spatial/PRquadtreeAV.html","mod_name":"PRquadtree","threshold":1},"PRquadtree2ptAV":{"long_name":"PRquadtree2ptAV","required":false,"points":0.0,"type":"ss","av_address":"AV/Spatial/PRquadtree2ptAV.html","mod_name":"PRquadtree","threshold":1},"PRquadtreeInter":{"long_name":"PRquadtreeInter","required":false,"points":0.0,"type":"ss","av_address":"AV/Spatial/PRquadtreeInter.html","mod_name":"PRquadtree","threshold":1}}}},"Spatial/KDtree":{"long_name":"KD Trees","sections":{"KD Trees":{"kd-treeAV":{"long_name":"kd-treeAV","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/kd-treeAV.html","mod_name":"KDtree","threshold":1}}}},"Spatial/Bintree":{"long_name":"The Bintree","sections":{"The Bintree":{"bintreeCON":{"type":"dgm","mod_name":"Bintree"},"BintreeAV":{"long_name":"BintreeAV","required":false,"points":0.0,"type":"ss","av_address":"AV/Spatial/BintreeAV.html","mod_name":"Bintree","threshold":1},"BintreeInter":{"long_name":"BintreeInter","required":false,"points":0.0,"type":"ss","av_address":"AV/Spatial/BintreeInter.html","mod_name":"Bintree","threshold":1}}}},"Spatial/OtherSpatial":{"long_name":"Other Spatial Data Structures","sections":{}},"SeniorAlgAnal/AAIntro":{"long_name":"Data and Algorithm Analysis","sections":{"Introduction":{}}},"SeniorAlgAnal/ProblemSolving":{"long_name":"An Introduction to Problem Solving","sections":{"An Introduction to Problem Solving":{}}},"SeniorAlgAnal/AAOverview":{"long_name":"Semester Overview","sections":{"Semester Overview":{}}},"SeniorAlgAnal/TOH":{"long_name":"Introduction to Analyzing a Problem","sections":{"Towers of Hanoi":{"TOHfigCON":{"type":"dgm","mod_name":"TOH"}}}},"SeniorAlgAnal/BoundsReview":{"long_name":"Bounds Review","sections":{"Bounds Review":{"SimpleCostsCON":{"type":"dgm","mod_name":"BoundsReview"}}}},"SeniorAlgAnal/GrowthRate":{"long_name":"Growth Rates Review","sections":{"Growth Rates Review":{}}},"SeniorAlgAnal/AdvSumm":{"long_name":"Summation Techniques","sections":{}},"SeniorAlgAnal/Recurrence":{"long_name":"Solving Recurrence Relations","sections":{"Solving Recurrence Relations":{"ExpandRecurrenceCON":{"long_name":"Divide-and-Conquer Expansion Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV//SeniorAlgAnal/ExpandRecurrenceCON.css"],"scripts":["AV/SeniorAlgAnal/ExpandRecurrenceCON.js"],"mod_name":"Recurrence"},"DandCRecurrenceCON":{"long_name":"Divide-and-Conquer Expansion Slideshow2","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/DandCRecurrenceCON.css"],"scripts":["AV/SeniorAlgAnal/DandCRecurrenceCON.js"],"mod_name":"Recurrence"}}}},"Searching/SearchIntro":{"long_name":"Chapter Introduction: Search","sections":{}},"Searching/UnsortedSearch":{"long_name":"Analyzing Search in Unsorted Lists","sections":{"Analyzing Search in Unsorted Lists":{"PosetCON":{"long_name":"PosetCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/PosetCON.css"],"scripts":["AV/SeniorAlgAnal/PosetCON.js"],"mod_name":"UnsortedSearch"}}}},"Searching/SortedSearch":{"long_name":"Search in Sorted Arrays","sections":{"Analysis":{"binarySearchCON":{"long_name":"binarySearchCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/binarySearchCON.css"],"scripts":["AV/Searching/binarySearchCON.js"],"mod_name":"SortedSearch"}}}},"Searching/SelfOrg":{"long_name":"Self-Organizing Lists","sections":{"Introduction":{"SelforgCON1":{"long_name":"Self-organizing List Slideshow: Frequency Count","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/selforgCON.css"],"scripts":["AV/Searching/selforgCON.js"],"mod_name":"SelfOrg"},"SelfOrgCounterPRO":{"long_name":"Self-organizing List Counter Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Searching/SelfOrgCounterPRO.html","mod_name":"SelfOrg","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}},"Move to Front":{"SelforgCON2":{"long_name":"Self-organizing List Slideshow: Move-to-front","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/selforgCON.css"],"scripts":["AV/Searching/selforgCON.js"],"mod_name":"SelfOrg"},"SelfOrgM2FPRO":{"long_name":"Self-organizing List Move-to-front Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Searching/SelfOrgM2FPRO.html","mod_name":"SelfOrg","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}},"Transpose":{"SelforgCON3":{"long_name":"Self-organizing List Slideshow: Transpose","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/Searching/selforgCON.css"],"scripts":["AV/Searching/selforgCON.js"],"mod_name":"SelfOrg"},"SelfOrgTransposePRO":{"long_name":"Self-organizing List Transpose Proficiency Exercise","required":true,"points":2.0,"type":"ka","av_address":"Exercises/Searching/SelfOrgTransposePRO.html","mod_name":"SelfOrg","threshold":0.9,"exer_options":{"JXOP-feedback":"continuous","JXOP-fixmode":"fix"}}}}},"Development/SetSearch":{"long_name":"Bit Vectors for Representing Sets","sections":{}},"Development/PerfectHash":{"long_name":"Perfect Hashing","sections":{"Perfect Hashing":{"perfectHashAV":{"long_name":"Perfect Hashing Visualization","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/perfectHashAV.html","mod_name":"PerfectHash","threshold":1}}}},"Bounds/BoundMax":{"long_name":"Finding the Maximum Value","sections":{"Finding the Maximum Value":{}}},"Bounds/BoundAdversary":{"long_name":"Adversarial Lower Bounds Proofs","sections":{}},"Bounds/BoundState":{"long_name":"State Space Lower Bounds Proofs","sections":{}},"Bounds/BoundiBest":{"long_name":"Finding the i th Best Element","sections":{}},"Bounds/SortingOptimal":{"long_name":"Optimal Sorting","sections":{}},"SeniorAlgAnal/Numeric":{"long_name":"Number Problems","sections":{"Number Problems":{}}},"SeniorAlgAnal/Transform":{"long_name":"The Transformation Concept","sections":{"The Transformation Concept: Integer Multiplication":{},"Polynomial Multiplication":{"polynomialCON":{"long_name":"fft slideshow 1 polynomial","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/polynomialCON.css"],"scripts":["DataStructures/Plot.js","AV/SeniorAlgAnal/polynomialCON.js"],"mod_name":"Transform"},"EvalandInterpolationCON":{"long_name":"fft slideshow 2 evaluation and interpolation","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/EvalandInterpolationCON.css"],"scripts":["DataStructures/Plot.js","AV/SeniorAlgAnal/EvalandInterpolationCON.js"],"mod_name":"Transform"},"ProductCON":{"long_name":"fft slideshow 3 polynomial product","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/ProductCON.css"],"scripts":["AV/SeniorAlgAnal/ProductCON.js"],"mod_name":"Transform"},"EvaluationCON":{"long_name":"fft slideshow 4 evaluation of polynomial product","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/EvaluationCON.css"],"scripts":["AV/SeniorAlgAnal/EvaluationCON.js"],"mod_name":"Transform"},"Polynomial_multiplication":{"long_name":"Polynomial_multiplication","required":true,"points":1.0,"type":"ka","av_address":"Exercises/SeniorAlgAnal/Polynomial_multiplication.html","mod_name":"Transform","threshold":5}}}},"SeniorAlgAnal/FFT":{"long_name":"The Fast Fourier Transform","sections":{"The Fast Fourier Transform":{"EvenOddCON":{"long_name":"fft slideshow 1 even and odd polynomials","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/EvenOddCON.css"],"scripts":["AV/SeniorAlgAnal/EvenOddCON.js"],"mod_name":"FFT"},"fftCON":{"type":"dgm","mod_name":"FFT"},"Nth_root":{"long_name":"Nth_root","required":true,"points":1.0,"type":"ka","av_address":"Exercises/SeniorAlgAnal/Nth_root.html","mod_name":"FFT","threshold":5},"arrayCON":{"type":"dgm","mod_name":"FFT"},"DFTmatrixCON":{"long_name":"fft slideshow 4 DFT matrix","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/DFTmatrixCON.css"],"scripts":["DataStructures/Plot.js","AV/SeniorAlgAnal/DFTmatrixCON.js"],"mod_name":"FFT"},"DFTpropCON":{"long_name":"DFT matrix properties","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/DFTpropCON.css"],"scripts":["AV/SeniorAlgAnal/DFTpropCON.js"],"mod_name":"FFT"},"FFTprocedureCON":{"long_name":"fft slideshow 6 FFT procedure","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/SeniorAlgAnal/FFTprocedureCON.css","AV/SeniorAlgAnal/FFTprocedureCON.json"],"scripts":["lib/complex.js","AV/SeniorAlgAnal/FFTprocedureCON.js"],"mod_name":"FFT"},"FFTAlg":{"long_name":"FFTAlg","required":true,"points":1.0,"type":"ka","av_address":"Exercises/SeniorAlgAnal/FFTAlg.html","mod_name":"FFT","threshold":5}}}},"SeniorAlgAnal/Probabilistic":{"long_name":"Introduction to Probabilistic Algorithms","sections":{"Probabilistic Algorithms":{}}},"SeniorAlgAnal/Primes":{"long_name":"Finding Prime Numbers","sections":{}},"SeniorAlgAnal/RandomNums":{"long_name":"Random Numbers","sections":{"Random Numbers":{}}},"SearchStruct/SkipList":{"long_name":"Skip Lists","sections":{"Skip Lists":{"SkipListIntroCON":{"long_name":"SkipListIntroCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/SkipList.css","AV/SearchStruct/SkipListIntroCON.css"],"scripts":["DataStructures/SkipList.js","AV/SearchStruct/SkipListIntroCON.js"],"mod_name":"SkipList"},"SkipListInsertCON":{"long_name":"SkipListInsertCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/SkipList.css","AV/SearchStruct/SkipListInsertCON.css"],"scripts":["DataStructures/SkipList.js","AV/SearchStruct/SkipListInsertCON.js"],"mod_name":"SkipList"},"SkipListRmvCON":{"long_name":"SkipListRmvCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/SkipList.css","AV/SearchStruct/SkipListRmvCON.css"],"scripts":["DataStructures/SkipList.js","AV/SearchStruct/SkipListRmvCON.js"],"mod_name":"SkipList"}}}},"SearchStruct/BalancedTree":{"long_name":"Balanced Trees","sections":{}},"SearchStruct/AVL":{"long_name":"The AVL Tree","sections":{}},"SearchStruct/Splay":{"long_name":"The Splay Tree","sections":{}},"SearchStruct/RedBlack":{"long_name":"The Red-Black Tree","sections":{"Exercise 1":{"redBlackTreeColoring":{"long_name":"Red-Black Tree Coloring Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Development/redBlackTreeColoring.html","mod_name":"RedBlack","threshold":0.9}},"Exercise 2":{"redBlackTreePRO":{"long_name":"Red-Black Tree Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/Development/redBlackTreePRO.html","mod_name":"RedBlack","threshold":0.9}}}},"SearchStruct/Sparse":{"long_name":"The Sparse Matrix","sections":{}},"SeniorAlgAnal/DynamicProgramming":{"long_name":"Dynamic Programming","sections":{"Dynamic Programming":{},"Computing Fibonacci Numbers":{"FibTreeCON":{"long_name":"FibTreeCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["/AV/SeniorAlgAnal/FibTreeCON.css"],"scripts":["/AV/SeniorAlgAnal/FibTreeCON.js"],"mod_name":"DynamicProgramming"},"FibGraphCON":{"type":"dgm","mod_name":"DynamicProgramming"}},"The Knapsack Problem":{"KnapGraphCON":{"type":"dgm","mod_name":"DynamicProgramming"}},"Chained Matrix Multiplication":{"MatMulCON":{"long_name":"MatMulCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["/AV/SeniorAlgAnal/MatMulCON.css"],"scripts":["/AV/SeniorAlgAnal/MatMulCON.js"],"mod_name":"DynamicProgramming"}}}},"SeniorAlgAnal/AmortAnal":{"long_name":"Amortized Analysis","sections":{}},"Development/Knapsack":{"long_name":"0/1 Knapsack Problem","sections":{"0/1 Knapsack Problem":{"sackCallTree":{"long_name":"Knapsack Call Tree","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/sackCallTree.html","mod_name":"Knapsack","threshold":1},"sackTreePluck":{"long_name":"Knapsack Call Tree Pluck","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/sackTreePluck.html","mod_name":"Knapsack","threshold":1},"sackTraceBack":{"long_name":"Knapsack Tree Reduction","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/sackTraceBack.html","mod_name":"Knapsack","threshold":1},"knapsackSelect":{"long_name":"Knapsack Select","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/knapsackSelect.html","mod_name":"Knapsack","threshold":5}},"Exercise 2":{"knapsackFillRow":{"long_name":"Knapsack Fill Row","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/knapsackFillRow.html","mod_name":"Knapsack","threshold":5}},"Exercise 3":{"knapsackSolution":{"long_name":"Knapsack Solution","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/knapsackSolution.html","mod_name":"Knapsack","threshold":5}},"Exercise 4":{"sackProficiency":{"long_name":"Knapsack Proficiency","required":true,"points":1,"type":"pe","av_address":"AV/Development/sackProficiency.html","mod_name":"Knapsack","threshold":0.9}}}},"Development/EditDistance":{"long_name":"Edit Distance","sections":{"Edit Distance":{"editRCT":{"long_name":"Edit RCT","required":false,"points":1,"type":"ss","av_address":"AV/Development/StringMatch/editRCT.html","mod_name":"EditDistance","threshold":0.9},"editPrune":{"long_name":"Edit Prune","required":false,"points":1,"type":"ss","av_address":"AV/Development/StringMatch/editPrune.html","mod_name":"EditDistance","threshold":0.9},"editOptimal":{"long_name":"Edit Optimal","required":false,"points":1,"type":"ss","av_address":"AV/Development/StringMatch/editOptimal.html","mod_name":"EditDistance","threshold":0.9}},"Exercise 1":{"edit-KA1":{"long_name":"Edit KA1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/edit-KA1.html","mod_name":"EditDistance","threshold":5}},"Exercise 2":{"edit-KA2":{"long_name":"Edit KA2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/edit-KA2.html","mod_name":"EditDistance","threshold":5}}}},"Development/StringSearchKMP":{"long_name":"KMP String Search Algorithm","sections":{"KMP String Search Algorithm":{"KMP_Slideshow":{"long_name":"KMP_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/KMP_Slideshow.html","mod_name":"StringSearchKMP","threshold":1},"KMP_Exercise":{"long_name":"KMP_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/KMP_Exercise.html","mod_name":"StringSearchKMP","threshold":5},"KMP_align_array_slideshow":{"long_name":"KMP_align_array_slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/KMP_align_array_slideshow.html","mod_name":"StringSearchKMP","threshold":1},"KMP_Alignment_Array_Exercise":{"long_name":"KMP_Alignment_Array_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/KMP_Alignment_Array_Exercise.html","mod_name":"StringSearchKMP","threshold":5},"KMP_Compares_Shifts_Exercise":{"long_name":"KMP_Compares_Shifts_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/KMP_Compares_Shifts_Exercise.html","mod_name":"StringSearchKMP","threshold":5},"KMP_Users_Choice":{"long_name":"KMP_Users_Choice","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/KMP_Users_Choice.html","mod_name":"StringSearchKMP","threshold":5}}}},"Development/StringSearchBoyerMoore":{"long_name":"Boyer-Moore String Search Algorithm","sections":{"Boyer-Moore String Search Algorithm":{"Boyer_Moore_Algorithm_Slideshow":{"long_name":"Boyer_Moore_Algorithm_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/Boyer_Moore_Algorithm_Slideshow.html","mod_name":"StringSearchBoyerMoore","threshold":1},"Boyer_Moore_MMC_Slideshow":{"long_name":"Boyer_Moore_MMC_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/Boyer_Moore_MMC_Slideshow.html","mod_name":"StringSearchBoyerMoore","threshold":1},"Boyer_Moore_Align_Table_Slideshow":{"long_name":"Boyer_Moore_Align_Table_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/Boyer_Moore_Align_Table_Slideshow.html","mod_name":"StringSearchBoyerMoore","threshold":1},"Boyer_Moore_Next_Step_Exercise":{"long_name":"Boyer_Moore_Next_Step_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/Boyer_Moore_Next_Step_Exercise.html","mod_name":"StringSearchBoyerMoore","threshold":5},"Boyer_Moore_MMC_Exercise":{"long_name":"Boyer_Moore_MMC_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/Boyer_Moore_MMC_Exercise.html","mod_name":"StringSearchBoyerMoore","threshold":5},"Boyer_Moore_Alignment_Exercise":{"long_name":"Boyer_Moore_Alignment_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/Boyer_Moore_Alignment_Exercise.html","mod_name":"StringSearchBoyerMoore","threshold":5}}}},"Development/StringSearchRabinKarp":{"long_name":"Rabin-Karp String Search Algorithm [Draft]","sections":{"Rabin-Karp String Search Algorithm [Draft]":{"Rabin_Karp_Horner_Slideshow":{"long_name":"Rabin_Karp_Horner_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/Rabin_Karp_Horner_Slideshow.html","mod_name":"StringSearchRabinKarp","threshold":1},"Rabin_Karp_Horners_Exercise":{"long_name":"Rabin_Karp_Horners_Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/Rabin_Karp_Horners_Exercise.html","mod_name":"StringSearchRabinKarp","threshold":5},"Rabin_Karp_Algorithm_Slideshow":{"long_name":"Rabin_Karp_Algorithm_Slideshow","required":false,"points":0.0,"type":"ss","av_address":"AV/Development/StringMatch/Rabin_Karp_Algorithm_Slideshow.html","mod_name":"StringSearchRabinKarp","threshold":1},"Rabin_Karp_Next_Step":{"long_name":"Rabin_Karp_Next_Step","required":true,"points":1.0,"type":"ka","av_address":"Exercises/Development/StringMatch/Rabin_Karp_Next_Step.html","mod_name":"StringSearchRabinKarp","threshold":5}}}},"Development/GenTreeImplement":{"long_name":"General Tree Implementations","sections":{"General Tree Implementations":{}}},"Development/Kary":{"long_name":"K-ary Tree Implementations","sections":{"K-ary Tree Implementations":{}}},"NP/LimComp":{"long_name":"Limits to Computing","sections":{"Limits to Computing":{}}},"NP/Reduction":{"long_name":"Reductions","sections":{"Reductions":{"SortingProblemCON":{"long_name":"Sorting Problem","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/SortingProblemCON.css"],"scripts":["AV/NP/SortingProblemCON.js"],"mod_name":"Reduction"},"pairToSortCON":{"long_name":"Pair to Sorting Reduction Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/pairToSortCON.css"],"scripts":["AV/NP/pairToSortCON.js"],"mod_name":"Reduction"},"sortToPairCON":{"long_name":"Sorting to Pairing Reduction Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/sortToPairCON.css"],"scripts":["AV/NP/sortToPairCON.js"],"mod_name":"Reduction"},"matrixMulCON":{"long_name":"Matrix Multiplication","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/matrixMulCON.css"],"scripts":["AV/NP/matrixMulCON.js"],"mod_name":"Reduction"},"ReduceSimpPCON":{"type":"dgm","mod_name":"Reduction"}}}},"NP/NPComplete":{"long_name":"NP-Completeness","sections":{"NP-Completeness":{"SalesCON":{"type":"dgm","mod_name":"NPComplete"},"cliqueCON":{"long_name":"Clique Problem","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/cliqueCON.css"],"scripts":["AV/NP/cliqueCON.js"],"mod_name":"NPComplete"},"ComplexCON":{"type":"dgm","mod_name":"NPComplete"}}}},"NP/circuitSAT":{"long_name":"Circuit Satisfiability","sections":{"Circuit Satisfiability":{"circuitSATCON":{"long_name":"Circuit Satisfiability","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/circuitSATCON.css"],"scripts":["AV/NP/circuit.js","AV/NP/circuitSATCON.js"],"mod_name":"circuitSAT"}}}},"NP/SAT":{"long_name":"Formula Satisfiability","sections":{"Formula Satisfiability":{"SATCON":{"long_name":"Formula Satisfiability","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV//NP/SATCON.css"],"scripts":["AV/NP/SATCON.js"],"mod_name":"SAT"}}}},"NP/threeSAT":{"long_name":"3-CNF Satisfiability","sections":{"3-CNF Satisfiability":{"threeSATCON":{"long_name":"3-Satisfiability","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/threeSATCON.css"],"scripts":["AV/NP/threeSATCON.js"],"mod_name":"threeSAT"},"threeSATPRO":{"long_name":"Practice Exercise for 3-SAT","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/threeSATPRO.html","mod_name":"threeSAT","threshold":1.0}}}},"NP/clique":{"long_name":"The Clique Problem","sections":{"The Clique Problem":{"cliqueCON":{"long_name":"Clique","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/cliqueCON.css"],"scripts":["AV/NP/cliqueCON.js"],"mod_name":"clique"},"cliquePRO":{"long_name":"Practice Exercise for Clique","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/cliquePRO.html","mod_name":"clique","threshold":1.0}}}},"NP/independentSet":{"long_name":"The Independent Set Problem","sections":{"Independent Set":{"independentSetCON":{"long_name":"Independent Set","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/independentSetCON.css"],"scripts":["AV/NP/independentSetCON.js"],"mod_name":"independentSet"},"independentSetPRO":{"long_name":"Practice Exercise for Independent Set","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/independentSetPRO.html","mod_name":"independentSet","threshold":1.0}}}},"NP/vertexCover":{"long_name":"The Vertex Cover Problem","sections":{"Vertex Cover":{"vertexCoverCON":{"long_name":"Vertex Cover","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/vertexCoverCON.css"],"scripts":["AV/NP/vertexCoverCON.js"],"mod_name":"vertexCover"},"vertexCoverPRO":{"long_name":"Practice Exercise for Vertex Cover","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/vertexCoverPRO.html","mod_name":"vertexCover","threshold":1.0}}}},"NP/hamiltonianCycle":{"long_name":"The Hamiltonian Cycle Problem","sections":{"Hamiltonian Cycle":{"hamiltonianCycleCON":{"long_name":"Hamiltonian Cycle","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/hamiltonianCycleCON.css"],"scripts":["AV/NP/hamiltonianCycleCON.js"],"mod_name":"hamiltonianCycle"},"hamiltonianCycPRO":{"long_name":"Practice Exercise for Hamiltonian Cycle","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/hamiltonianCycPRO.html","mod_name":"hamiltonianCycle","threshold":1.0}}}},"NP/TSP":{"long_name":"The Traveling Salesman Problem","sections":{"Traveling Salesman":{"TSPCON":{"long_name":"Traveling Salesman","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/TSPCON.css"],"scripts":["AV/NP/TSPCON.js"],"mod_name":"TSP"},"TSPPRO":{"long_name":"Practice Exercise for Traveling Salesman Problem","required":true,"points":1.0,"type":"ka","av_address":"Exercises/NP/TSPPRO.html","mod_name":"TSP","threshold":1.0}}}},"NP/provingNPC":{"long_name":"NP-Completeness Proofs","sections":{"NP-Completeness Proofs":{"NPCProofDiagramCON":{"type":"dgm","mod_name":"provingNPC"}}}},"NP/circuitSAT_to_SAT":{"long_name":"Reduction of Circuit SAT to SAT","sections":{"Reduction of Circuit SAT to SAT":{"circuitSATtoSATCON":{"long_name":"Circuit SAT to SAT","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/circuitSATtoSATCON.css"],"scripts":["AV/NP/circuit.js","AV/NP/circuitSATtoSATCON.js"],"mod_name":"circuitSAT_to_SAT"}}}},"NP/SAT_to_threeSAT":{"long_name":"Reduction of SAT to 3-SAT","sections":{"Reduction of SAT to 3-SAT":{"SATto3SATCON":{"long_name":"SATto3SATCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/SATto3SATCON.css"],"scripts":["AV/NP/SATto3SATCON.js"],"mod_name":"SAT_to_threeSAT"}}}},"NP/threeSAT_to_clique":{"long_name":"Reduction of 3-SAT to Clique","sections":{"Reduction of 3-SAT to Clique":{"threeSATtoCliqueCON":{"long_name":"threeSATtoCliqueCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/threeSATtoCliqueCON.css"],"scripts":["AV/NP/threeSATtoCliqueCON.js"],"mod_name":"threeSAT_to_clique"}}}},"NP/clique_to_independentSet":{"long_name":"Reduction of Clique to Independent Set","sections":{"Clique to Independent Set":{"cliqueToISCON":{"long_name":"Clique to IS Reduction","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/cliqueToISCON.css"],"scripts":["AV/NP/cliqueToISCON.js"],"mod_name":"clique_to_independentSet"}}}},"NP/independentSet_to_vertexCover":{"long_name":"Reduction of Independent Set to Vertex Cover","sections":{"Independent Set to Vertex Cover":{"IStoVCCON":{"long_name":"IS to VC Reduction","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/IStoVCCON.css"],"scripts":["AV/NP/IStoVCCON.js"],"mod_name":"independentSet_to_vertexCover"}}}},"NP/threeSAT_to_hamiltonianCycle":{"long_name":"Reduction of 3-SAT to Hamiltonian Cycle","sections":{"3-SAT to Hamiltonian Cycle":{"threeSATtoHCCON":{"long_name":"3-SAT to HC Reduction","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/threeSATtoHCCON.css"],"scripts":["AV/NP/threeSATtoHCCON.js"],"mod_name":"threeSAT_to_hamiltonianCycle"}}}},"NP/hamiltonianCycle_to_TSP":{"long_name":"Reduction of Hamiltonian Cycle to Traveling Salesman","sections":{"Hamiltonian Cycle to Traveling Salesman":{"HCtoTSPCON":{"long_name":"HC to TSP Reduction","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/NP/HCtoTSPCON.css"],"scripts":["AV/NP/HCtoTSPCON.js"],"mod_name":"hamiltonianCycle_to_TSP"}}}},"NP/NPCoping":{"long_name":"Coping with NP-Complete Problems","sections":{}},"SeniorAlgAnal/Impossible":{"long_name":"Unsolveable Problems","sections":{"Unsolveable Problems":{"FuncBinCON":{"type":"dgm","mod_name":"Impossible"},"FuncDiagCON":{"type":"dgm","mod_name":"Impossible"}}}},"SeniorAlgAnal/Turing":{"long_name":"Turing Machines","sections":{"Turing Machines":{"Turing1CON":{"type":"dgm","mod_name":"Turing"},"Turing2CON":{"type":"dgm","mod_name":"Turing"},"Turing3CON":{"type":"dgm","mod_name":"Turing"},"TuringCopyCON":{"type":"dgm","mod_name":"Turing"},"TuringShiftCON":{"type":"dgm","mod_name":"Turing"}}}},"PL/Grammars1":{"long_name":"Derivations and Parse Trees","sections":{"Parse Trees":{"parseTree4":{"long_name":"parseTree4","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/main.css","AV/PL/AV/parseTree.css"],"scripts":["AV/PL/AV/parseTree4.js"],"mod_name":"Grammars1"},"NumParseTreeNodes":{"long_name":"Determine Number of nodes","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/NumParseTreeNodes.html","mod_name":"Grammars1","threshold":1}},"Strings Generated by a Grammar":{"StringGenFromGmr":{"long_name":"String Generated By a Grammar","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/StringGenFromGmr.html","mod_name":"Grammars1","threshold":1}},"Characterizing a Language: Example 1":{"CharacterizeLang1":{"long_name":"Characterizing a Language, Problem 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CharacterizeLang1.html","mod_name":"Grammars1","threshold":1}},"Characterizing a Language: Example 2":{"CharacterizeLang2":{"long_name":"Characterizing a Language, Problem 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CharacterizeLang2.html","mod_name":"Grammars1","threshold":1}}}},"PL/Grammars2":{"long_name":"Ambiguous Grammars","sections":{"Second Sample Grammar":{"parseTree5a":{"long_name":"parseTree5a","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/parseTree.css"],"scripts":["AV/PL/AV/parseTree5a.js"],"mod_name":"Grammars2"},"parseTree5b":{"long_name":"parseTree5b","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/parseTree.css"],"scripts":["AV/PL/AV/parseTree5b.js"],"mod_name":"Grammars2"}},"Ambiguity in Grammars":{},"Ambiguous Grammar - Part 1":{"NumParseTrees1":{"long_name":"Number Of Parse Trees, Problem 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/NumParseTrees1.html","mod_name":"Grammars2","threshold":1}},"Ambiguous Grammar - Part 2":{"NumParseTrees2":{"long_name":"Number Of Parse Trees, Problem 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/NumParseTrees2.html","mod_name":"Grammars2","threshold":1}},"Ambiguous Grammar - Part 3":{"NumParseTrees3":{"long_name":"Number Of Parse Trees, Problem 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/NumParseTrees3.html","mod_name":"Grammars2","threshold":1}},"Discovering Ambiguity":{"DeterminingAmbiguities":{"long_name":"Determining Ambiguities","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/DeterminingAmbiguities.html","mod_name":"Grammars2","threshold":1}}}},"PL/Grammars3":{"long_name":"Enforcing Order of Operations","sections":{"Evaluation of Expressions":{"parseTree3":{"long_name":"parseTree3","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["AV/PL/AV/parseTree3.js"],"mod_name":"Grammars3"},"parseTree3a":{"long_name":"parseTree3a","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/AV/parseTree3a.html","mod_name":"Grammars3","threshold":1}},"Expression Evaluation":{"EvalExp":{"long_name":"Evaluating Expression Based on Grammar","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/EvalExp.html","mod_name":"Grammars3","threshold":3}},"Associativity":{"Associativity":{"long_name":"Associativity","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Associativity.html","mod_name":"Grammars3","threshold":1}},"Precedence and Associativity":{"PrecedenceAndAssociativity":{"long_name":"Precedence and associativity","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/PrecedenceAndAssociativity.html","mod_name":"Grammars3","threshold":1}},"Characterizing a Language Given a BNF Grammar":{"CharacterizeLang3":{"long_name":"Characterizing Language 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CharacterizeLang3.html","mod_name":"Grammars3","threshold":1}},"Extended BNF":{"ExtendedBNF":{"long_name":"Extended BNF","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ExtendedBNF.html","mod_name":"Grammars3","threshold":1}}}},"PL/Grammars4":{"long_name":"Parser Generators","sections":{"Jison":{"Jison1":{"long_name":"Jison Problem 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Jison1.html","mod_name":"Grammars4","threshold":3}},"More practice with Jison":{"Jison2":{"long_name":"Jison Problem 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Jison2.html","mod_name":"Grammars4","threshold":1}}}},"PL/Grammars5":{"long_name":"Using Parser Generators to Interpret a Language","sections":{"Annotating Jison Grammars":{"AnnotatingJison":{"long_name":"Annotating Jison","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/AnnotatingJison.html","mod_name":"Grammars5","threshold":1}}}},"PL/FP1":{"long_name":"List Construction and Deconstruction","sections":{"Constructing Lists with fp.cons":{"FPcons":{"long_name":"Using cons","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/FPcons.html","mod_name":"FP1","threshold":1}},"Deconstructing Lists with fp.hd and fp.tl":{"FPHdTlCons1":{"long_name":"Head, Tail, and Cons 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/FPHdTlCons1.html","mod_name":"FP1","threshold":3}},"Practicing List Manipulations with the fp module":{"FPHdTlCons2":{"long_name":"Head, Tail, and Cons 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/FPHdTlCons2.html","mod_name":"FP1","threshold":1}},"fp.isNull, fp.isEq, and fp.isZero":{"FPisEq":{"long_name":"Using isEq test","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/FPisEq.html","mod_name":"FP1","threshold":1}}}},"PL/FP2":{"long_name":"Developing Basic, Recursive List-processing Functions","sections":{"Recursive List Processing Example: sum( list )":{"FP2Code1CON":{"long_name":"Illustrate Simple Recursion On List To Return Numeric Value","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP2CON.css"],"scripts":["AV/PL/FP/FP2Code1CON.js"],"mod_name":"FP2"},"RecListProc1":{"long_name":"Recursion on Flat lists 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/RecListProc1.html","mod_name":"FP2","threshold":3}},"Recursive List Processing Example: isMember( num, list )":{"FP2Code2CON":{"long_name":"Illustrate Simple Recursion On List To Define IsMember","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP2CON.css"],"scripts":["AV/PL/FP/FP2Code2CON.js"],"mod_name":"FP2"},"RecListProc2":{"long_name":"Recursion on Flat Lists 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/RecListProc2.html","mod_name":"FP2","threshold":1}},"Recursive List Processing Example: subst( new, old, list )":{"FP2Code3CON":{"long_name":"Illustrate Simple Recursion On List To Do Substitution","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP2CON.css"],"scripts":["AV/PL/FP/FP2Code3CON.js"],"mod_name":"FP2"},"RecListProc3":{"long_name":"Recursion on Flat Lists 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/RecListProc3.html","mod_name":"FP2","threshold":1}}}},"PL/FP3":{"long_name":"Recurring On Lists That Aren't Flat","sections":{"Deep Recursion in FP":{"FP3Code1CON":{"long_name":"Illustrate Deep Recursion On List To Return Numeric Value","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP3CON.css"],"scripts":["AV/PL/FP/FP3Code1CON.js"],"mod_name":"FP3"},"DeepRecur1":{"long_name":"Deep Recursion 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/DeepRecur1.html","mod_name":"FP3","threshold":1}},"Deep Recursion on Binary Search Trees":{"FP3Code2CON":{"long_name":"Illustrate Deep Recursion On BST","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP3CON.css"],"scripts":["AV/PL/FP/FP3Code2CON.js"],"mod_name":"FP3"},"DeepRecur2":{"long_name":"Deep Recursion 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/DeepRecur2.html","mod_name":"FP3","threshold":1}},"Practice with Deep Recursion":{"DeepRecur3":{"long_name":"Deep Recursion 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/DeepRecur3.html","mod_name":"FP3","threshold":1}},"More Practice with Deep Recursion":{"DeepRecur4":{"long_name":"Deep Recursion 4","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/DeepRecur4.html","mod_name":"FP3","threshold":3}}}},"PL/FP4":{"long_name":"Using Helper Functions with Accumulators","sections":{"Using Helpers to Write reverse and split Functions":{"FP4Code1CON":{"long_name":"Illustrate Use of Accumulator in Developing Reverse Function","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP4CON.css"],"scripts":["AV/PL/FP/FP4Code1CON.js"],"mod_name":"FP4"},"FP4Code2CON":{"long_name":"Illustrate Use of Accumulator in Developing Split Function","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP4CON.css"],"scripts":["AV/PL/FP/FP4Code2CON.js"],"mod_name":"FP4"},"SplitAndJoin":{"long_name":"Split and Join with accumulators","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/SplitAndJoin.html","mod_name":"FP4","threshold":1}},"Using the split Function to Develop a Sorting Function":{"QuickSort":{"long_name":"Using split to define quick sort","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/QuickSort.html","mod_name":"FP4","threshold":1}},"Additional Practice with the Accumulator Pattern":{"AccumulatorPatternPractice":{"long_name":"Accumulator Pattern Practice","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/AccumulatorPatternPractice.html","mod_name":"FP4","threshold":3}}}},"PL/FP5":{"long_name":"Scope, Closures, Higher-order Functions, Static vs. Dynamic Binding","sections":{"Scope, Closures, Higher-order Functions":{"FP5Code1CON":{"long_name":"Illustrate Scope","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP5CON.css"],"scripts":["AV/PL/FP/FP5Code1CON.js"],"mod_name":"FP5"},"FP5Code2CON":{"long_name":"Illustrate Variable Hoisting","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP5CON.css"],"scripts":["AV/PL/FP/FP5Code2CON.js"],"mod_name":"FP5"},"FP5Code3CON":{"long_name":"Illustrate Nested Scopes","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP5CON.css"],"scripts":["AV/PL/FP/FP5Code3CON.js"],"mod_name":"FP5"},"FP5Code4CON":{"long_name":"Illustrate Static vs Dynamic Binding","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP5CON.css"],"scripts":["AV/PL/FP/FP5Code4CON.js"],"mod_name":"FP5"},"FP5Code5CON":{"long_name":"Illustrate Closures","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP5CON.css"],"scripts":["AV/PL/FP/FP5Code5CON.js"],"mod_name":"FP5"},"HigherOrderFuncs1":{"long_name":"Higher Order Function 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/HigherOrderFuncs1.html","mod_name":"FP5","threshold":3}},"Practice with Higher-order Functions and Anonymous Functions":{"HigherOrderFuncs2":{"long_name":"Higher Order Functions 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/HigherOrderFuncs2.html","mod_name":"FP5","threshold":1}},"More Practice with Higher-order Functions and Anonymous Functions":{"HigherOrderFuncs3":{"long_name":"Higher Order Functions 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/HigherOrderFuncs3.html","mod_name":"FP5","threshold":1}},"Practice with Static vs. Dynamic Binding Rules":{"StaticDynamic":{"long_name":"Static vs. Dynamic Binding","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/StaticDynamic.html","mod_name":"FP5","threshold":1}}}},"PL/FP6":{"long_name":"Procedural Abstraction: Map, Curry, and Compose","sections":{"The Mapping Pattern":{"FP6Code1CON":{"long_name":"Illustrate Mapping Pattern","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP6CON.css"],"scripts":["AV/PL/FP/FP6Code1CON.js"],"mod_name":"FP6"},"Map":{"long_name":"Mapping Pattern","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Map.html","mod_name":"FP6","threshold":1}},"Function Composition":{"FP6Code2CON":{"long_name":"Illustrate Function Composition","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP6CON.css"],"scripts":["AV/PL/FP/FP6Code2CON.js"],"mod_name":"FP6"},"Compose":{"long_name":"Function Composition","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Compose.html","mod_name":"FP6","threshold":1}},"Currying":{"FP6Code3CON":{"long_name":"Illustrate Currying","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP6CON.css"],"scripts":["AV/PL/FP/FP6Code3CON.js"],"mod_name":"FP6"},"Curry1":{"long_name":"Curry and compose 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Curry1.html","mod_name":"FP6","threshold":1}},"More currying":{"Curry2":{"long_name":"Curry and compose 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Curry2.html","mod_name":"FP6","threshold":3}}}},"PL/FP7":{"long_name":"Procedural Abstraction: The Filtering and Folding (or Reduce) Patterns","sections":{"The Filtering Pattern":{"FP7Code1CON":{"long_name":"Illustrate Filtering Pattern","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP7CON.css"],"scripts":["AV/PL/FP/FP7Code1CON.js"],"mod_name":"FP7"},"Filter":{"long_name":"Filtering Pattern","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Filter.html","mod_name":"FP7","threshold":1}},"The Folding/Reduce Pattern":{"FP7Code2CON":{"long_name":"Illustrate Reduce/Folding Pattern","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP7CON.css"],"scripts":["AV/PL/FP/FP7Code2CON.js"],"mod_name":"FP7"},"FP7Code3CON":{"long_name":"Illustrate ReduceRight Pattern","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP7CON.css"],"scripts":["AV/PL/FP/FP7Code3CON.js"],"mod_name":"FP7"},"Reduce1":{"long_name":"Reduce 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Reduce1.html","mod_name":"FP7","threshold":1}},"Practice with the Mapping and Reduce Patterns":{"Reduce2":{"long_name":"Reduce and Map","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Reduce2.html","mod_name":"FP7","threshold":1}},"More Practice with the Reduce Pattern":{"Reduce3":{"long_name":"Reduce 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Reduce3.html","mod_name":"FP7","threshold":3}}}},"PL/FP8":{"long_name":"Combining Map and Reduce","sections":{"The MapReduce Paradigm":{"FP8Code1CON":{"long_name":"Illustrate MapReduce Pattern","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP8CON.css"],"scripts":["AV/PL/FP/FP8Code1CON.js"],"mod_name":"FP8"},"MapReduce":{"long_name":"Map Reduce","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/MapReduce.html","mod_name":"FP8","threshold":3}}}},"PL/FP9":{"long_name":"Continuations and Continuation Passing","sections":{"Tail recursive functions":{"TailRecursion":{"long_name":"Tail Recursion","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/TailRecursion.html","mod_name":"FP9","threshold":1}},"Continuation-Passing Style":{"FP9Code1CON":{"long_name":"Illustrate Continuation Passing","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP9CON.css"],"scripts":["AV/PL/FP/FP9Code1CON.js"],"mod_name":"FP9"},"FP9Code2CON":{"long_name":"Compare CPS with non-tail recursive and accumulation","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/FP/FP9CON.css"],"scripts":["AV/PL/FP/FP9Code2CON.js"],"mod_name":"FP9"}},"Continuation-Passing Style Practice Problem (Part 1)":{"ContinuationPassing1":{"long_name":"CPS Style 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ContinuationPassing1.html","mod_name":"FP9","threshold":1}},"Continuation-Passing Style Practice Problem (Part 2)":{"ContinuationPassing2":{"long_name":"CPS Style 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ContinuationPassing2.html","mod_name":"FP9","threshold":1}},"Continuation-Passing Style Practice Problem (Part 3)":{"ContinuationPassing3":{"long_name":"CPS Style 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ContinuationPassing3.html","mod_name":"FP9","threshold":1}},"More CPS Practice":{"ContinuationPassing4":{"long_name":"Randomized CPS practice","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ContinuationPassing4.html","mod_name":"FP9","threshold":3}}}},"PL/Syntax":{"long_name":"Syntax of the Lambda Calculus","sections":{"Lambda Calculus":{"parseTree":{"long_name":"Slide show for how to build a parse tree","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/parseTree.css","AV/PL/main.css"],"scripts":["AV/PL/AV/parseTree.js"],"mod_name":"Syntax"}},"Practice with Lambda Calculus Syntax":{"LambdaCalcSyntax1":{"long_name":"Lambda Calc Syntax 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LambdaCalcSyntax1.html","mod_name":"Syntax","threshold":3}},"More Practice with Lambda Calculus Syntax":{"LambdaCalcSyntax2":{"long_name":"Lambda Calc Syntax 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LambdaCalcSyntax2.html","mod_name":"Syntax","threshold":3}}}},"PL/Semantics":{"long_name":"Semantics of the Lambda Calculus","sections":{"Semantics of the Lambda Calculus":{},"Practice with Lambda Calculus Semantics":{"LambdaCalcSemantics":{"long_name":"Semantics of lambda calculus","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LambdaCalcSemantics.html","mod_name":"Semantics","threshold":1}}}},"PL/FreeBoundVariables":{"long_name":"Free and Bound Variables","sections":{"Free and Bound Variables":{},"Identifying Free Variables":{"IdentifyingFreeVars":{"long_name":"Identifying Free Variables","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/IdentifyingFreeVars.html","mod_name":"FreeBoundVariables","threshold":3}},"Identifying Bound Variables":{"IdentifyingBoundVars":{"long_name":"Identifying Bound Variables","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/IdentifyingBoundVars.html","mod_name":"FreeBoundVariables","threshold":3}},"Formal Definition of Free Variables":{}}},"PL/AlphaConversion":{"long_name":"Alpha-Conversion","sections":{"Alpha-Conversion Rule":{},"Practice with Alpha Conversion":{"AlphaConversionNew":{"long_name":"Alpha Conversion","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/AlphaConversionNew.html","mod_name":"AlphaConversion","threshold":3}}}},"PL/Substitution":{"long_name":"The Substitution-Based Model of Evaluation","sections":{"Substitution Algorithm":{},"Identifying Substitution Subcases of Case 1":{"SubstitutionCase1":{"long_name":"Identifying Substitution Subcases of Case 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/SubstitutionCase1.html","mod_name":"Substitution","threshold":3}},"Identifying Substitution Subcases of Case 2":{"SubstitutionCase2":{"long_name":"Identifying Substitution Subcases of Case 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/SubstitutionCase2.html","mod_name":"Substitution","threshold":3}},"Identifying Substitution Case 3":{"SubstitutionCase3":{"long_name":"Identifying Substitution Case 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/SubstitutionCase3.html","mod_name":"Substitution","threshold":3}},"Identifying Substitution Cases and Subcases":{"Substitution1":{"long_name":"Identifying Substitution Cases and Subcases","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Substitution1.html","mod_name":"Substitution","threshold":3}},"Performing the Substitution Algorithm":{"Substitution2":{"long_name":"Performing the full substitution algorithm","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Substitution2.html","mod_name":"Substitution","threshold":3}}}},"PL/BetaReduction":{"long_name":"Beta-Reduction","sections":{"Beta-Redexes":{},"Identifying Beta-Redexes":{"BetaRedex1":{"long_name":"Identifying Beta Redexes 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/BetaRedex1.html","mod_name":"BetaReduction","threshold":3}},"Beta-Reduction is a Substitution":{},"Some Beta-Reductions Require Alpha-Conversion":{"BetaRedex2":{"long_name":"Identifying Beta Redexes 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/BetaRedex2.html","mod_name":"BetaReduction","threshold":3}},"Performing Beta-Reductions":{"BetaReduction":{"long_name":"Performing Beta Reductions","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/BetaReduction.html","mod_name":"BetaReduction","threshold":3}}}},"PL/ReductionStrategies":{"long_name":"Reduction Strategies","sections":{"Applicative Order":{},"Normal Order":{"LCPractice":{"long_name":"LCPractice","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/LCPractice.html","mod_name":"ReductionStrategies","threshold":1}},"Beta-Reduction Order (1)":{"BetaReductionOrder1":{"long_name":"Beta Reduction Order 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/BetaReductionOrder1.html","mod_name":"ReductionStrategies","threshold":3}},"Beta-Reduction Order (2)":{"BetaReductionOrder2":{"long_name":"Beta Reduction Order 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/BetaReductionOrder2.html","mod_name":"ReductionStrategies","threshold":3}},"Applicative Order Proficiency Exercise":{"applicativeOrderPRO":{"long_name":"Applicative-order reduction Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/applicativeOrderPRO.html","mod_name":"ReductionStrategies","threshold":1.0}},"Normal Order Proficiency Exercise":{"tempNormalOrderPRO":{"long_name":"Normal-order reduction Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/tempNormalOrderPRO.html","mod_name":"ReductionStrategies","threshold":1.0}}}},"PL/ChurchNumerals":{"long_name":"Church Numerals and Booleans","sections":{"Church Booleans":{"church_boolCON":{"long_name":"Church boolean slide show","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/church_string.css"],"scripts":["AV/PL/AV/church_boolCON.js"],"mod_name":"ChurchNumerals"}},"Encoding If-Then-Else":{"ChurchIfThen":{"long_name":"If Then Else in Church Encoding","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ChurchIfThen.html","mod_name":"ChurchNumerals","threshold":1}},"Encoding OR":{"ChurchOR":{"long_name":"Church Encoding for OR","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ChurchOR.html","mod_name":"ChurchNumerals","threshold":1}},"Church Numerals":{"church_numeralCON":{"long_name":"Church numeral slide show","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/church_string.css"],"scripts":["AV/PL/AV/church_numeralCON.js"],"mod_name":"ChurchNumerals"},"church_multCON":{"long_name":"Church multiplication slide show","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/AV/church_string.css"],"scripts":["AV/PL/AV/church_multCON.js"],"mod_name":"ChurchNumerals"}},"Church Numerals with Addition and Multiplication":{"ChurchNumerals":{"long_name":"Church Numerals","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ChurchNumerals.html","mod_name":"ChurchNumerals","threshold":3}}}},"PL/RecursiveFunctions":{"long_name":"Recursive Functions","sections":{"Fixed-points of Functions":{},"The Y Fixed-point Combinator":{},"Using Y to Implement Factorial":{},"Identifying Fixed Point Combinators":{"FixedPointCombinators":{"long_name":"Identifying Fixed Point Combinators","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/FixedPointCombinators.html","mod_name":"RecursiveFunctions","threshold":3}}}},"PL/SLang1":{"long_name":"Defining SLang 1","sections":{"Syntax of SLang 1":{},"Concrete Syntax of SLang 1":{"ConcreteSynSLang1_new":{"long_name":"SLang 1 Concrete Syntax","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ConcreteSynSLang1_new.html","mod_name":"SLang1","threshold":3}},"More Practice with the Concrete Syntax of SLang 1":{"ConcreteSynSLang1":{"long_name":"More SLang 1 Concrete Syntax","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/ConcreteSynSLang1.html","mod_name":"SLang1","threshold":3}},"Abstract Syntax of SLang 1":{"AbstractSynSLang1":{"long_name":"SLang 1 Abstract Syntax","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/AbstractSynSLang1.html","mod_name":"SLang1","threshold":1}},"Curry in SLang 1":{"CurryInSLang1":{"long_name":"Curry in SLang 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CurryInSLang1.html","mod_name":"SLang1","threshold":1}},"Semantics of SLang 1":{"SemanticsSLang1":{"long_name":"SLang 1 Semantics","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/SemanticsSLang1.html","mod_name":"SLang1","threshold":1}}}},"PL/Environment":{"long_name":"Environment-based Model of Evaluation","sections":{"Environment Data Structure":{},"Determining Values Bound to a Variable":{"Environment1":{"long_name":"Determine values bound to a variable in environment","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Environment1.html","mod_name":"Environment","threshold":3}},"Evaluation of Expression Within an Environment":{"Environment2":{"long_name":"Expression Evaluation within Environment","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Environment2.html","mod_name":"Environment","threshold":3}},"Determining Denoted Values in SLang 1":{"Environment3":{"long_name":"Denoted Values in SLang 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Environment3.html","mod_name":"Environment","threshold":3}}}},"PL/SLang1withLetExpressions":{"long_name":"Let Expressions","sections":{"Let Blocks":{},"Let Blocks As Syntactic Sugar":{"LetSynSugar":{"long_name":"Let As Syntactic Sugar","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LetSynSugar.html","mod_name":"SLang1withLetExpressions","threshold":3}},"Nested Lets":{"LetNested":{"long_name":"Nested Lets","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LetNested.html","mod_name":"SLang1withLetExpressions","threshold":3}},"Nested Lets with Closures":{"LetNestedWithClosures":{"long_name":"Nested Lets with Closures","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/LetNestedWithClosures.html","mod_name":"SLang1withLetExpressions","threshold":3}}}},"PL/SLang2":{"long_name":"Defining SLang 2","sections":{"SLang 2: An Imperative Language":{},"Output of SLang 2 Program":{"OutputOfSLang2Prog":{"long_name":"Output of SLang 2 Program","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/OutputOfSLang2Prog.html","mod_name":"SLang2","threshold":3}}}},"PL/SLang2TTK":{"long_name":"Tying The Knot","sections":{"Implementing Recursion Efficiently":{},"Practice TTK":{"TyingTheKnot":{"long_name":"Tying the Knot","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/TyingTheKnot.html","mod_name":"SLang2TTK","threshold":3}}}},"PL/SLang2ParameterPassing":{"long_name":"Parameter-Passing Mechanisms","sections":{"Call By Value vs. Call By Reference":{"paramPassingByVal":{"long_name":"paramPassingByVal","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/paramPassingByVal.html","mod_name":"SLang2ParameterPassing","threshold":1},"paramPassingByValPRO":{"long_name":"Pass-by-value Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/paramPassingByValPRO.html","mod_name":"SLang2ParameterPassing","threshold":1.0},"paramPassingByRef":{"long_name":"paramPassingByRef","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/paramPassingByRef.html","mod_name":"SLang2ParameterPassing","threshold":1},"paramPassingByRefPRO":{"long_name":"Pass-by-reference Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/paramPassingByRefPRO.html","mod_name":"SLang2ParameterPassing","threshold":1.0},"CallByValVsRef":{"long_name":"Call By Value Vs Reference","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CallByValVsRef.html","mod_name":"SLang2ParameterPassing","threshold":3}},"Copy-Restore":{"paramPassingCopyRestore":{"long_name":"Copy Restore Slide Show","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/paramPassingCopyRestore.html","mod_name":"SLang2ParameterPassing","threshold":1},"paramPassingCopyRestorePRO":{"long_name":"Copy-restore Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/paramPassingCopyRestorePRO.html","mod_name":"SLang2ParameterPassing","threshold":1.0},"CallByValVsRefVsCR":{"long_name":"Call By Value vs Reference vs CR","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CallByValVsRefVsCR.html","mod_name":"SLang2ParameterPassing","threshold":3}},"Macro Expansion":{"paramPassingMacro":{"long_name":"Macro Slide Show","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/paramPassingMacro.html","mod_name":"SLang2ParameterPassing","threshold":1},"paramPassingMacroPRO":{"long_name":"Macro Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/paramPassingMacroPRO.html","mod_name":"SLang2ParameterPassing","threshold":1.0},"CallByRefVsCRVsMacro":{"long_name":"Ref vs CR vs Macro","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CallByRefVsCRVsMacro.html","mod_name":"SLang2ParameterPassing","threshold":3}},"Call By Name":{"paramPassingByName":{"long_name":"By-name Slide Show","required":false,"points":0.0,"type":"ss","av_address":"AV/PL/paramPassingByName.html","mod_name":"SLang2ParameterPassing","threshold":1},"paramPassingByNamePRO":{"long_name":"ByName Proficiency Exercise","required":true,"points":1.0,"type":"pe","av_address":"AV/PL/paramPassingByNamePRO.html","mod_name":"SLang2ParameterPassing","threshold":1.0},"CallByCRVsMacroVsName":{"long_name":"ByCR vs ByMacro vs ByName","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CallByCRVsMacroVsName.html","mod_name":"SLang2ParameterPassing","threshold":3}},"Comprehensive Review of the Five Methods Studied So Far":{"CallByAllFive":{"long_name":"ByVal, ByRef, ByCR, ByMacro, ByName","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/CallByAllFive.html","mod_name":"SLang2ParameterPassing","threshold":3}}}},"PL/LazyLists":{"long_name":"Lazy Lists","sections":{"Infinite Sequences":{"LazyLists1CON":{"long_name":"Illustrate Basic Lazy List Operations","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists1CON.js"],"mod_name":"LazyLists"},"LazyLists2CON":{"long_name":"Illustrate from operation in is module","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists2CON.js"],"mod_name":"LazyLists"},"LazyLists3CON":{"long_name":"Illustrate map operation in is module","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists3CON.js"],"mod_name":"LazyLists"},"LazyLists4CON":{"long_name":"Illustrate filter operation in is module","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists4CON.js"],"mod_name":"LazyLists"},"LazyLists5CON":{"long_name":"Illustrate drop operation in is module","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists5CON.js"],"mod_name":"LazyLists"},"LazyLists6CON":{"long_name":"Illustrate iterates operation in is module","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists6CON.js"],"mod_name":"LazyLists"},"LazyLists7CON":{"long_name":"Illustrate sieve of Erastosthenes with eager evaluation","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists7CON.js"],"mod_name":"LazyLists"},"LazyLists8CON":{"long_name":"Illustrate sieve of Erastosthenes with lazy evaluation","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/PL/LazyLists/LazyListsCON.css"],"scripts":["AV/PL/LazyLists/LazyLists8CON.js"],"mod_name":"LazyLists"},"InfSeq1":{"long_name":"Matching sequence to code that produced it","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/InfSeq1.html","mod_name":"LazyLists","threshold":1}},"Practice With Infinite Sequences":{"InfSeq2":{"long_name":"RP set #32, question #2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/InfSeq2.html","mod_name":"LazyLists","threshold":3}},"Practice With Infinite Sequences (2)":{"InfSeq3":{"long_name":"Matching sequence to code that produced it (2)","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/InfSeq3.html","mod_name":"LazyLists","threshold":3}},"Practice With Infinite Sequences (3)":{"InfSeq4":{"long_name":"Matching sequence to code that produced it (3)","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/InfSeq4.html","mod_name":"LazyLists","threshold":1}}}},"PL/TypeSystems":{"long_name":"Types in Programming Languages","sections":{"Motivating Examples":{},"Type System: Definition":{},"Type System: Static Versus  Dynamic":{},"Type System: Safe Versus Unsafe":{},"Type System: Strong Versus Weak":{},"Type System: Typed Variables or Values":{},"Type System: Explicit Versus Implicit typing":{},"The Many Uses of Type Systems":{}}},"PL/TypeInference":{"long_name":"Type Inference","sections":{"Type Environments":{},"Typing Rules Expressed as Post Systems":{},"Typing in a Scaled-down ML":{},"Using Post System Rules to Describe Type Inferencing in ML":{},"Parametric Polymorphism in ML":{},"Type inferencing in ML":{},"Type Inferencing Problem 1":{"Typing1":{"long_name":"ML type inferencing 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing1.html","mod_name":"TypeInference","threshold":1}},"Type Inferencing Problem 2":{"Typing2":{"long_name":"ML type inferencing 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing2.html","mod_name":"TypeInference","threshold":1}},"Type Inferencing Problem 3":{"Typing3":{"long_name":"ML type inferencing 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing3.html","mod_name":"TypeInference","threshold":1}},"Type Inferencing Problem 4":{"Typing4":{"long_name":"ML type inferencing 4","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing4.html","mod_name":"TypeInference","threshold":1}},"Type Inferencing Problem 5":{"Typing5":{"long_name":"ML type inferencing 5","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing5.html","mod_name":"TypeInference","threshold":1}},"Type Inferencing Problem 6":{"Typing6":{"long_name":"ML type inferencing 6","required":true,"points":1.0,"type":"ka","av_address":"Exercises/PL/Typing6.html","mod_name":"TypeInference","threshold":1}}}},"PL/PL_Glossary":{"long_name":"GLOSSARY","sections":{}},"VisFormalLang/FLIntro":{"long_name":"Formal Languages","sections":{"Introduction":{},"Prerequisites":{},"What we will do":{},"Process":{}}},"VisFormalLang/FLOverview":{"long_name":"Overview","sections":{"Languages, Grammars, and Machines":{},"Language Hierarchy":{"HierarchyCON":{"type":"dgm","mod_name":"FLOverview"}},"Power of Machines":{},"Application: Compilers":{"CompileCON":{"type":"dgm","mod_name":"FLOverview"},"CompileStagesCON":{"type":"dgm","mod_name":"FLOverview"}},"Some Mindbending Ideas":{}}},"VisFormalLang/FLConcepts":{"long_name":"Major Concepts","sections":{"Introduction":{},"Languages":{},"Grammars":{"CharacterizeLang1":{"long_name":"Characterizing a Language, Problem 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/CharacterizeLang1.html","mod_name":"FLConcepts","threshold":5},"CharacterizeLang2":{"long_name":"Characterizing a Language, Problem 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/CharacterizeLang2.html","mod_name":"FLConcepts","threshold":5}},"Automata":{"AutomataCON":{"type":"dgm","mod_name":"FLConcepts"}}}},"VisFormalLang/DFA":{"long_name":"Deterministic Finite Acceptors","sections":{"DFA: Deterministic Finite Acceptor":{"DFAExampleCON":{"type":"dgm","mod_name":"DFA"},"EvenBinaryDFACON":{"type":"dgm","mod_name":"DFA"},"MachineTraceCON":{"long_name":"Machine Trace Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/FA/MachineTraceCON.css"],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/FA/MachineTraceCON.js"],"mod_name":"DFA"},"TraceEvenBinaryDFACON":{"long_name":"TraceEvenBinaryDFACON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/FA/TraceEvenBinaryDFACON.css"],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/FA/TraceEvenBinaryDFACON.js"],"mod_name":"DFA"},"DFA_noTrapStateCON":{"type":"dgm","mod_name":"DFA"},"DFA_withTrapStateCON":{"type":"dgm","mod_name":"DFA"},"EvenBinaryEvenOnesDFACON":{"type":"dgm","mod_name":"DFA"}}}},"VisFormalLang/NFA":{"long_name":"Non-Deterministic Finite Automata","sections":{"NFA: Non-Deterministic Finite Automata":{"NFAexampleCON":{"type":"dgm","mod_name":"NFA"},"NFAexample2CON":{"type":"dgm","mod_name":"NFA"}},"NFA vs. DFA: Which is more powerful?":{"NFA2DFAaCON":{"type":"dgm","mod_name":"NFA"},"NFA2DFAbCON":{"type":"dgm","mod_name":"NFA"},"NFA2DFAEx2aCON":{"type":"dgm","mod_name":"NFA"},"NFA2DFAEx2bCON":{"type":"dgm","mod_name":"NFA"},"NFA2DFATraceCON":{"long_name":"NFA2DFATraceCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/FA/NFA2DFATraceCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","AV/VisFormalLang/FA/NFA2DFATraceCON.js"],"mod_name":"NFA"}}}},"VisFormalLang/Minimization":{"long_name":"Minimizing the Number of States in a DFA","sections":{"Minimizing the Number of States in a DFA":{"Minimization1CON":{"long_name":"Minimization1CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/FA/Minimization1CON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","AV/VisFormalLang/FA/Minimization1CON.js"],"mod_name":"Minimization"},"Minimization2CON":{"long_name":"Minimization2CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/FA/Minimization2CON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","AV/VisFormalLang/FA/Minimization2CON.js"],"mod_name":"Minimization"}}}},"VisFormalLang/RegEx":{"long_name":"Regular Expressions","sections":{"Regular Expressions":{},"Regular Expressions vs. Regular Languages":{"phiREtoNFACON":{"type":"dgm","mod_name":"RegEx"},"lambdaREtoNFACON":{"type":"dgm","mod_name":"RegEx"},"aREtoNFACON":{"type":"dgm","mod_name":"RegEx"},"schematicRepCON":{"long_name":"schematicRepCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/schematicRepCON.js"],"mod_name":"RegEx"},"schematicORRepCON":{"long_name":"schematicORRepCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/schematicORRepCON.js"],"mod_name":"RegEx"},"schematicConcatRepCON":{"long_name":"schematicConcatRepCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/schematicConcatRepCON.js"],"mod_name":"RegEx"},"schematicStarRepCON":{"long_name":"schematicStarRepCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/schematicStarRepCON.js"],"mod_name":"RegEx"},"ABStarOrCCON":{"type":"dgm","mod_name":"RegEx"},"RENFAtoDFACON":{"long_name":"RENFAtoDFACON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/RENFAtoDFACON.js"],"mod_name":"RegEx"},"GTGExampleCON":{"type":"dgm","mod_name":"RegEx"},"GTGtoNFACON":{"long_name":"GTGtoNFACON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":[],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/GTGtoNFACON.js"],"mod_name":"RegEx"},"REtoMinimizedDFACON":{"long_name":"REtoMinimizedDFACON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/Regular/REtoMinimizedDFACON.css"],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/REtoMinimizedDFACON.js","lib/paper-core.min.js","DataStructures/FLA/REtoFAController.js","lib/underscore.js","DataStructures/FLA/Discretizer.js"],"mod_name":"RegEx"}},"Converting Regular Languages to Regular Expressions":{"NFAtoRECON":{"long_name":"NFAtoRECON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/Regular/NFAtoRECON.css"],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/NFAtoRECON.js"],"mod_name":"RegEx"}}}},"VisFormalLang/RegGrammar":{"long_name":"Regular Grammars","sections":{"Regular Grammars":{"REtoFACON":{"long_name":"REtoFACON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/Regular/REtoFACON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/Discretizer.js","DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/REtoFACON.js"],"mod_name":"RegGrammar"},"RILinearGramNFACON":{"type":"dgm","mod_name":"RegGrammar"},"RlRegGramDFACON":{"type":"dgm","mod_name":"RegGrammar"},"FAtoRegGrammmarCON":{"long_name":"FAtoRegGrammmarCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/Regular/FAtoRegGrammmarCON.css"],"scripts":["AV/VisFormalLang/Regular/FAtoRegGrammmarCON.js"],"mod_name":"RegGrammar"}}}},"VisFormalLang/RegClosure":{"long_name":"Closure Properties of Regular Grammars","sections":{"Closure Properties of Regular Grammars":{"DFAIntersectionCON":{"long_name":"DFAIntersectionCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/Regular/DFAIntersectionCON.css"],"scripts":["DataStructures/FLA/FA.js","AV/VisFormalLang/Regular/DFAIntersectionCON.js"],"mod_name":"RegClosure"}}}},"VisFormalLang/NonRegular":{"long_name":"Identifying Non-regular Languages","sections":{"Identifying Non-regular Languages":{"Proof1NonRegularCON":{"long_name":"Proof 1 Non-Regular Grammar Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/NonReg/Proof1NonRegularCON.css"],"scripts":["AV/VisFormalLang/NonReg/Proof1NonRegularCON.js"],"mod_name":"NonRegular"},"PumpingLemmaCON":{"long_name":"Pumping Lemma Slideshow","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/NonReg/PumpingLemmaCON.css"],"scripts":["AV/VisFormalLang/NonReg/PumpingLemmaCON.js"],"mod_name":"NonRegular"},"PLGame":{"long_name":"Regular Pumping Lemmma","required":false,"points":0.0,"type":"ss","av_address":"AV/VisFormalLang/NonReg/PLGame.html","mod_name":"NonRegular","threshold":1}}}},"VisFormalLang/DFAproperties":{"long_name":"Properties","sections":{"Introduction":{},"Properties and Proving: Problem 1":{},"Properties and Proving - Problem 2":{}}},"VisFormalLang/CFL":{"long_name":"Context-Free Languages","sections":{"Context-Free Languages":{"ParseTree1CON":{"long_name":"ParseTree1CON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/ParseTree1CON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","DataStructures/FLA/PDA.js","AV/VisFormalLang/CFG/ParseTree1CON.js"],"mod_name":"CFL"},"NumParseTreeNodes":{"long_name":"Determine Number of nodes","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/NumParseTreeNodes.html","mod_name":"CFL","threshold":5},"StringGenFromGmr":{"long_name":"String Generated By a Grammar","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/StringGenFromGmr.html","mod_name":"CFL","threshold":5}},"Ambiguity":{"NumParseTrees1":{"long_name":"Number Of Parse Trees, Problem 1","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/NumParseTrees1.html","mod_name":"CFL","threshold":5},"NumParseTrees2":{"long_name":"Number Of Parse Trees, Problem 2","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/NumParseTrees2.html","mod_name":"CFL","threshold":5},"NumParseTrees3":{"long_name":"Number Of Parse Trees, Problem 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/NumParseTrees3.html","mod_name":"CFL","threshold":5},"DeterminingAmbiguities":{"long_name":"Determining Ambiguities","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/DeterminingAmbiguities.html","mod_name":"CFL","threshold":5}},"Eliminating Grammar Ambiguity":{"EvalExp":{"long_name":"Evaluating Expression Based on Grammar","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/EvalExp.html","mod_name":"CFL","threshold":5},"ParseTreeForExpCON":{"long_name":"ParseTreeForExpCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/ParseTreeForExpCON.css"],"scripts":["AV/VisFormalLang/CFG/ParseTreeForExpCON.js"],"mod_name":"CFL"},"Associativity":{"long_name":"Associativity","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/Associativity.html","mod_name":"CFL","threshold":5},"PrecedenceAndAssociativity":{"long_name":"Precedence and associativity","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/PrecedenceAndAssociativity.html","mod_name":"CFL","threshold":5},"CharacterizeLang3":{"long_name":"Characterizing Language 3","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/CharacterizeLang3.html","mod_name":"CFL","threshold":5}},"Extended BNF":{"ExtendedBNF":{"long_name":"Extended BNF","required":true,"points":1.0,"type":"ka","av_address":"Exercises/FLA/ExtendedBNF.html","mod_name":"CFL","threshold":5}}}},"VisFormalLang/CFLSimp":{"long_name":"Transforming Grammars","sections":{"Transforming Grammars":{"RemoveUselessCON":{"long_name":"RemoveUselessCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/RemoveUselessCON.css"],"scripts":["lib/underscore.js","lib/dagre.min.js","DataStructures/FLA/FA.js","DataStructures/FLA/PDA.js","AV/VisFormalLang/CFG/RemoveUselessCON.js"],"mod_name":"CFLSimp"},"RemoveLambdaCON":{"long_name":"RemoveLambdaCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/RemoveLambdaCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/PDA.js","AV/VisFormalLang/CFG/RemoveLambdaCON.js"],"mod_name":"CFLSimp"},"RemoveUnitCON":{"long_name":"RemoveUnitCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/RemoveUnitCON.css"],"scripts":["AV/VisFormalLang/CFG/RemoveUnitCON.js"],"mod_name":"CFLSimp"},"ChomskyCON":{"long_name":"ChomskyCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/CFG/ChomskyCON.css"],"scripts":["AV/VisFormalLang/CFG/ChomskyCON.js"],"mod_name":"CFLSimp"}}}},"VisFormalLang/PDA":{"long_name":"Pushdown Automata","sections":{"Pushdown Automata":{"PDAAnBnTraceCON":{"long_name":"PDAAnBnTraceCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/PDA/PDAAnBnTraceCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","DataStructures/FLA/PDA.js","AV/VisFormalLang/PDA/PDAAnBnTraceCON.js"],"mod_name":"PDA"},"example_7_1_2":{"type":"dgm","mod_name":"PDA"},"PDADeterministic":{"type":"dgm","mod_name":"PDA"},"PDAProbDeterministic":{"type":"dgm","mod_name":"PDA"},"PDANonDeterministic":{"type":"dgm","mod_name":"PDA"}}}},"VisFormalLang/PDACFL":{"long_name":"PDAs and Context Free Languages","sections":{"PDAs and Context Free Languages":{"PDAtoCFLCON":{"long_name":"PDAtoCFLCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/PDA/PDAtoCFLCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","DataStructures/FLA/PDA.js","AV/VisFormalLang/PDA/PDAtoCFLCON.js"],"mod_name":"PDACFL"}}}},"VisFormalLang/DPDA":{"long_name":"Deterministic Pushdown Automata","sections":{"Deterministic Pushdown Automata":{},"Grammars for Deterministic Context-free Languages":{}}},"VisFormalLang/CFLProp":{"long_name":"Properties of Context-Free Languages","sections":{"Properties of Context-Free Languages":{"CFPumpingLemma":{"long_name":"Context Free Pumping Lemma","required":false,"points":0.0,"type":"ss","av_address":"AV/VisFormalLang/CFG/CFPumpingLemma.html","mod_name":"CFLProp","threshold":1}}}},"VisFormalLang/TuringIntro":{"long_name":"Models of Computation","sections":{"Models of Computation":{}}},"VisFormalLang/Turing":{"long_name":"Turing Machines","sections":{"Turing Machines":{"RClearCON":{"long_name":"Turing Machine RClear","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/TM/RClearCON.css"],"scripts":["DataStructures/FLA/FA.js","AV/Yinwen/TuringMachine.js","AV/VisFormalLang/TM/RClearCON.js"],"mod_name":"Turing"},"addOnea":{"long_name":"Sheet 2 Exercise 1 NFAtoDFA exercise","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/TMexercise/addOnea.html","mod_name":"Turing","threshold":1.0},"eraseABC":{"long_name":"Sheet 2 Exercise 1 NFAtoDFA exercise","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/TMexercise/eraseABC.html","mod_name":"Turing","threshold":1.0},"keepABC":{"long_name":"Sheet 2 Exercise 1 NFAtoDFA exercise","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/TMexercise/keepABC.html","mod_name":"Turing","threshold":1.0},"TMabcCON":{"long_name":"TMabcCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/TM/TMabcCON.css"],"scripts":["DataStructures/FLA/FA.js","AV/Yinwen/TuringMachine.js","AV/VisFormalLang/TM/TMabcCON.js"],"mod_name":"Turing"},"TMabCON":{"type":"dgm","mod_name":"Turing"},"TMPlusoneCON":{"long_name":"Turing Machine Replace","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/TM/TMPlusoneCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","AV/Development/formal_language/TuringMachine.js","AV/VisFormalLang/TM/TMPlusoneCON.js"],"mod_name":"Turing"},"TManbncnCON":{"long_name":"TManbncnCON","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["DataStructures/FLA/FLA.css","AV/VisFormalLang/TM/TManbncnCON.css"],"scripts":["lib/underscore.js","DataStructures/FLA/FA.js","AV/Development/formal_language/TuringMachine.js","AV/VisFormalLang/TM/TManbncnCON.js"],"mod_name":"Turing"},"Turing1CON":{"type":"dgm","mod_name":"Turing"},"Turing2CON":{"type":"dgm","mod_name":"Turing"},"Turing3CON":{"type":"dgm","mod_name":"Turing"},"TMcopy":{"long_name":"TMcopy","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/VisFormalLang/TM/TMcopy.css"],"scripts":["AV/VisFormalLang/TM/TMcopy.js","AV/Juwon/FAcopy.js"],"mod_name":"Turing"},"TuringShiftCON":{"type":"dgm","mod_name":"Turing"}}}},"VisFormalLang/ParseIntro":{"long_name":"Parsing Introduction","sections":{"Introduction":{}}},"VisFormalLang/LLParsing":{"long_name":"LL Parsing","sections":{"LL Parsing":{}}},"VisFormalLang/LRParsing":{"long_name":"LR Parsing","sections":{"LR Parsing":{"LRparseDFA2CON":{"type":"dgm","mod_name":"LRParsing"}}}},"VisFormalLang/CYKParsing":{"long_name":"CYK Parsing","sections":{"CYK Parsing":{}}},"VisFormalLang/Compiler":{"long_name":"Structure of a Compiler","sections":{"What is a compiler?":{},"Language Processing System":{},"Overview of General Compiler":{},"Phases of Compilation":{}}},"VisFormalLang/RecEnum":{"long_name":"Recursively Enumerable Languages","sections":{"Recursively Enumerable Languages":{}}},"VisFormalLang/IntroEx":{"long_name":"Intro Exercises","sections":{"Exercise 1":{"GramIntro3str":{"long_name":"Three string grammar","required":true,"points":2.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntro3str.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 2":{"GramIntroanbm":{"long_name":"anbm grammar","required":true,"points":2.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanbm.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 3":{"GramIntroanb2n":{"long_name":"anb2n grammar","required":true,"points":2.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanb2n.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 4":{"DFAodda":{"long_name":"Odd number of a's","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 5":{"DFAoddaevenb":{"long_name":"Odd number of a's, even number of b's","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAoddaevenb.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 6":{"DFAodda3b":{"long_name":"Odd number of a's, at most 3 b's","required":true,"points":2.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda3b.html","mod_name":"IntroEx","threshold":1.0}},"Exercise 7":{"DFAno3a":{"long_name":"No string with 3 consecutive a's","required":true,"points":2.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAno3a.html","mod_name":"IntroEx","threshold":1.0}}}},"VisFormalLang/FAEx":{"long_name":"FA Exercises","sections":{"Exercise 1":{"NFAtoDFAex1long":{"long_name":"NFAtoDFA exercise 1 long version","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex1long.html","mod_name":"FAEx","threshold":1.0}},"Exercise 2":{"DFAMinEx1":{"long_name":"Sheet 1 Exercise 2 DFA minimization","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAMinEx1.html","mod_name":"FAEx","threshold":1.0}},"Exercise 3":{"DFANotevena3b":{"long_name":"Sheet 2 Exercise 3 Construct DFA that accepts a language","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFANotevena3b.html","mod_name":"FAEx","threshold":1.0}},"Exercise 4":{"NFAex1":{"long_name":"Create a NFA 1","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/NFAex1.html","mod_name":"FAEx","threshold":1.0}}}},"VisFormalLang/RegLangEx":{"long_name":"Regular Language Exercises","sections":{"Exercise 1":{"RegExbbaeven":{"long_name":"Regular Expression construction: bba in even position","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegExbbaeven.html","mod_name":"RegLangEx","threshold":1.0}},"Exercise 2":{"RegExnoaa":{"long_name":"Regular Expression construction: no aa","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegExnoaa.html","mod_name":"RegLangEx","threshold":1.0}},"Exercise 3":{"RegExonebbb":{"long_name":"Regular Expression construction: one bbb","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegExonebbb.html","mod_name":"RegLangEx","threshold":1.0}},"Exercise 4":{"RegGramNFA1":{"long_name":"Regular Grammar: right-linear grammar for NFA","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA1.html","mod_name":"RegLangEx","threshold":1.0}},"Exercise 5":{"RegGrambbbaaaa":{"long_name":"Regular Grammar: left-linear grammar for bbbsaaaas","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGrambbbaaaa.html","mod_name":"RegLangEx","threshold":1.0}},"Exercise 6":{"RegGramaby3":{"long_name":"Regular Grammar: regular grammar for a divisible by 3","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaby3.html","mod_name":"RegLangEx","threshold":1.0}}}},"VisFormalLang/Sheet5":{"long_name":"Sheet 5","sections":{"Exercise 1":{"sheet5exercise1":{"long_name":"Sheet 5 Exercise 1 Grammer Exercise 1","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_5/sheet5exercise1.html","mod_name":"Sheet5","threshold":1.0}},"Exercise 2":{"sheet5exercise2":{"long_name":"Sheet 5 Exercise 1 Grammer Exercise 2","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_5/sheet5exercise2.html","mod_name":"Sheet5","threshold":1.0}}}},"VisFormalLang/Sheet6":{"long_name":"Sheet 6","sections":{"Exercise 1":{"sheet6exercise1":{"long_name":"Sheet 6 Exercise 1 Draw a DFA for a language","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_6/sheet6exercise1.html","mod_name":"Sheet6","threshold":1.0}},"Exercise 2":{"sheet6exercise2":{"long_name":"Sheet 6 Exercise 1 Grammer Exercise 1","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_6/sheet6exercise2.html","mod_name":"Sheet6","threshold":1.0}},"Exercise 3":{"sheet6exercise3":{"long_name":"Sheet 6 Exercise 1 Grammer Exercise 2","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_6/sheet6exercise3.html","mod_name":"Sheet6","threshold":1.0}},"Exercise 4":{"sheet6exercise4":{"long_name":"Sheet 6 Exercise 1 Grammer Exercise 2","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_6/sheet6exercise4.html","mod_name":"Sheet6","threshold":0.9}}}},"VisFormalLang/Sheet7":{"long_name":"Sheet 7","sections":{"Exercise 1":{"sheet7exercise1":{"long_name":"Sheet 7 Exercise 1 Draw a PDA for a language","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_7/sheet7exercise1.html","mod_name":"Sheet7","threshold":1.0}},"Exercise 2":{"sheet7exercise2":{"long_name":"Sheet 7 Exercise 1 Draw a PDA for a language","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_7/sheet7exercise2.html","mod_name":"Sheet7","threshold":1.0}},"Exercise 3":{"sheet7exercise3":{"long_name":"Sheet 7 Exercise 1 Draw a PDA for a language","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_7/sheet7exercise3.html","mod_name":"Sheet7","threshold":1.0}},"Exercise 4":{"sheet7exercise4":{"long_name":"Sheet 7 Exercise 1 Draw a PDA for a language","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_7/sheet7exercise4.html","mod_name":"Sheet7","threshold":1.0}}}},"VisFormalLang/IntroExMore":{"long_name":"Intro Exercise Practice","sections":{"Exercise 1":{"GramIntro3str":{"long_name":"Three string grammar","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntro3str.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 2":{"GramIntroanbm":{"long_name":"anbm grammar","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanbm.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 3":{"GramIntroanb2n":{"long_name":"anb2n grammar","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Grammar/GramIntroanb2n.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 4":{"DFAodda":{"long_name":"Odd number of a's","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 5":{"DFAoddaevenb":{"long_name":"Odd number of a's, even number of b's","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAoddaevenb.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 6":{"DFAodda3b":{"long_name":"Odd number of a's, at most 3 b's","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAodda3b.html","mod_name":"IntroExMore","threshold":1.0}},"Exercise 7":{"DFAno3a":{"long_name":"No string with 3 consecutive a's","required":true,"points":10.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAno3a.html","mod_name":"IntroExMore","threshold":1.0}}}},"VisFormalLang/FAExMore":{"long_name":"FA Exercise Practice","sections":{"Exercise 1":{"DFAevena":{"long_name":"DFA exercise even a","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAevena.html","mod_name":"FAExMore","threshold":1.0}},"Exercise 2":{"DFAevenaoddb":{"long_name":"DFA exercise even a odd b","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenaoddb.html","mod_name":"FAExMore","threshold":1.0}},"Exercise 3":{"DFAevenamin3b":{"long_name":"DFA exercise even a min 3 b","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAevenamin3b.html","mod_name":"FAExMore","threshold":1.0}},"Exercise 4":{"DFAbotheo":{"long_name":"DFA exercise both even or odd","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/DFAbotheo.html","mod_name":"FAExMore","threshold":1.0}},"NFA to DFA 1":{"NFAtoDFAex1long":{"long_name":"NFAtoDFA exercise 1 long version","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex1long.html","mod_name":"FAExMore","threshold":1.0}},"NFA to DFA 2":{"NFAtoDFAex2":{"long_name":"NFAtoDFA exercise 2","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/NFAtoDFAex2.html","mod_name":"FAExMore","threshold":1.0}},"Create NFA":{"NFAex2":{"long_name":"Create a NFA 2","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/FA/NFAex2.html","mod_name":"FAExMore","threshold":1.0}}}},"VisFormalLang/RegLangExMore":{"long_name":"Regular Language Exercise Practice","sections":{"Exercise 1":{"RegExaby3":{"long_name":"Regular Expression construction: a divisible by 3","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegExaby3.html","mod_name":"RegLangExMore","threshold":1.0}},"Exercise 2":{"RegGramNFA2":{"long_name":"Regular Grammar: left-linear grammar for NFA","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramNFA2.html","mod_name":"RegLangExMore","threshold":1.0}},"Exercise 3":{"RegGramaaabba":{"long_name":"Regular Grammar: left-linear grammar for aaabsbas","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramaaabba.html","mod_name":"RegLangExMore","threshold":1.0}},"Exercise 4":{"RegGramanbmodd":{"long_name":"Regular Grammar: regular grammar for anbm odd length","required":true,"points":5.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Regular/RegGramanbmodd.html","mod_name":"RegLangExMore","threshold":1.0}}}},"VisFormalLang/Sheet5Practice":{"long_name":"Sheet 5 Practice","sections":{"Exercise 1":{"sheet5Practice1":{"long_name":"Sheet 5 Grammer Practice 1","required":true,"points":0.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_5/Spring19/sheet5Practice1.html","mod_name":"Sheet5Practice","threshold":1.0}},"Exercise 2":{"sheet5Practice2":{"long_name":"Sheet 5 Grammer Practice 2","required":true,"points":0.0,"type":"pe","av_address":"AV/OpenFLAP/exercises/FLAssignments/Sheet_5/Spring19/sheet5Practice2.html","mod_name":"Sheet5Practice","threshold":1.0}}}},"CT/Iteration":{"long_name":"List Iteration","sections":{"List Iteration":{}}},"CT/IterationAV":{"long_name":"List Iteration Visualizations","sections":{"List Iteration Visualizations":{"iteration1CON":{"long_name":"Iteration Slide 1: Basic","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/CT/iterationCON.css"],"scripts":["AV/CT/iteration1CON.js"],"mod_name":"IterationAV"},"iteration2CON":{"long_name":"Iteration Slide 2: State of Price","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/CT/iterationCON.css"],"scripts":["AV/CT/iteration2CON.js"],"mod_name":"IterationAV"},"iteration3CON":{"long_name":"Iteration Slide 3: Calculate Total","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/CT/iterationCON.css"],"scripts":["AV/CT/iteration3CON.js"],"mod_name":"IterationAV"},"iteration4CON":{"long_name":"Iteration Slide 4: Average","required":false,"points":0.0,"threshold":1.0,"type":"ss","links":["AV/CT/iterationCON.css"],"scripts":["AV/CT/iteration4CON.js"],"mod_name":"IterationAV"}}}},"CT/IterationEX1":{"long_name":"Classwork 8","sections":{"List Exercise 1":{"IterationStateEXPRO":{"long_name":"Iteration Khan Exercise","required":true,"points":1.0,"type":"ka","av_address":"Exercises/CT/IterationStateEXPRO.html","mod_name":"IterationEX1","threshold":5}}}},"CT/IterationEX2":{"long_name":"Homework 8","sections":{"List Exercise 2":{"iterationEXPRO":{"long_name":"Iteration JSAV Click-through Exercise","required":true,"points":2.0,"type":"pe","av_address":"Exercises/CT/iterationEXPRO.html","mod_name":"IterationEX2","threshold":0.9}}}},"IntroToSoftwareDesign/CoursePolicies":{"long_name":"Understanding this Course","sections":{"Read the Course Syllabus":{},"Who Is This Class For?":{},"Students of Many Experience Levels":{},"Online and Face-to-face Sections":{},"Weekly Schedule":{},"Reading Activities":{},"Labs":{},"Programming Assignments":{},"Programming Language and Environment":{},"Cheating and The Honor Code":{},"Self-Check: Confirm Your Understanding":{"HonorCodeSumm":{"long_name":"Understanding the Honor Code","required":true,"points":100,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/HonorCodeSumm.html","mod_name":"CoursePolicies","threshold":10}}}},"IntroToSoftwareDesign/GettingStarted":{"long_name":"Getting Started","sections":{"Installing BlueJ":{},"Introducing LightBot":{},"From LightBot to Micro Worlds":{},"Self Check: Micro-Worlds":{"Week1Quiz1Summ":{"long_name":"Micro-Worlds","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week1Quiz1Summ.html","mod_name":"GettingStarted","threshold":3}},"A Bit More LightBot":{},"Textually Representing Programs":{},"Self-Check: Turning Micro-Worlds into Code":{"Week1Quiz2Summ":{"long_name":"Turning Micro-Worlds into Code","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week1Quiz2Summ.html","mod_name":"GettingStarted","threshold":3}},"What Does LightBot Say About Programming?":{},"A Programmable LightBot in Java":{},"Syntax Practice 1a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 1a","long_name":"Syntax Practice 1a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1722","type":"extr","mod_name":"GettingStarted"},"Creating New Objects":{},"Calling Methods on an Object":{},"Putting it All Together":{},"A Word on Making Code Easy to Read":{},"Syntax Practice 1b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 1b","long_name":"Syntax Practice 1b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1723","type":"extr","mod_name":"GettingStarted"},"Programming Practice 1":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 1","long_name":"Programming Practice 1","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":30,"workout_id":"1323","type":"extr","mod_name":"GettingStarted"},"Check Your Understanding":{"Week1ReadingQuizSumm":{"long_name":"Programming Concepts","required":true,"points":18,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week1ReadingQuizSumm.html","mod_name":"GettingStarted","threshold":10}}}},"IntroToSoftwareDesign/InheritanceAndPolymorphism":{"long_name":"Inheritance and Polymorphism: Subclasses and Methods","sections":{"The Jeroos of Santong Island":{"Week2Quiz1Summ":{"long_name":"Working with Jeroos","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week2Quiz1Summ.html","mod_name":"InheritanceAndPolymorphism","threshold":3}},"Class Hierarchy and Inheritance":{"Week2Quiz2Summ":{"long_name":"Working class hierarchy and inheritance","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week2Quiz2Summ.html","mod_name":"InheritanceAndPolymorphism","threshold":3}},"Summarizing: What is Inheritance?":{},"Syntax Practice 2a: Jeroo Methods":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 2a: Jeroo Methods","long_name":"Syntax Practice 2a: Jeroo Methods","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":18,"workout_id":"1342","type":"extr","mod_name":"InheritanceAndPolymorphism"},"Problem Solving and Algorithms":{"Week2Quiz3Summ":{"long_name":"Developing Algorithms","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week2Quiz3Summ.html","mod_name":"InheritanceAndPolymorphism","threshold":3}},"Creating and Using Jeroo Methods":{"Week2Quiz4Summ":{"long_name":"Writing Methods","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week2Quiz4Summ.html","mod_name":"InheritanceAndPolymorphism","threshold":3}},"What is Polymorphism?":{},"Syntax Practice 2b: Subclass Constructors":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 2b: Subclass Constructors","long_name":"Syntax Practice 2b: Subclass Constructors","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1343","type":"extr","mod_name":"InheritanceAndPolymorphism"},"Syntax Practice 2c: More Subclass Constructors":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 2c: More Subclass Constructors","long_name":"Syntax Practice 2c: More Subclass Constructors","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1753","type":"extr","mod_name":"InheritanceAndPolymorphism"},"Programming Practice 2":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 2","long_name":"Programming Practice 2","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1344","type":"extr","mod_name":"InheritanceAndPolymorphism"},"Check Your Understanding":{"Week2ReadingQuizSumm":{"long_name":"Programming Concepts","required":true,"points":15,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week2ReadingQuizSumm.html","mod_name":"InheritanceAndPolymorphism","threshold":10}}}},"IntroToSoftwareDesign/ConditionalActions":{"long_name":"Conditional and Repeating Actions","sections":{"Selection":{},"Conditions Using Sensor Methods":{},"An Overview of Conditional Statements":{},"Java's Syntax for the If-Then-Else Structure":{"Week3Quiz1Summ":{"long_name":"Working with If-Then-Else Statements","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3Quiz1Summ.html","mod_name":"ConditionalActions","threshold":3}},"Syntax Practice 3a: If-Then-Else":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 3a: If-Then-Else","long_name":"Syntax Practice 3a: If-Then-Else","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1373","type":"extr","mod_name":"ConditionalActions"},"Creating Optional Statements With If-then":{},"Java's Syntax for the If-then Structure":{"Week3Quiz2Summ":{"long_name":"Working with If-Then Statements","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3Quiz2Summ.html","mod_name":"ConditionalActions","threshold":3}},"Syntax Practice 3b: If-Then":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 3b: If-Then","long_name":"Syntax Practice 3b: If-Then","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1374","type":"extr","mod_name":"ConditionalActions"},"Java's Syntax for the Multi-way Selection Structure (a cascaded if)":{"Week3Quiz3Summ":{"long_name":"Deciding When to Use Each Type of Structure","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3Quiz3Summ.html","mod_name":"ConditionalActions","threshold":3}},"Syntax Practice 3c: Multi-way If":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 3c: Multi-way If","long_name":"Syntax Practice 3c: Multi-way If","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1375","type":"extr","mod_name":"ConditionalActions"},"Compound Conditions":{"Week3Quiz4Summ":{"long_name":"AND, OR, and NOT","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3Quiz4Summ.html","mod_name":"ConditionalActions","threshold":3}},"Syntax Practice 3d: Compound Conditions":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 3d: Compound Conditions","long_name":"Syntax Practice 3d: Compound Conditions","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1376","type":"extr","mod_name":"ConditionalActions"},"Repeating Actions":{},"Generic Repetition Structures":{},"Java's Syntax for the While Loop":{"Week3Quiz5Summ":{"long_name":"Working with While Loops","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3Quiz5Summ.html","mod_name":"ConditionalActions","threshold":3}},"Syntax Practice 3e: While Loops":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 3e: While Loops","long_name":"Syntax Practice 3e: While Loops","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1377","type":"extr","mod_name":"ConditionalActions"},"Programming Practice 3":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 3","long_name":"Programming Practice 3","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":10,"workout_id":"1378","type":"extr","mod_name":"ConditionalActions"},"Check Your Understanding":{"Week3ReadingQuizSumm":{"long_name":"Programming Concepts","required":true,"points":15,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week3ReadingQuizSumm.html","mod_name":"ConditionalActions","threshold":12}}}},"IntroToSoftwareDesign/SoftwareTesting":{"long_name":"Software Testing","sections":{"What Is Software Testing?":{},"Writing Your First Software Test":{},"Check Your Understanding: Software Testing Concepts":{"Week4Quiz1Summ":{"long_name":"Software Testing Concepts","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week4Quiz1Summ.html","mod_name":"SoftwareTesting","threshold":3}},"More About Methods":{},"Check Your Understanding: Method Signatures":{"Week4Quiz2Summ":{"long_name":"Understanding Method Signatures","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week4Quiz2Summ.html","mod_name":"SoftwareTesting","threshold":3}},"Check Your Understanding: Methods with Parameters":{"Week4Quiz3Summ":{"long_name":"Methods with Parameters","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week4Quiz3Summ.html","mod_name":"SoftwareTesting","threshold":3}},"Good Habits for Conditionals":{},"A Different Type of Complex If-Statement":{},"Short Circuit Evaluation":{},"Check Your Understanding: Logical Equivalence":{"Week4Quiz4Summ":{"long_name":"Logical Equivalence","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week4Quiz4Summ.html","mod_name":"SoftwareTesting","threshold":3}},"Syntax Practice 4a: Compound Conditionals":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 4a: Compound Conditionals","long_name":"Syntax Practice 4a: Compound Conditionals","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1403","type":"extr","mod_name":"SoftwareTesting"},"Syntax Practice 4b: Conditionals and Relational Operators":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 4b: Conditionals and Relational Operators","long_name":"Syntax Practice 4b: Conditionals and Relational Operators","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1768","type":"extr","mod_name":"SoftwareTesting"},"Programming Practice 4":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 4","long_name":"Programming Practice 4","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":30,"workout_id":"1404","type":"extr","mod_name":"SoftwareTesting"},"Module Review":{"Week4ReadingQuizSumm":{"long_name":"Module Review","required":true,"points":16,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week4ReadingQuizSumm.html","mod_name":"SoftwareTesting","threshold":10}}}},"IntroToSoftwareDesign/VariablesFieldsAndParameters":{"long_name":"Variables, Fields, and Parameters","sections":{"Variables":{},"Check Your Understanding: Variables":{"Week5Quiz1Summ":{"long_name":"Variables","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week5Quiz1Summ.html","mod_name":"VariablesFieldsAndParameters","threshold":3}},"Fields Versus Local Variables":{},"Changing Private Variables: Mutator Methods":{},"Check your Understanding: Scope":{"Week5Quiz2Summ":{"long_name":"Variables","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week5Quiz2Summ.html","mod_name":"VariablesFieldsAndParameters","threshold":3}},"Accessor Methods":{},"Check Your Understanding: Fields, Getters and Setters":{"Week5Quiz3Summ":{"long_name":"Variables","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week5Quiz3Summ.html","mod_name":"VariablesFieldsAndParameters","threshold":3}},"Syntax Practice 5a: Fields and Accessors":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 5a: Fields and Accessors","long_name":"Syntax Practice 5a: Fields and Accessors","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1798","type":"extr","mod_name":"VariablesFieldsAndParameters"},"The Return Keyword":{},"Check your Understanding: Typed Methods and Return Statements":{"Week5Quiz4Summ":{"long_name":"Variables","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week5Quiz4Summ.html","mod_name":"VariablesFieldsAndParameters","threshold":3}},"Syntax Practice 5b: Mutators and Return Statements":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 5b: Mutators and Return Statements","long_name":"Syntax Practice 5b: Mutators and Return Statements","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1426","type":"extr","mod_name":"VariablesFieldsAndParameters"},"Using Fields in Testing":{},"Programming Practice 5a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 5a","long_name":"Programming Practice 5a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":16,"workout_id":"1427","type":"extr","mod_name":"VariablesFieldsAndParameters"},"Programming Practice 5b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 5b","long_name":"Programming Practice 5b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":16,"type":"extr","mod_name":"VariablesFieldsAndParameters"}}},"IntroToSoftwareDesign/PicturesAndForEachLoops":{"long_name":"Pictures and For-each Loops","sections":{"First, the Basics":{},"For Each Loops":{},"Check Your Understanding: For-Each Loops":{"Week6Quiz2Summ":{"long_name":"For-Each Loops","required":true,"points":10,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week6Quiz2Summ.html","mod_name":"PicturesAndForEachLoops","threshold":3}},"Check Your Understanding":{"Week6Quiz3Summ":{"long_name":"Module Review","required":true,"points":10,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week6Quiz3Summ.html","mod_name":"PicturesAndForEachLoops","threshold":3}},"Syntax Practice 6a: Pixel Loops":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 6a: Pixel Loops","long_name":"Syntax Practice 6a: Pixel Loops","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1827","type":"extr","mod_name":"PicturesAndForEachLoops"},"Syntax Practice 6b: More For-Each Loops":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 6b: More For-Each Loops","long_name":"Syntax Practice 6b: More For-Each Loops","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1459","type":"extr","mod_name":"PicturesAndForEachLoops"},"Programming Practice 6a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 6a","long_name":"Programming Practice 6a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1460","type":"extr","mod_name":"PicturesAndForEachLoops"},"Programming Practice 6b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 6b","long_name":"Programming Practice 6b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"type":"extr","mod_name":"PicturesAndForEachLoops"}}},"IntroToSoftwareDesign/AggregationStringsandMoreLoops":{"long_name":"Aggregation, Strings and More Loops","sections":{"Object-Oriented Design: Aggregation, Composition, and Delegation":{},"Strings and Characters":{},"Check Your Understanding: Strings":{"Week7Quiz1Summ":{"long_name":"Strings","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week7Quiz1Summ.html","mod_name":"AggregationStringsandMoreLoops","threshold":3}},"Counter-controlled Loops":{},"Check Your Understanding: Counter Controlled Loops":{"Week7Quiz2Summ":{"long_name":"Counter Controlled Loops","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week7Quiz2Summ.html","mod_name":"AggregationStringsandMoreLoops","threshold":3}},"Tips on Random Numbers":{},"Check Your Understanding: Random Numbers":{"Week7Quiz3Summ":{"long_name":"Random Numbers","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week7Quiz3Summ.html","mod_name":"AggregationStringsandMoreLoops","threshold":3}},"Method Overriding":{},"Check Your Understanding: Method Overriding":{"Week7Quiz4Summ":{"long_name":"Method Overriding","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week7Quiz4Summ.html","mod_name":"AggregationStringsandMoreLoops","threshold":3}},"Syntax Practice 7a: For Loops and OO Design":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 7a: For Loops and OO Design","long_name":"Syntax Practice 7a: For Loops and OO Design","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":18,"workout_id":"1479","type":"extr","mod_name":"AggregationStringsandMoreLoops"},"Syntax Practice 7b: toString and Returning Values":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 7b: toString and Returning Values","long_name":"Syntax Practice 7b: toString and Returning Values","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":18,"workout_id":"1846","type":"extr","mod_name":"AggregationStringsandMoreLoops"},"Programming Practice 7a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 7a","long_name":"Programming Practice 7a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":18,"workout_id":"1480","type":"extr","mod_name":"AggregationStringsandMoreLoops"},"Programming Practice 7b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 7b","long_name":"Programming Practice 7b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":18,"type":"extr","mod_name":"AggregationStringsandMoreLoops"}}},"IntroToSoftwareDesign/GroupingObjectsUsingListsAndNestedForLoops":{"long_name":"Grouping Objects Using Lists and Nested For Loops","sections":{"Collections of Objects":{},"Interfaces":{},"Check Your Understanding: Interfaces":{"Week8Quiz3Summ":{"long_name":"Interfaces","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week8Quiz3Summ.html","mod_name":"GroupingObjectsUsingListsAndNestedForLoops","threshold":3}},"Syntax Practice 8a: Strings":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 8a: Strings","long_name":"Syntax Practice 8a: Strings","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1491","type":"extr","mod_name":"GroupingObjectsUsingListsAndNestedForLoops"},"The List Interface":{},"Generics":{},"ArrayList":{},"Check Your Understanding: ArrayLists":{"Week8Quiz1Summ":{"long_name":"ArrayLists","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week8Quiz1Summ.html","mod_name":"GroupingObjectsUsingListsAndNestedForLoops","threshold":3}},"Syntax Practice 8b: Lists":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 8b: Lists","long_name":"Syntax Practice 8b: Lists","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1860","type":"extr","mod_name":"GroupingObjectsUsingListsAndNestedForLoops"},"Nested For Loops":{},"Check Your Understanding: Nested For Loops":{"Week8Quiz2Summ":{"long_name":"Nested For Loops","required":true,"points":5,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week8Quiz2Summ.html","mod_name":"GroupingObjectsUsingListsAndNestedForLoops","threshold":3}},"Syntax Practice 8c: Nested Loops":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 8c: Nested Loops","long_name":"Syntax Practice 8c: Nested Loops","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1491","type":"extr","mod_name":"GroupingObjectsUsingListsAndNestedForLoops"},"Check Your Understanding":{"Week8ReadingQuizSumm":{"long_name":"Programming Concepts","required":true,"points":15,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week8ReadingQuizSumm.html","mod_name":"GroupingObjectsUsingListsAndNestedForLoops","threshold":10}},"Programming Practice 8a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 8a","long_name":"Programming Practice 8a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1492","type":"extr","mod_name":"GroupingObjectsUsingListsAndNestedForLoops"},"Programming Practice 8b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 8b","long_name":"Programming Practice 8b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"type":"extr","mod_name":"GroupingObjectsUsingListsAndNestedForLoops"}}},"IntroToSoftwareDesign/ListAndLoopsDeepDive":{"long_name":"Lists, Loop Idioms, Generics, and the Null Keyword","sections":{"Modelling the Contents of a Library":{},"Looping Idioms":{},"Check Your Understanding: Loop Idioms":{"Week9Quiz2Summ":{"long_name":"Loop Idioms","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week9Quiz2Summ.html","mod_name":"ListAndLoopsDeepDive","threshold":3}},"Syntax Practice 9a: Loop Idioms":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 9a: Loop Idioms","long_name":"Syntax Practice 9a: Loop Idioms","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1513","type":"extr","mod_name":"ListAndLoopsDeepDive"},"Your Opinions on Motivation and Engagement":{"MUSICSurvey":{"long_name":"Survey Completed","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/MUSICSurvey.html","mod_name":"ListAndLoopsDeepDive","threshold":1}},"Generics Revisited":{},"Check Your Understanding: Generics":{"Week9Quiz1Summ":{"long_name":"Generics","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week9Quiz1Summ.html","mod_name":"ListAndLoopsDeepDive","threshold":3}},"Syntax Practice 9b: Generics":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 9b: Generics","long_name":"Syntax Practice 9b: Generics","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1873","type":"extr","mod_name":"ListAndLoopsDeepDive"},"The Null Keyword":{},"Diagnosing a Null Pointer Exception":{},"Check Your Understanding: Null":{"Week9Quiz3Summ":{"long_name":"Null","required":true,"points":7,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week9Quiz3Summ.html","mod_name":"ListAndLoopsDeepDive","threshold":3}},"Using BlueJ's Debugger":{},"Using BlueJ's Code Pad":{},"Programming Practice 9a: Loop Idioms":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 9a: Loop Idioms","long_name":"Programming Practice 9a: Loop Idioms","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":19,"workout_id":"1514","type":"extr","mod_name":"ListAndLoopsDeepDive"},"Programming Practice 9b: Loops and Generics":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 9b: Loops and Generics","long_name":"Programming Practice 9b: Loops and Generics","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":19,"type":"extr","mod_name":"ListAndLoopsDeepDive"}}},"IntroToSoftwareDesign/Arrays":{"long_name":"Arrays","sections":{"Creating An Array":{},"Accessing Items in Arrays":{},"Setting Items in an Array":{},"Arrays Compared to Lists (or ArrayList)":{},"Putting It All Together":{},"Check Your Understanding: Arrays":{"Week10Quiz1Summ":{"long_name":"Arrays","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week10Quiz1Summ.html","mod_name":"Arrays","threshold":3}},"Syntax Practice 10a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 10a","long_name":"Syntax Practice 10a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1525","type":"extr","mod_name":"Arrays"},"Iterating Over Arrays":{},"Check Your Understanding: Iterating with Arrays":{"Week10Quiz2Summ":{"long_name":"Iterating with Arrays","required":true,"points":6,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week10Quiz2Summ.html","mod_name":"Arrays","threshold":3}},"Syntax Practice 10b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 10b","long_name":"Syntax Practice 10b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1880","type":"extr","mod_name":"Arrays"},"Initializing Array Contents":{},"Printing Arrays":{},"Copying Array Variables":{},"Naming Array Variables":{},"Writing Test Assertions Involving Arrays":{},"Applying Arrays in a Problem":{},"Syntax Practice 10c":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice 10c","long_name":"Syntax Practice 10c","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1881","type":"extr","mod_name":"Arrays"},"Check Your Understanding":{"Week10ReadingQuizSumm":{"long_name":"Arrays Review","required":true,"points":22,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week10ReadingQuizSumm.html","mod_name":"Arrays","threshold":11}},"Programming Practice 10a":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 10a","long_name":"Programming Practice 10a","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"workout_id":"1526","type":"extr","mod_name":"Arrays"},"Programming Practice 10b":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice 10b","long_name":"Programming Practice 10b","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":15,"type":"extr","mod_name":"Arrays"}}},"IntroToSoftwareDesign/MultiDimensionalArrays":{"long_name":"Multi-dimensional Arrays","sections":{"Dimensions in an Array":{},"Check Your Understanding: 2D Arrays":{"Week11Quiz1Summ":{"long_name":"2D Arrays","required":true,"points":10,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week11Quiz1Summ.html","mod_name":"MultiDimensionalArrays","threshold":3}},"Syntax Practice: 2D Array Basics":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: 2D Array Basics","long_name":"Syntax Practice: 2D Array Basics","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":12,"workout_id":"1549","type":"extr","mod_name":"MultiDimensionalArrays"},"Iterating through a 2D Array":{},"Check Your Understanding: Iterating with 2D Arrays":{"Week11Quiz2Summ":{"long_name":"Iterating with 2D Arrays","required":true,"points":10,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week11Quiz2Summ.html","mod_name":"MultiDimensionalArrays","threshold":3}},"Syntax Practice: Looping Over 2D Arrays":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Looping Over 2D Arrays","long_name":"Syntax Practice: Looping Over 2D Arrays","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":6,"workout_id":"1550","type":"extr","mod_name":"MultiDimensionalArrays"},"Multi-Dimensional Arrays":{},"Syntax Practice: 3D Arrays":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: 3D Arrays","long_name":"Syntax Practice: 3D Arrays","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":3,"workout_id":"1551","type":"extr","mod_name":"MultiDimensionalArrays"},"But Can You Have Multi-dimensional Lists?":{},"Integer Division and Modulus":{},"Check Your Understanding: Modulus":{"Week11Quiz3Summ":{"long_name":"Modulus","required":true,"points":10,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week11Quiz3Summ.html","mod_name":"MultiDimensionalArrays","threshold":3}},"Syntax Practice: Modulus":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Modulus","long_name":"Syntax Practice: Modulus","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1552","type":"extr","mod_name":"MultiDimensionalArrays"},"Programming Practice: Multi-dimensional Arrays":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice: Multi-dimensional Arrays","long_name":"Programming Practice: Multi-dimensional Arrays","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"workout_id":"1553","type":"extr","mod_name":"MultiDimensionalArrays"},"Programming Practice: Mod":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice: Mod","long_name":"Programming Practice: Mod","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"type":"extr","mod_name":"MultiDimensionalArrays"}}},"IntroToSoftwareDesign/FileIO":{"long_name":"Variable Scoping, Input, and Output","sections":{"Variable Scoping":{},"Summarizing Scope Concepts":{},"Check Your Understanding: Scope":{"Week12Quiz4Summ":{"long_name":"Scope","required":true,"points":12,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week12Quiz4Summ.html","mod_name":"FileIO","threshold":3}},"Syntax Practice: Scoping":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Scoping","long_name":"Syntax Practice: Scoping","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":40,"workout_id":"1572","type":"extr","mod_name":"FileIO"},"Java Input and Output":{},"Output Using PrintWriters":{},"Check Your Understanding: Output":{"Week12Quiz1Summ":{"long_name":"Output","required":true,"points":20,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week12Quiz1Summ.html","mod_name":"FileIO","threshold":5}},"Input Using Scanners":{},"A Complete Input Example":{},"Check Your Understanding: Input":{"Week12Quiz2Summ":{"long_name":"Input","required":true,"points":16,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week12Quiz2Summ.html","mod_name":"FileIO","threshold":4}},"A Complete Input/Output Example":{},"Testing I/O-based Operations":{},"Check Your Understanding: Testing":{"Week12Quiz3Summ":{"long_name":"Testing","required":true,"points":12,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week12Quiz3Summ.html","mod_name":"FileIO","threshold":3}}}},"IntroToSoftwareDesign/MapsAndSets":{"long_name":"Maps and Sets","sections":{"The Map and Set Interfaces":{},"The Map Interface":{},"Syntax Practice: Making Maps":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Making Maps","long_name":"Syntax Practice: Making Maps","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1588","type":"extr","mod_name":"MapsAndSets"},"Adding and Accessing Pairs in a Map":{},"Syntax Practice: Adding to Maps":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Adding to Maps","long_name":"Syntax Practice: Adding to Maps","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1589","type":"extr","mod_name":"MapsAndSets"},"Checking for and Removing Pairs in a Map":{},"A Visual Summary of Using Map and HashMap":{},"Syntax Practice: Map Contains and Remove":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Map Contains and Remove","long_name":"Syntax Practice: Map Contains and Remove","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1590","type":"extr","mod_name":"MapsAndSets"},"Looping Over Map Contents":{},"Check Your Understanding: Maps":{"Week13Quiz2Summ":{"long_name":"Maps","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week13Quiz2Summ.html","mod_name":"MapsAndSets","threshold":3}},"The Set Interface":{},"Syntax Practice: Making A Set":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Making A Set","long_name":"Syntax Practice: Making A Set","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":8,"workout_id":"1584","type":"extr","mod_name":"MapsAndSets"},"Adding Values to a Set":{},"Syntax Practice: Adding to a Set":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Adding to a Set","long_name":"Syntax Practice: Adding to a Set","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1585","type":"extr","mod_name":"MapsAndSets"},"Checking Values in a Set":{},"Syntax Practice: Set Contains":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Set Contains","long_name":"Syntax Practice: Set Contains","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1586","type":"extr","mod_name":"MapsAndSets"},"Removing Values from a Set":{},"Syntax Practice: Set Remove":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Set Remove","long_name":"Syntax Practice: Set Remove","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":9,"workout_id":"1587","type":"extr","mod_name":"MapsAndSets"},"Looping Over Sets":{},"Check Your Understanding: Sets":{"Week13Quiz1Summ":{"long_name":"Sets","required":true,"points":9,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week13Quiz1Summ.html","mod_name":"MapsAndSets","threshold":3}},"Programming Practice: Maps":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Programming Practice: Maps","long_name":"Programming Practice: Maps","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":20,"type":"extr","mod_name":"MapsAndSets"}}},"IntroToSoftwareDesign/StaticMainAndExceptions":{"long_name":"Static, Main, and Exceptions","sections":{"The Main Method":{},"Check Your Understanding: Main Methods":{"Week14Quiz1Summ":{"long_name":"Main Methods","required":true,"points":8,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week14Quiz1Summ.html","mod_name":"StaticMainAndExceptions","threshold":3}},"The Static Keyword":{},"Check Your Understanding: The Static Keyword":{"Week14Quiz2Summ":{"long_name":"The Static Keyword","required":true,"points":8,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week14Quiz2Summ.html","mod_name":"StaticMainAndExceptions","threshold":3}},"Your Opinions on Motivation and Engagement":{"MUSICSurvey":{"long_name":"Survey Completed","required":true,"points":8,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/MUSICSurvey.html","mod_name":"StaticMainAndExceptions","threshold":1}},"Errors":{},"Throwing Exceptions":{},"Check Your Understanding: Throwing Exceptions":{"Week14Quiz3Summ":{"long_name":"Throwing Exceptions","required":true,"points":8,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week14Quiz3Summ.html","mod_name":"StaticMainAndExceptions","threshold":3}},"Syntax Practice: Throwing Exceptions":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Throwing Exceptions","long_name":"Syntax Practice: Throwing Exceptions","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":30,"workout_id":"1614","type":"extr","mod_name":"StaticMainAndExceptions"},"Try/Catch Blocks":{},"Check Your Understanding: Try/Catch Blocks":{"Week14Quiz4Summ":{"long_name":"Try/Catch Blocks","required":true,"points":8,"type":"ka","av_address":"Exercises/IntroToSoftwareDesign/Week14Quiz4Summ.html","mod_name":"StaticMainAndExceptions","threshold":3}},"Syntax Practice: Try-Catch Blocks":{"learning_tool":"code-workout","resource_type":"external_assignment","resource_name":"Syntax Practice: Try-Catch Blocks","long_name":"Syntax Practice: Try-Catch Blocks","enable_scrolling":"True","frame_width":"1000","frame_height":"900","partial_credit":"True","points":30,"type":"extr","mod_name":"StaticMainAndExceptions"}}}}}}