By the end of this course, you will:
        
        
          - 
            Have a better insight into programming languages, and the
            relationship between imperative, functional, and
            object-oriented programming languages.
          
- 
            Find it easier to debug code.
          
- 
            Find it easier to optimize code.
          
- 
            Be able to apply new techniques and tools in your own
            projects, e.g., parser generators and graph visualization
            software.
          


