{
  "title": "Programmed Instruction Examples",
  "desc": "Programmed Instruction Examples",
  "build_dir": "Books",
  "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,
  "assumes": "recursion",
  "dispModComp": true,
  "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": 5, 
    "points": 1.0, 
    "required": true
  }, 
  "glob_extr_options": {
    "code-workout": {
      "points": 2.0
    }, 
    "points": 1.0
  }, 
  "glob_pe_options": {
    "threshold": 0.9, 
    "points": 2.0, 
    "required": true
  }, 
  "chapters": {
    "Preface": {
      "Intro": {}
    },
    "Introduction": {
      "PIExample/MajorConcepts": {},
      "PIExample/IntroductoryGrammarExercises":{
        "sheet1exercise5":{
          "points": 2.0
        },
        "sheet1exercise6":{
          "points": 2.0
        },
        "sheet1exercise7":{
          "points": 2.0
        },
        "sheet1practice5":{
          "points": 2.0
        },
        "sheet1practice6":{
          "points": 2.0
        },
        "sheet1practice7":{
          "points": 2.0
        }
      }
    },
    "Mathematical Background": {
      "PIExample/SetDefinitions": {},
      "PIExample/Relations": {},
      "PIExample/MathProof":{}
    },
    "Finite Acceptors": {
      "PIExample/DFA":{},
      "PIExample/DFAExercises":{
        "sheet1exercise1":{
          "points": 5.0
        },
        "sheet1exercise2":{
          "points": 5.0
        },
        "sheet1exercise3":{
          "points": 5.0
        },
        "sheet1exercise4":{
          "points": 5.0
        },
        "sheet1practice1":{
          "points": 5.0
        },
        "sheet1practice2":{
          "points": 5.0
        },
        "sheet1practice3":{
          "points": 5.0
        },
        "sheet1practice4":{
          "points": 5.0
        }
      },
      "PIExample/NFA":{},
      "PIExample/NFAExercises":{
        "NFAtoDFAExerciseEditor":{
          "points": 10.0
        },
        "sheet2exercise4":{
          "points": 10.0
        },
        "NFAtoDFAPracticeEditor":{
          "points": 10.0
        },
        "sheet2practice4":{
          "points": 10.0
        }
      },
      "PIExample/DFAMinimization":{},
      "PIExample/MinimizationExercises":{
        "DFAminimizationExerciseEditor":{
          "points": 10.0
        },"DFAminimizationExerciseEditor2":{
          "points": 10.0
        },
        "sheet2exercise3":{
          "points": 7.0
        }
      }
    },
    "Regular Languages": {
      "PIExample/RegularExpression":{},
      "PIExample/RegExExercises":{
        "sheet3exercise1":{
          "points": 5.0
        },
        "sheet3exercise2":{
          "points": 5.0
        },
        "sheet3exercise3":{
          "points": 5.0
        },
        "sheet3practice1":{
          "points": 5.0
        },
        "sheet3practice2":{
          "points": 5.0
        },
        "sheet3practice3":{
          "points": 5.0
        }
      },
      "PIExample/RegularGrammars": {},
      "PIExample/RegularGrammarsExercises":{
        "sheet3exercise4":{
          "points": 5.0
        },
        "sheet3exercise5":{
          "points": 5.0
        },
        "sheet3exercise6":{
          "points": 5.0
        },
        "sheet3practice4":{
          "points": 5.0
        },
        "sheet3practice5":{
          "points": 5.0
        },
        "sheet3practice6":{
          "points": 5.0
        }
      },
      "PIExample/ClosurePropertiesOfRegularLanguages": {}
    },
    "Identifying Non-regular Languages":{
      "VisFormalLang/NonRegular":{}
    },
    "Context-Free Grammars and Languages":{
      "PIExample/ContexFreeLanguages": {},
      "PIExample/CFLExercises": {
        "sheet5exercise1":{
          "points": 5.0
        },
        "sheet5exercise2":{
          "points": 5.0
        },
        "sheet5Practice1":{
          "points": 5.0
        },
        "sheet5Practice2":{
          "points": 5.0
        }
      },
      "PIExample/CFGTransormations":{},
      "PIExample/CFGTransformationsExercies":{
        "sheet6exercise1":{
          "points": 10.0
        },
        "sheet6exercise2":{
          "points": 10.0
        },
        "sheet6exercise3":{
          "points": 10.0
        },
        "sheet6exercise4":{
          "points": 10.0,
          "threshold": 0.9
        }
      }
    },
    "Pushdown Automata":{
      "PIExample/PDA": {},
      "PIExample/PDAExercises":{
        "sheet7exercise1":{
          "points": 5.0
        },
        "sheet7exercise2":{
          "points": 5.0
        },
        "sheet7exercise3":{
          "points": 5.0
        },
        "sheet7exercise4":{
          "points": 5.0
        }
      }
    },
    "Properties of Context-free Languages":{
      "VisFormalLang/CFLProp":{}
    },
    "Models of Computation":{
      "VisFormalLang/TuringIntro":{},
      "PIExample/TuringMachines":{},
      "PIExample/TMExercises":{
        "addOnea":{ 
          "points": 5.0
        },
        "eraseABC":{ 
         "points": 5.0
        },
        "keepABC":{ 
         "points": 5.0
        },
        "aNumsPowerOf2":{ 
         "points": 5.0
        },
        "ifaNumsPowerOf2":{ 
         "points": 5.0
        },
        "abcWInWWROut":{ 
         "points": 5.0
        },
        "abcNawlargerthanNbw":{ 
         "points": 5.0
        },
        "replaceABAbyACA":{ 
          "points": 5.0
        },
        "abPalindromes":{ 
          "points": 5.0
        }
      }
    },
    "Parsing":{
      "VisFormalLang/ParseIntro":{},
      "VisFormalLang/LLParsing":{},
      "VisFormalLang/LRParsing":{},
      "VisFormalLang/CYKParsing":{},
      "VisFormalLang/Compiler":{}
    },
    "Limits to Computing": {
      "PIExample/PairToSortCONPI": {},
      "PIExample/LowerBound": {},
      "PIExample/TwoMulExample": {},
      "PIExample/TravelSalesman": {},
      "PIExample/KClique": {},
      "PIExample/SATProof": {},
      "PIExample/NPCCoping": {},
      "PIExample/UnsolveableProblems1": {},
      "PIExample/UnsolveableProblems2": {}
   }
  }
}
