CIS 706


Prerequisites by Topic



  • working knowledge of a high-level language, preferably Java, C, or C++;
  • ability to use and implement common data structures such as lists, stacks,
    queues, and trees;
  • principles of functional, block-oriented programming languages  including types,
    scoping, abstraction mechanisms, exceptions, and concurrency
  • principles of object-oriented programming languages  including
    classes and objects
  • knowledge of software architecture and design

Knowledge and Skills Acquired



  • Mastery of:

    • Deterministic parsing, Semantic analysis, Abstract syntax trees
    • Symbol tables, type checking, resource allocation
    • Generating LR parsers using automated tools such as Flex and Bison
    • Code generation

  • Familiarity with:

    • Domain specific languages
    • Garbage collection, native code generation, static analysis
    • Virtual machines and run-time environments


Department of Computing and Information Sciences - Kansas State University
Address: 234 Nichols Hall, Manhattan, KS 66506
Phone: (785)532-6350; Fax: (785)532-7353; Mailto: webmaster@cis.ksu.edu