{
  "title": "Formal Languages With Visualizations",
  "desc": "Formal Languages With Visualizations",
  "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": 1.0, 
    "points": 10.0, 
    "required": true
  }, 
  "chapters": {
    "Preface": {
      "Intro": {}
    },
    "Introduction": {
      "VisFormalLang/FLIntro": {},
      "VisFormalLang/FLOverview": {},
      "VisFormalLang/FLConcepts": {}
    },
    "Mathematical Background": {
      "Background/SetDef": {},
      "Background/Proofs": {}
    },
    "Finite Acceptors": {
      "VisFormalLang/DFA": {},
      "VisFormalLang/NFA": {},
      "VisFormalLang/Minimization": {}
    },
    "Regular Languages": {
      "VisFormalLang/RegEx": {},
      "VisFormalLang/RegGrammar": {},
      "VisFormalLang/RegClosure": {}
    },
    "Identifying Non-regular Languages": {
      "VisFormalLang/NonRegular": {},
      "VisFormalLang/DFAproperties": {}
    },
    "Context-Free Grammars and Languages": {
      "VisFormalLang/CFL": {},
      "VisFormalLang/CFLSimp": {}
    },
    "Pushdown Automata": {
      "VisFormalLang/PDA": {},
      "VisFormalLang/PDACFL": {},
      "VisFormalLang/DPDA": {}
    },
    "Properties of Context-free Languages": {
      "VisFormalLang/CFLProp": {}
    },
    "Models of Computation": {
      "VisFormalLang/TuringIntro": {},
      "VisFormalLang/Turing": {}
    },
    "Parsing": {
      "VisFormalLang/ParseIntro": {},
      "VisFormalLang/LLParsing": {},
      "VisFormalLang/LRParsing": {},
      "VisFormalLang/CYKParsing": {},
      "VisFormalLang/Compiler": {}
    },
    "Limits to Computing": {
      "NP/Reduction": {},
      "VisFormalLang/RecEnum": {},
      "SeniorAlgAnal/Impossible": {}
    },
    "Assignments": {
      "VisFormalLang/IntroEx": {
        "GramIntro3str": {
          "points": 2.0
        },
        "GramIntroanbm": {
          "points": 2.0
        },
        "GramIntroanb2n": {
          "points": 2.0
        },
        "DFAodda": {
          "points": 5.0
        },
        "DFAoddaevenb": {
          "points": 5.0
        },
        "DFAodda3b": {
          "points": 2.0
        },
        "DFAno3a": {
          "points": 2.0
        }
      },
      "VisFormalLang/FAEx":{
        "NFAtoDFAex1long": {
          "points": 5.0
        },
        "DFAMinEx1": {
          "points": 5.0
        },
        "DFANotevena3b": {
          "points": 5.0
        },
        "NFAex1": {
          "points": 5.0
        }
      },
      "VisFormalLang/RegLangEx":{
        "RegExbbaeven": {
          "points": 5.0
        },
        "RegExnoaa": {
          "points": 5.0
        },
        "RegExonebbb": {
          "points": 5.0
        },
        "RegGramNFA1": {
          "points": 5.0
        },
        "RegGrambbbaaaa": {
          "points": 5.0
        },
        "RegGramaby3": {
          "points": 5.0
        }
      },
      "VisFormalLang/Sheet5":{
        "sheet5exercise1":{
          "points": 5.0
        },
        "sheet5exercise2":{
          "points": 5.0
        }
      },
      "VisFormalLang/Sheet6":{
        "sheet6exercise1":{
          "points": 10.0
        },
        "sheet6exercise2":{
          "points": 10.0
        },
        "sheet6exercise3":{
          "points": 10.0
        },
        "sheet6exercise4":{
          "points": 10.0,
          "threshold": 0.9
        }
      }, 
      "VisFormalLang/Sheet7":{
        "sheet7exercise1":{
          "points": 5.0
        },
        "sheet7exercise2":{
          "points": 5.0
        },
        "sheet7exercise3":{
          "points": 5.0
        },
        "sheet7exercise4":{
          "points": 5.0
        }
      }
    },
    "Practice":{
      "VisFormalLang/IntroExMore": {},
      "VisFormalLang/FAExMore": {
        "DFAevena": {
          "points": 5.0
        },
        "DFAevenaoddb": {
          "points": 5.0
        },
        "DFAevenamin3b": {
          "points": 5.0
        },
        "DFAbotheo": {
          "points": 5.0
        },
        "NFAtoDFAex1long":{
          "points": 5.0
        },
        "NFAtoDFAex2":{
          "points": 5.0
        },
        "NFAex2":{
          "points": 5.0
        }        
      },
      "VisFormalLang/RegLangExMore": {
        "RegExaby3": {
          "points": 5.0
        },
        "RegExcb3": {
          "points": 5.0
        },
        "RegExabyb": {
          "points": 5.0
        },
        "RegGramNFA2": {
          "points": 5.0
        },
        "RegGramaaabba": {
          "points": 5.0
        },
        "RegGramanbmodd": {
          "points": 5.0
        }
      }, 
      "VisFormalLang/Sheet5Practice":{
        "sheet5Practice1":{
          "points": 0.0
        },
        "sheet5Practice2":{
          "points": 0.0
        }
      }
    },
    "Appendix": {
      "Glossary": {}
    }
  }
}
