{
  "title": "Intro To Software Design",
  "desc": "An objects first approach to introductory programming adn design",
  "theme": "haiku",
  "build_dir": "Books",
  "code_dir": "SourceCode/",
  "code_lang": {
    "Java_Generic": {
      "ext": [
        "java"
      ],
      "label": "Java (Generic)",
      "lang": "java"
    },
    "Java": {
      "ext": [
        "java"
      ],
      "label": "Java",
      "lang": "java"
    },
    "C++": {
      "ext": [
        "cpp",
        "h"
      ],
      "label": "C++",
      "lang": "C++"
    }
  },
  "lang": "en",
  "build_JSAV": false,
  "build_cmap": false,
  "suppress_todo": false,
  "dispModComp": true,
  "tag": "CPP;CS2",
  "glob_exer_options": {
    "JXOP-debug": "true"
  },
  "chapters": {
    "Course Policies": {
      "IntroToSoftwareDesign/CoursePolicies": {
        "long_name": "",
        "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": {},
          "Late Assignments": {},
          "Grading": {},
          "Programming Language and Environment": {},
          "Cheating and The Honor Code": {},
          "Self-Check": {
            "HonorCodeSumm": {
              "long_name": "Honor Code Understanding",
              "required": true,
              "points": 100,
              "threshold": 10
            }
          }
        }
      }
    },
    "Getting Started": {
      "IntroToSoftwareDesign/GettingStarted": {
        "long_name": "",
        "sections": {
          "Installing BlueJ": {},
          "What is a Micro-World?": {
            "Week1Quiz1": {
              "long_name": "Week1Quiz1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            },
            "Week1Quiz2": {
              "long_name": "Week1Quiz2",
              "required": true,
              "points": 1.0,
              "threshold": 5
            },
            "Week1Quiz3": {
              "long_name": "Week1Quiz3",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Inheritance And Polymorphism": {
      "IntroToSoftwareDesign/InheritanceAndPolymorphism": {
        "long_name": "Inheritance and Polymorphism",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Conditional Actions": {
      "IntroToSoftwareDesign/ConditionalActions": {
        "long_name": "Conditional Actions",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Week3Quiz1": {
              "long_name": "Week3Quiz1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            },
            "Week3Quiz2": {
              "long_name": "Week3Quiz2",
              "required": true,
              "points": 1.0,
              "threshold": 5
            },
            "Week3Quiz3": {
              "long_name": "Week3Quiz3",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Compound Conditions And Software Testing": {
      "IntroToSoftwareDesign/CompoundConditionsAndSoftwareTesting": {
        "long_name": "Compound Conditionals and Software Testing",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Fields And Parameters": {
      "IntroToSoftwareDesign/FieldsAndParameters": {
        "long_name": "Fields and Parameters",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "ArrayList, Generics, Iterators, And Null": {
      "IntroToSoftwareDesign/ArrayListGenericsIteratorsAndNull": {
        "long_name": "ArrayLists, Generics, Iterators, and the Null Keyword",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Variables And Primitives": {
      "IntroToSoftwareDesign/VariablesAndPrimitives": {
        "long_name": "Variables and Primitives",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Grouping Objects": {
      "IntroToSoftwareDesign/GroupingObjects": {
        "long_name": "Grouping Objects",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Using Lists": {
      "IntroToSoftwareDesign/UsingLists": {
        "long_name": "Using Lists",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Grouping Using Lists And Fixed Size Arrays": {
      "IntroToSoftwareDesign/GroupingUsingListsAndFixedSizeArrays": {
        "long_name": "Grouping Using Lists and Fixed Size Arrays",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "More On Fixed Sized Arrays": {
      "IntroToSoftwareDesign/MoreOnFixedSizedArrays": {
        "long_name": "More On Fixed Sized Arrays",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Fle I/O": {
      "IntroToSoftwareDesign/FleIO": {
        "long_name": "File I/O",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Maps": {
      "IntroToSoftwareDesign/Maps": {
        "long_name": "Maps",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Variable Scoping": {
      "IntroToSoftwareDesign/VariableScoping": {
        "long_name": "Variable Scoping",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    },
    "Static And Exceptions": {
      "IntroToSoftwareDesign/StaticAndExceptions": {
        "long_name": "Static and Exceptions",
        "sections": {
          "Introduction": {},
          "Syntax Review": {},
          "Syntax Practice": {},
          "changePointeeDataDirect": {
            "learning_tool": "code-workout",
            "resource_type": "external_assignment",
            "resource_name": "changePointeeDataDirect",
            "points": 2.0,
            "workout_id": "0"
          },
          "Programming Practice": {},
          "Codeworkout exercises": {},
          "Reading Quiz 1": {
            "Question1": {
              "long_name": "Question1",
              "required": true,
              "points": 1.0,
              "threshold": 5
            }
          }
        }
      }
    }
  }
}