{
  "title": "CS4114 Formal Languages and Automata, Spring 2023",
  "desc": "CS4114 Formal Languages and Automata, Spring 2023",
  "build_dir": "Books",
  "code_dir": "SourceCode/",
  "code_lang": {
    "Java": {
      "ext": [
        "java"
      ],
      "label": "Java",
      "lang": "java"
    },
    "Java_Generic": {
      "ext": [
        "java"
      ],
      "label": "Java (Generic)",
      "lang": "java"
    }
  },
  "lang": "en",
  "build_JSAV": false,
  "build_cmap": 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,
    "partial_credit": false
  }, 
  "glob_ff_options": {
    "threshold": 1.0, 
    "points": 2.0,
    "required": true,
    "partial_credit": false
  },
  "glob_ka_options": {
    "threshold": 1, 
    "points": 1.0,
    "required": true,
    "partial_credit": false
  }, 
  "glob_extr_options": {
    "points": 1.0,
    "partial_credit": false
  }, 
  "glob_pe_options": {
    "threshold": 0.9, 
    "points": 2.0, 
    "required": true,
    "partial_credit": false
  }, 
  "chapters": {
    "Preface": {
      "Intro": {}
    },
    "Introduction": {
      "PIFLA/FLIntro": {},
      "PIFLA/FLOverview": {},
      "PIFLA/MajorConcepts": {},
      "PIFLA/IntroGrammarEx": {
        "GramIntro3str": {
          "points": 1.0
        },
        "GramIntroanbm": {
          "points": 1.0
        },
        "GramIntroanb2n": {
          "points": 1.0
        },
        "Parens": {
          "points": 1.0
        },
        "Palendrome": {
          "points": 1.0
        }
      }
    },
    "Mathematical Background": {
      "PIFLA/SetNotation": {},
      "PIFLA/Relations": {
        "SetTFrelation": {
          "threshold": 5,
          "points": 2.0
        },
        "SetTFequivrel": {
          "threshold": 3
        },
        "SetTFpartialorder": {
          "threshold": 3
        },
        "EquivFS": {
          "points": 1.0
        }
      },
      "Background/Proofs": {}
    },
    "Finite Acceptors": {
      "PIFLA/DFA":{
        "DFAEvenBinary": {
          "points": 1.0
        }
      },
      "PIFLA/DFAExercises2": {
        "DFAevena": {
          "points": 1.0
        },
        "DFAbsurrounda": {
          "points": 2.0
        },
        "DFAdiv4": {
          "points": 2.0
        },
        "DFAevenamin3b": {
          "points": 2.0
        },
        "DFACOMPevenamin3b": {
          "points": 2.0
        }
      },
      "PIFLA/NFA": {},
      "PIFLA/NFAExercises": {
        "NFAtoDFAex1":{
          "points": 3.0,
          "threshold": 0.85
        },
        "NFAex1":{
          "points": 3.0
        }
      },
      "PIFLA/DFAMinimization": {}
    },
    "Regular Languages": {
      "PIFLA/RegEx":{},
      "PIFLA/RegExExercises":{
        "RegExaba": {
          "points": 2.0
        },
        "RegExbbaeven": {
          "points": 2.0
        },
        "RegExnoaa": {
          "points": 2.0
        },
        "RegExonebbb": {
          "points": 2.0
        }
      },
      "PIFLA/RegExPower":{
        "RegEx2NFA1FS": {
          "points": 1.0
        },
        "RegEx2NFAorFS": {
          "points": 1.0
        },
        "RegEx2NFAcatFS": {
          "points": 1.0
        },
        "RegEx2NFAstarFS": {
          "points": 1.0
        }
      },
      "PIFLA/RegGrammarShort": {},
      "PIFLA/RegGramEx1": {
        "RegGramNFA1": {
          "points": 2.0
        },
        "RegGrambbbaaaa": {
          "points": 2.0
        },
        "RegGramaby3": {
          "points": 2.0
        }
      },
      "PIFLA/RegClosure": {}
    },
    "Identifying Non-regular Languages":{
      "PIFLA/NonRegular": {
        "introPumpingFS": {
          "points": 1.0
        },
        "PLGame": {
          "points": 0.0,
          "required": false
        },
        "ClosPropFS": {
          "points": 1.0
        },
        "ClosPropEx1FS": {
          "points": 1.0
        },
        "ClosPropEx2FS": {
          "points": 1.0
        }
      }
    },
    "Context-Free Grammars and Languages":{
      "PIFLA/CFG1": {},
      "PIFLA/CFG2": {},
      "PIFLA/BNF": {},
      "PIFLA/CFGExercises": {
        "anbmodd":{
          "points": 2.0
        },
        "ambicn":{
          "points": 2.0
        },
        "ambian":{
          "points": 2.0
        },
        "asbsequal":{
          "points": 2.0
        }
      },
      "PIFLA/CFGTransformations":{}
    },
    "Pushdown Automata":{
      "PIFLA/PDA": {},
      "PIFLA/PDAExercises":{
        "PDAwcwR":{
          "points": 2.0
        },
        "PDAaicjbi":{
          "points": 3.0
        },
        "PDA2asperb":{
          "points": 3.0
        },
        "PDAaibjck":{
          "points": 3.0
        }
      },
      "PIFLA/PDACFL": {},
      "PIFLA/DPDA": {}
    },
    "Properties of Context-free Languages": {
      "PIFLA/CFLProp": {}
    },
    "Turing Machines": {
      "PIFLA/TuringMachines": {},
      "PIFLA/TuringMachinesAdv": {},
      "PIFLA/TMExercises": {
        "addOnea": { 
          "points": 2.0
        },
        "eraseABC": { 
          "points": 2.0
        },
        "keepABC": { 
          "points": 2.0
        },
        "aNumsPowerOf2": { 
          "points": 2.0
        },
        "ifaNumsPowerOf2": { 
          "points": 2.0
        },
        "abcWInWWROut": { 
          "points": 2.0
        },
        "abcNawlargerthanNbw": { 
          "points": 2.0
        },
        "replaceABAbyACA": { 
          "points": 2.0
        },
        "abPalindromes": { 
          "points": 2.0
        }
      }
    },
    "Limits to Computing": {
      "PIFLA/LimCompFLA": {},
      "PIFLA/Reduction": {},
      "PIFLA/NPComplete": {},
      "PIFLA/Impossible": {}
    },
    "Appendix": {
      "Glossary": {}
    }
  }
}
