Lecture Notes 21: Midterm Practice Review
      
        
      
      Outline 
      This class we'll discuss:
      
      
        Let's solve a PRACTICE exam:
        
        
PRACTICE-midterm-1.pdf
        
      
      
      Topics
      
      
        
          - Logic and Reasoning
            
            
              - Predicate logic and simple logic proofs
 
            
           
          
          - Regular Languages
            
            
              - Regular Expressions: from set description to RE
 
              - Regular Expressions: from RE to set description
 
              - Finite Automata: Interpreting an FA (parts, equivalent RE, and accepted Language)
 
              - Finite Automata: Building a FA given a language set description
 
            
           
          
          - Regular vs Non-Regular Languages
            
            
              - Short Proofs: using definitions
 
              - Short Proofs: using closure
 
              - Short Proofs: finding a simple RE or FA
 
            
           
          
          - Non-Regular Languages (NRLs)
            
            
              - Understand the difference/relation between regular and non-regular languages
 
              - Prove a given Language is NOT regular
 
            
           
          
          - Context-Free Languages (CFLs)
            
            
              - Understand the definition of CFGs and Push-Down Automata
 
              - Understand the difference/relation between regular and CFG-languages
 
              - Understand the relation between Push-Down Automata and CFG-languages
 
              - Prove a given Language IS context free
 
              - Understand how one WOULD Prove a given Language is NOT context free
 
            
           
          
          - Turing-Decidable Languages (TDLs)
            
            
              - Understand the definition of Turing Machines
 
              - Understand the difference/relation between regular, CFG-languages, and TDLs
 
              - Prove a given Language IS Decidable
 
            
           
        
      
      
      Exam Info
      
      
        
          - Where/How to take the exam: 
            
            Please read the full instructions in self-scheduled-exams
           
          
          - Cheat-Sheet
            
            
              - A single approved cheatsheet will be distributed. You can ONLY bring that single page
 
              AND
              - you must submit it with your exam at the end!
 
            
             
             Note that the exam is designed so that you must use your reasoning rather than memory or copied notes.            
           
          
          - Exam Structure and Requirements
            
            
              - The exam will have 9 questions covering the topics mentioned above
 
              - It is designed to be completed in 1 hour and 15 minutes but you'll have up to 4 hours to complete it
 
              - You may scribble notes and practice answers anywhere in the exam but MUST indicate your final reply clearly, otherwise the whole scribbling will be taken as your reply
 
              - You MUST use clear sentences and logic. Rambling answers do not grant partial credit so be concise and precise (think before you answer)
                    
            
       
           
        
      
      
      General tips
      
      
            
      
        - See the examples solved in class and those solved in the Problem Sets. Any questions that come in the exam will be VERY similar to those.
 
        
        - No Question will be as hard as the Problem-5 questions in the Problem sets.
        
 
        
        - You will be asked to do proofs, but they will be rather straightforward. 
          
Examples: 
          
        - show an example of an RE that disprooves a statement that there can be none 
        
        - use a Pumping Lemma proof on a question that is VERY similar to one seein in class (HALF) 
        
        - show a CFG to generate a certain Language 
      
      
      Tips on Proofs
      
      
        If you want to prove a statement like “This <something> is NOT in the category <category>” (Like this Language L is NOT a Regular Language), you can use the following approaches:
        
        
          - by contradiction (assume it IS and find a contradiction. . . for example, using the Pumping Lemma)
 
          - by construction (show all elements follow some structure that precludes them from falling inside the <category>)
 
        
        
        If you want to disprove a statement like “There is NO <something> that has the property <some property>” (Like there is no Regular Expression that can describe language L = {w | w has alternating 1s and 0s}),
        - you only need to find an example.
 
        
        If you want to prove that a set of elements follows some property (like saying “these two languages are equivalent” or “This language L is Context-Free”), you might want to use one of the following approaches:
        
          - using closure properties
 
          - by construction (show how you can generate the rules that produce the set)
 
          - by induction
 
        
      
      
      Homework
      
      
      [Due for everyone]
      
         Try to find any errors in your answers and fill in your Aid Sheet.
      
 
      
      [Optional] 
      
        TODO