{
    "title": "Software Design and Data Structures",
    "desc": "A programming-intensive exploration of software design concepts and implementation techniques. It builds on the student's existing knowledge of fundamental object-oriented programming.",
    "theme": "haiku",
    "build_dir": "Books",
    "sphinx_debug": false,
    "code_dir": "SourceCode/",
    "code_lang": {
        "Java": {
            "ext": [
                "java"
            ],
            "label": "Java",
            "lang": "java"
        },
        "C++": {
            "ext": [
                "cpp",
                "h"
            ],
            "label": "C++",
            "lang": "C++"
        }
    },
    "tabbed_codeinc": false,
    "lang": "en",
    "build_JSAV": false,
    "build_cmap": false,
    "suppress_todo": false,
    "dispModComp": true,
    "tag": "Java;CS1;CS2",
    "zeropt_assignments": false,
    "narration_enabled": true,
    "include_tree_view": false,
    "chapter_name": "Week",
    "start_chap_num": 0,
    "html_theme_options": {
        "show_source": false,
        "show_search": false,
        "show_relations": false,
        "show_copyright": false,
        "render_sidebar": false
    },
    "html_css_files": [
        "_static/haiku-supp.css"
    ],
    "glob_exer_options": {
        "JXOP-debug": "true"
    },
    "glob_ss_options": {
        "threshold": 1.0,
        "points": 0.0,
        "required": false
    },
    "glob_ff_options": {
        "threshold": 1.0,
        "points": 0.0,
        "required": false
    },
    "glob_ka_options": {
        "threshold": 3,
        "points": 6.0,
        "required": true,
        "partial_credit": true
    },
    "glob_extr_options": {
        "code-workout": {
            "points": 20.0,
            "required": true,
            "partial_credit": true,
            "enable_scrolling": true
        },
        "points": 1.0,
        "frame_width": 1200,
        "frame_height": 900
    },
    "glob_pe_options": {
        "threshold": 0.9,
        "points": 2.0,
        "required": true
    },
    "chapters": {
        "General Course Information": {
            "SWDesignAndDataStructs/AdminPlaceholder": {
                
            }
        },
        "Introduction": {
            "SWDesignAndDataStructs/AdminWelcome": {
                "WelcomeCheckpointSumm": {
                    "points": 6,
                    "threshold": 6
                }
            },
            "SWDesignAndDataStructs/AdminIDESetup": {
                
            },
            "SWDesignAndDataStructs/ContentFundamentals": {
                "ControlFlowSumm": {
                    "points": 4,
                    "threshold": 2
                },
                "FundamentalsCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "ScopeSumm": {
                    "points": 6,
                    "threshold": 3
                },
                "VariablesSumm": {
                    "points": 6,
                    "threshold": 3
                }
            },
            "SWDesignAndDataStructs/ContentJUNITReview": {
                "JunitCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "JunitCheckpoint2Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "JunitCheckpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "JunitCheckpoint4Summ": {
                    "points": 2,
                    "threshold": 1
                },
                "JunitCheckpoint5Summ": {
                    "points": 2,
                    "threshold": 1
                },
                "JunitCheckpoint6Summ": {
                    "points": 8,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/ContentStyle": {
                "StyleCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "StyleCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/RefPythonToJava": {
                
            },
            "SWDesignAndDataStructs/AdminAcadIntegrity": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod1": {
                
            }
        },
        "Java Review": {
            "SWDesignAndDataStructs/ContentExceptions": {
                "ExceptionsCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "ExceptionsCheckpoint2Summ": {
                    "points": 8,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/ContentPolymorphism": {
                "OOP1Checkpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "Programming Practice: Object Oriented Programming": {
                    "points": 10,
                    "threshold": 2
                },
                "OOP1Checkpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "OOP2Checkpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "OOP2Checkpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Polymorphism 1": {
                    "points": 10,
                    "threshold": 2
                },
                "OOP2Checkpoint5Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Polymorphism 2": {
                    "points": 20,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/ContentJavaArrays": {
                "ArrayCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "ArrayCheckpoint2Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "ArrayCheckpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "Programming Practice: Java Arrays 1": {
                    "points": 15,
                    "threshold": 3
                },
                "Programming Practice: Java Arrays 2": {
                    "points": 5,
                    "threshold": 1
                }
            },
            "SWDesignAndDataStructs/ContentGenerics1": {
                "Generics1Checkpoint1Summ": {
                    "points": 8,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/Lab2Polymorphism": {
                
            },
            "SWDesignAndDataStructs/Lab2PolymorphismPost": {
                
            },
            "SWDesignAndDataStructs/ContentCoursePerceptions": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod2": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod2": {
                
            }
        },
        "Bags": {
            "SWDesignAndDataStructs/ContentBags1": {
                "BagsCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "Programming Practice: ArrayBags": {
                    "points": 10,
                    "threshold": 2
                },
                "BagsCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "BagsCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "BagsCheckpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: The Bag Interface": {
                    "points": 5,
                    "threshold": 1
                }
            },
            "SWDesignAndDataStructs/Lab3MovieDatabase": {
                
            },
            "SWDesignAndDataStructs/Lab3MovieDatabasePost": {
                
            },
            "SWDesignAndDataStructs/Project1": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod3": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod3": {
                
            }
        },
        "Linked Chains, Bags Continued": {
            "SWDesignAndDataStructs/Quiz1Info": {
                
            },
            "SWDesignAndDataStructs/ContentLinkedChains": {
                "PointerEX1PRO": {
                    "points": 2,
                    "threshold": 1
                },
                "PointerEX2PRO": {
                    "points": 2,
                    "threshold": 1
                },
                "LinkedChainCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Linked Chains 1": {
                    "points": 15,
                    "threshold": 3
                },
                "LinkedChainCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Linked Chains 2": {
                    "points": 20,
                    "threshold": 4
                },
                "PointerEX3PRO": {
                    "points": 2,
                    "threshold": 1
                },
                "CMpointersSumm": {
                    "points": 2,
                    "threshold": 1
                }
            },
            "SWDesignAndDataStructs/ContentLinkedBags": {
                "LinkedBagCheckpoint1Summ": {
                    "points": 8,
                    "threshold": 4
                },
                "LinkedBagCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "LinkedBagCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: LinkedBags": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab4GroceryBags": {
                
            },
            "SWDesignAndDataStructs/Project2": {
                
            },
            "SWDesignAndDataStructs/Lab4GroceryBagsPost": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod4": {
                
            }
        },
        "Efficiency, Stacks": {
            "SWDesignAndDataStructs/ContentEfficiency": {
                "EfficiencyCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "EfficiencyCheckpoint2Summ": {
                    "points": 6,
                    "threshold": 3
                }
            },
            "SWDesignAndDataStructs/ContentStacks": {
                "StacksCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "StacksCheckpoint2Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "StacksCheckpoint3Summ": {
                    "points": 8,
                    "threshold": 4
                },
                "StacksCheckpoint4Summ": {
                    "points": 2,
                    "threshold": 1
                },
                "Programming Practice: LinkedStacks": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab5IceCreamCone": {
                
            },
            "SWDesignAndDataStructs/Lab5IceCreamConePost": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod5": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod5": {
                
            }
        },
        "Ethics and Design": {
            "SWDesignAndDataStructs/ContentEthics": {
                "EthicsCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "EthicsCheckpoint2ASumm": {
                    "points": 2,
                    "threshold": 1
                },
                "EthicsCheckpoint2BSumm": {
                    "points": 6,
                    "threshold": 3
                },
                "EthicsCheckpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                }
            },
            "SWDesignAndDataStructs/ContentDesignMVC": {
                "DesignCheckpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "DesignCheckpoint2Summ": {
                    "points": 10,
                    "threshold": 5
                }
            },
            "SWDesignAndDataStructs/Lab6ArrayStack": {
                
            },
            "SWDesignAndDataStructs/Lab6ArrayStackPost": {
                
            },
            "SWDesignAndDataStructs/EthicsAssignment": {
                
            },
            "SWDesignAndDataStructs/DesignAssignment": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod6": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod6": {
                
            }
        },
        "Recursion": {
            "SWDesignAndDataStructs/Project3": {
                
            },
            "SWDesignAndDataStructs/Quiz2Info": {
                
            },
            "SWDesignAndDataStructs/ContentRecursion": {
                "RecursionCheckpoint1Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "Programming Practice: Recursion 1": {
                    "points": 40,
                    "threshold": 8
                },
                "RecursionCheckpoint2Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "RecursionCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Recursion 2": {
                    "points": 15,
                    "threshold": 3
                },
                "RecursionCheckpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Recursion 3": {
                    "points": 5,
                    "threshold": 1
                },
                "RecTraceSummFwdFlow": {
                    "points": 2,
                    "threshold": 1
                },
                "RecTraceSummbckwrdFlow": {
                    "points": 2,
                    "threshold": 1
                },
                "RecTraceSummFuncErr": {
                    "points": 2,
                    "threshold": 1
                },
                "RecTraceSummTwoRC": {
                    "points": 2,
                    "threshold": 1
                },
                "RecTraceSummHowmany": {
                    "points": 2,
                    "threshold": 1
                },
                "RecTraceSummHard": {
                    "points": 2,
                    "threshold": 1
                }
            },
            "SWDesignAndDataStructs/ContentMidSemester": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod7": {
                
            },
            "SWDesignAndDataStructs/Quiz2": {
                
            }
        },
        "Queues": {
            "SWDesignAndDataStructs/ContentQueues": {
                "QueueCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Queues 1": {
                    "points": 15,
                    "threshold": 3
                },
                "QueueCheckpoint2Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "QueueCheckpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "QueueCheckpoint4Summ": {
                    "points": 8,
                    "threshold": 4
                },
                "QueueCheckpoint5Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "QueueCheckpoint6Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "QueueCheckpoint7Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "QueueCheckpoint8Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Queues 2": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab8Carrano": {
                
            },
            "SWDesignAndDataStructs/Lab8CarranoPost": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod8": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod8": {
                
            }
        },
        "Lists and Generics": {
            "SWDesignAndDataStructs/ContentLists": {
                "ListsCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "ListsCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "ListsCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Lists 1": {
                    "points": 15,
                    "threshold": 3
                },
                "ListsCheckpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "ListsCheckpoint5Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "ListsCheckpoint6Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Lists 2": {
                    "points": 20,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/ContentGenerics2": {
                "Generics2Checkpoint1Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "Programming Practice: Generics 1": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab9SingleLink": {
                
            },
            "SWDesignAndDataStructs/Project4": {
                
            },
            "SWDesignAndDataStructs/Project4Discussion": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod9": {
                
            },
            "SWDesignAndDataStructs/ProgrammingPracticeMod9": {
                
            }
        },
        "Comparing, Sorting and Iterators": {
            "SWDesignAndDataStructs/Quiz3Info": {
                
            },
            "SWDesignAndDataStructs/ContentComparingAndSorting": {
                "CompSortCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "CompSortCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "CompSortCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "CompSortCheckpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "CompSortCheckpoint5Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Insertion Sort": {
                    "points": 15,
                    "threshold": 3
                },
                "Programming Practice: Comparators": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/ContentIterators": {
                "IteratorsCheckpoint1Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "IteratorsCheckpoint2Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "IteratorsCheckpoint3Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "Programming Practice: Iterators": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab10DoubleLink": {
                
            },
            "SWDesignAndDataStructs/Lab10DoubleLinkPost": {
                
            },
            "SWDesignAndDataStructs/Quiz3": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod10": {
                
            }
        },
        "Sorted Lists": {
            "SWDesignAndDataStructs/Project4Milestone": {
                
            },
            "SWDesignAndDataStructs/ContentSortedLists": {
                "SortedListsCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "SortedListsCheckpoint2Summ": {
                    "points": 8,
                    "threshold": 4
                }
            },
            "SWDesignAndDataStructs/Project5": {
                
            },
            "SWDesignAndDataStructs/Project5GroupForming": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod11": {
                
            }
        },
        "Project ": {
            "SWDesignAndDataStructs/Project5DesignSubmission": {
                
            },
            "SWDesignAndDataStructs/Project5Milestone": {
                
            }
        },
        "Cloning and Trees ": {
            "SWDesignAndDataStructs/ContentCloning": {
                "CloningCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/ContentTrees": {
                "TreesCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "TreesCheckpoint2Summ": {
                    "points": 6,
                    "threshold": 3
                },
                "TreesCheckpoint3Summ": {
                    "points": 6,
                    "threshold": 3
                }
            },
            "SWDesignAndDataStructs/Lab13BinaryTrees": {
                
            },
            "SWDesignAndDataStructs/Project5Discussion": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod13": {
                
            }
        },
        "Binary Search ": {
            "SWDesignAndDataStructs/Quiz4Info": {
                
            },
            "SWDesignAndDataStructs/Project5GroupFeedback": {
                
            },
            "SWDesignAndDataStructs/ContentBinarySearch": {
                "BinarySearchCheckpoint1Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "Programming Practice: Binary Search": {
                    "points": 10,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/ContentBinarySearchTrees": {
                "BSTCheckpoint1Summ": {
                    "points": 14,
                    "threshold": 7
                },
                "BSTCheckpoint2Summ": {
                    "points": 10,
                    "threshold": 5
                },
                "BSTCheckpoint3Summ": {
                    "points": 4,
                    "threshold": 2
                },
                "BSTCheckpoint4Summ": {
                    "points": 4,
                    "threshold": 2
                }
            },
            "SWDesignAndDataStructs/Lab14BST": {
                
            },
            "SWDesignAndDataStructs/KnowledgePracticeMod14": {
                
            }
        },
        "Review": {
            "SWDesignAndDataStructs/FinalExamInfo": {
                
            },
            "SWDesignAndDataStructs/ContentCoursePerceptions2": {
                
            }
        },
        "Reference": {
            "Tutorials/2114_eclipse_examples_setup": {
                
            },
            "Tutorials/2114_junit_tutorial": {
                
            },
            "Tutorials/2114_java_io_tutorial": {
                
            },
            "Tutorials/2114_java_commenting": {
                
            },
            "Tutorials/2114_random_numbers": {
                
            }
        }
    }
}